>> DAVID MALAN: Dobra, jesteśmy z powrotem.
Więc dla ekscytujące Podsumowując, nasz ostatni odcinek
na programowaniu stron internetowych, które ja myślałem, że będziemy używać jako ogólne określenie
uchwycić kilka pozostałych wątków.
Tak na koniec dzień, my faktycznie
trochę hands-on programowaniu WWW z językiem zwanym JavaScript.
I myślę, że przyjrzymy na coś związanego z obrazami
i odkrywanie czegoś potajemnie ukryte w obrazie,
a także zapoznać się z Google Maps API, programowania aplikacji
interfejs, jako coś przedstawicielem typu oprogramowania
to coraz częściej i swobodnie dostępne już dziś.
>> Ale dlaczego nie spojrzeć na składnik do tego świata
że mamy niby było biorąc za pewnik istnieje
przez jakiś czas, to baza danych.
W przeciągu doby oraz pół mamy założyć
że mamy dostęp do bazy danych, ale Jaki problem ma baza rozwiązać?
Co to dla nas zrobić?
Co to jest?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: posiada wszystkie informacje, OK, i jakie rodzaje informacji
można umieścić w nim?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Wszelkie informacje można umieścić w nim, dostaniesz z powrotem.
To prawda.
A w typowym miejscu, albo w sieci opartej na sieci WWW Aplikacja, jakie rodzaje informacji,
W szczególności, można wprowadzić?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN Użytkownicy.
Więc co użytkownik?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: OK, zarejestrowana Użytkownik serwisu.
A co to znaczy przechowują informacje użytkowników?
Co komponuje użytkownika?
Użytkownik ma co?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, osobiste danych, a to mi się podoba.
Bądźmy bardziej precyzyjny.
Tak więc użytkownik ma zazwyczaj imię, co jeszcze użytkownik może mieć?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: AN addr-- OK tak na imię i nazwisko.
Dobre.
Rzeczywiście, niech naprawić że ponieważ chodzi
aby otworzyć możliwość Dyskusja, wciąż dalej.
Imię, nazwisko, płeć.
Identyfikator jakiegoś.
Co jeszcze?
Słyszałem coś innego wcześniej, też.
E-mail, adres pocztowy.
>> Warto więc wstrzymać się tam i teraz rozważyć nie to co my przechowywania w bazie danych,
ale-- a nie dlatego, ponieważ jest to chyba oczywiste, że po rejestracji użytkownika,
chcesz zapamiętać je na jakiś czas.
Nie chcesz go być po prostu przechowywane w pamięci RAM
i bycia zapomnianym tak skupmy się na how.
>> Okazuje się, że w świat baz danych,
istnieje co najmniej dwa rodzaje tych dniach.
Coś o nazwie bazy danych SQL, Structured Query Language,
lub cutely nazwane, NoSQL, co nie jest SQL.
A drugi jest przykładem tego, co może
nazwać obiektowy, lub sklep obiektu, baza
która przechowuje obiekty, a nie, przepraszam ja, jak wkrótce zobaczymy, wiersze.
>> Dlatego skupimy się na chwilę na Pierwszy z nich, a mianowicie SQL
bazy danych, choćby dlatego, że jest to już tak znane, każdemu
który wykorzystał Excel lub Arkusze Google lub Apple
Numery lub dowolny standardowy program arkusza kalkulacyjnego,
lub równoważnie lub więcej sophisticatedly,
coś takiego jak Microsoft Access lub Oracle
MySQL lub PostgreSQL lub, z których wszystkie Nazwy produktów są dla wdrożeń
z następujących pomysł.
>> Relacyjne bazy danych jest po prostu coś, co ma wierszy i kolumn.
A według wierszy i kolumn, Dosłownie znaczy coś
w ten sposób, więc gdzie możemy mieć nazwa pola i jego typ tutaj.
I rzeczywiście, niech mi teraz rozpocząć mapować je.
Tak naprawdę, nie wiem Dlatego zwróciłem osobnego wykresu.
Trzymajmy Ta prosta.
>> Mamy prawo tu Początki naszego stolika, gdzie
jest to nazwa pola i jest typu danych,
i rodzaju Znaczy co następuje.
Czy jest to liczba, to jest ciągiem znaków, krótki łańcuch jak słowo,
to jest akapit, to jest Dane binarne, jak obraz?
I niech po prostu drażnić tego od siebie na chwilę.
Więc pierwsza nazwa, numer, Ciąg, duży kawałek text--
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, więc ciąg.
A w kontekście bazy danych, będziemy zazwyczaj nazywają to pole char.
Powiem tylko char teraz, ale jesteśmy zamierza udoskonalić tę chwilę.
pole znakowe.
Nazwisko pewnie to samo.
Płeć?
>> Mężczyzna czy kobieta, więc może być polem char.
Może to być albo cytat, koniec cytatu "Męski" lub cytat cytatu "żeński"
lub może być m lub f.
Jeśli chcesz być bardziej zintegrowane, Może trzeba trzecią wartość
lub jakiś inny polu całkowicie.
A więc można używać True False.
Pole można nazwać męskiej i to można powiedzieć, prawdziwe lub fałszywe.
Ale to nie musi uchwycić wszystkie informacje można chcieć.
>> Tak więc okazuje się, że jest inny typ w polu, które mogą być tu przydatne
w typowej bazie danych, zwany enum, gdzie jest to pole znakowe,
ale ty, projektant, dostać się do wyliczyć możliwych wartości,
jak cytat, koniec cytatu "męski", cytuję, koniec cytatu "żeńskie" i tak dalej.
Tak, że niezależnie od wartości jest w bazie danych,
jest rzeczywiście znakowym, ale musi być jedną z tych wartości.
Prawdopodobnie nie będzie chciał enum dla imienia lub nazwiska.
W przeciwnym razie musielibyśmy wyliczyć, jak nazwa
wywodzi się z dosłownie każdego Możliwe imię i nazwisko.
>> OK, więc co należy ID identyfikator być?
Tak, tak może być liczbą.
Warto więc trzymać że na razie, numer.
A według numeru, numer jest zbyt szeroka teraz.
Na końcu drugiego dzień, czuję się jak my
powinny być trochę bardziej precyzyjny.
Ilość może oznaczać podobny, to może być coś takiego 1.236.
I to chyba nie Co rozumiemy przez ID.
Co mamy na myśli zapewne przez ID?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Oh, OK, więc Może to nawet nie jest liczbą.
Może to rzeczywiście unikalny identyfikator to ciąg znaków, takich jak nazwa użytkownika.
Więc absolutnie niemożliwe.
Myślę, że ktoś prawdopodobnie Oznaczało numeryczny, choć.
Więc zostańmy przy tym.
Jaką liczbę?
Co bardziej precise-- liczbę całkowitą.
Tak wiele, jak 0, 1, 2, 3, więc my nazywamy to liczba całkowita.
I nawet wtedy, mogłem być nitpicking, to
naprawdę nie tylko Ogólnie całkowita chcesz.
Prawdopodobnie nie chcą wartości ujemne, tylko dlatego, że po prostu czuje się dziwnie.
Prawdopodobnie chcesz dodatnich liczb całkowitych.
Więc można również wyrazić że w bazie danych,
ale teraz powiemy całkowitą.
>> E-mail?
Jest to prawdopodobnie just-- co?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: To jest e-mail, ale to znaki, prawda?
To po prostu ma ostry charakter, jak jest "na" symbol lub coś innego,
ale to wciąż pole znakowe.
I adres pocztowy?
pole znakowe.
Tak, że to miły początek, ale bądźmy trochę bardziej precyzyjne teraz.
>> Tak więc okazuje się, że w baza danych, często
masz wybór nad bardziej wyrafinowane wersje tych rzeczy.
W rzeczywistości, w typowej bazy danych SQL, SQL, lub, bardziej ogólnie, relacyjnych baz danych,
Bazy danych z wierszy i kolumny, często
dostać się określić nie tylko rodzaj nauce, pozwól mi zrobić trochę miejsca here--
ale również długość.
>> Więc, jak długo to imię?
Myślę, D-A-V-I-D. OK, rozumiem I Prawdopodobnie po prostu obraził jakby połowa
ludzi w pomieszczeniu, w prawo, ponieważ wasze imiona są dłuższe niż pięć
Litery, więc pięć Wygląda trochę egoistyczne i naiwny, więc co to jest lepszej jakości?
10, wszystko w porządku, i myślę, jesteśmy OK w pokoju.
13?
30?
Dlaczego nie biorę Podejście wcześniej, kiedy
Rozmawialiśmy o tablic i pamięci?
Dlaczego nie mogę po prostu powiedzieć jak 1000?
Nikt nie będzie nazwę być dłuższy niż 1000.
Odepchnąć się.
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, to jest marnotrawstwem, w prawo, w szczególności
jeśli większość nazwy są tylko pięć lub 10 lub 15 znaków, to bardzo rozrzutny.
Więc wiesz co?
Jest to rodzaj trudne pytanie.
Teraz, z pewnością możemy analizować angielsku i nazwy w jakimkolwiek innym języku
i dowiedzieć się, jak to, co jest Średnio average-- naprawdę nie ma
pomóc us-- jaka jest max Prawdopodobnie to, czego naprawdę chcą.
Ale okazuje się, że nawet jedne nad wyborem typu tutaj.
>> W typowej bazy danych SQL, ty coś nazywamy polem char
a także varchar, V-A-R, dla zmiennego pola char.
A różnica jest następująca.
Pole char, to projektant, trzeba określić z wyprzedzeniem
Dokładna długość pola.
Więc może imię jak 20 czuje rodzaju bezpieczne.
Może trzeba zrobić kilka googling do zobaczyć, czy to wystarczy faktycznie bezpieczne.
Jest to prawdopodobnie nazwa z 21 znaków, ale na razie załóżmy, że 20
jest bezpieczny.
>> Pole char sugerowałoby w bazie danych, które Cię
są za pomocą 20 i zawsze 20 znaków.
Teraz, jeśli to tylko D-A-V-I-D, 15 osób są tylko będzie puste znaki,
ale nadal używasz wszystkie 20 bajtów.
Pole VARCHAR Natomiast oznacza Łańcuch powinien mieć maksymalnie 20 znaków
ale jeśli to tylko pięć, masz zamiar używać tylko
pięć, a może sześć dla Szczególna wartość na końcu,
jak ten, który omówiliśmy 0 oznacza koniec znaku
Kolejność, w pamięci.
>> Więc kiedy myślisz można wybrać char
kontra varchar, zważywszy, że kompromis?
Char używa tyle znaków, varchar wykorzystuje nie więcej niż tyle znaków.
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: OK, gdy wiesz, że Długość łańcucha dość przekonujące
po prostu użyć char, bo jeśli wiesz, po prostu umieścić go w dół.
A może to prawda na zamek błyskawiczny Kod, w Stanach Zjednoczonych, co najmniej 02138,
to zawsze będzie pięć Znaki czasu dodania myślnika cztery.
Ale może masz jakieś wartości które zawsze wiesz długość.
A może symbole państwowe, jak NY New York,
i MA w stanie Massachusetts w USA.
Może masz jakieś sytuacje gdzie jest to całkowicie uzasadnione,
ale w tym logiki, dlaczego nawet overthinking to?
Dlaczego nie możemy po prostu użyć varchar a wtedy po prostu
zawsze używać dwóch znaków mimo, lub zawsze używać pięć znaków tak?
Dlaczego nie po prostu zapisać na varchar Wszystko przez tą logiką?
Musi być jakiś haczyk.
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Could napisać coś złego.
Tak to prawda.
Ale nawet wtedy nie można używać więcej pamięci, niż przeznaczyć.
Mam jeszcze ostateczna powiedzieć, na całej długości,
więc nie mogą przypadkowo dokonać że błąd, ale to dobry pomysł.
To jest bardziej subtelny, ale to bardzo pokrewne do naszej dyskusji, właściwie tablic
i połączone list wcześniej.
>> Okazuje się, że w bazie danych, o ile wie, że wszystkie wartości są
o stałej długości, nawet jeśli niektóre z tych wartości są puste,
rodzaj estetycznie puste, D-A-V-I-D i 15 półwykrojów
Okazuje się, że jeśli każdy Pole to jest tej samej długości,
podobnie tablicy miał wszystkie jego rzeczy z powrotem do tyłu z powrotem do tyłu, tak aby
można po prostu Plus 1 dostać się do następnego wartość, sam pomysł w tabeli bazy danych.
Jeśli cały swój charakter łańcuchy są tej samej długości,
masz co się nazywa dostępie swobodnym.
Jeśli wszystkie struny są Długość 20, to nie tylko
zrobić Plus 1 po prostu zrobić Plus 20 plus 20 plus 20 plus 20,
i można bardzo szybko przewijać lub przeszukiwać wszystkie swoje dane.
>> Zmiennego pola char Natomiast nie zawsze mają 20 znaków.
To może mieć 20, a następnie 15 i 19, a następnie 10
a więc jeśli chcesz szukać przez niego, nie można ślepo
dodać 20 bajtów, aby dostać się do następnego.
Dosłownie trzeba przeszukiwać ponieważ krawędź struktury danych,
jeśli chcesz, jest nierówny.
To niby idzie i obecnie opiera się od rzeczywistej długości łańcucha.
Więc jeśli znasz długości, a Kareem mówi użyć pola char,
dlatego, że zyskasz Efektywność jest
możliwość przeszukiwania przez niego szybciej jeśli szukasz danych,
inaczej użyć zmiennej.
>> Niestety, nie mam dobrej odpowiedzi jak długo nazwa powinna być
ale na coś takiego nazwę, powiedziałbym,
varchar jest powszechne ponieważ nie będzie
być stałą długość dla każdego.
20, nie wiem, 20 czuje się trochę ciasno.
Powiedzmy, 50, 50.
Tak naprawdę nie kosztują, że dużo więcej do powiedzenia na 50 zamiast 40,
ale w pewnym momencie trzeba aby nawiązać połączenie wyroku.
>> Bardzo często, mówiąc, dla [? historyczna?]
przyczyny, mimo że jest nadmierne, to znaczy 255, ponieważ jakiś czas temu,
w popularnych systemów baz danych, takich jak MySQL, darmowe narzędzie open source
że wiele firm Nawet jak Facebook używany,
był to maksymalny domyślny więc ludzie po prostu poszedł z nim.
Więc nie nierozsądne, ale będziesz użyć trochę więcej intuicji
i powiedzieć, na pewno 50, to prawdopodobnie nieco nadmierne.
>> Płeć, lubię wyliczenia, a więc możemy w związku z tym
wyliczyć męskiej lub żeńskiej, czy może bardziej efektywnie,
m lub f lub innego symboliką, ale enum czuje się dobrym wyborem tam.
Żeby było jasne, płeć może być tylko varchar,
i mogliśmy po prostu wszystko zgadzają się mili ludzie,
zawsze umieścić te same wartości istnieje.
Mężczyzna czy kobieta lub cokolwiek.
>> Ale problem jest więc, że mogliśmy pomyłki, gdyż [INAUDIBLE] zaproponował
wcześniej w innym kontekście.
Jeśli popełnisz błąd, możemy uzyskać nieprawidłowe wartości w naszej bazie.
Więc co jest miłe o bazach jak Oracle i MySQL i innych,
jest to, że masz ten ostatni Warstwa obrony, gdzie
administrator DBA, bazy danych, kto projektuje tę tabelę jak my
Są werbalnie, mogłaby na miejsce wyliczenia, że
chroni przed że określając mężczyzna, kobieta, i tak nikt nie
jeszcze żaden programista może przypadkowo wstawić dowolną inną wartość.
Tak więc będzie to dobra rzecz.
Jest to cecha.
>> Więc identyfikator, zakładając numeryczny identyfikator go, Prawdopodobnie powinno być dodatnia.
I czasami mają okazją do omówienia długość.
Nie będzie zazwyczaj określić numer tutaj
byś zamiast określać jest to int, int lub duże,
ponieważ są one zazwyczaj nazywa.
Typowo jednak, liczba całkowita będzie, powiedzmy, 4 bajty.
A jeśli to 4 bajty, to ile bitów?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: 32 bity.
Więc ilu użytkowników możemy mieć w Nasza baza danych, jeśli wszystkie one mają identyfikator
i ten identyfikator musi być unikatowa?
32 bitów oznacza, że ​​mamy wzory jednego, dwóch, trzech, czterech, five--
tak jak wiele różnych wzorów zer a te można mieć, jeśli istnieją 32?
To samo, co pytając co dwa do 32?
To duża liczba, która Nie mogę się dość dobrze,
ale wiem, że jest to około 4 mld USD.
Więc to oznacza, że ​​tabela bazy danych może cztery miliardy użytkowników i to wszystko.
>> Więc jest to ciekawe Konstrukcja implikacji.
Przyzwoity liczba firm zdecydowali, może nie tyle
ich tabeli użytkowników, ponieważ mając 4 miliardy użytkowników jest rzadkim problemem.
Jest to coś w rodzaju Facebooka stylu Problem nie jest typowym problemem firmy.
Ale może, jeśli masz dzienników transakcji lub jakiś rodzaj danych, które stale
zostanie zapisana w bazie danych które mogłyby mieć absolutnie miliardy
i miliardy wierszy i korzystania z całkowitą dla niego,
co się stało jak najszybciej można dostać się do wiersza numer 4 mld
a następnie spróbuj wstawić 4000000000-te i 1, że tak powiem?
Jestem upraszczając nieco liczb.
>> Można cofać, to znaczy ci muszą obsługiwać go jakoś.
A co komputer będzie zazwyczaj zrobić, myśleć o tym nawet z rana,
jeśli mają wartość 4-bitowy jak 1, 1, 1, 1, które
po prostu związać rano razem po południu, co
liczba ta ma reprezentować w systemie binarnym?
OK, zrobimy to łatwiejsze.
Co oznacza ten numer reprezentacji w systemie binarnym?
OK, zrobimy to łatwiejsze, co ma to oznaczać w systemie binarnym?
PUBLICZNOŚCI: Trzy.
DAVID MALAN: Trzy, ponieważ mamy te column--
[ŚMIECH]
Uff!
Mieliśmy kolumnę jedynek a kolumna dwójki.
Więc załóżmy, że rzeczywiście nasze [? bramkowe?] nie 32 bity,
ale to były dwa bity, możemy liczyć od liczby 0, 1, 2, 3 użytkownika
a następnie jesteśmy rodzajem z powrotem do użytkownika 00 ponownie.
Więc to, co zazwyczaj dzieje.
Jeśli kiedykolwiek usłyszał wyrażenie-- Prawdopodobnie nie, ale jeśli have--
całkowitą przepełnienie, gdzie utrzymać przerzucanie wszystkich bitów
być jak największej wartości, a następnie jesteś poza bitów,
co się zwykle dzieje?
Dlaczego mówię 00?
Cóż, to jest trzy.
Jak mogę reprezentować 4?
Jak mogę reprezentować do numeru 4 w binarnym?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: jedno- tak, nie mów, 100 per se,
bo ma niewłaściwy konotacji, ale 1-0-0.
Tak, że to rzeczywiście numer 1-0-0 poprawne, ale jeśli masz tylko dwa bity,
co ty naprawdę zrobić?
Pan przewrócił się na 00.
I rzeczywiście, to co by się stało.
Faktycznie, można pomyśleć o tym bardziej swojsko.
Jeśli pamiętacie, co, 16 lat temu, świat
miała kończą się z chwilą problem Y2K stało.
Dlaczego?
Oraz większość komputerów, na rozsądne decyzje,
zostały przechowywania numerów, takich jak osoby rok 1975 lub 1999 roku
używając tylko dwóch cyfr w pamięci komputera.
Zatem, oczywiście, co się dzieje kiedy dojdziesz do roku 2000,
udać się do tego, a raczej tak.
Więc idziesz do 2000 roku, ale jeśli używasz tylko dwóch cyfr to wygląda
podobnie jak w roku 00 i Więc już przewrócił.
A to dlatego wiele systemów musiały być aktualizowane w czasie.
>> Więc z tym powiedział, firmy takie jak Facebook rozbieg przed tym.
Tak więc jedynym sposobem, aby poradzić sobie z Sytuacja, szczerze mówiąc, jest to przewidzieć.
Lub najczystszym sposobem obsłużyć tę sytuację
jest przewidywanie tego, więc nie musiał dokonać zmiany później.
Więc zamiast 8 bajtów, wiesz co?
Mam zamiar być myślących tutaj, nawet jeśli jest to
trochę optymistą, że będziemy mieć 4 miliardy
oraz 1 użytkowników na naszej stronie internetowej.
Ale niech po prostu użyć 8 bajtów lub 64 bitów, które zwykle byłyby
nazywa dużą liczbę całkowitą, bardzo techniczny.
A to po prostu oznacza, że ​​można mieć jeszcze więcej cyfr numeru.
Ale jest to ważny decyzja projektowa,
bo jeśli wybrać numer ma zbyt mało bitów wyrazistości
można rzeczywiście stworzyć błąd w oprogramowaniu.
>> W porządku, więc niech to zakończyć z e-mail i adres pocztowy.
Dlatego e-mail, jak długo powinien adres e-mail będzie?
50.
Naprawdę nie mam pojęcia, ale to Prawdopodobnie coś takiego,
bo inaczej nikt nie będzie napisać do ciebie, jeśli robi się zbyt długo, więc 50,
chodźmy z nim teraz.
adres pocztowy, jak długo powinien być?
PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Nie tylko kod pocztowy, choć.
adres pocztowy, słyszałem.
Tak to jest jak 1 Brattle Square przecinek, Cambridge Mass., przecinek, 02138.
I rzeczywiście, niech mi tylko wyciągnąć się trochę arkuszu tutaj.
To czuje się jak to jest stracona szansa.
Jeśli mamy 1 Brattle Square, przecinek, Cambridge MA 02138,
Czuję, że możemy zrobić lepiej niż tylko adres pocztowy.
Dlaczego nie wybuchnie to trochę?
Co ja zmierzam?
Co powinniśmy zamiast tego tutaj dla naszych wierszy, może?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Tak, tak, niech nazwać street_number,
oraz podkreślenia jest tylko wspólna sposobem posiadania co wygląda jak przestrzeń,
ale to nie jest, faktycznie.
Street, a następnie city-- przykro?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Mogliśmy zrobić.
Linia jedna, druga linia.
Dlaczego nie zachowa to proste teraz,
ale to absolutnie akceptowalną decyzją.
A potem stan, a następnie niech być trochę US-centric teraz
i po prostu zrobić, kodu pocztowego, tylko dlatego, będzie to prowadzić do interesującej pomyłkę
lub problem.
Więc przypuszczam, że teraz nasz adres.
To trochę bardziej irytujące, że mamy te wszystkie kolejne pola,
ale teraz możemy oznaczyć rzeczy trochę lepiej.
>> Numer Więc teraz pewnie ulicy nie powinno być znak, powinno?
Jaka powinna być?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Być może, wiele jak ponownie liczbą całkowitą?
Dużą liczbą całkowitą?
Prawdopodobnie nie żyje w 4 mld Main Street
albo coś takiego szału.
Więc prawdopodobnie jest liczbą całkowitą porządku, ale ma nikogo
kiedykolwiek żył pod adresem jak 1A Brattle Square, lub 1 i 1/2?
Te rzeczy istnieją, niestety, nawet jeśli nie mieszkam tam,
są te anomalie jak apartamentami 1A, 1B, 1C.
Więc wiesz co, my prawdopodobnie nie powinien iść z liczby całkowitej,
w przeciwnym razie będziemy stracić część sprzedaży.
>> Pole Char, może być?
Nie wiem, jak długo.
Prawdopodobnie nie będzie tak długo, więc 10 lub coś.
Nikt nie zamierza pisać dłuższy liczba, być może.
Ale znowu, powinniśmy chyba dać więcej myśli do tego.
Może google, zrobić rozeznanie, ale pójdziemy z naszych wnętrzności teraz.
Ulice, char, 50, nie wiem.
W pewnym momencie, nikt nie będzie pisanie na kopercie,
też, więc nie ma chyba niektóre górne granice tam.
Miasto, ten sam, na pewno, tak char 50.
>> Państwo może być US-centric teraz.
Więc może to być lista, tak miły zaproszenia wyroku, państwa.
To może być jak dwa znaki.
Tak naprawdę, być może, I powtarzał char.
Pewnie myśli varchar, tylko dla niektórych efektywności,
ale wrócimy do że decyzja w jednej chwili.
Może być char o długości 2 dla państwa.
Jeśli w Stanach Zjednoczonych mają, jak MA, Massachusetts, Nowy Jork, Nowy Jork, New Jersey, New
Jersey, i tak dalej.
Więc to może być ustalona na tym.
DC Waszyngtonie.
>> Ale myślę, Olivier, ty zaproponował inne podejście.
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, tak, to jest trochę irytujące, aby wpisać,
ale enum może więcej sensu, Ponieważ ten sposób, przynajmniej w USA
można wyliczyć, jeśli mozolnie, ale to zrobić tylko raz w bazie danych
i nigdy nie trzeba myśleć o Opisz wszystkie kody dwa 50-znakowe.
Więc chciałbym enum.
Trzymajmy się, że nie, ponieważ To rodzaj wymusza więcej dyscypliny.
A następnie kod pocztowy?
Myślę, że Andrew miał myśli na ten temat
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, pięć lub dziewięć.
Niech po prostu keep it simple.
Wystarczy zrobić pięć do teraz.
Ale może po prostu mogłem zrobić całkowitą, prawda?
Mógłbym, ale wiesz co zrobiłem ten błąd raz, w pewnym sensie.
Wiele lat temu, byłem migracji z Microsoft Outlook do Gmail
i Outlook ma sposób eksportowania wszystkie kontakty jako plik Excel,
plik CSV, oddzielonych przecinkami pliku wartości.
I popełnił błąd, ja myśleć o podwójne kliknięcie,
raz Pobrałem wywóz, upewnij się, że wyglądało to jak się spodziewałem.
Muszę uderzyć Zapisz lub pozwolić auto-save kopa albo coś.
Bo kiedy następnie importowane go do Gmaila, to wszystko działało.
Ale przez lata, do dnia dzisiejszego, a Zrobiłem to pięć lat, 10 lat temu,
Ja wciąż znalezieniem przyjaciół, którzy mają Adresy, które wyglądają następująco.
Czemu?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Zajęło przycisk 0, a raczej to,
wziął cały kod pocztowy jako liczbą, a więc jest to
wiodącym 0, co oznacza, to nie ma znaczenia.
I tak 2138 wydaje się być mój kod pocztowy.
A to, szczerze mówiąc, przykry Excel Funkcja czym myślę domyślnie
nawet jeśli to ma po prostu być tekst, Microsoft Excel
postanawia, pozwól mi być pomocny, i oh, widzę tylko liczby.
Załóżmy, traktować je jako numery.
I to obcina zera.
>> Przysięgam na Boga, każda para miesięcy znajdę adres,
iz jakimś OCD, wracam i dodać 0, chociaż nigdy
wysyłać ludzi liter lub cokolwiek.
Ale ja wciąż znalezienie resztki tego.
Więc to znaczy, czy to dobry pomysł?
OK, nie, ponieważ każdy w Massachusetts, w tym obszarze,
będzie mieć wy je prowadzące.
Więc chodźmy z podobnym char, prawdopodobnie pięć.
>> I tu, uświadomiliśmy sobie, że przydałby enum i my
mógłby wyliczyć 10000 Możliwe kody pocztowe,
ale czuje się jak to jest prawdopodobnie przekraczania linii, jak, korzyści.
Jeśli trzeba, że ​​wejście dużo danych do bazy danych
chronić przed czymś.
Więc char sprawę można wpisać w H-E-L-L-O jako swój kod pocztowy,
co nie jest oczywiście numeryczne.
Więc nie ma sposobu, w typowy bazy danych,
określić tylko numeryczne i tylko pięć znaków,
więc będziemy mieć to zrobić w kodzie.
Mamy zamiar to zrobić w PHP, lub Java czy cokolwiek innego języka jesteśmy
stosując na serwerze egzekwować tego rodzaju ograniczeń.
>> Whoo!
W porządku, więc wszelkie pytania po prostu jeszcze?
Zróbmy kolejny decyzji projektowych.
Okazuje się, że ciebie również dostać się do wyboru,
przy projektowaniu bazy danych SQL lub Typowe relacyjne database-- gdzie
znowu, po prostu relacyjne Oznacza wierszy i kolumn,
to w jaki sposób organizować swoje data-- i uświadomić sobie, że to, co oznacza to,
Byłem mylące w że jestem drawing-- tego
jest to, co nazywa się schemat w tabeli bazy danych.
To jest jak specyfikacje dla table--
ale kiedy przychodzi czas faktycznie przechowywania danych,
a my zrobimy to po prostu przykład tutaj.
Zamierzam otworzyć Excel, ponieważ Excel da mi wiersze i kolumny.
I to jest dokładnie to, co Oracle i MySQL i inne narzędzia będą mi dać.
Więc jestem po prostu będzie używać że ze względu na dyskusji.
Pozwólcie mi iść do przodu i otworzy się Przedstawiciel Dokument tutaj
przybliżyć trochę.
Tak na przykład, nasze nagłówki są teraz imię, nazwisko, płeć, ID,
e-mail, numer, ulica, okrzyki.
Ulica, miasto, województwo, tuż temat mieści się na ekranie.
>> Więc co to oznacza to, że gdy użytkownik najpierw rejestruje na mojej stronie,
to będzie coś podobnego David Malan, m, powiedzmy, 1,
malan@harvard.edu, numer ulica będzie być jak 1 Brattle Square, Cambridge, MA,
02138, i tak dalej.
Więc kiedy mówię, że relacyjna baza danych lub bazy danych SQL jest rzędy i kolumny,
To znaczy.
To rzeczywiste dane są przechowywane w wierszach i kolumnach.
Jest to po prostu zbieg okoliczności, że mówiliśmy,
a ja po prostu rysowania w wierszach i kolumnach.
Jest to tylko schemat, nadrzędnym definicja.
>> Więc z tych pól tutaj lub równoważnie, tam,
które są pola, które naszym zdaniem Jestem prawdopodobnie wyszukiwać jeśli jestem użytkownikiem
czy ja jestem administratorem bazy danych?
Jak, co pól jestem rzeczywiście będzie wyszukiwać?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: nazwa, tak więc Podoba mi się fakt that-- tak,
e-mail może być dość powszechne.
Niestety, pan powiedział imię.
Więc maybe-- i znowu jesteśmy rodzaj mówienia w sposób abstrakcyjny.
Nie wiem dlaczego, że być wyszukiwania nazwy,
ale czuje się uzasadnione, jeśli szukasz użytkownika.
Może stwierdza, pamiętaj, ID.
>> I to jest śliskie stok, bo mogłem
wymyślić scenariusz, w którym Może mój szef poprosił mnie,
ilu ludzi mamy na naszej stronie?
Ile kobiet mamy na naszej stronie?
I tak, w tym miejscu, warto szukać w dziedzinie płci, też,
i nic więcej.
Więc nie jest to kompromis tutaj.
Znowu, nie ma prawidłowa odpowiedź, ale nie
Jest to cecha większości baz danych SQL znany jako indeksowania, przy czym
Ci, projektant, The Administrator bazy danych,
się zdecydować, które z wyprzedzeniem Pola oznaczone na bazie powinny zoptymalizować
dla wyszukiwań.
>> Można by powiedzieć, bardzo naiwnie, optymalizacji tego, że optymalizacja, optymalizacja tego,
optymalizacji, że i to, a baza danych
zrobić jakąś magiczną rzeczą pod kaptur, i coś zrobić w taki sposób,
że następnym razem szukać na każdym z tych pól,
będzie to, w rzeczywistości, być szybciej.
To jest możliwe.
To nie przekreśla się na zewnątrz.
Ale musi być zapłacona cena.
>> Jeśli naiwnie, lub zbyt entuzjastycznie powiedzmy, spis wszystkich tych dziedzinach,
by tak rzec, aby je wszystkie efektywnego przeszukiwania,
jaką cenę są prawdopodobnie płacić?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Wydajność.
Co masz na myśli?
Również wydajność, przynajmniej w Kontekst Mam dyskusji, jest lepiej.
To definicja indeksowania.
To sprawi, że wyszukiwanie szybciej.
Więc czas zmniejsza się, że tak powiem.
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Kosmos.
Więc znowu, są częstym handlowej.
Mogę przyspieszyć wyszukiwanie, ale to będzie kosztować więcej bajtów przestrzeni.
Czemu?
Cóż, domyślnie, jeśli mamy żadnego z Te czerwone gwiazdy, żaden z tych wskaźników,
jak mówię, w jaki sposób szukać o nazwie w tej bazie danych?
Warto więc zwrócić naszą Uwaga do tego przykładu.
Jeśli mamy Dawida i Scully i Kareem i Arwa a inni w tych wierszach,
na przykład.
>> Więc zróbmy dokładnie to.
Scully jest tutaj, a następnie mamy Kareem i ARWA,
i wszyscy, jeśli nie mają indeks zdefiniowany, by tak rzec,
najlepiej można zrobić, to przeszukiwanie liniowe.
Jeśli szukasz ARWA, nie jesteśmy będzie mógł wskoczyć do niej
szybko.
Mamy zamiar rozpocząć szczyt i przejść całą drogę na dno,
podobnie naszej pierwotnej Przykładem Mike Smith.
>> Jeśli jednak mówię, hej, bazy danych, Indeks nazwa pierwszego pola,
to będzie coś zrobić hodowcy i wspierać coś
jak poszukiwania binarnego.
To prawdopodobnie nie jest przeszukiwanie binarne per se.
Bazy danych mają tendencję do używania innym Struktura danych o nazwie B-drzewa,
Nie należy mylić z drzew binarnych, które po prostu zrobić to szybciej szukać
coś logarytmicznej w przyrodzie.
Ale cena, jaką płacisz budować, że Opcja, że ​​struktura danych w pamięci,
Jest więcej bajtów.
Więc może to potrwać kilka megabajtów, kilka gigabajtów, kto wie?
To zależy od danych.
>> Więc w pewnym momencie, musisz zdecydować, to chyba nie to częsty przypadek.
Więc jakie są faktyczne wspólne przypadków, jeśli naprawdę miał do wyboru,
jaki jest twój ulubiony pola może być?
E-mail.
I podoba mi wiadomość, ponieważ e-mail, Teoretycznie powinna być unikalna.
I tak zazwyczaj, gdy wiesz, z góry, że jednym ze swoich dziedzin
jest lub będzie wyjątkowy, że wydaje się być dobrym pola
szukać dalej, ponieważ w ten sposób, podczas wyszukiwania na coś,
masz zamiar wrócić do jednego lub zera odpowiedzi, a następnie gotowe.
Nie trzeba, aby utrzymać szuka jeszcze innych.
>> I tak w tym przypadku tutaj, e-mail, tak długo, jak nie można zarejestrować dwa razy
z tego samego e-mail, jest dobry.
ID definicji w informatyka świata,
jeśli mówimy o Identyfikator, że lepiej być unikalne.
To rodzaj konotacji dowodu osobistego lub identyfikatora.
A reszta z nich może być, nazwijmy je miło bogatymi,
ale naprawdę nie potrzeba.
>> I tak w bazie danych, określić indeksy,
ale można być jeszcze bardziej precyzyjne.
Można powiedzieć, hej, bazy danych, upewnij się, że każdy identyfikator w tej tabeli jest unikatowy.
Nawet nie pozwól programista przypadkowo umieścić w duplikatu email
lub duplikat numeru identyfikacyjnego.
Więc podobnie jak teksty stałe chronią nas Podobnie,
mogą mieć te mechanizmy obronne niższego poziomu.
I tak projekt bazy danych, w pewnym sensie jest to rodzaj zabawy,
bo robisz to defensywnych.
Możesz założyć, że rodzaj pracy okropne, straszne programistów
i chcesz umieścić w tyle obronne jak można chronić swoje dane,
ale jednocześnie chcesz aby pomóc im lepiej
wybierając które Pola do optymalizacji.
Nie można jednak muszą to zrobić w próżnia jak my niby jesteśmy.
Musicie wiedzieć, jakie są Te wspólne przypadki bycia.
Jeśli deweloperzy wykonawczych książkę adresową,
można bardzo dobrze chcą, aby móc szukać na niemal każdej dziedzinie,
prostu charakterem aplikacji.
Więc może wydać że dodatkowa przestrzeń.
>> Prawo, jakieś pytania?
Tak.
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Nie
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: OK.
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Oh, więc Rozmawiamy w sposób
teraz to zupełnie język agnostykiem.
Więc mówimy teraz o relacyjnych baz danych, bardziej ogólnie,
baz danych SQL lub bardziej ogólnie.
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Lepszym słowem w użyciu to może być używane przez każdego języka.
Więc mogę napisać kod JavaScript, C kodu C ++ kod, kod Java, kod Ruby,
z których wszystkie rozmawiać z baz danych i wykonywania zapytań.
W rzeczywistości, to nie jest zły segue przykładowego zapytania.
I znowu, nie zamierzamy wchodzić Java lub C ++ lub którykolwiek z tego więcej,
ale w SQL, język, do którego trzymam odwołując się Structured Query Language,
Ta sama jest językiem programowania, ale to ma być wykorzystane do nie
niespodzianka, skonstruowane zapytania zapytania.
>> Mam tu na myśli to.
Sposób, w jaki wybrać dane z bazy danych MySQL
jest dosłownie wpisać w swoim programie coś jak select gwiazdy od użytkowników.
Jestem zakładając, że tej tabeli, odtąd nazywany użytkowników.
Mogę nazwać cokolwiek chcemy, ale że niby ma sens.
A więc wybierz to bardzo Wspólne czasownik, jeśli ciebie
będzie w SQL, które dosłownie robi.
Co sądzisz gwiazdki oznacza w tym kontekście?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Przepraszam?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Nie jest wymagana, to szerszy zakres niż ta, faktycznie.
To wieloznacznik.
Gwiazda prawie zawsze oznacza coś, Oznacza to więc, w tym przypadku,
wybrać wszystko z bazy danych.
Więc kiedy mówię to, mam na myśli oddajcie mi każdą kolumnę
z mojego stołu nazywa użytkowników.
Więc daj mi zestaw wyników, jak to się nazywa.
Innymi słowy, daj mi kopię tego arkusza kalkulacyjnego, co mi chodzi.
>> Ale gdybym powiedział wybierz gwiazda z użytkownikami gdzie id jest równe 1, jak duża powinna
mój zestaw wyników będzie potem?
Lub równoważnie, ile wierszy powinno I być zwracane z bazy danych?
Prawdopodobnie tylko jeden, jeśli mam rzeczywiście ID traktowane jako unikatowy identyfikator,
David i jeśli ma to unikatowy identyfikator, ja powinien wrócić jeden i tylko jeden wiersz
zawierający wszystkie informacje Dawida.
Gdybym powiedział, gdzie ID równa się 99, powinienem wrócić,
W tym kontekście, wiersze zerowe, co najmniej w danej chwili.
>> Jednakże, jeśli naprawdę nie obchodzi o wszystkich tych informacji,
Mogę tylko powiedzieć, skąd David żyć?
Wybierz kod pocztowy z użytkowników, gdzie ID to 1.
Pozwoli to wybrać tylko mnie zip Dawida Kod i nie całość tego wiersza.
Dlaczego mogę to zrobić, zamiast zapytanie gwiazda, dzikie karty?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Tak, może muszę go tylko.
Tak więc wydajność jest jeszcze odpowiedź tutaj.
Dlaczego prosić o więcej Informacje niż trzeba,
bo nawet jeśli to wszystko prawda razem, trzeba jeszcze skopiować te dane,
wydaje się, z bazy do programu jakoś,
i to jest po prostu głupie, jeśli ciebie Wystarczy pięć z tych cyfr,
nie całość rzędu.
>> Więc jak mam wstawić użytkownika?
Załóżmy, że użytkownik ma tylko rejestrowany po raz pierwszy.
Składnia zazwyczaj wygląda następująco.
Wstaw do użytkowników, a potem powie wartości,
i wtedy powiedzielibyśmy wartości jak, powiedzmy, Lauren Scully,
Nasz kamerzysta tutaj.
A następnego pole jest płci.
Więc mówimy cytat, koniec cytatu "F", to mamy identyfikator
a ja zamierzam say-- niech udawać, że nie jest w rzeczywistości tutaj
więc będziemy do tyłu w historii.
Więc 2 będzie jej ID.
A potem następne pole Oto jej e-mail.
Więc to będzie jak Laura Scully i tak dalej,
a my po prostu kropka kropka dot go stąd dalej.
Teraz będzie trochę żmudne, ale zapytanie wkładka
ostatecznie wyglądać.
>> Jeśli chcę się pozbyć Scully, uh-oh, niech wyrejestrować
jej, że jej usunięcie konta, usunąć z użytkownikami, gdzie ID równa 2,
będzie pozbyć Scully.
Albo mogę powiedzieć ustawić użytkowników aktualizacji, powiedzmy, co możemy zmienić?
Załóżmy, że ona porusza.
Ustaw suwak równa 021-- nope, to jej obecny zip.
90210.
Jedyny inny kod pocztowy Wiem, że na świecie.
Tak, że nie zmieni Jej błyskawiczny code-- właściwie
że nie zmieni swojego kodu pocztowego.
>> Co ja zrobiłem?
Mimo, że składnia jest prawdopodobnie nowa.
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, przeprowadziłem wszystkich w Beverly Hills w Kalifornii.
Więc rzeczywiście powinny powiedzieć, gdzie ID jest równy 2.
I tak dalej.
Więc SQL jest wszystko o nich rodzaje instrukcji.
SELECT, INSERT, usuwać, aktualizować tych predykatach na koniec
klauzule te, gdzie można tak powiedzieć.
I jest o wiele więcej można zrobić, ale to tak naprawdę sprowadza się
po prostu, jeśli arcanely, wyrażając co chcesz baza do zrobienia.
>> A potem w bazie zorientuje się, kiedy
Po włożeniu Lauren Scully Into the bazy danych, gdzie umieścić ją w pamięci
tak, że możemy bardzo szybko uzyskać jej podstawie swojego adresu e-mail
lub na podstawie jej numerem identyfikacyjnym lub tym podobne.
Tak, Dan.
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Naprawdę dobre pytanie.
Czy te skrypty zmienić Microsoft Access do bazy danych Oracle
MySQL do PostgreSQL?
Krótka odpowiedź brzmi: to zależy.
Teoretycznie jest bardzo istotny wspólny podzbiór SQL
która jest wspólna dla wszystkich z tych realizacji.
Jednak z różnych producentów posiada dodatkowe funkcje
do swoich baz danych do robienia pewnych rzeczy poza zakres tych funkcji,
które może, w rzeczywistości, złamania.
>> Więc sposób programistów zabezpieczyć się przed tym,
jest to, że zamiast pisania surowe kod SQL jak piszę tutaj
że zamiast korzystać z biblioteki, wspólna biblioteka, która sama w sobie
to rodzaj wyższego poziomu i abstrakty Odległość który produkt używasz.
A to daje Funkcje i procedury
zadzwonić, tak, że nigdy faktycznie zapisze surowego SQL.
>> W teorii, to można zmienić Produkty z Oracle do Microsoft
lub odwrotnie albo coś indziej, a dosłownie
zmienić nic o kodzie.
Rzeczywistość jednak jest taka, że ​​czasami zrezygnować cechy będące rezultatem.
Można wybrali produkt, ponieważ to musi te funkcje wartości dodanej,
i nie jesteś już teraz stosując je świadomie.
>> I Anecdotally, większość firm tendencję nigdy nie odejść od swojej bazy.
Tak więc, jest to miłe posiada funkcję, rzeczywistość
to, że jeśli jesteś remonty baza danych, jesteś
Prawdopodobnie co kiście innych zmian w każdym razie, że nie koniecznie
Przewidujemy, że trzeba.
Więc to zapewne over-engineering problemu,
ale to naprawdę zależy od kontekstu.
Ale teoretycznie SQL wspólne poprzek tych różnych produktów.
Naprawdę dobre pytania.
Tak.
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Tak, tak, można myśleć bazy
Jest to serwer, na koniec dzień, a wewnątrz tego serwera
Jest cała masa tabele, wiersze i kolumny.
A kiedy wysłać zapytanie jak to z programu, witryny,
napisany w języku Java, Ruby, Python, niezależnie, serwer odbiera polecenia
i interpretowania go w dosłownie tak samo
omówiliśmy wcześniej w interpretowane języki,
a następnie wykonywanie pewnych działań na zera lub więcej wierszy w zero lub więcej tabel.
PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Dokładnie, dokładnie.
Więc w Pseudokod za coś jak to może być to.
W pliku PHP, albo Plik Python lub plik Java,
to masz kod pseudokod lub bloki przypominające zadrapania, jak, jeśli użytkownik odwiedza
acme.com/register~~V po raz pierwszy, następnie wstawić do użytkowników i tak dalej.
I chcielibyśmy, aby przetłumaczyć bardziej konkretny kod w końcu.
Ale tak naprawdę, mamy wszystko bloki tutaj budowlanych,
choć jesteśmy pomijanie niektórych z etapów realizacji.
>> Więc pozwól mi znaleźć nic złego z tym, co wspaniale zrobił przed chwilą.
Został utworzony dość Pełna tabela dla użytkowników.
Wprawdzie moglibyśmy wdrożyć w ciągu kilku różnych sposobów,
ale faktycznie doprowadziło nas w dół path-- i mówię wam,
ale to prawdopodobnie mój fault-- o dość nieefektywne wdrożenie bazy danych.
To nie jest znormalizowane.
>> I znormalizowane Znaczy nie będzie,
Z biegiem czasu, znaczna redundancja, a zatem nieskuteczność,
to jest marnowanie miejsca.
Na podstawie tylko tego, co tu widzisz, może sobie wyobrazić gdzie ten marnotrawstwo przestrzeni
przyjdzie z czasem, jak zarejestrować się coraz więcej użytkowników
na swojej stronie internetowej?
Jakie dane mogą stać się zbędne?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Dlaczego pan myśli, że?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak.
I załóżmy, dla celów Na dzień dzisiejszy, że to prawda.
Okazuje się, a my nauczyliśmy się tego w bolesny sposób, że nie jest to prawdą.
Jakoś wiele miast ma, jakoś ten sam kod pocztowy,
która przełamuje tę wspaniałą intuicję.
Ale załóżmy, że to prawda, bo to prawie zawsze prawdziwe.
Więc załóżmy, że kod pocztowy jest zawsze wiąże się z tym samym mieście
i stan, który jest rodzajem rozsądnego założenia,
ale błędne, jak się okazuje.
Ale to rozsądne założenie dla dzisiejszych potrzeb.
>> Następnie załóżmy, że żyję w Cambridge, MA według tabeli tej instrukcji,
i załóżmy, że Lauren Scully mieszka w Cambridge, MA,
i załóżmy, że Kareem mieszka w Cambridge, MA,
i Arwa mieszka w Cambridge, MA, wszyscy w 02138.
Dlaczego jesteśmy pamiętając, Cambridge, MA, 02138 dla wszystkich czterech z nas?
Co powinno wystarczyć do zapamiętania?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tylko kod pocztowy.
Wystarczy, że 02138 nie istnieje, ponieważ wiesz, co możemy zrobić?
Mogliśmy trochę wyszukanego i tu zdefiniować inną tabelę
gdzie to będzie za Nazwa ta będzie rodzaj,
to będzie to Długość i odtąd jestem
Zadzwonię do tego miasta mojej tabeli.
Nazywało się to, z Oczywiście, moja tabela użytkowników.
A więc to, co należy umieścić tutaj miast dla mojego stołu, jak myślisz?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Tak.
Więc zip i stan i miasto.
I tak typ Tutaj powiem to będzie char 5 raz
przedmiotem obrad wcześniej.
Będzie to enum, być może podobnie jak wcześniej, a miasto będzie varchar 50.
I co teraz mogę dostać usunąć z tej tabeli
aby wyeliminować tę nieefektywność?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Nicea.
Państwa i miasta odejść, więc już teraz wyeliminować potencjalną nieefektywność
dla nadmiarowo pamiętając, Cambridge, MA, Cambridge, MA, Cambridge, MA,
Cambridge, MA, które, miejmy nadzieję, nigdy się nie zmieni.
A nawet jeśli tak, to minorly irytujące, obecnie
że muszę zmienić że w wielu rzędach,
podczas gdy tutaj, mogłem po prostu zmienić je w jednym miejscu.
>> Teraz co to kompromis, a może?
To było bardzo wygodne.
Gdyby wszystkie moje dane ładnie razem.
Ale co wyraźnie sprawa teraz?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Dokładnie, a ja jestem zadowolony używane słowo przyłączyć,
bo to rzeczywiście słowa kluczowego, w świecie relacyjnych baz danych
w SQL, to rzeczywiste słowo może wpisać lub przynajmniej przekazać.
A w rzeczywistości to, co mamy teraz zrobić aby wybrać pełne informacje Dawida jest
coś jak select z gwiazdką użytkowników, dołącz do miasta, a teraz on--
Zamierzam po prostu przenieść się do drugiej linii tak, że ta fits-- users.zip równa
cities.zip, gdzie users.ID jest równa 1.
>> Więc co się dzieje?
To brzydko wygląda, ale można rodzaju przeczytać go od lewej do prawej, od góry do dołu.
Wybierz gwiazda z użytkownikami jest takie samo jak poprzednio,
ale to nie ze strony użytkowników, per se.
To od użytkowników przyłączyć miast.
Co ja łączącej te dwa stoły dalej?
Cóż, najwyraźniej, użytkowników tabele zip pole,
i okres ten jest po prostu specjalny Składnia wyrazić tę ideę,
a to miast Tabele zip pole.
Chcę ci dwaj być równe, ale chcę, aby ostatecznie wybrać
tylko tych wierszy, gdzie ID w tabeli użytkowników
jest równa 1, co stało się z moimi.
>> I żeby była jasność, A Programista, zazwyczaj, gdy
zakodować coś takiego numeru 1, gdyż w przeciwnym razie tylko strona
obsługuje Dawida lub temu Pierwszy użytkownik, ty
zamiast tego zrobić coś jak ID, gdzie
Stanowi to Zmienna, coś,
może zmieniać się z czasem, podobnie w duchu tego, co powiedziałem wcześniej
z tego rodzaju symboli zastępczych.
Ale teraz musimy po prostu zakodować go jako 1.
A więc co to znaczy?
Cóż, jest to dobry sposób, aby wizualizować to że jeśli ta ręka jest tabela użytkowników,
i ta ręka jest suwaki Stół, jesteśmy rodzajem finding--
i czubki palców są na zamek błyskawiczny tu i czubki palców
oto zip, jesteś rodzaj blokady to
tak, że wrócisz wynikowy Oryginalny stół, by prawdziwie łączenia
dwa stoliki na wspólnym polu.
I to nie musi być błyskawiczny.
To może być najbardziej cokolwiek innego, ale zip jest ładne, ponieważ jeden, to krótki,
dwa, to zawsze samej długości, więc nie
prawdziwa wydajność, co Olivier proponowane tutaj
z faktoringu z zip, a [INAUDIBLE], proponując, że pozbędziemy
miasta i państwa.
>> Jest to więc proces znany jako normalizacji.
Wszelkie pytania na ten temat?
Więc pozwól mi podkreślić jest to rodzaj rzeczy,
choć jest to dość niskim poziomie, ta dyskusja, że ​​można by pomyśleć,
jesteś rodzajem coraz utracone w chwasty,
Jest to przejaw duży szansa dla deweloperów będzie źle.
W rzeczywistości, nawet gdy w Kursy Uczyłem, kiedy mieliśmy,
na przykład, niedoświadczony programiści licencjackich
budowanie stron internetowych, na pierwszy rzut oka, strony internetowe mogą wyglądać wspaniale.
I oni mają wszystkie wymienione Funkcjonalność poprosiliśmy,
programiści zrobili dobrą robotę.
>> Ale nie musi wiedzieć wystarczająco dużo o projektowaniu baz danych
albo nie zastanowić wystarczająco dużo o rodzajach danych
oraz rodzaje użytkowników strona będzie musiał,
i znajdujemy, a następnie, sześć miesięcy później, po tym jak ukończył lub przeniesione,
które skazują go na naszej stronie internetowej jest naprawdę, naprawdę powoli.
I nie mówię nawet o konieczności miliony lub tysiące użytkowników.
Znaczy kilkaset użytkowników w kampusie, z których wszystkie tutaj, na przykład,
sklep dla kursów na w tym samym czasie, są one
za pomocą tego katalogu przedmiotów Aplikacja Wspomniałem
a co robi naprawdę powolny, ponieważ nie było żadnych indeksów.
Nie było czerwone gwiazdy, by tak mówić, ani nie mieliśmy niekoniecznie
uwzględnione wspólne dane do uzyskać pewne oszczędności przestrzeni.
>> A więc kiedy lustracji dewelopera lub osoba bazy danych lub tym podobne,
rodzaje pytań do przemyślenia nawet, gdy przeglądając czyjegoś kodu
powiedzieć, niekoniecznie wyglądają przez wszystkie ich kodu, ale mówią,
spójrzmy przez tabel bazy danych.
Co ty przechowywania?
A potem powiedzieć, dobrze, poczekać minuty, dlaczego używasz liczbę całkowitą?
Co zrobić, jeśli mamy 4 miliardy a jeden z tych wierszy?
I te rodzaje pytań jest okazją
do rodzaju odepchnąć i zorientować się, gdzie
jeśli nie jesteś komfortowo Opisz mieć kogoś, kto bardziej techniczny
zadać te pytania, od tego, czy osoba naprawdę wie ich rzeczy.
I to jest rodzaj rzeczy, też, że ludzie
w Internecie, którzy są samoukiem, może
nauczyć się rzadziej, bo niekoniecznie natknąć nim
tyle, ponieważ można uzyskać w górę i prowadzenie bazy danych,
ale jeśli nie czytałeś zaległości w tutoriali lub został
powiedział o normalizacji baz danych i indeksowanie i wydajności,
Są takie rzeczy które będą cię skrzywdzić.
I myślisz, czy zły mechanik może powiedzieć, oh, dobrze, lepiej płatnej
dla większej bazy lub szybciej w bazie
lub po prostu wyrzucać pieniądze na to, Skala pionowo, a niekoniecznie tak.
Jeśli pójdziesz in-- i można iść po fact-- i dodawanie indeksów,
i może potrwać kilka godzin dla baza do zbudowania, że ​​nowe dane
Struktura, że ​​wspomniałem wcześniej, można jeszcze naprawić to po fakcie,
że w tym miejscu można zaczynają odróżniać
dobrzy projektanci źle projektantów, nie tylko pod względem estetycznym,
jednak wydajność mądry, jak również.
Jakieś pytania?
Nie?
Tak na NoSQL, który był inny rodzaj bazy danych, do której wspomniałem wcześniej,
nie trzeba wierszy i kolumn.
Zamiast tego trzeba coś który wygląda trochę bardziej jak ten.
Zamierzam użyć wspólnej składni.
Klamerki zdarzyć być użyte tutaj całkiem sporo.
Można mieć coś jak na imię David,
Może masz ostatnią Nazywam się Malan, cytaty,
Może masz identyfikator is-- wybaczcie, whoops-- ID wynosi 1,
e-mail jest malan@harvard.edu, i nie będę przeszkadza wpisując resztę, a następnie
kilka innych rzeczy.
>> Innymi słowy, jest to reprezentacja tekstowa
co chcielibyśmy nazwać ogólnie obiekt w programie komputerowym.
I obiekt jest na ogół po prostu zbiór par wartości kluczowych.
Więc ponownie, tym powracającym tematem.
Widzieliśmy par wartości klucza w HTML, widzieliśmy pary wartość klucza teraz
w związku z baz danych, i widział pary wartość klucza w kontekście
stanowi, myślę, język w dniu dzisiejszym.
Utrzymuje wymyślanie.
I rzeczywiście, to naprawdę jakie dane sprowadza się do tego,
Dane i metadane, lub wartości i kluczy, odpowiednio.
>> Więc non-relacyjne Baza danych, coś w oparciu
na obiektach, gdzie po prostu zlepiają wszystko razem i umieścić go
w pamięci, będzie na ogół na zdjęciu jako, albo myśli, jak to.
I zostawię, że teraz jako rodzaj alternatywnego podejścia.
I nie jest koniecznie lepiej niż inne.
W rzeczywistości, bardzo modna Te dni są systemy bazodanowe
jak MongoDB i Redis, a kilka inne tego typu narzędzia, swobodnie dostępne,
ale są one coraz en vogue.
Częściowo dlatego, że oferują one dodatkowe Cechy ponad tabelarycznych tych podejść,
ale także dlatego, że są nieco łatwiejsze w użyciu,
bo nie trzeba myśleć tak ciężko o wiele tych decyzji projektowych.
Więc plusów i minusów.
Więc sobie sprawę, że są opcje poza to, co właśnie spędził czas na.
>> Więc zróbmy to.
Chodźmy przejść się trochę Teraz z powrotem do programowania stron internetowych,
tak, że my niby zawrzeć dziś z czymś
To trochę hands-on, napełnianie w niektórych luk od wczoraj.
Pozwólcie mi iść do tej pierwszej.
Tak więc przypomnieć, że wczoraj mieliśmy pewne kanoniczne HTML
stron, które miały początkowo tylko HTML, a następnie wtórnie miał CSS
Kaskadowe arkusze stylów.
Jest to nowy znacznik, że nie zobacz wczoraj, czy mieszkają na,
tak zwany znacznik script.
>> Okazuje się, że rzeczywiście można osadzić Język nazywa JavaScript w internecie
Strona i dokonać internecie stron coś zrobić.
Więc co mam na myśli?
Cóż, pozwól mi iść do przodu i po prostu pożyczać ten kod na chwilę.
Mam zamiar iść do Cloud9, nie ma potrzeby tam sobie jeszcze,
i mam zamiar nazwać tę alert.HTML.
Idę do wklejenia w moim pliku tutaj.
I właśnie w celu wyjaśnienia, co zrobiłem, niech mi iść do tego adresu i przejdź do ostrzegania,
i widać Hello World.
>> Ale to jest trochę rozczarowująca.
chcę coś zrobić trochę inaczej.
Więc mam zamiar to zrobić właściwie.
Mam zamiar iść tutaj e, aw między moimi znaczniki skryptów,
powiedzieć alert ( "Hello, world"); więc zawiadomienie jest trochę zaniedbany, ale mam HTML,
wewnątrz którego jest Język nazywa JavaScript,
i to, co się nazywa wywołanie funkcji lub wywołanie procedury.
Jest to czasownik, dosłownie, w tym przypadku, a ja jestem wywoływanie funkcji kodu
że ktoś inny napisał.
>> Tak, że funkcjonalność jest alert, więc chodźmy do tej strony
teraz i kliknij reload, a teraz patrz trochę interaktywność.
To coś w rodzaju starej szkoły i brzydkie.
Ten rodzaj przypomina z pop-upy, być może, z przeszłości
ale zrobiłem coś trochę bardziej programowe.
>> Więc więcej niż to, zróbmy coś bardziej interesujące.
Pozwól mi wejść tutaj i pozbyć się tego.
I zamierzam iść do przodu i utworzyć formularz jak my wczoraj.
Właściwie, wiesz co?
Mam zamiar iść do google.html, które
rozpoczęła się wczoraj, co wyglądało ta, za pośrednictwem którego szukaliśmy kotów
Należy jednak zauważyć, że to rodzaj Błąd w aktualnej wersji.
To działa dla kotów, ale załóżmy, że Nie współpracują i wpisuję nic,
a ja po prostu kliknij prześlij.
To trochę dziwne zachowanie.
Zabrał mnie do rzeczywistego Google nie daje mi komunikat o błędzie.
Chciałbym poinformować użytkownika trzeba dać nam wartość.
>> Więc w jaki sposób możemy to zrobić?
Więc pozwól mi wrócić do Cloud9 i pozwól mi iść do góry mojej stronie
i dodać tag skryptu jak ten, w którym Idę do wpisania kodu JavaScript.
A ja zamierzam wykonać następujące czynności.
If (document.getelementByID-- i wycofania że rozmawialiśmy o tym wcześniej,
ta funkcja.
Co ID chcę dostać?
Chcę uzyskać q, a ja zamierzam powiedzmy równa się nic, tak jak this--
faktycznie pozwolił mi użyć cudzysłowia tylko dla consistency-- równa się nic,
Następnie alert ( "Proszę wpisać zapytanie") tutaj.
>> Więc mam co wydaje się być coś takiego warunku.
Widzieliśmy tę ogólną ideę w Scratch.
To jest jak jeden z tych puzzli Kawałki, które wyglądały następująco.
I co ja mówię?
Cóż, tu na dole, zauważył, że jestem zamiar wykonać następujące czynności.
Mam zamiar dać ten formularz Pole to nie tylko nazwa Q, które
jest to, co dostaje przekazywane do Google, ale jestem zamiar dać mu lokalny identyfikator,
zwany także q.
Ale mogę nazwać to coś I chcą, ja po prostu się keep it simple
a także nazwać q, dla prostoty.
>> I teraz mam zamiar zrobić coś trochę więcej.
Na polach Tutaj mam zamiar dodaj co nazywa obsługa zdarzeń.
Na przedstawienia, chcę zadzwonić funkcja o nazwie validate.
Nie istnieje, to Słowo, albo to czasownik validate,
bo to, co mam zamiar zrobić Teraz tutaj jest dodać trochę kodu.
>> Idę powiedzieć funkcji validate.
Mam zamiar wciąć to i dodać kolejny nawias klamrowy tutaj, a drugi tutaj.
Zastanów się, co to jest teraz robi.
Mam now-- myśleć o tym, jak stworzył mój własny kawałek układanki, który nie zrobił wcześniej
istnieje, a ja nazwał to logiczna poskładać kawałek validate puzzle.
Jego celem w życiu jest do wykonania cztery linie kodu w jej wnętrzu.
>> Jeśli document.getElementById tak pod względem koncepcyjnym,
że ma zamiar udać się do elementu, element HTML, którego unikalna
Pomysł jest po prostu q, a następnie mimo składnia wygląda trochę dziwnie,
która równa jest równa tylko oznacza równymi.
To znaczy, jeśli element z Unikalny identyfikator q, gdy dostał,
nie ma żadnej wartości, to po prostu równa cytat cytatu, nic tam,
to co chcę zrobić?
Chcę krzyczeć na użytkownika.
>> I nie będziemy się bardzo szczegółowo tutaj.
Idę do return false.
To jest błąd.
Indziej, mam zamiar powrócić prawda.
Więc albo to działało albo nie.
Fałszywe lub prawdziwe.
A teraz, gdybym nie popełnić żadnych błędów, pozwól mi uratować to i odświeżyć ten.
I niech mi tylko dokładnie sprawdzić, że I nie w rzeczywistości, dokonywać żadnych literówek,
więc nie musiał się wstydzić.
Zobaczymy, czy to działa.
>> Więc teraz mam zamiar wpisać koty.
To działa, albo pół prace, przynajmniej.
Teraz pozwól mi odświeżyć ją, a teraz niech mi spróbować składania bez wpisywania
anything-- cholery, to złamał.
Chwileczkę.
Pozwól mi otworzyć konsolę, [INAUDIBLE] zalogować, przeładuj stronę.
Pozwól mi spróbować jeszcze raz.
O, cholera.
Zapomniałem.
Zrobiłem literówkę.
Pamiętam, co to jest.
.wartość.
Chciałem powiedzieć, jeśli wartość elementu, którego identyfikator jest q
równa, wtedy krzyczeć na użytkownika.
>> Więc teraz pozwól mi znów wstrzymać oddech.
No to ruszamy.
No to jedziemy.
Proszę wpisać zapytanie.
Więc to nie pozwolić mi przejść.
Mogę być trochę zabawy z tym, i zamiast sprawdzania żadnej wartości,
Mogę powiedzieć coś w stylu: nie trzeba będzie szukać dla kotów,
a teraz możemy tylko bardziej żartobliwie pozwól poszukiwanie użytkownika dla psów, jeśli on lub ona
chce, czy idę tu i wyszukiwania dla kotów, teraz nie mogę.
>> Więc co jest tu na wynos?
Tak jeden, mamy wprowadzone do nasz świat HTML i CSS,
Funkcja programowania.
Mogę właściwie teraz podejmować decyzje w kodzie.
Wcześniej wszystko, co mogłem zrobić, to zaznaczyć zawartości tekstowej lub graficznej treści
i powiedzieć to, czego szukać jak i gdzie je wyświetlić.
Teraz rzeczywiście mogę zapytać kwestie dotyczące strony internetowej
i podejmowania decyzji w oparciu na to, i poprosi użytkownika
jeśli muszę krzyczeć na niego.
>> Warto więc spróbować czegoś sami z tym.
Śmiało, pozwól mi otworzyć następny slajd tu i po prostu zwrócić uwagę na jedną rzecz.
Podobnie jak z CSS, możemy czynnik poza nasz kod JavaScript w oddzielnym pliku,
można zrobić to samo z JavaScript w CSS.
I użyć jej przy użyciu źródła atrybut znacznika script.
Ale nie komplikować teraz.
Zamiast tego, jeśli można przejdź do nie tej stronie
ale-- pozwolił mi przenieść ten okolice w order-- udać, jeśli można, na tej stronie tutaj.
Ten adres URL tutaj.
To w dzisiejszych slajdów.
Być może trzeba odświeżyć, ponieważ Dodałem kilka rzeczy.
>> Ale tam, gdzie niektóre łamigłówki czekają.
A to daje nam szansę, w kontekście nieco więcej zabawy,
babrać się z pewnym JavaScript.
A kiedy się tam dostać, Wytłumaczę co czeka.
Uzyskaj zielono.
Ustaw na niebiesko.
Ustawia zielony, ustawia na czerwono.
Ups.
Przepraszam.
>> Jest to zakres naszych Dokumentacja dla tej prowokacji.
A to będzie działać w następujący sposób.
Więc co masz na ten temat strona jest cała masa
łamigłówki Zdjęcie od kumpla na Uniwersytecie Stanforda.
Więc co widzisz tutaj jest niemal rodzaj jednego z tych magicznych zagadek oczu,
ale jeśli tylko patrzą na to, Nic się nie wyskoczy na ciebie.
Raczej coś jest ukryte w tym obrazie.
I ukryta w następujący sposób.
Obrazy, jak wiadomo, może być składa się z zaledwie trzech kolorach.
Niektóre czerwone, niektóre niebieski, a niektóre na zielono.
I możemy zrobić wszystko kolory tęczy
przez zmieszanie tych trzech kolorów jakoś.
>> Tak to wygląda w większości zielone i niebieski, ale jak mówi tutaj, Nick,
To żelazko puzzle obraz jest logiczna.
Zawiera obraz czymś znanym, jednak
obraz został zniekształcony.
Słynny obiekt jest w czerwonych wartości.
Jednakże, czerwone wartości wszystkie zostały podzielone przez 10.
Tak więc są one zbyt małe, 10-krotnie.
Tak więc, innymi słowy, Nick wziął oryginalny obraz,
a on wszystko uwypuklają Czerwonego od niego,
obniżenie ilości czerwonego Atrament, jeśli będzie w nim.
>> Wartości niebieskie i zielone są po prostu bez sensu,
Wartości losowe, alias hałasu zaprojektowane zaciemniać rzeczywisty obraz.
Więc co Nick nie był on stonowany czerwony, a następnie
on po prostu rzucił losowo Ilości niebieski i zielony
na obraz do rodzaju niejasne co jest rzeczywiście nadal.
Musisz cofnąć te zakłócenia aby odsłonić obraz.
Po pierwsze, należy ustawić wszystkie wartości niebieskie i zielone do zera, aby je z drogi,
i spojrzeć na wynik. Następnie pomnożyć każdą czerwoną wartość o 10,
skalowanie z powrotem do przybliżeniu jego końcowa wartość.
Czym jest słynny obiekt?
>> Więc wszystko z was ma ten prostokąt W Twojej przeglądarce jest teraz.
I zauważyć, że istnieją pewne Kod startowy, że tak powiem.
Jest to kod JavaScript, który Nick napisał dla ciebie.
I zauważył, że nie ma linia w środku, że
rozpoczyna się ukośnikiem slash, to co zwykle nazywa komentarz.
Oznacza to, że jest to formuła dla programisty że nie ma żadnego znaczenia funkcjonalnego.
To tylko wizualną wskazówkę do człowieka.
>> Tak więc można iść do przodu i usunąć tylko tę linię,
i być bardzo ostrożnym, aby nie usunąć lub zmienić cokolwiek innego.
I niech mi tylko przejść przez co ten kod robi, a ja go zostawić
do ciebie, aby dowiedzieć się tajne obraz.
To pierwsza linia tutaj, że właśnie podświetlonych daje następujące.
Po lewej stronie, masz co się nazywa
zmienna, że ​​Nick ma arbitralnie, ale racjonalnie nazywa IM w obrazie.
Po prawej stronie tego znaku równości,
on mówi mi dać nowy cytat cytatu "Prosty obraz".
>> Prosty obraz w tym kontekście jest to, co się nazywa klasa, dobrze,
to trochę jak class-- technicznie prototype-- ale tak naprawdę,
to daje mi nowy obiekt, którego treść są pliku,
żelazo puzzle.png.
Innymi słowy, Nick utworzona pojęcie to prosty obrazek
tak, że można na pedagogicznego cele, bawić się z obrazem
i zmienić jego czerwony, zielony i niebieski wartości.
>> A jak mamy to robić?
To nieco tajemnicze składni tutaj to trochę jak powtarzania bloku
że niektórzy z was widział w Scratch wcześniej dzisiaj, gdzie można powtórzyć 10 razy.
W tym przypadku nie ma Nick ustalony numer, jak 10.
Zamiast tego mówi, zainicjować zmienną o nazwie x 0,
sprawdzić, czy x jest mniejsza niż szerokość obrazu.
>> I tak, aby być bardziej właściwe, obraz jest Zmienna, kropka oznacza iść w jej wnętrzu
i uzyskać jego szerokość, a Następnie otwarte paren, zamknięte
paren jest po prostu sposobem programisty mówić, że jest to funkcja.
Jest to procedura.
Jest to funkcja ktoś inny napisał.
Użyj go i dać mi odpowiedź.
A potem x ++ to fantazyjny sposób mówiąc, po co zrobiłeś to raz,
przyrost X o 1.
Innymi słowy, jest sposobem programisty
indukowania pętlę, która jest zamiar iteracyjnego
wszystkich kolumn w obrazie.
>> Obraz jest tylko siatka kropki, wiersze i kolumny kropek.
Jest to sposób iteracji w stosunku do wszystkich tych kolumn.
I od wewnątrz, Tymczasem mamy iteracji
na wysokości, tutaj i tu i tu.
Więc to jest tylko sposób Traipsing, prawie jak starej szkoły do ​​pisania,
po prostu przejść nad Cały obraz iteracyjnie.
Mimo, że nie jest całkiem w całości jasne, po prostu wziąć na wiarę teraz,
że tych trzech liniach kodu razem oznaczają
zamiar pozwalają spojrzeć iteracyjnie na każdym pikselu, każda kropka w obrazie.
>> Co to jest pixel?
Dobrze, aby być jasne, jeśli przyjrzymy co oryginał i powiększyć,
jeśli naprawdę umieścić swoje oczy na ekranie komputera, to
po prostu cała masa kropek, kilka Tysiąc kropki pakowane razem tam.
A więc to, co jesteś zamiar zrobić?
Każdy z tych punktów, ostateczna definicja,
Jest to wynikiem tego, co na ogół nazywa RGB, czerwony, zielony, niebieski, która
znowu, można łączyć daje dowolną liczbę kolorów.
>> W rzeczywistości, jeśli pamiętać, od wielu, wielu lat temu,
ekrany projekcyjne podobne do tych rzeczy używane mieć nie jeden ale trzy soczewki.
Jednym z nich wypluć światło czerwone, jeden z je wypluć zielone światło, jeden z nich
wypluć niebieskie światło.
A jeśli jesteś w gimnazjum jakbym był tam gdzie nigdy nie było
prawidłowo ustawione, byłaś Zawsze oglądania filmów historii
które były nieco zniekształcony, ponieważ trzy kolory nie były
łącząc prawidłowo.
>> Okazuje się, że każdy z Wartości te czerwone, zielone i niebieskie,
może mieć wiele powiązanych z nimi.
Na przykład, 0 dla czerwona oznacza brak czerwony, 0 oznacza brak zieleni na zielono,
i 0 dla niebieskiego oznacza brak niebieski.
Więc jeśli nie masz czerwony, zielony kolor, ani niebieski, jaki kolor masz?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: byś nadzieję, że tak, to jest białe.
Niestety, ten operates-- przykro?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Więc właściwie mają czarny, w tym przypadku.
Więc jeśli masz Żaden z tych kolory włączone, masz czarny.
Jednakże, jeśli masz, powiedzmy, że wiele z nich, jak dużo czerwonego, 255 z nich,
dużo zieleni, a wiele błękitu, że jest biały.
Tak więc są to dwie skrajności.
Więc od tej logiki, jeśli mam dużo czerwony i zielony kolor i ma niebieskie,
jakiego koloru jest to, że?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, oczywiście.
I to nie czerwony, wiele zielony, niebieski no, a następnie
jeśli have-- dobrze, po prostu skończyć jest tylko dlatego, ale, oczywiście,
Teraz jest niebieski.
I teraz można połączyć te kolory.
Teraz tak na marginesie, jeśli ktoś z was ma kiedykolwiek zrobić jakąś rzeczywistą projektowanie stron internetowych,
Państwo może faktycznie zobacz symbole, takie jak ten.
FFF-- i rzeczywiście, jest to Prawdopodobnie nawet to nie.
To FFFFFF.
>> Każdy widział F i E znajdują się i A through-- tak, jak się okazuje,
Wczoraj rozmawialiśmy o przecinku, a dziś, trochę o przecinku.
Dzisiaj rozmawialiśmy o binarnym.
Okazuje się, szesnastkowy jest bardzo wspólny system bazowy do wykorzystania w informatyce.
Binary wynosi dwa, dziesiętne 10, hex jest 16.
I okazuje się, w jaki sposób liczyć w systemie szesnastkowym?
Zero, jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem,
dziewięć, co używacie po dziewiątej?
Jaki jest następny numer?
Mamy już używany zero.
Potrzebuję 16 z nich.
Zero, jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem, dziewięć,
trzeba trochę arbitralne konwencję.
>> A co ludzkość postanowiła trochę czasu temu, że po dziewięciu przychodzi list
A i B, a następnie następnie C. Tak sposób liczyć w systemie szesnastkowym
oznacza zero, jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem, dziewięć,
A, B, C, D, E, F i liczy Ci całą drogę, jak się okazuje, do 15.
Więc zera do 15 wynosi zero przez F. Teraz, dlaczego jest to, że znacząca?
Dobrze, gdy masz dwa F'S, to w jaki sposób wyrażać 255.
>> Tak długie opowiadanie, w świat Photoshop
że programy graficzne projektowanie, w świecie tworzenia stron WWW,
gdzie masz wiele kolorów, Oczywiście, do zabawy,
Często programiści wyrażają te w systemie szesnastkowym,
tylko dlatego, że ma tendencję być trochę prostsze.
Choć na pierwszy rzut oka to o wiele bardziej skomplikowane.
>> Zatem w każdym przypadku, jest ważne bo Nick w Stanford
dał nam sześć kawałków funkcjonalności to ty, początkujący programiści,
będą mieć możliwość używania.
Wbudowany w tej sieci Strona jest sześć funkcji,
Nick sześć procedur, które napisał.
Trzy z nich będzie Ci numer, czerwony, zielony lub niebieski wartość.
Trzy z nich ustawia tej wartości.
I te podkreślenia to tylko zastępcze,
więc trzeba wiedzieć, co to jest.
>> Więc z tych trzech funkcji, pierwszy z co
to będzie to współrzędna x, a druga z tych rzeczy
to będzie współrzędna y.
Innymi słowy, co kropki, które piksel chcesz uzyskać zieleń,
uzyskać błękit, dostać czerwień.
A potem tutaj, to będzie x, to będzie mieć wartość y,
i to ma być liczbą.
Więc zróbmy pierwszy Linia ta wraz
a potem zostawię go dla Ciebie spróbować wyprowadzić resztę.
Tak więc zgodnie z instrukcją Na tej stronie, musimy
zwiększenie red od czynnika 10 i musimy usunąć zielony
i wyjąć niebieski.
Zacznijmy od tych ostatnich scenariuszy.
Więc jeśli chcę, a ja jadę wcięcia za pomocą spacje
jeśli chcę ustawić na czerwono, zielony, niebieski lub wartość,
Zamierzam wykonać następujące czynności.
>> Obraz, im.setBlue, a następnie podstawie tu moimi instrukcjami,
jakie trzy rzeczy powinienem wpisz wewnątrz nawiasów teraz?
Muszę wartość x, wartość y, a jaki numer
należy umieścić tutaj, jeśli chcę się pozbyć z niebieskim, na podstawie tej historii tutaj?
Po prostu zero.
Jeśli chcę Niebieskie, jestem po prostu zamiar zmienić go do zera.
>> Teraz po prostu podsumować to co to robi.
Mam tu na te góry drugie i trzecie
I twierdził, dwie pętle, zagnieżdżone pętle, jeśli ciebie
będzie, że będziemy mieć wpływ postępującej od lewej do prawej,
od góry do dołu na całej powierzchni x Wartości i wszystkich wartości Y.
Bo znowu, obraz jest tylko siatka z wierszy i kolumn.
Więc to dostanie pozbyć się wszystkich błękitu.
Pozwól mi odejść w następnej kolejce do ciebie.
Jak mogę pozbyć się wszystkich zielonych?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Nicea.
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Nicea.
I mam zamiar pomniejszyć, i po prostu zabrać dbać o to, że nie zrobiłeś żadnych literówek.
A jeśli jesteś wygodne z tego, co zrobiłeś,
iść do przodu, a następnie kliknij przycisk Uruchom / Zapisz i zobaczyć co się dzieje.
I znowu zrobiliśmy zaledwie trzy zmiany.
Usunęliśmy ten pierwszy komentarz i zastępuje go
z tych dwóch linii kodu.
I to jest OK, jeśli trzeba trafić przycisk Run / Zapisz kilka razy
coś naprawić.
>> I pozwól mi również powiększyć moje Kod więc można rozpisać.
Dobry.
Więc widzę Andrew ma co wydaje się być błędem.
On po prostu ma wielki czarny prostokąt na swoim ekranie.
Ma ktoś wielki czarny prostokąt?
>> PUBLICZNOŚCI: Tak.
>> DAVID MALAN: Big czarny prostokąt?
OK, więc pomyślmy o tym, co to znaczy.
Powiedzieliśmy, że zero, zero, zero, więc nie ma zieleni, nie ma czerwony, ma niebieskie,
ma zamiar dać czarny.
I okazuje się, że większość naszych laptopów
Po prostu nie mają wystarczająco dużo wierność.
Nie można powiedzieć, że dość jest rzeczywiście coś tam.
A jeśli rodzaj może oprzeć ekran do przodu i do tyłu,
Może nie widzisz Coś tam?
Może, rodzaj, rodzaj?
To nie jest idealnie czarne.
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Spoiler!
Istnieją pewne red tam, ale Pamiętam ze specyfikacji
problemu, Nick stonowanych go w dół.
On uwypuklają go nieco, ale nie aż do zera.
Więc jeśli chcemy, aby powiększyć ilość czerwony, pozwól mi zaproponować ten trick.
Pozwól mi przybliżyć na ekranie.
I pozwól mi iść dalej i powiedzieć, Kwota równa im.getRed (x, y).
>> Ten wiersz kodu daje mi coś, co nazywa się zmienną.
Mam arbitralnie, ale, prawdopodobnie, racjonalnie nazywa moja zmienna co,
widocznie?
Ilość.
Wystarczy kwoty.
Mogłem nazwał go cokolwiek chcę, ale jestem
Korzystając z tej innej funkcji które opisałem wcześniej
aby uzyskać ilość koloru czerwonego w x y przecinkami.
Dlaczego mam to zrobić?
Co chcesz zrobić tutaj?
Trzeba add--
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, może pomnożyć przez 10.
A jeśli o tym nie wiedzą, że jestem zamiar iść naprzód i to zrobić.
Mam zamiar iść do przodu i powiedzmy, chcę ilość koloru czerwonego
Chcę być cokolwiek jest na czerwono, razy 10,
a gwiazda, gwiazdka na własną Klawiatura jest the-- nie używaj x.
Użyj gwiazdę.
To, w jaki sposób pomnożyć rzeczy W większości języków programowania.
>> Tak więc, zgodnie z intuicją Kareem, w przechowywane w tej zmiennej o nazwie kwoty,
to ile czerwona chcę w miejscu xy.
Jak teraz, że mogę zrobić piksel ma ten numer?
Już zrobiłeś tego wcześniej.
Ustawić zielona i niebieskiego do żadnej wartości do zera.
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak, dobrze nie chcesz go do 10.
Już sam matematyki tutaj.
Więc jesteśmy coraz wartości czerwony, która jest mała liczba, zapewne.
Jesteśmy pomnożenie przez 10.
Co chcesz zrobić z Kwota zmienna teraz?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Nicea.
Więc im.set-- co?
>> PUBLICZNOŚCI: setRed.
>> DAVID MALAN: setRed, w miejscu xy.
Tak.
I właśnie kwoty.
Innymi słowy, zmienna Jest to tymczasowy zastępczy
które można umieścić cokolwiek chcesz w.
Mamy stało się umieszczenie Liczba w tym, w danym momencie.
Mamy pomnożyć ją 10, aby je powiększyć.
A teraz jestem zastąpienie tej zmiennej jako ten trzeci argument, lub wejście
ustawić na czerwono.
I tak, że po zakończyć to i biorą pod uwagę
z średnikami i nawiasów.
>> Śmiało i kliknij run / zapisać ponownie, a ty
powinien zobaczyć, magicznie, co było faktycznie tam. [? Arwa,?], Co tam?
Wieża Eiffla w pełnoprawnym czerwony, nie całkiem ciemno.
powinny być bardziej oczywiste teraz, tak?
OK.
I Andrew, nie więcej czarna skrzynka?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: W porządku.
Więc będę mieć to na ekranie.
Jeśli chcesz grać z tym później będę odtworzyć to dla ciebie.
Ale ten kod tutaj zrobił dokładnie to.
Dlaczego nie możemy zrobić jeden inny.
Pozwól mi przejść lekko w dół.
>> Więc w tym przypadku, projektor tak naprawdę nie są sprawiedliwe.
Ale na ekranach, to prawdopodobnie mają bardzo czerwony i bardzo czarną skrzynkę.
To też jest zagadką, że pokazuje coś sławny.
Jednak obraz został zniekształcony.
Prawdziwy obraz, tym razem jest w wartościach niebieskich i zielonych.
Jednak oni wszyscy podzielono przez 20 tak, że wartości są bardzo małe.
Czerwone wartości są po prostu liczb losowych, hałas.
Cofnij te zakłócenia ujawnić prawdziwy obraz.
>> Więc Nick potem mówi, co robić.
Ustawić czerwony wartości do zera, a to nie popsuć, co to jest.
Następnie pomnożyć niebieski i zielone wartości o 20.
Więc to jest prawie Ten sam program, jak poprzednio,
ale jesteś odwrócenie procesu.
I położę mój kod zanim zostanie w przypadku
Aby odnieść się do niego lub grać dalej z tego.
Pozwól mi przybliżyć się na tym.
Ale rozwiązania miedzi zdjęcie logiczna, numer dwa.
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: OK, więc to jeden jestem Nie zamierza dać jak najwięcej wskazówek.
Więc would-- och, niech zobacz, masz literówkę tutaj.
Więc pamiętaj, to tutaj rzeczywiście musi tam pojechać.
Więc to, co chciałbym zaproponować, jeśli chcesz skupić się na tym jednym, nie jest odpowiedź.
Jeśli chcesz rozpisać tym, że powinien otrzymać najpierw jedną pracę.
A następnie można użyć jej jako Inspiracją do drugiego.
Miły.
Dobry.
>> A dla ciekawskich Jest to prosty przykład
z nauką czy sztuką nazywa steganografii,
sztuka ukrywania informacji w obrazach.
Zazwyczaj, obrazy mogą być znaki wodne bardzo rażąco
z logo w dnie róg, ale wyraźnie, ty
może być o wiele bardziej skomplikowany o nim i rzeczywiście
ukryć inne obrazy w obrazach jakiś sposób z tą techniką.
>> Weź kolejne 30 sekund, a potem będziemy przynajmniej ogłosić, co powinieneś zobaczyć.
I zostawię trzeci jeden jako at-home ćwiczeniu
jeśli chcesz więcej zakwestionować ten weekend.
I myślę, że może Andrew zdobyć go w pierwszej kolejności.
Jaki jest drugi obraz, Andrew?
>> PUBLICZNOŚCI: Statua Wolności.
>> DAVID MALAN: Statua Wolności Odpowiedź będzie tym razem.
Więc jeszcze raz, tylko niektóre proste przykłady, których celem
to daje poczucie, jak mamy przetłumaczone obrazowym Scratch
Bloki do bardziej denerwujące i więcej Kod skomplikowane, ale wszystkie z pomysłów
nadal są dokładnie takie same, aczkolwiek po wprowadzeniu
Teraz pojęcia zmiennej, będąc możliwość tymczasowego przechowywania coś.
>> Zróbmy jeszcze jeden praktyczny, tylko teraz połączyć kropki
do czegoś nieco bardziej w świecie rzeczywistym.
Kiedy będziesz gotowy, jeśli można przejść do tego adresu URL na ekranie.
To również swoją kopię slajdy, developers.google.com/maps~~V.
Załóżmy, faktycznie coś zrobić realne, by tak rzec, w internecie
za pomocą interfejsu API Map Google, lub Interfejs aplikacji do programowania,
w następujący sposób.
>> Google, podobnie jak wiele firm, zapewnia dużo wolnego funkcjonalności
które można wykorzystać do budowy własnych ciekawych aplikacji.
W rzeczywistości, jeśli kiedykolwiek używałeś Uber dostać taksówkę lub samochód,
pewnie wiecie, że ma Uber mapie i to widać na nim samochody.
Oznacza to, że najlepiej jak potrafię powiedzieć, Google Maps API.
w rzeczywistości są one za pomocą map Google, ale Uber nie jest jednostką mapowanie,
ani też, że być Szczególnie ciekawy problem
rozwiązać na szczycie swojej Problem obsługi samochodów.
I tak stoisz, raz na ramionach
innych, Google w tej sprawie.
Więc używają map Google, ale ich własne usługi samochodowe i inne takie cechy.
>> Więc mamy zamiar wykorzystać tego, aby wykonać następujące czynności.
A jeśli Poszedłem zbyt szybko, zadzwoń do mnie na chwilę.
Szczęśliwy Przypomnę niektóre rzeczy obrazu.
Powinieneś zobaczyć siebie na stronie takiego.
Tak miło Google'a i oni są jednymi z najlepszych
świadczenia nie tylko API, ale wolny API, które
Można grać z lub użyć komercyjnie.
Robią rozpocząć ładowanie, czy Twój Wykorzystanie jest wysoka, ale poszedł do przodu z góry
i podpisany nas darmowe konto , To mieć nadzieję, że 10 komputerów
Nie dyskwalifikuje nas za nagle.
Więc mam nadzieję, że ta Demonstracja będzie działać.
>> I zauważył, że mają dla API Android, iOS, usług internetowych i internetowych,
cokolwiek to jest.
Skupmy się na internecie.
Więc kliknij w różowym pudełku, www, oraz że będzie cię prowadzić, miejmy nadzieję, na stronie
tutaj.
I oni mają całą masę API.
I to może być trochę przytłaczające w pierwszym,
ale będę kierować do nas przez to, co chcemy.
>> W lewym górnym rogu jest Google Maps JavaScript API, API JavaScript.
Więc idź naprzód i kliknij tamten.
A to doprowadzi cię teraz do Poniższa strona, dema i przykładowy kod.
Pozwól mi przybliżyć się tutaj.
I niech mi dostać nam to-- przewijać gdzie jest napisane szybkich kroków zacząć.
Twój ekran powinien wyglądać kopalni.
>> I jest dwa kroki, dostać klucz i zaczynają rozwijać.
Już to zrobiłem krok po jednym dla USA, uzyskanie tak zwanego klucza.
I jest to wspólny pomysł.
Klucz API jest na ogół po prostu duża liczba losowa lub ciąg
które mają wkleić do kodu,
tak, że Google wie kim jesteś, kiedy używasz ich usług, ich API.
To nie znaczy, że jesteśmy w trakcie ładowania czegokolwiek.
A teraz, kliknij, zamiast jeden, kliknij zaczynają rozwijać.
Gdybyś tylko mógł pomachać mnie na razie nie wiem, gdzie jesteśmy.
>> Więc my właśnie zarysowuje powierzchni, ale to, co się tutaj
Myślałem, że byłoby przekonujące jest rzeczywiście dla nas wszystkich,
stosując Cloud9 w jednym oknie i Ten poradnik w innym oknie,
pozwala rzeczywiście dostać nasz własny aplikacji i działa
które osadza zwyczaj Google mapa w naszej własnej stronie internetowej,
a następnie dodaje jeden lub dwa elementy.
Ale właśnie zarysowuje powierzchni, co możemy zrobić.
>> Więc po prostu szybkie sprawdzenie poczytalność.
Czy wszyscy w tej stronie Google Maps API JavaScript?
Powinien powiedzieć podręczny.
Nie zamierzamy przejść przez całość w dowolny sposób.
OK, na innej karcie, jeśli nie mają go otworzyć, należy przejść do Cloud9
i dostać się po prostu nowa karta ostatecznie.
Więc znowu c9.io na dzień c9.io, i po prostu utworzyć nowy plik.
I śmiało i rozmowa to, co chcesz.
Zadzwoniłem kopalni map.html.
Nazwijmy to wszystko kończy się w .html.
I powinno być z grubsza gdzie jestem w tym procesie
tylko z migającym w pustym wierszu Zakładka o nazwie coś jak map.html.
Lub plik, tym razem nowy plik.
>> A teraz, po ponad Google Maps API JavaScript,
będziemy pominąć czytanie przez cały ten tekst.
Ale zauważ, że jest Hello World Rzeczywiście wszędzie, widać to teraz.
Witaj świecie ma ten wielki kolorowy Przykładem całą masę HTML.
Śmiało i kopiować i wklejać tylko, że HTML, więc od typu doc ​​na górze
aż do ścisłej tagu HTML, przejdź naprzód i skopiować wszystkie that-- ponownie
to pod świata powitania example-- i wklej to do swojej karcie Cloud9,
tak, że teraz na ekranie powinien wyglądać mniej więcej tak jak moje.
>> I można go zapisać, ale nie wkładaj go jeszcze.
Niech najpierw spojrzeć na kod i sprawdzić, czy
nie można wywnioskować, czy nauczyć od tego, co jest Google
miał nam ślepo kopiować i wklejać.
Oni po prostu chcą pomóc, dosłownie, zaczął się z nami,
ale nie jest to dużo Złożoność faktycznie istnieje.
Wszelkie pytania tylko jeszcze?
Jesteśmy bezpieczni, aby posunąć się naprzód?
OK.
>> Tak szybko, niech po prostu zrobić kilka krótkich testy sprawdzające.
Linia jedno co ja zobaczyć, i miejmy nadzieję, że ci
zobaczyć, co to znaczy, DOCTYPE html?
Kareem, przypomnieć?
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Tak.
Nadchodzi HTML 5.
Tymczasem na drugiej linii Ekran oznacza tutaj hej przeglądarkę,
tutaj jest rzeczywisty HTML.
Linia trzy hej jest przeglądarka, tu pojawia się głowa.
Linia czterech jest, oczywiście, hej Przeglądarka, oto tytuł.
Co to linia pięciu zrobić?
Właściwie, to nie Naprawdę nic zrobić dla nas.
W tym przypadku, po prostu zmienia rozmiar strona z domyślnie. Linia sześć,
Nie rozmawialiśmy na temat, ale określa kodowanie znaków.
Jest różne sposoby kodowania plików, zwłaszcza w przypadku języków obcych.
UTF-8 po prostu wydaje się być domyślna.
>> Więc teraz zobaczymy w kolejce siedmiu do 16, niektóre CSS.
I choć nie widzieliście wszystkie te rzeczy przed,
możemy wywnioskować rodzaju.
Więc linii osiem sposobów, hej przeglądarka obowiązują wszystkie z poniższych kryteriów, do których dwóch pasków,
widocznie?
HTML i ciało tekstu.
Więc przecinek jest nową rzeczą tam.
I to jest właśnie sposób podając wiele znaczników na raz.
>> Następnie mamy nawiasy klamrowe.
Więc jak widać, ta informuje przeglądarkę, aby wysokość widoku 100%.
Więc nawet jeśli jest bardzo mało treść sprawiają, że całą stronę
sprawiają, że rzeczą wypełnić stronę.
Bądź mapa ostatecznie wypełnić stronę.
Margines, co to znaczy?
To zazwyczaj jak arbitralne białe miejsca wokół krawędzi
że niektóre projektant przeglądarka prostu że powinny być tam, bo
rodzaj sprawia, że ​​rzeczy wyglądają czystszy.
Ale my nie chcemy.
Chcemy mapa dzieje aż do krawędzi.
Dopełnienie, w duchu podobnym do marginesów.
Marginesy znaczy na zewnątrz, środki wypełniające w środku, ale jest to ten sam rodzaj transakcji.
To trochę buforze między tobą a krawędzie.
>> A potem linia 13 jest dobry Szansa na szybki przegląd.
Co robi ostry znak mapę myśli lub hashtag map myśli?
Co oznacza, że ​​znajdują się w zasadzie?
>> PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: Dokładnie.
Ta właściwość ta właściwość CSS Dotyczy to tylko jedna rzecz, znacznik HTML
który ma identyfikator środki, koniec cytatu "map".
A teraz szybko do przodu, przewijania w dół do dolnej części pliku, który
nie jest zbyt daleko, a zawiadomienie o linię 19, jeśli wkleić go dokładnie tak samo jak ja,
Linia 19 ma tylko div, który jest Podział strony, która wczoraj
nazywa się obszar w kształcie prostokąta.
To nie ma nic w nim.
To otwarta tag, blisko tag.
Ale to ma unikatowy identyfikator.
>> Więc to, co wydaje się być tutaj dzieje jest Google
jest przygotowując naszą stronę internetową, aby mieć pełne 100% wysokości,
i nie ma obicie, bez marginesów, bo co mamy zamiar umieścić wewnątrz
DIV, który jest unikatowy identyfikator mapa, jest rzeczywiste osadzone map.
I chcemy, aby wypełnić strony, a nie tylko
być jakiś mały prostokąt w środku.
Więc linia 14 podobnie podkreśla, The mapa sama powinna mieć wysokość 100%.
>> Więc teraz zauważyć pomiędzy liniami 20 i 28, jest to kod JavaScript.
A to, mimo że składniowo trochę dziwne,
Nie ma aż tak dużo się tu dzieje.
W linii 21, jest deklarowania coś, co nazywa się zmienną.
Zamiast nazywając ją wynosi, tak jak poprzednio,
jesteśmy dokładniej mówiąc var, co oznacza po prostu zmienną.
Mogliśmy używane, że w Kod Nicka, ale nie zrobił tego, więc
nie przeszkadza to zrobić albo.
Jest to zmienna o nazwie map, a następnie nie ma
funkcja, która jest podobno nazywa initMap.
>> Tak to jest jak nasz własny niestandardowy kawałek układanki w Scratch.
Utworzyliśmy kawałek Funkcjonalność nazywa initMap,
można wywnioskować, rodzaj co tu się dzieje.
Po lewej stronie, mamy zmienną,
więc mamy zamiar umieścić następujące rzeczą wewnątrz tej zmiennej,
od prawej do lewej.
Z prawej strony mówi, hej Przeglądarka, daj mi nową mapę Google.
I google.maps.map jest po prostu modny sposób określania, które tej funkcji
należący do Google Maps.
>> Po nawiasach, widzieliśmy to już wcześniej, hej przeglądarka, dostać
me elementy w części strony, tag na stronie, której unikatowy identyfikator is--
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: --map.
A co się dzieje, dobrze, ta linia razem, linia 23,
zasadniczo mówiąc: hej przeglądarki, przejdź się do mnie
że pusty div na stronie którego unikatowy identyfikator jest mapa,
bo chcę, aby wstawić pod it-- wstrzyknąć do niego,
jeśli will-- całą masę treści co dzieje się pochodzić z sieci,
następnie.
I Google robi to wszystko dla nas.
>> Więc jeszcze raz, na samym końcu dnia, mamy tego przykład abstrakcji.
Nie mam pojęcia co to jest mapa czyli jak wdrożyć mapę API.
Nie trzeba.
Po prostu trzeba powiedzieć mapę gdzie umieścić siebie i pozostawić
Realizacja tych leżących u podstaw Dane do Google.
Teraz jest podobno dwa kawałki danych
że w tym przykładzie jest dostarczanie API Google.
Podobno w centrum mapy, i poziom powiększenia, że ​​tak powiem.
>> A czy ktoś rozpoznaje te współrzędne, szerokość i długość geograficzna?
Prawdopodobnie nie, ale możemy wrócić tutorial, dosłownie zobaczyć.
Ale zobaczymy go za chwilę.
Stopień powiększenia jest wartością z przedziału, nie wiem Wiesz, jeden na 13 lub coś takiego.
To po prostu ma do czynienia z, jak daleko jesteś powiększony lub na zewnątrz, i to wszystko.
A teraz na samym końcu strona, informacja linia 29--
to trochę brzydki, bo to wraps-- tej linii kodu
jest to, co ściąga do Przeglądarka rzeczywiste API Google'a.
Cały kod, który Google inżynierowie napisane, że wdrożenie
cała ta cecha niezabudowany mapach.
>> Teraz niczego nie zmieni.
Jeśli jesteś po wzdłuż, śmiało wystarczy zapisać ten plik, jeśli rzeczywiście mają
Co ja mam.
Idź do jego zawartości.
Można kliknąć przycisk Uruchom do góry i że powie
Ci adres URL serwera WWW ponownie.
I doprowadzi cię do nowej karcie.
Jeśli klikniesz otwarty do map.html, a kursy są jesteś
dostanie ostrzeżenie, komunikat o błędzie, tak?
Komunikat o błędzie, komunikat o błędzie?
>> Tak niestety, błąd Komunikat nie jest pouczające
chyba faktycznie otworzyć Konsola, że ​​mamy specjalną zakładkę
przechowywane otwierając wczoraj trochę wcześniej dzisiaj.
Ale natknąłem tym wcześniej, więc ja już
zorientowali się, co jest rozwiązaniem.
W dzisiejszych slajdów lub raczej w Cloud9, zawiadomienie
że nie zrobił coś celowo.
Zauważ, że ten tag w skrypt Linia 29, jeśli czytasz przez niego,
to jak maps.googleapis.com/~~pobj coś, coś, coś,
Następnie zauważył kogoś, jeden z twórców,
napisał w całej stolicy Litery, klucz API.
>> Musimy wkleić coś tam.
I był to krok Zrobiłem dla nas wcześniej,
i znowu mogą czarnej listy z nami, jeśli nagle, 12 lub więcej z nas
zacząć używać tego samego klucza, ale zobaczymy co się stanie.
Więc jeśli idziesz do dzisiejszych slajdy, jeden slajd później tam
Ten bardzo ostry wyglądający ciąg tekstu.
Idź przed siebie i po prostu skopiować to i wkleić go gdzie jest napisane swój klucz API.
To jeden Zarejestrowałem się.
>> I na pewno nie starają wpisując je ręcznie,
ponieważ czuje obarczona z literówek, potencjalnie.
Więc po prostu skopiuj i wklej to.
I to się dzieje, aby linię dłużej, ale teraz, żeby była jasność,
powinno to wyglądać trochę bardziej jak ten, w którym klucz nie jest równy
kapitalizowane krzyczy na ciebie.
Zapisz stronę, wróć do drugiej zakładki, załaduj ponownie,
i mamy nadzieję zobaczyć mapę gdzie?
>> PUBLICZNOŚCI: Australia.
>> DAVID MALAN: Australia.
Więc widocznie te są współrzędne GPS Australii.
I daj mi chodzić na chwilę i pomóc każdemu, kto nie do końca tam,
ale pozwól mi zaproponować, za pośrednictwem Google, znaleźć Współrzędne GPS w swoim rodzinnym mieście
lub własnego kraju.
I pewnie Google może wyłączyć tę w górę lub w Wikipedii można powiedzieć.
Ale wybrać dwie różne wartości dla szerokości i długości geograficznej,
wrócić i wklej je i następnie odświeżyć stronę po zapisaniu
i sprawdzić, czy można mieć map do własnego rodzinnego miasta.
>> A kiedy skończysz tym, follow-up challenge--
a dam trochę mniej kierunek, świadomie, abyście świadomie
trzeba walczyć na kilka minut z dokumentacją,
zmienić mapę, aby nie być w tym kreskówkowe domyślne, ale mapa satelitarna.
Więc rzeczywiście zobaczyć satelitę obrazy zamiast ładnych kolorach.
>> I podpowiedź dam ci to zmienić typ mapy.
Wróć do uzyskania rozpoczętą stronę inspiracji.
Jak można wywnioskować, jeśli szukasz miejsca,
istnieje tak wiele więcej rzeczy można zrobić.
Niektórzy z was mają już zmieniony typ mapy.
Ale można do-- na przykład, niech mnie przejść na coś zrobiliśmy na kurs
I teach-- maps.cs50.net.
Jeden z naszych undergrads to zrobił.
Jesteśmy centrum naszą mapę na Harvard Yard i nakładki wszystkich tych nazw budowlanych,
i mieliśmy go dodać to.
Więc jeśli chcę sprawdzić, na przykład, Matthews Hall
mamy trochę menu rozwijanego.
I myślę, że używa Bootstrap, na Biblioteka omówiliśmy wcześniej w tej sprawie.
I jeśli klikniesz na Matthews Hall, natychmiast
skoki mapę do pewnego lokalizacja, i to widać
Ci obraz w tym małym podręcznym.
>> Ale nawet ta mała pop-up, nie wdrożyć.
Gdybym przewinąć w dół na nasze coraz rozpoczętą stronę i poszukaj informacji okien,
zobaczysz, że niektóre z Funkcjonalność ty sam
Można dodać, choć nieco bardziej złożony,
Jest coś, co nazywa się okno informacyjne.
A jeśli kliknę przykład tutaj, i to jest zabawa,
można zrobić takie rzeczy, klikając na znacznik, a następnie voila,
Informacje wyskakuje.
>> Więc nie dość wprowadzane wystarczającej funkcje JavaScript
namalować obraz dokładnie tak, jak ci może podłączyć wszystkie te rzeczy razem,
ale mamy trochę powierzchownie.
W rzeczywistości, co właśnie zrobił, gdy Kliknąłem na ten znacznik,
było wyzwalanie wydarzeniem, z Tzw na kliknij zdarzenie.
I rzeczywiście zobaczył wydarzenie w dniu dzisiejszym,
tzw przedstawić zdarzenia, kiedy byliśmy zapobiegania
Użytkownik od poszukiwania kotów.
Więc mamy rodzaj zbierane i wybrał spośród wszystkich tych różnych funkcji,
dać poczucie, miejmy nadzieję, o tym, co rzeczywiście można
zrobić z nieco bardziej komfort w programowaniu
i całkowicie wolnych zasobów.
>> Jakieś pytania?
Nie?
To twoja ostatnia szansa, przynajmniej teraz, w piątek,
dostać nic poza klatką piersiową tak, że wyjdziesz stąd
czuje się pewnie i komfortowo.
Tak.
>> PUBLICZNOŚCI: Dlaczego nie dodać jeszcze jedną rzecz?
>> DAVID MALAN: O mój Boże.
Muszę odpocząć w ten weekend, myślę.
Inne pytania?
>> PUBLICZNOŚCI: [INAUDIBLE]
>> DAVID MALAN: Ty can-- w Internet Explorer, odpoczynek w spokoju,
użyłeś aby móc umieścić VB skrypt, wirtualne prosty skrypt,
ale to naprawdę nigdy nie przyjął.
Więc krótka odpowiedź jest po prostu JavaScript.
Inne pytania?
Dobrze, dobrze, pozwól mi to zrobić.
Daj mi złapać naszych kolegów na zewnątrz.
Mają jakąś ocenę formy, które chcą wszyscy
spędzić kilka minut wypełniania.
Chcą zebrać tego formularza i wszelkich Zwolnienia, które można mieć na zewnątrz.
Oni także mają certyfikaty.
Zgaduję tam jeszcze kilka przekąski na zewnątrz.
Pozwól mi przekazać je na zewnątrz, a jeśli masz jakieś pytania w międzyczasie
będę chodzić bardziej indywidualnie i możemy Ci zacząć.
Tak oczywiście.
PUBLICZNOŚCI: [INAUDIBLE]
DAVID MALAN: To Zazwyczaj prawda w tych dniach.
Oczywiście w internecie oprogramowania, jesteś opierając
na innych, jesteś albo estetycznie używając rzeczy
jak Bootstrap, więc nie zaimplementować niski poziom
Szczegóły menu i Przyciski i to wszystko.
Teraz, opierając się na kogoś takich jak Google, dzięki czemu
nie trzeba budować Uber biznesu i biznesu mapowanie,
i dowolną liczbę podobnych zastosowaniach.
>> W rzeczywistości, loginy są popularne, too.
Jeśli używany lub Spotify dowolną liczbę stron internetowych,
musisz zalogować się do niektórych strony internetowe za pomocą Facebooka.
Więc co jest ładne, nie API są do logowania
w dzisiejszych czasach, dzięki czemu nie trzeba mieć swój własny stół użytkowników
a wszystko z własnej bazy danych niekoniecznie w tym samym stopniu.
Możesz pozwolić Facebook zrobić wszystko tej złożoności dla Ciebie.
Więc jest to ekscytujący czas, Szczerze mówiąc, w programowaniu,
ponieważ istnieje tak wiele stron trzecich usługi, które można zbudować na szczycie.
>> I znowu, cena, jaką płacisz jest albo finansowe lub przestoju.
Jeśli Google idzie w dół, tak nie Uber, prawdopodobnie,
ale być może, że to rozsądny kompromis.
I znowu, to był jeden z tematów, miejmy nadzieję, że w ciągu ostatnich kilku dni,
właśnie te kompromisy.
I rzadko ma zamiar być prawidłowa odpowiedź.
To naprawdę jest lepsza z dwóch lub większej liczby odpowiedzi.
>> Przekazać te okolice.
>> I te rachunki Cloud9 będą kontynuowane do pracy, w teorii, w sposób ciągły.
Może się okazać, jeśli czekać kilka dni lub tygodni lub więcej, aby zalogować się na nich,
Może to potrwać jak jeden lub Pięć minut, aby otworzyć z powrotem,
ale to tylko dlatego, że włożyli go do snu, aby zapisać się na zasobach.