1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID MALAN: Dobra, jesteśmy z powrotem. 3 00:00:01,560 --> 00:00:03,830 Więc dla ekscytujące Podsumowując, nasz ostatni odcinek 4 00:00:03,830 --> 00:00:06,900 na programowaniu stron internetowych, które ja myślałem, że będziemy używać jako ogólne określenie 5 00:00:06,900 --> 00:00:08,440 uchwycić kilka pozostałych wątków. 6 00:00:08,440 --> 00:00:10,390 Tak na koniec dzień, my faktycznie 7 00:00:10,390 --> 00:00:14,830 trochę hands-on programowaniu WWW z językiem zwanym JavaScript. 8 00:00:14,830 --> 00:00:17,510 I myślę, że przyjrzymy na coś związanego z obrazami 9 00:00:17,510 --> 00:00:20,040 i odkrywanie czegoś potajemnie ukryte w obrazie, 10 00:00:20,040 --> 00:00:23,230 a także zapoznać się z Google Maps API, programowania aplikacji 11 00:00:23,230 --> 00:00:26,040 interfejs, jako coś przedstawicielem typu oprogramowania 12 00:00:26,040 --> 00:00:28,800 to coraz częściej i swobodnie dostępne już dziś. 13 00:00:28,800 --> 00:00:32,029 >> Ale dlaczego nie spojrzeć na składnik do tego świata 14 00:00:32,029 --> 00:00:34,070 że mamy niby było biorąc za pewnik istnieje 15 00:00:34,070 --> 00:00:36,720 przez jakiś czas, to baza danych. 16 00:00:36,720 --> 00:00:39,150 W przeciągu doby oraz pół mamy założyć 17 00:00:39,150 --> 00:00:42,910 że mamy dostęp do bazy danych, ale Jaki problem ma baza rozwiązać? 18 00:00:42,910 --> 00:00:45,540 Co to dla nas zrobić? 19 00:00:45,540 --> 00:00:47,030 Co to jest? 20 00:00:47,030 --> 00:00:48,679 >> PUBLICZNOŚCI: [INAUDIBLE] 21 00:00:48,679 --> 00:00:51,720 DAVID MALAN: posiada wszystkie informacje, OK, i jakie rodzaje informacji 22 00:00:51,720 --> 00:00:53,186 można umieścić w nim? 23 00:00:53,186 --> 00:00:54,590 >> PUBLICZNOŚCI: [INAUDIBLE] 24 00:00:54,590 --> 00:00:56,450 >> DAVID MALAN: Wszelkie informacje można umieścić w nim, dostaniesz z powrotem. 25 00:00:56,450 --> 00:00:57,070 To prawda. 26 00:00:57,070 --> 00:01:01,900 A w typowym miejscu, albo w sieci opartej na sieci WWW Aplikacja, jakie rodzaje informacji, 27 00:01:01,900 --> 00:01:03,385 W szczególności, można wprowadzić? 28 00:01:03,385 --> 00:01:04,260 PUBLICZNOŚCI: [INAUDIBLE] 29 00:01:04,260 --> 00:01:05,051 DAVID MALAN Użytkownicy. 30 00:01:05,051 --> 00:01:07,000 Więc co użytkownik? 31 00:01:07,000 --> 00:01:09,765 >> PUBLICZNOŚCI: [INAUDIBLE] 32 00:01:09,765 --> 00:01:11,640 DAVID MALAN: OK, zarejestrowana Użytkownik serwisu. 33 00:01:11,640 --> 00:01:15,100 A co to znaczy przechowują informacje użytkowników? 34 00:01:15,100 --> 00:01:17,260 Co komponuje użytkownika? 35 00:01:17,260 --> 00:01:18,331 Użytkownik ma co? 36 00:01:18,331 --> 00:01:19,206 PUBLICZNOŚCI: [INAUDIBLE] 37 00:01:19,206 --> 00:01:21,040 DAVID MALAN: Tak, osobiste danych, a to mi się podoba. 38 00:01:21,040 --> 00:01:21,970 Bądźmy bardziej precyzyjny. 39 00:01:21,970 --> 00:01:25,275 Tak więc użytkownik ma zazwyczaj imię, co jeszcze użytkownik może mieć? 40 00:01:25,275 --> 00:01:26,150 PUBLICZNOŚCI: [INAUDIBLE] 41 00:01:26,150 --> 00:01:29,130 DAVID MALAN: AN addr-- OK tak na imię i nazwisko. 42 00:01:29,130 --> 00:01:29,630 Dobre. 43 00:01:29,630 --> 00:01:31,463 Rzeczywiście, niech naprawić że ponieważ chodzi 44 00:01:31,463 --> 00:01:35,010 aby otworzyć możliwość Dyskusja, wciąż dalej. 45 00:01:35,010 --> 00:01:39,090 Imię, nazwisko, płeć. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 Identyfikator jakiegoś. 48 00:01:43,481 --> 00:01:43,980 Co jeszcze? 49 00:01:43,980 --> 00:01:45,438 Słyszałem coś innego wcześniej, też. 50 00:01:45,438 --> 00:01:51,600 E-mail, adres pocztowy. 51 00:01:51,600 --> 00:01:58,170 >> Warto więc wstrzymać się tam i teraz rozważyć nie to co my przechowywania w bazie danych, 52 00:01:58,170 --> 00:02:01,980 ale-- a nie dlatego, ponieważ jest to chyba oczywiste, że po rejestracji użytkownika, 53 00:02:01,980 --> 00:02:03,730 chcesz zapamiętać je na jakiś czas. 54 00:02:03,730 --> 00:02:05,480 Nie chcesz go być po prostu przechowywane w pamięci RAM 55 00:02:05,480 --> 00:02:08,690 i bycia zapomnianym tak skupmy się na how. 56 00:02:08,690 --> 00:02:11,700 >> Okazuje się, że w świat baz danych, 57 00:02:11,700 --> 00:02:14,410 istnieje co najmniej dwa rodzaje tych dniach. 58 00:02:14,410 --> 00:02:20,010 Coś o nazwie bazy danych SQL, Structured Query Language, 59 00:02:20,010 --> 00:02:24,770 lub cutely nazwane, NoSQL, co nie jest SQL. 60 00:02:24,770 --> 00:02:26,980 A drugi jest przykładem tego, co może 61 00:02:26,980 --> 00:02:30,660 nazwać obiektowy, lub sklep obiektu, baza 62 00:02:30,660 --> 00:02:36,010 która przechowuje obiekty, a nie, przepraszam ja, jak wkrótce zobaczymy, wiersze. 63 00:02:36,010 --> 00:02:41,800 >> Dlatego skupimy się na chwilę na Pierwszy z nich, a mianowicie SQL 64 00:02:41,800 --> 00:02:46,850 bazy danych, choćby dlatego, że jest to już tak znane, każdemu 65 00:02:46,850 --> 00:02:51,070 który wykorzystał Excel lub Arkusze Google lub Apple 66 00:02:51,070 --> 00:02:53,740 Numery lub dowolny standardowy program arkusza kalkulacyjnego, 67 00:02:53,740 --> 00:02:56,040 lub równoważnie lub więcej sophisticatedly, 68 00:02:56,040 --> 00:02:58,610 coś takiego jak Microsoft Access lub Oracle 69 00:02:58,610 --> 00:03:03,890 MySQL lub PostgreSQL lub, z których wszystkie Nazwy produktów są dla wdrożeń 70 00:03:03,890 --> 00:03:04,865 z następujących pomysł. 71 00:03:04,865 --> 00:03:10,350 >> Relacyjne bazy danych jest po prostu coś, co ma wierszy i kolumn. 72 00:03:10,350 --> 00:03:12,850 A według wierszy i kolumn, Dosłownie znaczy coś 73 00:03:12,850 --> 00:03:21,860 w ten sposób, więc gdzie możemy mieć nazwa pola i jego typ tutaj. 74 00:03:21,860 --> 00:03:25,800 I rzeczywiście, niech mi teraz rozpocząć mapować je. 75 00:03:25,800 --> 00:03:29,420 Tak naprawdę, nie wiem Dlatego zwróciłem osobnego wykresu. 76 00:03:29,420 --> 00:03:30,780 Trzymajmy Ta prosta. 77 00:03:30,780 --> 00:03:34,830 >> Mamy prawo tu Początki naszego stolika, gdzie 78 00:03:34,830 --> 00:03:40,150 jest to nazwa pola i jest typu danych, 79 00:03:40,150 --> 00:03:41,660 i rodzaju Znaczy co następuje. 80 00:03:41,660 --> 00:03:45,510 Czy jest to liczba, to jest ciągiem znaków, krótki łańcuch jak słowo, 81 00:03:45,510 --> 00:03:49,340 to jest akapit, to jest Dane binarne, jak obraz? 82 00:03:49,340 --> 00:03:51,980 I niech po prostu drażnić tego od siebie na chwilę. 83 00:03:51,980 --> 00:03:57,575 Więc pierwsza nazwa, numer, Ciąg, duży kawałek text-- 84 00:03:57,575 --> 00:03:58,450 PUBLICZNOŚCI: [INAUDIBLE] 85 00:03:58,450 --> 00:03:59,616 DAVID MALAN: Tak, więc ciąg. 86 00:03:59,616 --> 00:04:04,744 A w kontekście bazy danych, będziemy zazwyczaj nazywają to pole char. 87 00:04:04,744 --> 00:04:07,660 Powiem tylko char teraz, ale jesteśmy zamierza udoskonalić tę chwilę. 88 00:04:07,660 --> 00:04:09,180 pole znakowe. 89 00:04:09,180 --> 00:04:11,365 Nazwisko pewnie to samo. 90 00:04:11,365 --> 00:04:11,865 Płeć? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Mężczyzna czy kobieta, więc może być polem char. 93 00:04:18,310 --> 00:04:21,380 Może to być albo cytat, koniec cytatu "Męski" lub cytat cytatu "żeński" 94 00:04:21,380 --> 00:04:23,650 lub może być m lub f. 95 00:04:23,650 --> 00:04:26,540 Jeśli chcesz być bardziej zintegrowane, Może trzeba trzecią wartość 96 00:04:26,540 --> 00:04:28,640 lub jakiś inny polu całkowicie. 97 00:04:28,640 --> 00:04:31,350 A więc można używać True False. 98 00:04:31,350 --> 00:04:35,036 Pole można nazwać męskiej i to można powiedzieć, prawdziwe lub fałszywe. 99 00:04:35,036 --> 00:04:38,160 Ale to nie musi uchwycić wszystkie informacje można chcieć. 100 00:04:38,160 --> 00:04:41,118 >> Tak więc okazuje się, że jest inny typ w polu, które mogą być tu przydatne 101 00:04:41,118 --> 00:04:46,040 w typowej bazie danych, zwany enum, gdzie jest to pole znakowe, 102 00:04:46,040 --> 00:04:50,480 ale ty, projektant, dostać się do wyliczyć możliwych wartości, 103 00:04:50,480 --> 00:04:54,630 jak cytat, koniec cytatu "męski", cytuję, koniec cytatu "żeńskie" i tak dalej. 104 00:04:54,630 --> 00:04:57,620 Tak, że niezależnie od wartości jest w bazie danych, 105 00:04:57,620 --> 00:05:00,670 jest rzeczywiście znakowym, ale musi być jedną z tych wartości. 106 00:05:00,670 --> 00:05:03,520 Prawdopodobnie nie będzie chciał enum dla imienia lub nazwiska. 107 00:05:03,520 --> 00:05:05,630 W przeciwnym razie musielibyśmy wyliczyć, jak nazwa 108 00:05:05,630 --> 00:05:09,570 wywodzi się z dosłownie każdego Możliwe imię i nazwisko. 109 00:05:09,570 --> 00:05:13,960 >> OK, więc co należy ID identyfikator być? 110 00:05:13,960 --> 00:05:15,200 Tak, tak może być liczbą. 111 00:05:15,200 --> 00:05:17,870 Warto więc trzymać że na razie, numer. 112 00:05:17,870 --> 00:05:22,010 A według numeru, numer jest zbyt szeroka teraz. 113 00:05:22,010 --> 00:05:23,900 Na końcu drugiego dzień, czuję się jak my 114 00:05:23,900 --> 00:05:25,280 powinny być trochę bardziej precyzyjny. 115 00:05:25,280 --> 00:05:29,280 Ilość może oznaczać podobny, to może być coś takiego 1.236. 116 00:05:29,280 --> 00:05:31,500 I to chyba nie Co rozumiemy przez ID. 117 00:05:31,500 --> 00:05:34,635 Co mamy na myśli zapewne przez ID? 118 00:05:34,635 --> 00:05:36,382 >> PUBLICZNOŚCI: [INAUDIBLE] 119 00:05:36,382 --> 00:05:38,590 DAVID MALAN: Oh, OK, więc Może to nawet nie jest liczbą. 120 00:05:38,590 --> 00:05:42,840 Może to rzeczywiście unikalny identyfikator to ciąg znaków, takich jak nazwa użytkownika. 121 00:05:42,840 --> 00:05:44,580 Więc absolutnie niemożliwe. 122 00:05:44,580 --> 00:05:46,730 Myślę, że ktoś prawdopodobnie Oznaczało numeryczny, choć. 123 00:05:46,730 --> 00:05:48,460 Więc zostańmy przy tym. 124 00:05:48,460 --> 00:05:49,320 Jaką liczbę? 125 00:05:49,320 --> 00:05:51,960 Co bardziej precise-- liczbę całkowitą. 126 00:05:51,960 --> 00:05:56,710 Tak wiele, jak 0, 1, 2, 3, więc my nazywamy to liczba całkowita. 127 00:05:56,710 --> 00:05:58,909 I nawet wtedy, mogłem być nitpicking, to 128 00:05:58,909 --> 00:06:00,700 naprawdę nie tylko Ogólnie całkowita chcesz. 129 00:06:00,700 --> 00:06:04,340 Prawdopodobnie nie chcą wartości ujemne, tylko dlatego, że po prostu czuje się dziwnie. 130 00:06:04,340 --> 00:06:06,070 Prawdopodobnie chcesz dodatnich liczb całkowitych. 131 00:06:06,070 --> 00:06:07,920 Więc można również wyrazić że w bazie danych, 132 00:06:07,920 --> 00:06:09,450 ale teraz powiemy całkowitą. 133 00:06:09,450 --> 00:06:10,650 >> E-mail? 134 00:06:10,650 --> 00:06:13,550 Jest to prawdopodobnie just-- co? 135 00:06:13,550 --> 00:06:14,460 >> PUBLICZNOŚCI: [INAUDIBLE] 136 00:06:14,460 --> 00:06:16,980 >> DAVID MALAN: To jest e-mail, ale to znaki, prawda? 137 00:06:16,980 --> 00:06:19,813 To po prostu ma ostry charakter, jak jest "na" symbol lub coś innego, 138 00:06:19,813 --> 00:06:21,580 ale to wciąż pole znakowe. 139 00:06:21,580 --> 00:06:23,900 I adres pocztowy? 140 00:06:23,900 --> 00:06:25,360 pole znakowe. 141 00:06:25,360 --> 00:06:31,400 Tak, że to miły początek, ale bądźmy trochę bardziej precyzyjne teraz. 142 00:06:31,400 --> 00:06:34,540 >> Tak więc okazuje się, że w baza danych, często 143 00:06:34,540 --> 00:06:39,120 masz wybór nad bardziej wyrafinowane wersje tych rzeczy. 144 00:06:39,120 --> 00:06:44,330 W rzeczywistości, w typowej bazy danych SQL, SQL, lub, bardziej ogólnie, relacyjnych baz danych, 145 00:06:44,330 --> 00:06:46,680 Bazy danych z wierszy i kolumny, często 146 00:06:46,680 --> 00:06:53,610 dostać się określić nie tylko rodzaj nauce, pozwól mi zrobić trochę miejsca here-- 147 00:06:53,610 --> 00:06:56,600 ale również długość. 148 00:06:56,600 --> 00:06:59,900 >> Więc, jak długo to imię? 149 00:06:59,900 --> 00:07:07,060 Myślę, D-A-V-I-D. OK, rozumiem I Prawdopodobnie po prostu obraził jakby połowa 150 00:07:07,060 --> 00:07:11,260 ludzi w pomieszczeniu, w prawo, ponieważ wasze imiona są dłuższe niż pięć 151 00:07:11,260 --> 00:07:16,608 Litery, więc pięć Wygląda trochę egoistyczne i naiwny, więc co to jest lepszej jakości? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, wszystko w porządku, i myślę, jesteśmy OK w pokoju. 154 00:07:24,330 --> 00:07:26,254 13? 155 00:07:26,254 --> 00:07:27,541 30? 156 00:07:27,541 --> 00:07:29,540 Dlaczego nie biorę Podejście wcześniej, kiedy 157 00:07:29,540 --> 00:07:31,081 Rozmawialiśmy o tablic i pamięci? 158 00:07:31,081 --> 00:07:32,450 Dlaczego nie mogę po prostu powiedzieć jak 1000? 159 00:07:32,450 --> 00:07:35,260 Nikt nie będzie nazwę być dłuższy niż 1000. 160 00:07:35,260 --> 00:07:36,706 Odepchnąć się. 161 00:07:36,706 --> 00:07:38,005 >> PUBLICZNOŚCI: [INAUDIBLE] 162 00:07:38,005 --> 00:07:40,130 DAVID MALAN: Tak, to jest marnotrawstwem, w prawo, w szczególności 163 00:07:40,130 --> 00:07:44,630 jeśli większość nazwy są tylko pięć lub 10 lub 15 znaków, to bardzo rozrzutny. 164 00:07:44,630 --> 00:07:45,810 Więc wiesz co? 165 00:07:45,810 --> 00:07:48,020 Jest to rodzaj trudne pytanie. 166 00:07:48,020 --> 00:07:51,721 Teraz, z pewnością możemy analizować angielsku i nazwy w jakimkolwiek innym języku 167 00:07:51,721 --> 00:07:54,470 i dowiedzieć się, jak to, co jest Średnio average-- naprawdę nie ma 168 00:07:54,470 --> 00:07:57,150 pomóc us-- jaka jest max Prawdopodobnie to, czego naprawdę chcą. 169 00:07:57,150 --> 00:07:59,920 Ale okazuje się, że nawet jedne nad wyborem typu tutaj. 170 00:07:59,920 --> 00:08:03,400 >> W typowej bazy danych SQL, ty coś nazywamy polem char 171 00:08:03,400 --> 00:08:07,505 a także varchar, V-A-R, dla zmiennego pola char. 172 00:08:07,505 --> 00:08:08,630 A różnica jest następująca. 173 00:08:08,630 --> 00:08:12,400 Pole char, to projektant, trzeba określić z wyprzedzeniem 174 00:08:12,400 --> 00:08:14,900 Dokładna długość pola. 175 00:08:14,900 --> 00:08:20,530 Więc może imię jak 20 czuje rodzaju bezpieczne. 176 00:08:20,530 --> 00:08:23,950 Może trzeba zrobić kilka googling do zobaczyć, czy to wystarczy faktycznie bezpieczne. 177 00:08:23,950 --> 00:08:26,910 Jest to prawdopodobnie nazwa z 21 znaków, ale na razie załóżmy, że 20 178 00:08:26,910 --> 00:08:27,620 jest bezpieczny. 179 00:08:27,620 --> 00:08:30,070 >> Pole char sugerowałoby w bazie danych, które Cię 180 00:08:30,070 --> 00:08:33,289 są za pomocą 20 i zawsze 20 znaków. 181 00:08:33,289 --> 00:08:37,419 Teraz, jeśli to tylko D-A-V-I-D, 15 osób są tylko będzie puste znaki, 182 00:08:37,419 --> 00:08:40,450 ale nadal używasz wszystkie 20 bajtów. 183 00:08:40,450 --> 00:08:46,302 Pole VARCHAR Natomiast oznacza Łańcuch powinien mieć maksymalnie 20 znaków 184 00:08:46,302 --> 00:08:48,260 ale jeśli to tylko pięć, masz zamiar używać tylko 185 00:08:48,260 --> 00:08:51,270 pięć, a może sześć dla Szczególna wartość na końcu, 186 00:08:51,270 --> 00:08:54,980 jak ten, który omówiliśmy 0 oznacza koniec znaku 187 00:08:54,980 --> 00:08:56,790 Kolejność, w pamięci. 188 00:08:56,790 --> 00:08:59,950 >> Więc kiedy myślisz można wybrać char 189 00:08:59,950 --> 00:09:05,240 kontra varchar, zważywszy, że kompromis? 190 00:09:05,240 --> 00:09:09,321 Char używa tyle znaków, varchar wykorzystuje nie więcej niż tyle znaków. 191 00:09:09,321 --> 00:09:10,196 PUBLICZNOŚCI: [INAUDIBLE] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID MALAN: OK, gdy wiesz, że Długość łańcucha dość przekonujące 194 00:09:16,900 --> 00:09:19,316 po prostu użyć char, bo jeśli wiesz, po prostu umieścić go w dół. 195 00:09:19,316 --> 00:09:23,390 A może to prawda na zamek błyskawiczny Kod, w Stanach Zjednoczonych, co najmniej 02138, 196 00:09:23,390 --> 00:09:26,660 to zawsze będzie pięć Znaki czasu dodania myślnika cztery. 197 00:09:26,660 --> 00:09:29,750 Ale może masz jakieś wartości które zawsze wiesz długość. 198 00:09:29,750 --> 00:09:32,310 A może symbole państwowe, jak NY New York, 199 00:09:32,310 --> 00:09:33,811 i MA w stanie Massachusetts w USA. 200 00:09:33,811 --> 00:09:36,560 Może masz jakieś sytuacje gdzie jest to całkowicie uzasadnione, 201 00:09:36,560 --> 00:09:39,520 ale w tym logiki, dlaczego nawet overthinking to? 202 00:09:39,520 --> 00:09:41,800 Dlaczego nie możemy po prostu użyć varchar a wtedy po prostu 203 00:09:41,800 --> 00:09:46,730 zawsze używać dwóch znaków mimo, lub zawsze używać pięć znaków tak? 204 00:09:46,730 --> 00:09:50,300 Dlaczego nie po prostu zapisać na varchar Wszystko przez tą logiką? 205 00:09:50,300 --> 00:09:51,677 Musi być jakiś haczyk. 206 00:09:51,677 --> 00:09:52,552 PUBLICZNOŚCI: [INAUDIBLE] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID MALAN: Could napisać coś złego. 209 00:09:56,660 --> 00:09:58,090 Tak to prawda. 210 00:09:58,090 --> 00:10:01,030 Ale nawet wtedy nie można używać więcej pamięci, niż przeznaczyć. 211 00:10:01,030 --> 00:10:03,340 Mam jeszcze ostateczna powiedzieć, na całej długości, 212 00:10:03,340 --> 00:10:06,780 więc nie mogą przypadkowo dokonać że błąd, ale to dobry pomysł. 213 00:10:06,780 --> 00:10:10,510 To jest bardziej subtelny, ale to bardzo pokrewne do naszej dyskusji, właściwie tablic 214 00:10:10,510 --> 00:10:12,390 i połączone list wcześniej. 215 00:10:12,390 --> 00:10:16,290 >> Okazuje się, że w bazie danych, o ile wie, że wszystkie wartości są 216 00:10:16,290 --> 00:10:19,250 o stałej długości, nawet jeśli niektóre z tych wartości są puste, 217 00:10:19,250 --> 00:10:22,484 rodzaj estetycznie puste, D-A-V-I-D i 15 półwykrojów 218 00:10:22,484 --> 00:10:24,650 Okazuje się, że jeśli każdy Pole to jest tej samej długości, 219 00:10:24,650 --> 00:10:28,670 podobnie tablicy miał wszystkie jego rzeczy z powrotem do tyłu z powrotem do tyłu, tak aby 220 00:10:28,670 --> 00:10:33,480 można po prostu Plus 1 dostać się do następnego wartość, sam pomysł w tabeli bazy danych. 221 00:10:33,480 --> 00:10:37,550 Jeśli cały swój charakter łańcuchy są tej samej długości, 222 00:10:37,550 --> 00:10:39,390 masz co się nazywa dostępie swobodnym. 223 00:10:39,390 --> 00:10:41,850 Jeśli wszystkie struny są Długość 20, to nie tylko 224 00:10:41,850 --> 00:10:45,230 zrobić Plus 1 po prostu zrobić Plus 20 plus 20 plus 20 plus 20, 225 00:10:45,230 --> 00:10:48,775 i można bardzo szybko przewijać lub przeszukiwać wszystkie swoje dane. 226 00:10:48,775 --> 00:10:54,420 >> Zmiennego pola char Natomiast nie zawsze mają 20 znaków. 227 00:10:54,420 --> 00:10:58,000 To może mieć 20, a następnie 15 i 19, a następnie 10 228 00:10:58,000 --> 00:11:00,720 a więc jeśli chcesz szukać przez niego, nie można ślepo 229 00:11:00,720 --> 00:11:03,050 dodać 20 bajtów, aby dostać się do następnego. 230 00:11:03,050 --> 00:11:07,280 Dosłownie trzeba przeszukiwać ponieważ krawędź struktury danych, 231 00:11:07,280 --> 00:11:08,340 jeśli chcesz, jest nierówny. 232 00:11:08,340 --> 00:11:11,480 To niby idzie i obecnie opiera się od rzeczywistej długości łańcucha. 233 00:11:11,480 --> 00:11:14,460 Więc jeśli znasz długości, a Kareem mówi użyć pola char, 234 00:11:14,460 --> 00:11:16,460 dlatego, że zyskasz Efektywność jest 235 00:11:16,460 --> 00:11:19,170 możliwość przeszukiwania przez niego szybciej jeśli szukasz danych, 236 00:11:19,170 --> 00:11:20,550 inaczej użyć zmiennej. 237 00:11:20,550 --> 00:11:24,450 >> Niestety, nie mam dobrej odpowiedzi jak długo nazwa powinna być 238 00:11:24,450 --> 00:11:26,360 ale na coś takiego nazwę, powiedziałbym, 239 00:11:26,360 --> 00:11:28,470 varchar jest powszechne ponieważ nie będzie 240 00:11:28,470 --> 00:11:30,430 być stałą długość dla każdego. 241 00:11:30,430 --> 00:11:33,650 20, nie wiem, 20 czuje się trochę ciasno. 242 00:11:33,650 --> 00:11:36,460 Powiedzmy, 50, 50. 243 00:11:36,460 --> 00:11:39,210 Tak naprawdę nie kosztują, że dużo więcej do powiedzenia na 50 zamiast 40, 244 00:11:39,210 --> 00:11:41,260 ale w pewnym momencie trzeba aby nawiązać połączenie wyroku. 245 00:11:41,260 --> 00:11:43,090 >> Bardzo często, mówiąc, dla [? historyczna?] 246 00:11:43,090 --> 00:11:47,670 przyczyny, mimo że jest nadmierne, to znaczy 255, ponieważ jakiś czas temu, 247 00:11:47,670 --> 00:11:51,440 w popularnych systemów baz danych, takich jak MySQL, darmowe narzędzie open source 248 00:11:51,440 --> 00:11:53,790 że wiele firm Nawet jak Facebook używany, 249 00:11:53,790 --> 00:11:56,654 był to maksymalny domyślny więc ludzie po prostu poszedł z nim. 250 00:11:56,654 --> 00:11:59,070 Więc nie nierozsądne, ale będziesz użyć trochę więcej intuicji 251 00:11:59,070 --> 00:12:02,970 i powiedzieć, na pewno 50, to prawdopodobnie nieco nadmierne. 252 00:12:02,970 --> 00:12:05,720 >> Płeć, lubię wyliczenia, a więc możemy w związku z tym 253 00:12:05,720 --> 00:12:08,760 wyliczyć męskiej lub żeńskiej, czy może bardziej efektywnie, 254 00:12:08,760 --> 00:12:13,420 m lub f lub innego symboliką, ale enum czuje się dobrym wyborem tam. 255 00:12:13,420 --> 00:12:16,740 Żeby było jasne, płeć może być tylko varchar, 256 00:12:16,740 --> 00:12:19,090 i mogliśmy po prostu wszystko zgadzają się mili ludzie, 257 00:12:19,090 --> 00:12:21,010 zawsze umieścić te same wartości istnieje. 258 00:12:21,010 --> 00:12:22,720 Mężczyzna czy kobieta lub cokolwiek. 259 00:12:22,720 --> 00:12:27,800 >> Ale problem jest więc, że mogliśmy pomyłki, gdyż [INAUDIBLE] zaproponował 260 00:12:27,800 --> 00:12:29,140 wcześniej w innym kontekście. 261 00:12:29,140 --> 00:12:32,780 Jeśli popełnisz błąd, możemy uzyskać nieprawidłowe wartości w naszej bazie. 262 00:12:32,780 --> 00:12:36,320 Więc co jest miłe o bazach jak Oracle i MySQL i innych, 263 00:12:36,320 --> 00:12:39,280 jest to, że masz ten ostatni Warstwa obrony, gdzie 264 00:12:39,280 --> 00:12:43,010 administrator DBA, bazy danych, kto projektuje tę tabelę jak my 265 00:12:43,010 --> 00:12:46,440 Są werbalnie, mogłaby na miejsce wyliczenia, że 266 00:12:46,440 --> 00:12:51,250 chroni przed że określając mężczyzna, kobieta, i tak nikt nie 267 00:12:51,250 --> 00:12:54,230 jeszcze żaden programista może przypadkowo wstawić dowolną inną wartość. 268 00:12:54,230 --> 00:12:55,480 Tak więc będzie to dobra rzecz. 269 00:12:55,480 --> 00:12:56,660 Jest to cecha. 270 00:12:56,660 --> 00:13:00,760 >> Więc identyfikator, zakładając numeryczny identyfikator go, Prawdopodobnie powinno być dodatnia. 271 00:13:00,760 --> 00:13:04,380 I czasami mają okazją do omówienia długość. 272 00:13:04,380 --> 00:13:06,830 Nie będzie zazwyczaj określić numer tutaj 273 00:13:06,830 --> 00:13:11,310 byś zamiast określać jest to int, int lub duże, 274 00:13:11,310 --> 00:13:12,980 ponieważ są one zazwyczaj nazywa. 275 00:13:12,980 --> 00:13:18,840 Typowo jednak, liczba całkowita będzie, powiedzmy, 4 bajty. 276 00:13:18,840 --> 00:13:23,694 A jeśli to 4 bajty, to ile bitów? 277 00:13:23,694 --> 00:13:24,630 >> PUBLICZNOŚCI: [INAUDIBLE] 278 00:13:24,630 --> 00:13:26,610 >> DAVID MALAN: 32 bity. 279 00:13:26,610 --> 00:13:30,270 Więc ilu użytkowników możemy mieć w Nasza baza danych, jeśli wszystkie one mają identyfikator 280 00:13:30,270 --> 00:13:33,320 i ten identyfikator musi być unikatowa? 281 00:13:33,320 --> 00:13:36,780 32 bitów oznacza, że ​​mamy wzory jednego, dwóch, trzech, czterech, five-- 282 00:13:36,780 --> 00:13:41,000 tak jak wiele różnych wzorów zer a te można mieć, jeśli istnieją 32? 283 00:13:41,000 --> 00:13:43,235 To samo, co pytając co dwa do 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 To duża liczba, która Nie mogę się dość dobrze, 286 00:13:48,430 --> 00:13:50,270 ale wiem, że jest to około 4 mld USD. 287 00:13:50,270 --> 00:13:53,970 Więc to oznacza, że ​​tabela bazy danych może cztery miliardy użytkowników i to wszystko. 288 00:13:53,970 --> 00:13:56,410 >> Więc jest to ciekawe Konstrukcja implikacji. 289 00:13:56,410 --> 00:14:00,840 Przyzwoity liczba firm zdecydowali, może nie tyle 290 00:14:00,840 --> 00:14:04,860 ich tabeli użytkowników, ponieważ mając 4 miliardy użytkowników jest rzadkim problemem. 291 00:14:04,860 --> 00:14:08,410 Jest to coś w rodzaju Facebooka stylu Problem nie jest typowym problemem firmy. 292 00:14:08,410 --> 00:14:12,670 Ale może, jeśli masz dzienników transakcji lub jakiś rodzaj danych, które stale 293 00:14:12,670 --> 00:14:15,610 zostanie zapisana w bazie danych które mogłyby mieć absolutnie miliardy 294 00:14:15,610 --> 00:14:18,900 i miliardy wierszy i korzystania z całkowitą dla niego, 295 00:14:18,900 --> 00:14:22,750 co się stało jak najszybciej można dostać się do wiersza numer 4 mld 296 00:14:22,750 --> 00:14:26,210 a następnie spróbuj wstawić 4000000000-te i 1, że tak powiem? 297 00:14:26,210 --> 00:14:29,610 Jestem upraszczając nieco liczb. 298 00:14:29,610 --> 00:14:33,740 >> Można cofać, to znaczy ci muszą obsługiwać go jakoś. 299 00:14:33,740 --> 00:14:37,910 A co komputer będzie zazwyczaj zrobić, myśleć o tym nawet z rana, 300 00:14:37,910 --> 00:14:42,430 jeśli mają wartość 4-bitowy jak 1, 1, 1, 1, które 301 00:14:42,430 --> 00:14:44,920 po prostu związać rano razem po południu, co 302 00:14:44,920 --> 00:14:48,369 liczba ta ma reprezentować w systemie binarnym? 303 00:14:48,369 --> 00:14:49,410 OK, zrobimy to łatwiejsze. 304 00:14:49,410 --> 00:14:53,310 Co oznacza ten numer reprezentacji w systemie binarnym? 305 00:14:53,310 --> 00:14:56,794 OK, zrobimy to łatwiejsze, co ma to oznaczać w systemie binarnym? 306 00:14:56,794 --> 00:14:57,460 PUBLICZNOŚCI: Trzy. 307 00:14:57,460 --> 00:14:59,670 DAVID MALAN: Trzy, ponieważ mamy te column-- 308 00:14:59,670 --> 00:15:00,450 [ŚMIECH] 309 00:15:00,450 --> 00:15:01,350 Uff! 310 00:15:01,350 --> 00:15:03,980 Mieliśmy kolumnę jedynek a kolumna dwójki. 311 00:15:03,980 --> 00:15:07,250 Więc załóżmy, że rzeczywiście nasze [? bramkowe?] nie 32 bity, 312 00:15:07,250 --> 00:15:13,440 ale to były dwa bity, możemy liczyć od liczby 0, 1, 2, 3 użytkownika 313 00:15:13,440 --> 00:15:18,040 a następnie jesteśmy rodzajem z powrotem do użytkownika 00 ponownie. 314 00:15:18,040 --> 00:15:19,739 Więc to, co zazwyczaj dzieje. 315 00:15:19,739 --> 00:15:22,780 Jeśli kiedykolwiek usłyszał wyrażenie-- Prawdopodobnie nie, ale jeśli have-- 316 00:15:22,780 --> 00:15:26,500 całkowitą przepełnienie, gdzie utrzymać przerzucanie wszystkich bitów 317 00:15:26,500 --> 00:15:29,640 być jak największej wartości, a następnie jesteś poza bitów, 318 00:15:29,640 --> 00:15:30,850 co się zwykle dzieje? 319 00:15:30,850 --> 00:15:32,280 Dlaczego mówię 00? 320 00:15:32,280 --> 00:15:33,220 Cóż, to jest trzy. 321 00:15:33,220 --> 00:15:34,230 Jak mogę reprezentować 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Jak mogę reprezentować do numeru 4 w binarnym? 324 00:15:38,915 --> 00:15:39,790 PUBLICZNOŚCI: [INAUDIBLE] 325 00:15:39,790 --> 00:15:41,780 DAVID MALAN: jedno- tak, nie mów, 100 per se, 326 00:15:41,780 --> 00:15:44,190 bo ma niewłaściwy konotacji, ale 1-0-0. 327 00:15:44,190 --> 00:15:48,920 Tak, że to rzeczywiście numer 1-0-0 poprawne, ale jeśli masz tylko dwa bity, 328 00:15:48,920 --> 00:15:50,820 co ty naprawdę zrobić? 329 00:15:50,820 --> 00:15:53,219 Pan przewrócił się na 00. 330 00:15:53,219 --> 00:15:54,760 I rzeczywiście, to co by się stało. 331 00:15:54,760 --> 00:15:56,884 Faktycznie, można pomyśleć o tym bardziej swojsko. 332 00:15:56,884 --> 00:15:59,350 Jeśli pamiętacie, co, 16 lat temu, świat 333 00:15:59,350 --> 00:16:03,380 miała kończą się z chwilą problem Y2K stało. 334 00:16:03,380 --> 00:16:04,330 Dlaczego? 335 00:16:04,330 --> 00:16:08,170 Oraz większość komputerów, na rozsądne decyzje, 336 00:16:08,170 --> 00:16:15,320 zostały przechowywania numerów, takich jak osoby rok 1975 lub 1999 roku 337 00:16:15,320 --> 00:16:19,010 używając tylko dwóch cyfr w pamięci komputera. 338 00:16:19,010 --> 00:16:21,950 Zatem, oczywiście, co się dzieje kiedy dojdziesz do roku 2000, 339 00:16:21,950 --> 00:16:25,790 udać się do tego, a raczej tak. 340 00:16:25,790 --> 00:16:30,120 Więc idziesz do 2000 roku, ale jeśli używasz tylko dwóch cyfr to wygląda 341 00:16:30,120 --> 00:16:32,660 podobnie jak w roku 00 i Więc już przewrócił. 342 00:16:32,660 --> 00:16:36,820 A to dlatego wiele systemów musiały być aktualizowane w czasie. 343 00:16:36,820 --> 00:16:42,500 >> Więc z tym powiedział, firmy takie jak Facebook rozbieg przed tym. 344 00:16:42,500 --> 00:16:46,147 Tak więc jedynym sposobem, aby poradzić sobie z Sytuacja, szczerze mówiąc, jest to przewidzieć. 345 00:16:46,147 --> 00:16:47,980 Lub najczystszym sposobem obsłużyć tę sytuację 346 00:16:47,980 --> 00:16:50,330 jest przewidywanie tego, więc nie musiał dokonać zmiany później. 347 00:16:50,330 --> 00:16:51,970 Więc zamiast 8 bajtów, wiesz co? 348 00:16:51,970 --> 00:16:54,261 Mam zamiar być myślących tutaj, nawet jeśli jest to 349 00:16:54,261 --> 00:16:56,760 trochę optymistą, że będziemy mieć 4 miliardy 350 00:16:56,760 --> 00:16:58,850 oraz 1 użytkowników na naszej stronie internetowej. 351 00:16:58,850 --> 00:17:01,790 Ale niech po prostu użyć 8 bajtów lub 64 bitów, które zwykle byłyby 352 00:17:01,790 --> 00:17:05,640 nazywa dużą liczbę całkowitą, bardzo techniczny. 353 00:17:05,640 --> 00:17:10,280 A to po prostu oznacza, że ​​można mieć jeszcze więcej cyfr numeru. 354 00:17:10,280 --> 00:17:12,599 Ale jest to ważny decyzja projektowa, 355 00:17:12,599 --> 00:17:16,400 bo jeśli wybrać numer ma zbyt mało bitów wyrazistości 356 00:17:16,400 --> 00:17:19,089 można rzeczywiście stworzyć błąd w oprogramowaniu. 357 00:17:19,089 --> 00:17:21,750 >> W porządku, więc niech to zakończyć z e-mail i adres pocztowy. 358 00:17:21,750 --> 00:17:26,369 Dlatego e-mail, jak długo powinien adres e-mail będzie? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Naprawdę nie mam pojęcia, ale to Prawdopodobnie coś takiego, 361 00:17:29,220 --> 00:17:32,261 bo inaczej nikt nie będzie napisać do ciebie, jeśli robi się zbyt długo, więc 50, 362 00:17:32,261 --> 00:17:33,360 chodźmy z nim teraz. 363 00:17:33,360 --> 00:17:35,770 adres pocztowy, jak długo powinien być? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 PUBLICZNOŚCI: [INAUDIBLE] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID MALAN: Nie tylko kod pocztowy, choć. 368 00:17:43,890 --> 00:17:45,720 adres pocztowy, słyszałem. 369 00:17:45,720 --> 00:17:50,720 Tak to jest jak 1 Brattle Square przecinek, Cambridge Mass., przecinek, 02138. 370 00:17:50,720 --> 00:17:53,860 I rzeczywiście, niech mi tylko wyciągnąć się trochę arkuszu tutaj. 371 00:17:53,860 --> 00:17:56,510 To czuje się jak to jest stracona szansa. 372 00:17:56,510 --> 00:18:01,480 Jeśli mamy 1 Brattle Square, przecinek, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Czuję, że możemy zrobić lepiej niż tylko adres pocztowy. 374 00:18:04,510 --> 00:18:07,100 Dlaczego nie wybuchnie to trochę? 375 00:18:07,100 --> 00:18:08,030 Co ja zmierzam? 376 00:18:08,030 --> 00:18:10,970 Co powinniśmy zamiast tego tutaj dla naszych wierszy, może? 377 00:18:10,970 --> 00:18:12,260 >> PUBLICZNOŚCI: [INAUDIBLE] 378 00:18:12,260 --> 00:18:17,579 >> DAVID MALAN: Tak, tak, niech nazwać street_number, 379 00:18:17,579 --> 00:18:20,620 oraz podkreślenia jest tylko wspólna sposobem posiadania co wygląda jak przestrzeń, 380 00:18:20,620 --> 00:18:22,360 ale to nie jest, faktycznie. 381 00:18:22,360 --> 00:18:26,240 Street, a następnie city-- przykro? 382 00:18:26,240 --> 00:18:28,440 >> PUBLICZNOŚCI: [INAUDIBLE] 383 00:18:28,440 --> 00:18:29,690 DAVID MALAN: Mogliśmy zrobić. 384 00:18:29,690 --> 00:18:30,702 Linia jedna, druga linia. 385 00:18:30,702 --> 00:18:32,410 Dlaczego nie zachowa to proste teraz, 386 00:18:32,410 --> 00:18:34,840 ale to absolutnie akceptowalną decyzją. 387 00:18:34,840 --> 00:18:38,180 A potem stan, a następnie niech być trochę US-centric teraz 388 00:18:38,180 --> 00:18:42,040 i po prostu zrobić, kodu pocztowego, tylko dlatego, będzie to prowadzić do interesującej pomyłkę 389 00:18:42,040 --> 00:18:43,090 lub problem. 390 00:18:43,090 --> 00:18:44,655 Więc przypuszczam, że teraz nasz adres. 391 00:18:44,655 --> 00:18:47,280 To trochę bardziej irytujące, że mamy te wszystkie kolejne pola, 392 00:18:47,280 --> 00:18:49,200 ale teraz możemy oznaczyć rzeczy trochę lepiej. 393 00:18:49,200 --> 00:18:53,210 >> Numer Więc teraz pewnie ulicy nie powinno być znak, powinno? 394 00:18:53,210 --> 00:18:54,835 Jaka powinna być? 395 00:18:54,835 --> 00:18:55,710 PUBLICZNOŚCI: [INAUDIBLE] 396 00:18:55,710 --> 00:18:57,835 DAVID MALAN: Być może, wiele jak ponownie liczbą całkowitą? 397 00:18:57,835 --> 00:19:00,170 Dużą liczbą całkowitą? 398 00:19:00,170 --> 00:19:02,170 Prawdopodobnie nie żyje w 4 mld Main Street 399 00:19:02,170 --> 00:19:03,490 albo coś takiego szału. 400 00:19:03,490 --> 00:19:06,850 Więc prawdopodobnie jest liczbą całkowitą porządku, ale ma nikogo 401 00:19:06,850 --> 00:19:13,880 kiedykolwiek żył pod adresem jak 1A Brattle Square, lub 1 i 1/2? 402 00:19:13,880 --> 00:19:17,030 Te rzeczy istnieją, niestety, nawet jeśli nie mieszkam tam, 403 00:19:17,030 --> 00:19:21,240 są te anomalie jak apartamentami 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Więc wiesz co, my prawdopodobnie nie powinien iść z liczby całkowitej, 405 00:19:24,260 --> 00:19:27,440 w przeciwnym razie będziemy stracić część sprzedaży. 406 00:19:27,440 --> 00:19:29,920 >> Pole Char, może być? 407 00:19:29,920 --> 00:19:30,870 Nie wiem, jak długo. 408 00:19:30,870 --> 00:19:33,370 Prawdopodobnie nie będzie tak długo, więc 10 lub coś. 409 00:19:33,370 --> 00:19:34,950 Nikt nie zamierza pisać dłuższy liczba, być może. 410 00:19:34,950 --> 00:19:37,070 Ale znowu, powinniśmy chyba dać więcej myśli do tego. 411 00:19:37,070 --> 00:19:39,900 Może google, zrobić rozeznanie, ale pójdziemy z naszych wnętrzności teraz. 412 00:19:39,900 --> 00:19:44,565 Ulice, char, 50, nie wiem. 413 00:19:44,565 --> 00:19:46,940 W pewnym momencie, nikt nie będzie pisanie na kopercie, 414 00:19:46,940 --> 00:19:49,350 też, więc nie ma chyba niektóre górne granice tam. 415 00:19:49,350 --> 00:19:54,200 Miasto, ten sam, na pewno, tak char 50. 416 00:19:54,200 --> 00:19:59,120 >> Państwo może być US-centric teraz. 417 00:19:59,120 --> 00:20:01,850 Więc może to być lista, tak miły zaproszenia wyroku, państwa. 418 00:20:01,850 --> 00:20:04,000 To może być jak dwa znaki. 419 00:20:04,000 --> 00:20:06,140 Tak naprawdę, być może, I powtarzał char. 420 00:20:06,140 --> 00:20:09,420 Pewnie myśli varchar, tylko dla niektórych efektywności, 421 00:20:09,420 --> 00:20:12,240 ale wrócimy do że decyzja w jednej chwili. 422 00:20:12,240 --> 00:20:16,150 Może być char o długości 2 dla państwa. 423 00:20:16,150 --> 00:20:20,670 Jeśli w Stanach Zjednoczonych mają, jak MA, Massachusetts, Nowy Jork, Nowy Jork, New Jersey, New 424 00:20:20,670 --> 00:20:22,100 Jersey, i tak dalej. 425 00:20:22,100 --> 00:20:23,630 Więc to może być ustalona na tym. 426 00:20:23,630 --> 00:20:25,900 DC Waszyngtonie. 427 00:20:25,900 --> 00:20:29,915 >> Ale myślę, Olivier, ty zaproponował inne podejście. 428 00:20:29,915 --> 00:20:30,790 PUBLICZNOŚCI: [INAUDIBLE] 429 00:20:30,790 --> 00:20:33,670 DAVID MALAN: Tak, tak, to jest trochę irytujące, aby wpisać, 430 00:20:33,670 --> 00:20:37,890 ale enum może więcej sensu, Ponieważ ten sposób, przynajmniej w USA 431 00:20:37,890 --> 00:20:41,320 można wyliczyć, jeśli mozolnie, ale to zrobić tylko raz w bazie danych 432 00:20:41,320 --> 00:20:47,480 i nigdy nie trzeba myśleć o Opisz wszystkie kody dwa 50-znakowe. 433 00:20:47,480 --> 00:20:48,660 Więc chciałbym enum. 434 00:20:48,660 --> 00:20:51,720 Trzymajmy się, że nie, ponieważ To rodzaj wymusza więcej dyscypliny. 435 00:20:51,720 --> 00:20:53,620 A następnie kod pocztowy? 436 00:20:53,620 --> 00:20:55,306 Myślę, że Andrew miał myśli na ten temat 437 00:20:55,306 --> 00:20:56,180 PUBLICZNOŚCI: [INAUDIBLE] 438 00:20:56,180 --> 00:20:57,240 DAVID MALAN: Tak, pięć lub dziewięć. 439 00:20:57,240 --> 00:20:58,323 Niech po prostu keep it simple. 440 00:20:58,323 --> 00:20:59,380 Wystarczy zrobić pięć do teraz. 441 00:20:59,380 --> 00:21:03,070 Ale może po prostu mogłem zrobić całkowitą, prawda? 442 00:21:03,070 --> 00:21:08,750 Mógłbym, ale wiesz co zrobiłem ten błąd raz, w pewnym sensie. 443 00:21:08,750 --> 00:21:13,110 Wiele lat temu, byłem migracji z Microsoft Outlook do Gmail 444 00:21:13,110 --> 00:21:18,640 i Outlook ma sposób eksportowania wszystkie kontakty jako plik Excel, 445 00:21:18,640 --> 00:21:21,280 plik CSV, oddzielonych przecinkami pliku wartości. 446 00:21:21,280 --> 00:21:23,950 I popełnił błąd, ja myśleć o podwójne kliknięcie, 447 00:21:23,950 --> 00:21:27,380 raz Pobrałem wywóz, upewnij się, że wyglądało to jak się spodziewałem. 448 00:21:27,380 --> 00:21:31,320 Muszę uderzyć Zapisz lub pozwolić auto-save kopa albo coś. 449 00:21:31,320 --> 00:21:35,100 Bo kiedy następnie importowane go do Gmaila, to wszystko działało. 450 00:21:35,100 --> 00:21:39,910 Ale przez lata, do dnia dzisiejszego, a Zrobiłem to pięć lat, 10 lat temu, 451 00:21:39,910 --> 00:21:44,380 Ja wciąż znalezieniem przyjaciół, którzy mają Adresy, które wyglądają następująco. 452 00:21:44,380 --> 00:21:45,700 Czemu? 453 00:21:45,700 --> 00:21:47,900 >> PUBLICZNOŚCI: [INAUDIBLE] 454 00:21:47,900 --> 00:21:50,650 >> DAVID MALAN: Zajęło przycisk 0, a raczej to, 455 00:21:50,650 --> 00:21:53,810 wziął cały kod pocztowy jako liczbą, a więc jest to 456 00:21:53,810 --> 00:21:56,590 wiodącym 0, co oznacza, to nie ma znaczenia. 457 00:21:56,590 --> 00:21:59,470 I tak 2138 wydaje się być mój kod pocztowy. 458 00:21:59,470 --> 00:22:07,100 A to, szczerze mówiąc, przykry Excel Funkcja czym myślę domyślnie 459 00:22:07,100 --> 00:22:10,980 nawet jeśli to ma po prostu być tekst, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 postanawia, pozwól mi być pomocny, i oh, widzę tylko liczby. 461 00:22:13,780 --> 00:22:15,290 Załóżmy, traktować je jako numery. 462 00:22:15,290 --> 00:22:16,790 I to obcina zera. 463 00:22:16,790 --> 00:22:19,165 >> Przysięgam na Boga, każda para miesięcy znajdę adres, 464 00:22:19,165 --> 00:22:22,300 iz jakimś OCD, wracam i dodać 0, chociaż nigdy 465 00:22:22,300 --> 00:22:23,700 wysyłać ludzi liter lub cokolwiek. 466 00:22:23,700 --> 00:22:25,510 Ale ja wciąż znalezienie resztki tego. 467 00:22:25,510 --> 00:22:28,820 Więc to znaczy, czy to dobry pomysł? 468 00:22:28,820 --> 00:22:31,610 OK, nie, ponieważ każdy w Massachusetts, w tym obszarze, 469 00:22:31,610 --> 00:22:33,270 będzie mieć wy je prowadzące. 470 00:22:33,270 --> 00:22:38,070 Więc chodźmy z podobnym char, prawdopodobnie pięć. 471 00:22:38,070 --> 00:22:41,450 >> I tu, uświadomiliśmy sobie, że przydałby enum i my 472 00:22:41,450 --> 00:22:44,600 mógłby wyliczyć 10000 Możliwe kody pocztowe, 473 00:22:44,600 --> 00:22:48,530 ale czuje się jak to jest prawdopodobnie przekraczania linii, jak, korzyści. 474 00:22:48,530 --> 00:22:51,350 Jeśli trzeba, że ​​wejście dużo danych do bazy danych 475 00:22:51,350 --> 00:22:52,940 chronić przed czymś. 476 00:22:52,940 --> 00:22:57,400 Więc char sprawę można wpisać w H-E-L-L-O jako swój kod pocztowy, 477 00:22:57,400 --> 00:22:59,180 co nie jest oczywiście numeryczne. 478 00:22:59,180 --> 00:23:01,680 Więc nie ma sposobu, w typowy bazy danych, 479 00:23:01,680 --> 00:23:05,561 określić tylko numeryczne i tylko pięć znaków, 480 00:23:05,561 --> 00:23:07,310 więc będziemy mieć to zrobić w kodzie. 481 00:23:07,310 --> 00:23:11,100 Mamy zamiar to zrobić w PHP, lub Java czy cokolwiek innego języka jesteśmy 482 00:23:11,100 --> 00:23:14,230 stosując na serwerze egzekwować tego rodzaju ograniczeń. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 W porządku, więc wszelkie pytania po prostu jeszcze? 485 00:23:18,322 --> 00:23:19,780 Zróbmy kolejny decyzji projektowych. 486 00:23:19,780 --> 00:23:22,500 Okazuje się, że ciebie również dostać się do wyboru, 487 00:23:22,500 --> 00:23:26,600 przy projektowaniu bazy danych SQL lub Typowe relacyjne database-- gdzie 488 00:23:26,600 --> 00:23:28,790 znowu, po prostu relacyjne Oznacza wierszy i kolumn, 489 00:23:28,790 --> 00:23:35,500 to w jaki sposób organizować swoje data-- i uświadomić sobie, że to, co oznacza to, 490 00:23:35,500 --> 00:23:37,740 Byłem mylące w że jestem drawing-- tego 491 00:23:37,740 --> 00:23:40,190 jest to, co nazywa się schemat w tabeli bazy danych. 492 00:23:40,190 --> 00:23:42,810 To jest jak specyfikacje dla table-- 493 00:23:42,810 --> 00:23:48,040 ale kiedy przychodzi czas faktycznie przechowywania danych, 494 00:23:48,040 --> 00:23:52,081 a my zrobimy to po prostu przykład tutaj. 495 00:23:52,081 --> 00:23:55,080 Zamierzam otworzyć Excel, ponieważ Excel da mi wiersze i kolumny. 496 00:23:55,080 --> 00:23:58,050 I to jest dokładnie to, co Oracle i MySQL i inne narzędzia będą mi dać. 497 00:23:58,050 --> 00:24:02,270 Więc jestem po prostu będzie używać że ze względu na dyskusji. 498 00:24:02,270 --> 00:24:05,250 Pozwólcie mi iść do przodu i otworzy się Przedstawiciel Dokument tutaj 499 00:24:05,250 --> 00:24:06,310 przybliżyć trochę. 500 00:24:06,310 --> 00:24:15,200 Tak na przykład, nasze nagłówki są teraz imię, nazwisko, płeć, ID, 501 00:24:15,200 --> 00:24:20,980 e-mail, numer, ulica, okrzyki. 502 00:24:20,980 --> 00:24:25,710 Ulica, miasto, województwo, tuż temat mieści się na ekranie. 503 00:24:25,710 --> 00:24:29,080 >> Więc co to oznacza to, że gdy użytkownik najpierw rejestruje na mojej stronie, 504 00:24:29,080 --> 00:24:32,880 to będzie coś podobnego David Malan, m, powiedzmy, 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, numer ulica będzie być jak 1 Brattle Square, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138, i tak dalej. 507 00:24:44,780 --> 00:24:48,290 Więc kiedy mówię, że relacyjna baza danych lub bazy danych SQL jest rzędy i kolumny, 508 00:24:48,290 --> 00:24:49,350 To znaczy. 509 00:24:49,350 --> 00:24:51,900 To rzeczywiste dane są przechowywane w wierszach i kolumnach. 510 00:24:51,900 --> 00:24:53,950 Jest to po prostu zbieg okoliczności, że mówiliśmy, 511 00:24:53,950 --> 00:24:56,033 a ja po prostu rysowania w wierszach i kolumnach. 512 00:24:56,033 --> 00:24:58,320 Jest to tylko schemat, nadrzędnym definicja. 513 00:24:58,320 --> 00:25:01,640 >> Więc z tych pól tutaj lub równoważnie, tam, 514 00:25:01,640 --> 00:25:06,270 które są pola, które naszym zdaniem Jestem prawdopodobnie wyszukiwać jeśli jestem użytkownikiem 515 00:25:06,270 --> 00:25:09,200 czy ja jestem administratorem bazy danych? 516 00:25:09,200 --> 00:25:12,426 Jak, co pól jestem rzeczywiście będzie wyszukiwać? 517 00:25:12,426 --> 00:25:13,830 >> PUBLICZNOŚCI: [INAUDIBLE] 518 00:25:13,830 --> 00:25:17,690 >> DAVID MALAN: nazwa, tak więc Podoba mi się fakt that-- tak, 519 00:25:17,690 --> 00:25:19,750 e-mail może być dość powszechne. 520 00:25:19,750 --> 00:25:21,440 Niestety, pan powiedział imię. 521 00:25:21,440 --> 00:25:24,030 Więc maybe-- i znowu jesteśmy rodzaj mówienia w sposób abstrakcyjny. 522 00:25:24,030 --> 00:25:25,988 Nie wiem dlaczego, że być wyszukiwania nazwy, 523 00:25:25,988 --> 00:25:29,340 ale czuje się uzasadnione, jeśli szukasz użytkownika. 524 00:25:29,340 --> 00:25:31,170 Może stwierdza, pamiętaj, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> I to jest śliskie stok, bo mogłem 527 00:25:36,160 --> 00:25:38,890 wymyślić scenariusz, w którym Może mój szef poprosił mnie, 528 00:25:38,890 --> 00:25:40,417 ilu ludzi mamy na naszej stronie? 529 00:25:40,417 --> 00:25:42,000 Ile kobiet mamy na naszej stronie? 530 00:25:42,000 --> 00:25:45,210 I tak, w tym miejscu, warto szukać w dziedzinie płci, też, 531 00:25:45,210 --> 00:25:45,940 i nic więcej. 532 00:25:45,940 --> 00:25:47,350 Więc nie jest to kompromis tutaj. 533 00:25:47,350 --> 00:25:49,180 Znowu, nie ma prawidłowa odpowiedź, ale nie 534 00:25:49,180 --> 00:25:53,760 Jest to cecha większości baz danych SQL znany jako indeksowania, przy czym 535 00:25:53,760 --> 00:25:56,100 Ci, projektant, The Administrator bazy danych, 536 00:25:56,100 --> 00:26:01,730 się zdecydować, które z wyprzedzeniem Pola oznaczone na bazie powinny zoptymalizować 537 00:26:01,730 --> 00:26:02,980 dla wyszukiwań. 538 00:26:02,980 --> 00:26:07,620 >> Można by powiedzieć, bardzo naiwnie, optymalizacji tego, że optymalizacja, optymalizacja tego, 539 00:26:07,620 --> 00:26:10,300 optymalizacji, że i to, a baza danych 540 00:26:10,300 --> 00:26:14,882 zrobić jakąś magiczną rzeczą pod kaptur, i coś zrobić w taki sposób, 541 00:26:14,882 --> 00:26:17,090 że następnym razem szukać na każdym z tych pól, 542 00:26:17,090 --> 00:26:18,400 będzie to, w rzeczywistości, być szybciej. 543 00:26:18,400 --> 00:26:19,110 To jest możliwe. 544 00:26:19,110 --> 00:26:20,530 To nie przekreśla się na zewnątrz. 545 00:26:20,530 --> 00:26:22,500 Ale musi być zapłacona cena. 546 00:26:22,500 --> 00:26:27,220 >> Jeśli naiwnie, lub zbyt entuzjastycznie powiedzmy, spis wszystkich tych dziedzinach, 547 00:26:27,220 --> 00:26:29,810 by tak rzec, aby je wszystkie efektywnego przeszukiwania, 548 00:26:29,810 --> 00:26:31,625 jaką cenę są prawdopodobnie płacić? 549 00:26:31,625 --> 00:26:32,500 PUBLICZNOŚCI: [INAUDIBLE] 550 00:26:32,500 --> 00:26:33,090 DAVID MALAN: Wydajność. 551 00:26:33,090 --> 00:26:33,798 Co masz na myśli? 552 00:26:33,798 --> 00:26:37,380 Również wydajność, przynajmniej w Kontekst Mam dyskusji, jest lepiej. 553 00:26:37,380 --> 00:26:38,830 To definicja indeksowania. 554 00:26:38,830 --> 00:26:41,180 To sprawi, że wyszukiwanie szybciej. 555 00:26:41,180 --> 00:26:43,366 Więc czas zmniejsza się, że tak powiem. 556 00:26:43,366 --> 00:26:44,240 PUBLICZNOŚCI: [INAUDIBLE] 557 00:26:44,240 --> 00:26:45,031 DAVID MALAN: Kosmos. 558 00:26:45,031 --> 00:26:46,520 Więc znowu, są częstym handlowej. 559 00:26:46,520 --> 00:26:50,820 Mogę przyspieszyć wyszukiwanie, ale to będzie kosztować więcej bajtów przestrzeni. 560 00:26:50,820 --> 00:26:51,610 Czemu? 561 00:26:51,610 --> 00:26:55,230 Cóż, domyślnie, jeśli mamy żadnego z Te czerwone gwiazdy, żaden z tych wskaźników, 562 00:26:55,230 --> 00:26:58,797 jak mówię, w jaki sposób szukać o nazwie w tej bazie danych? 563 00:26:58,797 --> 00:27:00,630 Warto więc zwrócić naszą Uwaga do tego przykładu. 564 00:27:00,630 --> 00:27:06,300 Jeśli mamy Dawida i Scully i Kareem i Arwa a inni w tych wierszach, 565 00:27:06,300 --> 00:27:06,910 na przykład. 566 00:27:06,910 --> 00:27:08,390 >> Więc zróbmy dokładnie to. 567 00:27:08,390 --> 00:27:13,990 Scully jest tutaj, a następnie mamy Kareem i ARWA, 568 00:27:13,990 --> 00:27:18,390 i wszyscy, jeśli nie mają indeks zdefiniowany, by tak rzec, 569 00:27:18,390 --> 00:27:20,160 najlepiej można zrobić, to przeszukiwanie liniowe. 570 00:27:20,160 --> 00:27:23,470 Jeśli szukasz ARWA, nie jesteśmy będzie mógł wskoczyć do niej 571 00:27:23,470 --> 00:27:24,140 szybko. 572 00:27:24,140 --> 00:27:26,556 Mamy zamiar rozpocząć szczyt i przejść całą drogę na dno, 573 00:27:26,556 --> 00:27:28,600 podobnie naszej pierwotnej Przykładem Mike Smith. 574 00:27:28,600 --> 00:27:33,470 >> Jeśli jednak mówię, hej, bazy danych, Indeks nazwa pierwszego pola, 575 00:27:33,470 --> 00:27:37,000 to będzie coś zrobić hodowcy i wspierać coś 576 00:27:37,000 --> 00:27:38,130 jak poszukiwania binarnego. 577 00:27:38,130 --> 00:27:39,820 To prawdopodobnie nie jest przeszukiwanie binarne per se. 578 00:27:39,820 --> 00:27:42,810 Bazy danych mają tendencję do używania innym Struktura danych o nazwie B-drzewa, 579 00:27:42,810 --> 00:27:46,540 Nie należy mylić z drzew binarnych, które po prostu zrobić to szybciej szukać 580 00:27:46,540 --> 00:27:48,500 coś logarytmicznej w przyrodzie. 581 00:27:48,500 --> 00:27:53,510 Ale cena, jaką płacisz budować, że Opcja, że ​​struktura danych w pamięci, 582 00:27:53,510 --> 00:27:54,570 Jest więcej bajtów. 583 00:27:54,570 --> 00:27:57,170 Więc może to potrwać kilka megabajtów, kilka gigabajtów, kto wie? 584 00:27:57,170 --> 00:27:58,410 To zależy od danych. 585 00:27:58,410 --> 00:28:02,640 >> Więc w pewnym momencie, musisz zdecydować, to chyba nie to częsty przypadek. 586 00:28:02,640 --> 00:28:06,000 Więc jakie są faktyczne wspólne przypadków, jeśli naprawdę miał do wyboru, 587 00:28:06,000 --> 00:28:10,080 jaki jest twój ulubiony pola może być? 588 00:28:10,080 --> 00:28:10,580 E-mail. 589 00:28:10,580 --> 00:28:14,400 I podoba mi wiadomość, ponieważ e-mail, Teoretycznie powinna być unikalna. 590 00:28:14,400 --> 00:28:17,650 I tak zazwyczaj, gdy wiesz, z góry, że jednym ze swoich dziedzin 591 00:28:17,650 --> 00:28:20,277 jest lub będzie wyjątkowy, że wydaje się być dobrym pola 592 00:28:20,277 --> 00:28:22,860 szukać dalej, ponieważ w ten sposób, podczas wyszukiwania na coś, 593 00:28:22,860 --> 00:28:26,194 masz zamiar wrócić do jednego lub zera odpowiedzi, a następnie gotowe. 594 00:28:26,194 --> 00:28:28,110 Nie trzeba, aby utrzymać szuka jeszcze innych. 595 00:28:28,110 --> 00:28:31,992 >> I tak w tym przypadku tutaj, e-mail, tak długo, jak nie można zarejestrować dwa razy 596 00:28:31,992 --> 00:28:33,450 z tego samego e-mail, jest dobry. 597 00:28:33,450 --> 00:28:36,710 ID definicji w informatyka świata, 598 00:28:36,710 --> 00:28:39,610 jeśli mówimy o Identyfikator, że lepiej być unikalne. 599 00:28:39,610 --> 00:28:42,970 To rodzaj konotacji dowodu osobistego lub identyfikatora. 600 00:28:42,970 --> 00:28:46,440 A reszta z nich może być, nazwijmy je miło bogatymi, 601 00:28:46,440 --> 00:28:47,860 ale naprawdę nie potrzeba. 602 00:28:47,860 --> 00:28:49,976 >> I tak w bazie danych, określić indeksy, 603 00:28:49,976 --> 00:28:51,350 ale można być jeszcze bardziej precyzyjne. 604 00:28:51,350 --> 00:28:56,060 Można powiedzieć, hej, bazy danych, upewnij się, że każdy identyfikator w tej tabeli jest unikatowy. 605 00:28:56,060 --> 00:28:59,330 Nawet nie pozwól programista przypadkowo umieścić w duplikatu email 606 00:28:59,330 --> 00:29:00,740 lub duplikat numeru identyfikacyjnego. 607 00:29:00,740 --> 00:29:03,140 Więc podobnie jak teksty stałe chronią nas Podobnie, 608 00:29:03,140 --> 00:29:04,881 mogą mieć te mechanizmy obronne niższego poziomu. 609 00:29:04,881 --> 00:29:07,130 I tak projekt bazy danych, w pewnym sensie jest to rodzaj zabawy, 610 00:29:07,130 --> 00:29:08,380 bo robisz to defensywnych. 611 00:29:08,380 --> 00:29:11,460 Możesz założyć, że rodzaj pracy okropne, straszne programistów 612 00:29:11,460 --> 00:29:15,550 i chcesz umieścić w tyle obronne jak można chronić swoje dane, 613 00:29:15,550 --> 00:29:18,940 ale jednocześnie chcesz aby pomóc im lepiej 614 00:29:18,940 --> 00:29:21,386 wybierając które Pola do optymalizacji. 615 00:29:21,386 --> 00:29:24,260 Nie można jednak muszą to zrobić w próżnia jak my niby jesteśmy. 616 00:29:24,260 --> 00:29:26,480 Musicie wiedzieć, jakie są Te wspólne przypadki bycia. 617 00:29:26,480 --> 00:29:29,397 Jeśli deweloperzy wykonawczych książkę adresową, 618 00:29:29,397 --> 00:29:32,230 można bardzo dobrze chcą, aby móc szukać na niemal każdej dziedzinie, 619 00:29:32,230 --> 00:29:33,830 prostu charakterem aplikacji. 620 00:29:33,830 --> 00:29:37,910 Więc może wydać że dodatkowa przestrzeń. 621 00:29:37,910 --> 00:29:39,090 >> Prawo, jakieś pytania? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Tak. 624 00:29:42,486 --> 00:29:43,470 >> PUBLICZNOŚCI: [INAUDIBLE] 625 00:29:43,470 --> 00:29:44,404 >> DAVID MALAN: Nie 626 00:29:44,404 --> 00:29:45,279 >> PUBLICZNOŚCI: [INAUDIBLE] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> DAVID MALAN: OK. 629 00:29:48,826 --> 00:29:49,701 >> PUBLICZNOŚCI: [INAUDIBLE] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID MALAN: Oh, więc Rozmawiamy w sposób 632 00:29:54,850 --> 00:29:57,940 teraz to zupełnie język agnostykiem. 633 00:29:57,940 --> 00:30:02,370 Więc mówimy teraz o relacyjnych baz danych, bardziej ogólnie, 634 00:30:02,370 --> 00:30:04,760 baz danych SQL lub bardziej ogólnie. 635 00:30:04,760 --> 00:30:06,870 >> PUBLICZNOŚCI: [INAUDIBLE] 636 00:30:06,870 --> 00:30:10,030 >> DAVID MALAN: Lepszym słowem w użyciu to może być używane przez każdego języka. 637 00:30:10,030 --> 00:30:15,280 Więc mogę napisać kod JavaScript, C kodu C ++ kod, kod Java, kod Ruby, 638 00:30:15,280 --> 00:30:19,010 z których wszystkie rozmawiać z baz danych i wykonywania zapytań. 639 00:30:19,010 --> 00:30:22,310 W rzeczywistości, to nie jest zły segue przykładowego zapytania. 640 00:30:22,310 --> 00:30:25,720 I znowu, nie zamierzamy wchodzić Java lub C ++ lub którykolwiek z tego więcej, 641 00:30:25,720 --> 00:30:29,420 ale w SQL, język, do którego trzymam odwołując się Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 Ta sama jest językiem programowania, ale to ma być wykorzystane do nie 643 00:30:32,790 --> 00:30:37,330 niespodzianka, skonstruowane zapytania zapytania. 644 00:30:37,330 --> 00:30:38,660 >> Mam tu na myśli to. 645 00:30:38,660 --> 00:30:41,190 Sposób, w jaki wybrać dane z bazy danych MySQL 646 00:30:41,190 --> 00:30:49,330 jest dosłownie wpisać w swoim programie coś jak select gwiazdy od użytkowników. 647 00:30:49,330 --> 00:30:52,200 Jestem zakładając, że tej tabeli, odtąd nazywany użytkowników. 648 00:30:52,200 --> 00:30:54,860 Mogę nazwać cokolwiek chcemy, ale że niby ma sens. 649 00:30:54,860 --> 00:30:57,240 A więc wybierz to bardzo Wspólne czasownik, jeśli ciebie 650 00:30:57,240 --> 00:30:59,290 będzie w SQL, które dosłownie robi. 651 00:30:59,290 --> 00:31:02,730 Co sądzisz gwiazdki oznacza w tym kontekście? 652 00:31:02,730 --> 00:31:04,410 >> PUBLICZNOŚCI: [INAUDIBLE] 653 00:31:04,410 --> 00:31:05,380 >> DAVID MALAN: Przepraszam? 654 00:31:05,380 --> 00:31:06,300 >> PUBLICZNOŚCI: [INAUDIBLE] 655 00:31:06,300 --> 00:31:09,580 >> DAVID MALAN: Nie jest wymagana, to szerszy zakres niż ta, faktycznie. 656 00:31:09,580 --> 00:31:11,700 To wieloznacznik. 657 00:31:11,700 --> 00:31:14,740 Gwiazda prawie zawsze oznacza coś, Oznacza to więc, w tym przypadku, 658 00:31:14,740 --> 00:31:16,510 wybrać wszystko z bazy danych. 659 00:31:16,510 --> 00:31:20,730 Więc kiedy mówię to, mam na myśli oddajcie mi każdą kolumnę 660 00:31:20,730 --> 00:31:22,440 z mojego stołu nazywa użytkowników. 661 00:31:22,440 --> 00:31:24,730 Więc daj mi zestaw wyników, jak to się nazywa. 662 00:31:24,730 --> 00:31:28,210 Innymi słowy, daj mi kopię tego arkusza kalkulacyjnego, co mi chodzi. 663 00:31:28,210 --> 00:31:34,890 >> Ale gdybym powiedział wybierz gwiazda z użytkownikami gdzie id jest równe 1, jak duża powinna 664 00:31:34,890 --> 00:31:36,640 mój zestaw wyników będzie potem? 665 00:31:36,640 --> 00:31:41,680 Lub równoważnie, ile wierszy powinno I być zwracane z bazy danych? 666 00:31:41,680 --> 00:31:45,860 Prawdopodobnie tylko jeden, jeśli mam rzeczywiście ID traktowane jako unikatowy identyfikator, 667 00:31:45,860 --> 00:31:50,710 David i jeśli ma to unikatowy identyfikator, ja powinien wrócić jeden i tylko jeden wiersz 668 00:31:50,710 --> 00:31:53,220 zawierający wszystkie informacje Dawida. 669 00:31:53,220 --> 00:31:56,390 Gdybym powiedział, gdzie ID równa się 99, powinienem wrócić, 670 00:31:56,390 --> 00:32:00,320 W tym kontekście, wiersze zerowe, co najmniej w danej chwili. 671 00:32:00,320 --> 00:32:03,620 >> Jednakże, jeśli naprawdę nie obchodzi o wszystkich tych informacji, 672 00:32:03,620 --> 00:32:06,970 Mogę tylko powiedzieć, skąd David żyć? 673 00:32:06,970 --> 00:32:10,860 Wybierz kod pocztowy z użytkowników, gdzie ID to 1. 674 00:32:10,860 --> 00:32:15,820 Pozwoli to wybrać tylko mnie zip Dawida Kod i nie całość tego wiersza. 675 00:32:15,820 --> 00:32:19,541 Dlaczego mogę to zrobić, zamiast zapytanie gwiazda, dzikie karty? 676 00:32:19,541 --> 00:32:21,950 >> PUBLICZNOŚCI: [INAUDIBLE] 677 00:32:21,950 --> 00:32:24,590 >> DAVID MALAN: Tak, może muszę go tylko. 678 00:32:24,590 --> 00:32:26,350 Tak więc wydajność jest jeszcze odpowiedź tutaj. 679 00:32:26,350 --> 00:32:28,540 Dlaczego prosić o więcej Informacje niż trzeba, 680 00:32:28,540 --> 00:32:32,020 bo nawet jeśli to wszystko prawda razem, trzeba jeszcze skopiować te dane, 681 00:32:32,020 --> 00:32:35,560 wydaje się, z bazy do programu jakoś, 682 00:32:35,560 --> 00:32:38,490 i to jest po prostu głupie, jeśli ciebie Wystarczy pięć z tych cyfr, 683 00:32:38,490 --> 00:32:40,340 nie całość rzędu. 684 00:32:40,340 --> 00:32:42,180 >> Więc jak mam wstawić użytkownika? 685 00:32:42,180 --> 00:32:44,780 Załóżmy, że użytkownik ma tylko rejestrowany po raz pierwszy. 686 00:32:44,780 --> 00:32:46,560 Składnia zazwyczaj wygląda następująco. 687 00:32:46,560 --> 00:32:52,700 Wstaw do użytkowników, a potem powie wartości, 688 00:32:52,700 --> 00:33:00,150 i wtedy powiedzielibyśmy wartości jak, powiedzmy, Lauren Scully, 689 00:33:00,150 --> 00:33:02,380 Nasz kamerzysta tutaj. 690 00:33:02,380 --> 00:33:04,390 A następnego pole jest płci. 691 00:33:04,390 --> 00:33:08,020 Więc mówimy cytat, koniec cytatu "F", to mamy identyfikator 692 00:33:08,020 --> 00:33:12,250 a ja zamierzam say-- niech udawać, że nie jest w rzeczywistości tutaj 693 00:33:12,250 --> 00:33:14,380 więc będziemy do tyłu w historii. 694 00:33:14,380 --> 00:33:16,530 Więc 2 będzie jej ID. 695 00:33:16,530 --> 00:33:19,130 A potem następne pole Oto jej e-mail. 696 00:33:19,130 --> 00:33:22,140 Więc to będzie jak Laura Scully i tak dalej, 697 00:33:22,140 --> 00:33:24,360 a my po prostu kropka kropka dot go stąd dalej. 698 00:33:24,360 --> 00:33:26,890 Teraz będzie trochę żmudne, ale zapytanie wkładka 699 00:33:26,890 --> 00:33:28,310 ostatecznie wyglądać. 700 00:33:28,310 --> 00:33:30,970 >> Jeśli chcę się pozbyć Scully, uh-oh, niech wyrejestrować 701 00:33:30,970 --> 00:33:37,420 jej, że jej usunięcie konta, usunąć z użytkownikami, gdzie ID równa 2, 702 00:33:37,420 --> 00:33:38,500 będzie pozbyć Scully. 703 00:33:38,500 --> 00:33:48,050 Albo mogę powiedzieć ustawić użytkowników aktualizacji, powiedzmy, co możemy zmienić? 704 00:33:48,050 --> 00:33:49,430 Załóżmy, że ona porusza. 705 00:33:49,430 --> 00:33:53,730 Ustaw suwak równa 021-- nope, to jej obecny zip. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Jedyny inny kod pocztowy Wiem, że na świecie. 708 00:33:56,320 --> 00:33:59,002 Tak, że nie zmieni Jej błyskawiczny code-- właściwie 709 00:33:59,002 --> 00:34:00,460 że nie zmieni swojego kodu pocztowego. 710 00:34:00,460 --> 00:34:02,170 >> Co ja zrobiłem? 711 00:34:02,170 --> 00:34:04,292 Mimo, że składnia jest prawdopodobnie nowa. 712 00:34:04,292 --> 00:34:05,302 >> PUBLICZNOŚCI: [INAUDIBLE] 713 00:34:05,302 --> 00:34:08,010 DAVID MALAN: Tak, przeprowadziłem wszystkich w Beverly Hills w Kalifornii. 714 00:34:08,010 --> 00:34:11,920 Więc rzeczywiście powinny powiedzieć, gdzie ID jest równy 2. 715 00:34:11,920 --> 00:34:12,820 I tak dalej. 716 00:34:12,820 --> 00:34:15,290 Więc SQL jest wszystko o nich rodzaje instrukcji. 717 00:34:15,290 --> 00:34:20,260 SELECT, INSERT, usuwać, aktualizować tych predykatach na koniec 718 00:34:20,260 --> 00:34:22,139 klauzule te, gdzie można tak powiedzieć. 719 00:34:22,139 --> 00:34:25,170 I jest o wiele więcej można zrobić, ale to tak naprawdę sprowadza się 720 00:34:25,170 --> 00:34:29,750 po prostu, jeśli arcanely, wyrażając co chcesz baza do zrobienia. 721 00:34:29,750 --> 00:34:31,580 >> A potem w bazie zorientuje się, kiedy 722 00:34:31,580 --> 00:34:35,630 Po włożeniu Lauren Scully Into the bazy danych, gdzie umieścić ją w pamięci 723 00:34:35,630 --> 00:34:38,230 tak, że możemy bardzo szybko uzyskać jej podstawie swojego adresu e-mail 724 00:34:38,230 --> 00:34:42,610 lub na podstawie jej numerem identyfikacyjnym lub tym podobne. 725 00:34:42,610 --> 00:34:43,391 Tak, Dan. 726 00:34:43,391 --> 00:34:44,266 PUBLICZNOŚCI: [INAUDIBLE] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID MALAN: Naprawdę dobre pytanie. 729 00:34:47,780 --> 00:34:50,370 Czy te skrypty zmienić Microsoft Access do bazy danych Oracle 730 00:34:50,370 --> 00:34:52,290 MySQL do PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 Krótka odpowiedź brzmi: to zależy. 732 00:34:53,790 --> 00:34:58,697 Teoretycznie jest bardzo istotny wspólny podzbiór SQL 733 00:34:58,697 --> 00:35:00,780 która jest wspólna dla wszystkich z tych realizacji. 734 00:35:00,780 --> 00:35:03,340 Jednak z różnych producentów posiada dodatkowe funkcje 735 00:35:03,340 --> 00:35:07,120 do swoich baz danych do robienia pewnych rzeczy poza zakres tych funkcji, 736 00:35:07,120 --> 00:35:08,720 które może, w rzeczywistości, złamania. 737 00:35:08,720 --> 00:35:11,210 >> Więc sposób programistów zabezpieczyć się przed tym, 738 00:35:11,210 --> 00:35:14,350 jest to, że zamiast pisania surowe kod SQL jak piszę tutaj 739 00:35:14,350 --> 00:35:19,460 że zamiast korzystać z biblioteki, wspólna biblioteka, która sama w sobie 740 00:35:19,460 --> 00:35:23,650 to rodzaj wyższego poziomu i abstrakty Odległość który produkt używasz. 741 00:35:23,650 --> 00:35:25,710 A to daje Funkcje i procedury 742 00:35:25,710 --> 00:35:28,810 zadzwonić, tak, że nigdy faktycznie zapisze surowego SQL. 743 00:35:28,810 --> 00:35:32,609 >> W teorii, to można zmienić Produkty z Oracle do Microsoft 744 00:35:32,609 --> 00:35:34,650 lub odwrotnie albo coś indziej, a dosłownie 745 00:35:34,650 --> 00:35:36,920 zmienić nic o kodzie. 746 00:35:36,920 --> 00:35:40,180 Rzeczywistość jednak jest taka, że ​​czasami zrezygnować cechy będące rezultatem. 747 00:35:40,180 --> 00:35:43,860 Można wybrali produkt, ponieważ to musi te funkcje wartości dodanej, 748 00:35:43,860 --> 00:35:46,610 i nie jesteś już teraz stosując je świadomie. 749 00:35:46,610 --> 00:35:51,630 >> I Anecdotally, większość firm tendencję nigdy nie odejść od swojej bazy. 750 00:35:51,630 --> 00:35:54,002 Tak więc, jest to miłe posiada funkcję, rzeczywistość 751 00:35:54,002 --> 00:35:55,960 to, że jeśli jesteś remonty baza danych, jesteś 752 00:35:55,960 --> 00:35:59,890 Prawdopodobnie co kiście innych zmian w każdym razie, że nie koniecznie 753 00:35:59,890 --> 00:36:01,360 Przewidujemy, że trzeba. 754 00:36:01,360 --> 00:36:03,720 Więc to zapewne over-engineering problemu, 755 00:36:03,720 --> 00:36:05,670 ale to naprawdę zależy od kontekstu. 756 00:36:05,670 --> 00:36:09,960 Ale teoretycznie SQL wspólne poprzek tych różnych produktów. 757 00:36:09,960 --> 00:36:11,560 Naprawdę dobre pytania. 758 00:36:11,560 --> 00:36:12,272 Tak. 759 00:36:12,272 --> 00:36:13,147 >> PUBLICZNOŚCI: [INAUDIBLE] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID MALAN: Tak, tak, można myśleć bazy 762 00:36:21,480 --> 00:36:25,020 Jest to serwer, na koniec dzień, a wewnątrz tego serwera 763 00:36:25,020 --> 00:36:28,670 Jest cała masa tabele, wiersze i kolumny. 764 00:36:28,670 --> 00:36:33,410 A kiedy wysłać zapytanie jak to z programu, witryny, 765 00:36:33,410 --> 00:36:39,340 napisany w języku Java, Ruby, Python, niezależnie, serwer odbiera polecenia 766 00:36:39,340 --> 00:36:41,660 i interpretowania go w dosłownie tak samo 767 00:36:41,660 --> 00:36:43,660 omówiliśmy wcześniej w interpretowane języki, 768 00:36:43,660 --> 00:36:47,333 a następnie wykonywanie pewnych działań na zera lub więcej wierszy w zero lub więcej tabel. 769 00:36:47,333 --> 00:36:48,208 PUBLICZNOŚCI: [INAUDIBLE] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID MALAN: Dokładnie, dokładnie. 772 00:36:55,070 --> 00:36:58,450 Więc w Pseudokod za coś jak to może być to. 773 00:36:58,450 --> 00:37:02,450 W pliku PHP, albo Plik Python lub plik Java, 774 00:37:02,450 --> 00:37:09,210 to masz kod pseudokod lub bloki przypominające zadrapania, jak, jeśli użytkownik odwiedza 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V po raz pierwszy, następnie wstawić do użytkowników i tak dalej. 776 00:37:19,870 --> 00:37:22,619 I chcielibyśmy, aby przetłumaczyć bardziej konkretny kod w końcu. 777 00:37:22,619 --> 00:37:24,660 Ale tak naprawdę, mamy wszystko bloki tutaj budowlanych, 778 00:37:24,660 --> 00:37:27,680 choć jesteśmy pomijanie niektórych z etapów realizacji. 779 00:37:27,680 --> 00:37:31,560 >> Więc pozwól mi znaleźć nic złego z tym, co wspaniale zrobił przed chwilą. 780 00:37:31,560 --> 00:37:36,470 Został utworzony dość Pełna tabela dla użytkowników. 781 00:37:36,470 --> 00:37:38,920 Wprawdzie moglibyśmy wdrożyć w ciągu kilku różnych sposobów, 782 00:37:38,920 --> 00:37:43,030 ale faktycznie doprowadziło nas w dół path-- i mówię wam, 783 00:37:43,030 --> 00:37:48,080 ale to prawdopodobnie mój fault-- o dość nieefektywne wdrożenie bazy danych. 784 00:37:48,080 --> 00:37:49,950 To nie jest znormalizowane. 785 00:37:49,950 --> 00:37:52,320 >> I znormalizowane Znaczy nie będzie, 786 00:37:52,320 --> 00:37:57,380 Z biegiem czasu, znaczna redundancja, a zatem nieskuteczność, 787 00:37:57,380 --> 00:38:00,210 to jest marnowanie miejsca. 788 00:38:00,210 --> 00:38:05,650 Na podstawie tylko tego, co tu widzisz, może sobie wyobrazić gdzie ten marnotrawstwo przestrzeni 789 00:38:05,650 --> 00:38:08,710 przyjdzie z czasem, jak zarejestrować się coraz więcej użytkowników 790 00:38:08,710 --> 00:38:10,860 na swojej stronie internetowej? 791 00:38:10,860 --> 00:38:13,047 Jakie dane mogą stać się zbędne? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> PUBLICZNOŚCI: [INAUDIBLE] 794 00:38:20,940 --> 00:38:22,686 >> DAVID MALAN: Dlaczego pan myśli, że? 795 00:38:22,686 --> 00:38:23,561 PUBLICZNOŚCI: [INAUDIBLE] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID MALAN: Tak. 798 00:38:32,930 --> 00:38:35,622 I załóżmy, dla celów Na dzień dzisiejszy, że to prawda. 799 00:38:35,622 --> 00:38:38,330 Okazuje się, a my nauczyliśmy się tego w bolesny sposób, że nie jest to prawdą. 800 00:38:38,330 --> 00:38:41,670 Jakoś wiele miast ma, jakoś ten sam kod pocztowy, 801 00:38:41,670 --> 00:38:43,390 która przełamuje tę wspaniałą intuicję. 802 00:38:43,390 --> 00:38:46,180 Ale załóżmy, że to prawda, bo to prawie zawsze prawdziwe. 803 00:38:46,180 --> 00:38:51,390 Więc załóżmy, że kod pocztowy jest zawsze wiąże się z tym samym mieście 804 00:38:51,390 --> 00:38:53,600 i stan, który jest rodzajem rozsądnego założenia, 805 00:38:53,600 --> 00:38:54,840 ale błędne, jak się okazuje. 806 00:38:54,840 --> 00:38:57,310 Ale to rozsądne założenie dla dzisiejszych potrzeb. 807 00:38:57,310 --> 00:39:01,650 >> Następnie załóżmy, że żyję w Cambridge, MA według tabeli tej instrukcji, 808 00:39:01,650 --> 00:39:04,100 i załóżmy, że Lauren Scully mieszka w Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 i załóżmy, że Kareem mieszka w Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 i Arwa mieszka w Cambridge, MA, wszyscy w 02138. 811 00:39:10,400 --> 00:39:15,890 Dlaczego jesteśmy pamiętając, Cambridge, MA, 02138 dla wszystkich czterech z nas? 812 00:39:15,890 --> 00:39:18,903 Co powinno wystarczyć do zapamiętania? 813 00:39:18,903 --> 00:39:20,249 >> PUBLICZNOŚCI: [INAUDIBLE] 814 00:39:20,249 --> 00:39:21,540 DAVID MALAN: Tylko kod pocztowy. 815 00:39:21,540 --> 00:39:25,080 Wystarczy, że 02138 nie istnieje, ponieważ wiesz, co możemy zrobić? 816 00:39:25,080 --> 00:39:32,650 Mogliśmy trochę wyszukanego i tu zdefiniować inną tabelę 817 00:39:32,650 --> 00:39:35,850 gdzie to będzie za Nazwa ta będzie rodzaj, 818 00:39:35,850 --> 00:39:38,840 to będzie to Długość i odtąd jestem 819 00:39:38,840 --> 00:39:42,900 Zadzwonię do tego miasta mojej tabeli. 820 00:39:42,900 --> 00:39:47,011 Nazywało się to, z Oczywiście, moja tabela użytkowników. 821 00:39:47,011 --> 00:39:49,885 A więc to, co należy umieścić tutaj miast dla mojego stołu, jak myślisz? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> PUBLICZNOŚCI: [INAUDIBLE] 824 00:39:54,535 --> 00:39:55,930 >> DAVID MALAN: Tak. 825 00:39:55,930 --> 00:40:01,440 Więc zip i stan i miasto. 826 00:40:01,440 --> 00:40:05,350 I tak typ Tutaj powiem to będzie char 5 raz 827 00:40:05,350 --> 00:40:06,750 przedmiotem obrad wcześniej. 828 00:40:06,750 --> 00:40:14,810 Będzie to enum, być może podobnie jak wcześniej, a miasto będzie varchar 50. 829 00:40:14,810 --> 00:40:17,960 I co teraz mogę dostać usunąć z tej tabeli 830 00:40:17,960 --> 00:40:21,995 aby wyeliminować tę nieefektywność? 831 00:40:21,995 --> 00:40:23,100 >> PUBLICZNOŚCI: [INAUDIBLE] 832 00:40:23,100 --> 00:40:23,850 DAVID MALAN: Nicea. 833 00:40:23,850 --> 00:40:30,239 Państwa i miasta odejść, więc już teraz wyeliminować potencjalną nieefektywność 834 00:40:30,239 --> 00:40:33,280 dla nadmiarowo pamiętając, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, które, miejmy nadzieję, nigdy się nie zmieni. 836 00:40:35,712 --> 00:40:37,670 A nawet jeśli tak, to minorly irytujące, obecnie 837 00:40:37,670 --> 00:40:39,750 że muszę zmienić że w wielu rzędach, 838 00:40:39,750 --> 00:40:43,770 podczas gdy tutaj, mogłem po prostu zmienić je w jednym miejscu. 839 00:40:43,770 --> 00:40:46,890 >> Teraz co to kompromis, a może? 840 00:40:46,890 --> 00:40:48,020 To było bardzo wygodne. 841 00:40:48,020 --> 00:40:50,730 Gdyby wszystkie moje dane ładnie razem. 842 00:40:50,730 --> 00:40:53,644 Ale co wyraźnie sprawa teraz? 843 00:40:53,644 --> 00:40:55,684 >> PUBLICZNOŚCI: [INAUDIBLE] 844 00:40:55,684 --> 00:40:58,100 DAVID MALAN: Dokładnie, a ja jestem zadowolony używane słowo przyłączyć, 845 00:40:58,100 --> 00:41:01,320 bo to rzeczywiście słowa kluczowego, w świecie relacyjnych baz danych 846 00:41:01,320 --> 00:41:05,270 w SQL, to rzeczywiste słowo może wpisać lub przynajmniej przekazać. 847 00:41:05,270 --> 00:41:09,280 A w rzeczywistości to, co mamy teraz zrobić aby wybrać pełne informacje Dawida jest 848 00:41:09,280 --> 00:41:19,700 coś jak select z gwiazdką użytkowników, dołącz do miasta, a teraz on-- 849 00:41:19,700 --> 00:41:24,010 Zamierzam po prostu przenieść się do drugiej linii tak, że ta fits-- users.zip równa 850 00:41:24,010 --> 00:41:34,570 cities.zip, gdzie users.ID jest równa 1. 851 00:41:34,570 --> 00:41:35,550 >> Więc co się dzieje? 852 00:41:35,550 --> 00:41:38,970 To brzydko wygląda, ale można rodzaju przeczytać go od lewej do prawej, od góry do dołu. 853 00:41:38,970 --> 00:41:41,030 Wybierz gwiazda z użytkownikami jest takie samo jak poprzednio, 854 00:41:41,030 --> 00:41:42,930 ale to nie ze strony użytkowników, per se. 855 00:41:42,930 --> 00:41:45,910 To od użytkowników przyłączyć miast. 856 00:41:45,910 --> 00:41:48,520 Co ja łączącej te dwa stoły dalej? 857 00:41:48,520 --> 00:41:51,820 Cóż, najwyraźniej, użytkowników tabele zip pole, 858 00:41:51,820 --> 00:41:54,810 i okres ten jest po prostu specjalny Składnia wyrazić tę ideę, 859 00:41:54,810 --> 00:41:58,130 a to miast Tabele zip pole. 860 00:41:58,130 --> 00:42:01,580 Chcę ci dwaj być równe, ale chcę, aby ostatecznie wybrać 861 00:42:01,580 --> 00:42:06,280 tylko tych wierszy, gdzie ID w tabeli użytkowników 862 00:42:06,280 --> 00:42:08,730 jest równa 1, co stało się z moimi. 863 00:42:08,730 --> 00:42:11,781 >> I żeby była jasność, A Programista, zazwyczaj, gdy 864 00:42:11,781 --> 00:42:14,780 zakodować coś takiego numeru 1, gdyż w przeciwnym razie tylko strona 865 00:42:14,780 --> 00:42:17,630 obsługuje Dawida lub temu Pierwszy użytkownik, ty 866 00:42:17,630 --> 00:42:20,720 zamiast tego zrobić coś jak ID, gdzie 867 00:42:20,720 --> 00:42:22,510 Stanowi to Zmienna, coś, 868 00:42:22,510 --> 00:42:26,210 może zmieniać się z czasem, podobnie w duchu tego, co powiedziałem wcześniej 869 00:42:26,210 --> 00:42:28,080 z tego rodzaju symboli zastępczych. 870 00:42:28,080 --> 00:42:30,396 Ale teraz musimy po prostu zakodować go jako 1. 871 00:42:30,396 --> 00:42:31,520 A więc co to znaczy? 872 00:42:31,520 --> 00:42:35,100 Cóż, jest to dobry sposób, aby wizualizować to że jeśli ta ręka jest tabela użytkowników, 873 00:42:35,100 --> 00:42:38,090 i ta ręka jest suwaki Stół, jesteśmy rodzajem finding-- 874 00:42:38,090 --> 00:42:41,330 i czubki palców są na zamek błyskawiczny tu i czubki palców 875 00:42:41,330 --> 00:42:43,740 oto zip, jesteś rodzaj blokady to 876 00:42:43,740 --> 00:42:47,950 tak, że wrócisz wynikowy Oryginalny stół, by prawdziwie łączenia 877 00:42:47,950 --> 00:42:49,590 dwa stoliki na wspólnym polu. 878 00:42:49,590 --> 00:42:50,840 I to nie musi być błyskawiczny. 879 00:42:50,840 --> 00:42:54,460 To może być najbardziej cokolwiek innego, ale zip jest ładne, ponieważ jeden, to krótki, 880 00:42:54,460 --> 00:42:56,470 dwa, to zawsze samej długości, więc nie 881 00:42:56,470 --> 00:43:02,270 prawdziwa wydajność, co Olivier proponowane tutaj 882 00:43:02,270 --> 00:43:05,200 z faktoringu z zip, a [INAUDIBLE], proponując, że pozbędziemy 883 00:43:05,200 --> 00:43:07,110 miasta i państwa. 884 00:43:07,110 --> 00:43:11,370 >> Jest to więc proces znany jako normalizacji. 885 00:43:11,370 --> 00:43:14,171 Wszelkie pytania na ten temat? 886 00:43:14,171 --> 00:43:16,170 Więc pozwól mi podkreślić jest to rodzaj rzeczy, 887 00:43:16,170 --> 00:43:19,202 choć jest to dość niskim poziomie, ta dyskusja, że ​​można by pomyśleć, 888 00:43:19,202 --> 00:43:20,910 jesteś rodzajem coraz utracone w chwasty, 889 00:43:20,910 --> 00:43:26,690 Jest to przejaw duży szansa dla deweloperów będzie źle. 890 00:43:26,690 --> 00:43:29,600 W rzeczywistości, nawet gdy w Kursy Uczyłem, kiedy mieliśmy, 891 00:43:29,600 --> 00:43:32,290 na przykład, niedoświadczony programiści licencjackich 892 00:43:32,290 --> 00:43:35,920 budowanie stron internetowych, na pierwszy rzut oka, strony internetowe mogą wyglądać wspaniale. 893 00:43:35,920 --> 00:43:38,280 I oni mają wszystkie wymienione Funkcjonalność poprosiliśmy, 894 00:43:38,280 --> 00:43:40,650 programiści zrobili dobrą robotę. 895 00:43:40,650 --> 00:43:43,370 >> Ale nie musi wiedzieć wystarczająco dużo o projektowaniu baz danych 896 00:43:43,370 --> 00:43:46,680 albo nie zastanowić wystarczająco dużo o rodzajach danych 897 00:43:46,680 --> 00:43:49,220 oraz rodzaje użytkowników strona będzie musiał, 898 00:43:49,220 --> 00:43:53,240 i znajdujemy, a następnie, sześć miesięcy później, po tym jak ukończył lub przeniesione, 899 00:43:53,240 --> 00:43:56,016 które skazują go na naszej stronie internetowej jest naprawdę, naprawdę powoli. 900 00:43:56,016 --> 00:43:58,890 I nie mówię nawet o konieczności miliony lub tysiące użytkowników. 901 00:43:58,890 --> 00:44:02,580 Znaczy kilkaset użytkowników w kampusie, z których wszystkie tutaj, na przykład, 902 00:44:02,580 --> 00:44:04,870 sklep dla kursów na w tym samym czasie, są one 903 00:44:04,870 --> 00:44:07,010 za pomocą tego katalogu przedmiotów Aplikacja Wspomniałem 904 00:44:07,010 --> 00:44:10,410 a co robi naprawdę powolny, ponieważ nie było żadnych indeksów. 905 00:44:10,410 --> 00:44:13,740 Nie było czerwone gwiazdy, by tak mówić, ani nie mieliśmy niekoniecznie 906 00:44:13,740 --> 00:44:17,690 uwzględnione wspólne dane do uzyskać pewne oszczędności przestrzeni. 907 00:44:17,690 --> 00:44:21,880 >> A więc kiedy lustracji dewelopera lub osoba bazy danych lub tym podobne, 908 00:44:21,880 --> 00:44:25,864 rodzaje pytań do przemyślenia nawet, gdy przeglądając czyjegoś kodu 909 00:44:25,864 --> 00:44:28,530 powiedzieć, niekoniecznie wyglądają przez wszystkie ich kodu, ale mówią, 910 00:44:28,530 --> 00:44:30,154 spójrzmy przez tabel bazy danych. 911 00:44:30,154 --> 00:44:31,150 Co ty przechowywania? 912 00:44:31,150 --> 00:44:33,941 A potem powiedzieć, dobrze, poczekać minuty, dlaczego używasz liczbę całkowitą? 913 00:44:33,941 --> 00:44:36,224 Co zrobić, jeśli mamy 4 miliardy a jeden z tych wierszy? 914 00:44:36,224 --> 00:44:38,140 I te rodzaje pytań jest okazją 915 00:44:38,140 --> 00:44:40,170 do rodzaju odepchnąć i zorientować się, gdzie 916 00:44:40,170 --> 00:44:42,300 jeśli nie jesteś komfortowo Opisz mieć kogoś, kto bardziej techniczny 917 00:44:42,300 --> 00:44:45,425 zadać te pytania, od tego, czy osoba naprawdę wie ich rzeczy. 918 00:44:45,425 --> 00:44:47,890 I to jest rodzaj rzeczy, też, że ludzie 919 00:44:47,890 --> 00:44:50,540 w Internecie, którzy są samoukiem, może 920 00:44:50,540 --> 00:44:53,920 nauczyć się rzadziej, bo niekoniecznie natknąć nim 921 00:44:53,920 --> 00:44:56,630 tyle, ponieważ można uzyskać w górę i prowadzenie bazy danych, 922 00:44:56,630 --> 00:44:58,880 ale jeśli nie czytałeś zaległości w tutoriali lub został 923 00:44:58,880 --> 00:45:01,880 powiedział o normalizacji baz danych i indeksowanie i wydajności, 924 00:45:01,880 --> 00:45:04,255 Są takie rzeczy które będą cię skrzywdzić. 925 00:45:04,255 --> 00:45:07,480 I myślisz, czy zły mechanik może powiedzieć, oh, dobrze, lepiej płatnej 926 00:45:07,480 --> 00:45:09,600 dla większej bazy lub szybciej w bazie 927 00:45:09,600 --> 00:45:13,360 lub po prostu wyrzucać pieniądze na to, Skala pionowo, a niekoniecznie tak. 928 00:45:13,360 --> 00:45:16,920 Jeśli pójdziesz in-- i można iść po fact-- i dodawanie indeksów, 929 00:45:16,920 --> 00:45:20,320 i może potrwać kilka godzin dla baza do zbudowania, że ​​nowe dane 930 00:45:20,320 --> 00:45:24,100 Struktura, że ​​wspomniałem wcześniej, można jeszcze naprawić to po fakcie, 931 00:45:24,100 --> 00:45:26,180 że w tym miejscu można zaczynają odróżniać 932 00:45:26,180 --> 00:45:28,830 dobrzy projektanci źle projektantów, nie tylko pod względem estetycznym, 933 00:45:28,830 --> 00:45:32,972 jednak wydajność mądry, jak również. 934 00:45:32,972 --> 00:45:33,555 Jakieś pytania? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Nie? 937 00:45:37,480 --> 00:45:41,980 Tak na NoSQL, który był inny rodzaj bazy danych, do której wspomniałem wcześniej, 938 00:45:41,980 --> 00:45:43,490 nie trzeba wierszy i kolumn. 939 00:45:43,490 --> 00:45:47,000 Zamiast tego trzeba coś który wygląda trochę bardziej jak ten. 940 00:45:47,000 --> 00:45:48,630 Zamierzam użyć wspólnej składni. 941 00:45:48,630 --> 00:45:51,270 Klamerki zdarzyć być użyte tutaj całkiem sporo. 942 00:45:51,270 --> 00:45:55,400 Można mieć coś jak na imię David, 943 00:45:55,400 --> 00:46:00,180 Może masz ostatnią Nazywam się Malan, cytaty, 944 00:46:00,180 --> 00:46:07,530 Może masz identyfikator is-- wybaczcie, whoops-- ID wynosi 1, 945 00:46:07,530 --> 00:46:13,410 e-mail jest malan@harvard.edu, i nie będę przeszkadza wpisując resztę, a następnie 946 00:46:13,410 --> 00:46:14,380 kilka innych rzeczy. 947 00:46:14,380 --> 00:46:17,380 >> Innymi słowy, jest to reprezentacja tekstowa 948 00:46:17,380 --> 00:46:20,720 co chcielibyśmy nazwać ogólnie obiekt w programie komputerowym. 949 00:46:20,720 --> 00:46:26,079 I obiekt jest na ogół po prostu zbiór par wartości kluczowych. 950 00:46:26,079 --> 00:46:27,370 Więc ponownie, tym powracającym tematem. 951 00:46:27,370 --> 00:46:30,440 Widzieliśmy par wartości klucza w HTML, widzieliśmy pary wartość klucza teraz 952 00:46:30,440 --> 00:46:34,020 w związku z baz danych, i widział pary wartość klucza w kontekście 953 00:46:34,020 --> 00:46:35,970 stanowi, myślę, język w dniu dzisiejszym. 954 00:46:35,970 --> 00:46:36,890 Utrzymuje wymyślanie. 955 00:46:36,890 --> 00:46:39,620 I rzeczywiście, to naprawdę jakie dane sprowadza się do tego, 956 00:46:39,620 --> 00:46:44,240 Dane i metadane, lub wartości i kluczy, odpowiednio. 957 00:46:44,240 --> 00:46:47,430 >> Więc non-relacyjne Baza danych, coś w oparciu 958 00:46:47,430 --> 00:46:50,680 na obiektach, gdzie po prostu zlepiają wszystko razem i umieścić go 959 00:46:50,680 --> 00:46:55,640 w pamięci, będzie na ogół na zdjęciu jako, albo myśli, jak to. 960 00:46:55,640 --> 00:47:00,500 I zostawię, że teraz jako rodzaj alternatywnego podejścia. 961 00:47:00,500 --> 00:47:03,750 I nie jest koniecznie lepiej niż inne. 962 00:47:03,750 --> 00:47:07,310 W rzeczywistości, bardzo modna Te dni są systemy bazodanowe 963 00:47:07,310 --> 00:47:11,942 jak MongoDB i Redis, a kilka inne tego typu narzędzia, swobodnie dostępne, 964 00:47:11,942 --> 00:47:13,400 ale są one coraz en vogue. 965 00:47:13,400 --> 00:47:18,850 Częściowo dlatego, że oferują one dodatkowe Cechy ponad tabelarycznych tych podejść, 966 00:47:18,850 --> 00:47:20,850 ale także dlatego, że są nieco łatwiejsze w użyciu, 967 00:47:20,850 --> 00:47:24,099 bo nie trzeba myśleć tak ciężko o wiele tych decyzji projektowych. 968 00:47:24,099 --> 00:47:25,970 Więc plusów i minusów. 969 00:47:25,970 --> 00:47:29,740 Więc sobie sprawę, że są opcje poza to, co właśnie spędził czas na. 970 00:47:29,740 --> 00:47:32,310 >> Więc zróbmy to. 971 00:47:32,310 --> 00:47:37,870 Chodźmy przejść się trochę Teraz z powrotem do programowania stron internetowych, 972 00:47:37,870 --> 00:47:40,470 tak, że my niby zawrzeć dziś z czymś 973 00:47:40,470 --> 00:47:43,930 To trochę hands-on, napełnianie w niektórych luk od wczoraj. 974 00:47:43,930 --> 00:47:45,340 Pozwólcie mi iść do tej pierwszej. 975 00:47:45,340 --> 00:47:49,310 Tak więc przypomnieć, że wczoraj mieliśmy pewne kanoniczne HTML 976 00:47:49,310 --> 00:47:55,110 stron, które miały początkowo tylko HTML, a następnie wtórnie miał CSS 977 00:47:55,110 --> 00:47:56,620 Kaskadowe arkusze stylów. 978 00:47:56,620 --> 00:47:59,830 Jest to nowy znacznik, że nie zobacz wczoraj, czy mieszkają na, 979 00:47:59,830 --> 00:48:01,490 tak zwany znacznik script. 980 00:48:01,490 --> 00:48:05,830 >> Okazuje się, że rzeczywiście można osadzić Język nazywa JavaScript w internecie 981 00:48:05,830 --> 00:48:08,310 Strona i dokonać internecie stron coś zrobić. 982 00:48:08,310 --> 00:48:09,710 Więc co mam na myśli? 983 00:48:09,710 --> 00:48:12,630 Cóż, pozwól mi iść do przodu i po prostu pożyczać ten kod na chwilę. 984 00:48:12,630 --> 00:48:15,860 Mam zamiar iść do Cloud9, nie ma potrzeby tam sobie jeszcze, 985 00:48:15,860 --> 00:48:21,350 i mam zamiar nazwać tę alert.HTML. 986 00:48:21,350 --> 00:48:23,650 Idę do wklejenia w moim pliku tutaj. 987 00:48:23,650 --> 00:48:32,070 I właśnie w celu wyjaśnienia, co zrobiłem, niech mi iść do tego adresu i przejdź do ostrzegania, 988 00:48:32,070 --> 00:48:33,870 i widać Hello World. 989 00:48:33,870 --> 00:48:35,440 >> Ale to jest trochę rozczarowująca. 990 00:48:35,440 --> 00:48:37,410 chcę coś zrobić trochę inaczej. 991 00:48:37,410 --> 00:48:40,610 Więc mam zamiar to zrobić właściwie. 992 00:48:40,610 --> 00:48:43,820 Mam zamiar iść tutaj e, aw między moimi znaczniki skryptów, 993 00:48:43,820 --> 00:48:53,460 powiedzieć alert ( "Hello, world"); więc zawiadomienie jest trochę zaniedbany, ale mam HTML, 994 00:48:53,460 --> 00:48:56,180 wewnątrz którego jest Język nazywa JavaScript, 995 00:48:56,180 --> 00:48:59,420 i to, co się nazywa wywołanie funkcji lub wywołanie procedury. 996 00:48:59,420 --> 00:49:04,500 Jest to czasownik, dosłownie, w tym przypadku, a ja jestem wywoływanie funkcji kodu 997 00:49:04,500 --> 00:49:06,310 że ktoś inny napisał. 998 00:49:06,310 --> 00:49:09,630 >> Tak, że funkcjonalność jest alert, więc chodźmy do tej strony 999 00:49:09,630 --> 00:49:14,046 teraz i kliknij reload, a teraz patrz trochę interaktywność. 1000 00:49:14,046 --> 00:49:15,420 To coś w rodzaju starej szkoły i brzydkie. 1001 00:49:15,420 --> 00:49:18,580 Ten rodzaj przypomina z pop-upy, być może, z przeszłości 1002 00:49:18,580 --> 00:49:22,030 ale zrobiłem coś trochę bardziej programowe. 1003 00:49:22,030 --> 00:49:26,940 >> Więc więcej niż to, zróbmy coś bardziej interesujące. 1004 00:49:26,940 --> 00:49:30,980 Pozwól mi wejść tutaj i pozbyć się tego. 1005 00:49:30,980 --> 00:49:33,840 I zamierzam iść do przodu i utworzyć formularz jak my wczoraj. 1006 00:49:33,840 --> 00:49:34,840 Właściwie, wiesz co? 1007 00:49:34,840 --> 00:49:37,350 Mam zamiar iść do google.html, które 1008 00:49:37,350 --> 00:49:43,027 rozpoczęła się wczoraj, co wyglądało ta, za pośrednictwem którego szukaliśmy kotów 1009 00:49:43,027 --> 00:49:45,360 Należy jednak zauważyć, że to rodzaj Błąd w aktualnej wersji. 1010 00:49:45,360 --> 00:49:49,770 To działa dla kotów, ale załóżmy, że Nie współpracują i wpisuję nic, 1011 00:49:49,770 --> 00:49:53,290 a ja po prostu kliknij prześlij. 1012 00:49:53,290 --> 00:49:54,540 To trochę dziwne zachowanie. 1013 00:49:54,540 --> 00:49:57,300 Zabrał mnie do rzeczywistego Google nie daje mi komunikat o błędzie. 1014 00:49:57,300 --> 00:50:00,590 Chciałbym poinformować użytkownika trzeba dać nam wartość. 1015 00:50:00,590 --> 00:50:01,780 >> Więc w jaki sposób możemy to zrobić? 1016 00:50:01,780 --> 00:50:06,790 Więc pozwól mi wrócić do Cloud9 i pozwól mi iść do góry mojej stronie 1017 00:50:06,790 --> 00:50:11,980 i dodać tag skryptu jak ten, w którym Idę do wpisania kodu JavaScript. 1018 00:50:11,980 --> 00:50:15,420 A ja zamierzam wykonać następujące czynności. 1019 00:50:15,420 --> 00:50:22,910 If (document.getelementByID-- i wycofania że rozmawialiśmy o tym wcześniej, 1020 00:50:22,910 --> 00:50:23,960 ta funkcja. 1021 00:50:23,960 --> 00:50:25,310 Co ID chcę dostać? 1022 00:50:25,310 --> 00:50:33,050 Chcę uzyskać q, a ja zamierzam powiedzmy równa się nic, tak jak this-- 1023 00:50:33,050 --> 00:50:38,220 faktycznie pozwolił mi użyć cudzysłowia tylko dla consistency-- równa się nic, 1024 00:50:38,220 --> 00:50:46,650 Następnie alert ( "Proszę wpisać zapytanie") tutaj. 1025 00:50:46,650 --> 00:50:49,200 >> Więc mam co wydaje się być coś takiego warunku. 1026 00:50:49,200 --> 00:50:51,410 Widzieliśmy tę ogólną ideę w Scratch. 1027 00:50:51,410 --> 00:50:54,240 To jest jak jeden z tych puzzli Kawałki, które wyglądały następująco. 1028 00:50:54,240 --> 00:50:55,780 I co ja mówię? 1029 00:50:55,780 --> 00:50:59,520 Cóż, tu na dole, zauważył, że jestem zamiar wykonać następujące czynności. 1030 00:50:59,520 --> 00:51:02,790 Mam zamiar dać ten formularz Pole to nie tylko nazwa Q, które 1031 00:51:02,790 --> 00:51:06,630 jest to, co dostaje przekazywane do Google, ale jestem zamiar dać mu lokalny identyfikator, 1032 00:51:06,630 --> 00:51:07,630 zwany także q. 1033 00:51:07,630 --> 00:51:11,780 Ale mogę nazwać to coś I chcą, ja po prostu się keep it simple 1034 00:51:11,780 --> 00:51:14,570 a także nazwać q, dla prostoty. 1035 00:51:14,570 --> 00:51:17,650 >> I teraz mam zamiar zrobić coś trochę więcej. 1036 00:51:17,650 --> 00:51:22,600 Na polach Tutaj mam zamiar dodaj co nazywa obsługa zdarzeń. 1037 00:51:22,600 --> 00:51:32,260 Na przedstawienia, chcę zadzwonić funkcja o nazwie validate. 1038 00:51:32,260 --> 00:51:35,520 Nie istnieje, to Słowo, albo to czasownik validate, 1039 00:51:35,520 --> 00:51:38,560 bo to, co mam zamiar zrobić Teraz tutaj jest dodać trochę kodu. 1040 00:51:38,560 --> 00:51:42,200 >> Idę powiedzieć funkcji validate. 1041 00:51:42,200 --> 00:51:48,280 Mam zamiar wciąć to i dodać kolejny nawias klamrowy tutaj, a drugi tutaj. 1042 00:51:48,280 --> 00:51:50,110 Zastanów się, co to jest teraz robi. 1043 00:51:50,110 --> 00:51:54,210 Mam now-- myśleć o tym, jak stworzył mój własny kawałek układanki, który nie zrobił wcześniej 1044 00:51:54,210 --> 00:51:57,440 istnieje, a ja nazwał to logiczna poskładać kawałek validate puzzle. 1045 00:51:57,440 --> 00:52:01,620 Jego celem w życiu jest do wykonania cztery linie kodu w jej wnętrzu. 1046 00:52:01,620 --> 00:52:04,940 >> Jeśli document.getElementById tak pod względem koncepcyjnym, 1047 00:52:04,940 --> 00:52:09,380 że ma zamiar udać się do elementu, element HTML, którego unikalna 1048 00:52:09,380 --> 00:52:12,930 Pomysł jest po prostu q, a następnie mimo składnia wygląda trochę dziwnie, 1049 00:52:12,930 --> 00:52:16,430 która równa jest równa tylko oznacza równymi. 1050 00:52:16,430 --> 00:52:20,950 To znaczy, jeśli element z Unikalny identyfikator q, gdy dostał, 1051 00:52:20,950 --> 00:52:25,700 nie ma żadnej wartości, to po prostu równa cytat cytatu, nic tam, 1052 00:52:25,700 --> 00:52:27,170 to co chcę zrobić? 1053 00:52:27,170 --> 00:52:29,360 Chcę krzyczeć na użytkownika. 1054 00:52:29,360 --> 00:52:31,710 >> I nie będziemy się bardzo szczegółowo tutaj. 1055 00:52:31,710 --> 00:52:32,960 Idę do return false. 1056 00:52:32,960 --> 00:52:34,380 To jest błąd. 1057 00:52:34,380 --> 00:52:38,746 Indziej, mam zamiar powrócić prawda. 1058 00:52:38,746 --> 00:52:40,120 Więc albo to działało albo nie. 1059 00:52:40,120 --> 00:52:41,800 Fałszywe lub prawdziwe. 1060 00:52:41,800 --> 00:52:47,820 A teraz, gdybym nie popełnić żadnych błędów, pozwól mi uratować to i odświeżyć ten. 1061 00:52:47,820 --> 00:52:50,940 I niech mi tylko dokładnie sprawdzić, że I nie w rzeczywistości, dokonywać żadnych literówek, 1062 00:52:50,940 --> 00:52:52,690 więc nie musiał się wstydzić. 1063 00:52:52,690 --> 00:52:54,240 Zobaczymy, czy to działa. 1064 00:52:54,240 --> 00:52:56,930 >> Więc teraz mam zamiar wpisać koty. 1065 00:52:56,930 --> 00:52:59,421 To działa, albo pół prace, przynajmniej. 1066 00:52:59,421 --> 00:53:02,170 Teraz pozwól mi odświeżyć ją, a teraz niech mi spróbować składania bez wpisywania 1067 00:53:02,170 --> 00:53:05,860 anything-- cholery, to złamał. 1068 00:53:05,860 --> 00:53:06,430 Chwileczkę. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Pozwól mi otworzyć konsolę, [INAUDIBLE] zalogować, przeładuj stronę. 1071 00:53:12,660 --> 00:53:13,576 Pozwól mi spróbować jeszcze raz. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 O, cholera. 1074 00:53:17,501 --> 00:53:18,000 Zapomniałem. 1075 00:53:18,000 --> 00:53:18,630 Zrobiłem literówkę. 1076 00:53:18,630 --> 00:53:20,760 Pamiętam, co to jest. 1077 00:53:20,760 --> 00:53:21,350 .wartość. 1078 00:53:21,350 --> 00:53:27,060 Chciałem powiedzieć, jeśli wartość elementu, którego identyfikator jest q 1079 00:53:27,060 --> 00:53:29,800 równa, wtedy krzyczeć na użytkownika. 1080 00:53:29,800 --> 00:53:31,870 >> Więc teraz pozwól mi znów wstrzymać oddech. 1081 00:53:31,870 --> 00:53:33,480 No to ruszamy. 1082 00:53:33,480 --> 00:53:34,130 No to jedziemy. 1083 00:53:34,130 --> 00:53:35,010 Proszę wpisać zapytanie. 1084 00:53:35,010 --> 00:53:36,840 Więc to nie pozwolić mi przejść. 1085 00:53:36,840 --> 00:53:40,210 Mogę być trochę zabawy z tym, i zamiast sprawdzania żadnej wartości, 1086 00:53:40,210 --> 00:53:46,720 Mogę powiedzieć coś w stylu: nie trzeba będzie szukać dla kotów, 1087 00:53:46,720 --> 00:53:51,150 a teraz możemy tylko bardziej żartobliwie pozwól poszukiwanie użytkownika dla psów, jeśli on lub ona 1088 00:53:51,150 --> 00:53:57,490 chce, czy idę tu i wyszukiwania dla kotów, teraz nie mogę. 1089 00:53:57,490 --> 00:53:58,690 >> Więc co jest tu na wynos? 1090 00:53:58,690 --> 00:54:03,010 Tak jeden, mamy wprowadzone do nasz świat HTML i CSS, 1091 00:54:03,010 --> 00:54:04,320 Funkcja programowania. 1092 00:54:04,320 --> 00:54:06,300 Mogę właściwie teraz podejmować decyzje w kodzie. 1093 00:54:06,300 --> 00:54:10,570 Wcześniej wszystko, co mogłem zrobić, to zaznaczyć zawartości tekstowej lub graficznej treści 1094 00:54:10,570 --> 00:54:13,080 i powiedzieć to, czego szukać jak i gdzie je wyświetlić. 1095 00:54:13,080 --> 00:54:16,650 Teraz rzeczywiście mogę zapytać kwestie dotyczące strony internetowej 1096 00:54:16,650 --> 00:54:20,010 i podejmowania decyzji w oparciu na to, i poprosi użytkownika 1097 00:54:20,010 --> 00:54:22,780 jeśli muszę krzyczeć na niego. 1098 00:54:22,780 --> 00:54:28,740 >> Warto więc spróbować czegoś sami z tym. 1099 00:54:28,740 --> 00:54:33,350 Śmiało, pozwól mi otworzyć następny slajd tu i po prostu zwrócić uwagę na jedną rzecz. 1100 00:54:33,350 --> 00:54:37,250 Podobnie jak z CSS, możemy czynnik poza nasz kod JavaScript w oddzielnym pliku, 1101 00:54:37,250 --> 00:54:40,660 można zrobić to samo z JavaScript w CSS. 1102 00:54:40,660 --> 00:54:44,520 I użyć jej przy użyciu źródła atrybut znacznika script. 1103 00:54:44,520 --> 00:54:46,540 Ale nie komplikować teraz. 1104 00:54:46,540 --> 00:54:50,440 Zamiast tego, jeśli można przejdź do nie tej stronie 1105 00:54:50,440 --> 00:55:02,690 ale-- pozwolił mi przenieść ten okolice w order-- udać, jeśli można, na tej stronie tutaj. 1106 00:55:02,690 --> 00:55:03,592 Ten adres URL tutaj. 1107 00:55:03,592 --> 00:55:04,550 To w dzisiejszych slajdów. 1108 00:55:04,550 --> 00:55:07,133 Być może trzeba odświeżyć, ponieważ Dodałem kilka rzeczy. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Ale tam, gdzie niektóre łamigłówki czekają. 1111 00:55:13,890 --> 00:55:16,670 A to daje nam szansę, w kontekście nieco więcej zabawy, 1112 00:55:16,670 --> 00:55:20,610 babrać się z pewnym JavaScript. 1113 00:55:20,610 --> 00:55:25,505 A kiedy się tam dostać, Wytłumaczę co czeka. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Uzyskaj zielono. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Ustaw na niebiesko. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Ustawia zielony, ustawia na czerwono. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Ups. 1122 00:56:20,220 --> 00:56:22,330 Przepraszam. 1123 00:56:22,330 --> 00:56:27,630 >> Jest to zakres naszych Dokumentacja dla tej prowokacji. 1124 00:56:27,630 --> 00:56:29,920 A to będzie działać w następujący sposób. 1125 00:56:29,920 --> 00:56:33,340 Więc co masz na ten temat strona jest cała masa 1126 00:56:33,340 --> 00:56:38,024 łamigłówki Zdjęcie od kumpla na Uniwersytecie Stanforda. 1127 00:56:38,024 --> 00:56:41,190 Więc co widzisz tutaj jest niemal rodzaj jednego z tych magicznych zagadek oczu, 1128 00:56:41,190 --> 00:56:43,815 ale jeśli tylko patrzą na to, Nic się nie wyskoczy na ciebie. 1129 00:56:43,815 --> 00:56:46,000 Raczej coś jest ukryte w tym obrazie. 1130 00:56:46,000 --> 00:56:47,790 I ukryta w następujący sposób. 1131 00:56:47,790 --> 00:56:51,740 Obrazy, jak wiadomo, może być składa się z zaledwie trzech kolorach. 1132 00:56:51,740 --> 00:56:53,346 Niektóre czerwone, niektóre niebieski, a niektóre na zielono. 1133 00:56:53,346 --> 00:56:55,220 I możemy zrobić wszystko kolory tęczy 1134 00:56:55,220 --> 00:56:57,570 przez zmieszanie tych trzech kolorów jakoś. 1135 00:56:57,570 --> 00:57:01,940 >> Tak to wygląda w większości zielone i niebieski, ale jak mówi tutaj, Nick, 1136 00:57:01,940 --> 00:57:04,060 To żelazko puzzle obraz jest logiczna. 1137 00:57:04,060 --> 00:57:06,780 Zawiera obraz czymś znanym, jednak 1138 00:57:06,780 --> 00:57:08,310 obraz został zniekształcony. 1139 00:57:08,310 --> 00:57:11,500 Słynny obiekt jest w czerwonych wartości. 1140 00:57:11,500 --> 00:57:13,810 Jednakże, czerwone wartości wszystkie zostały podzielone przez 10. 1141 00:57:13,810 --> 00:57:16,230 Tak więc są one zbyt małe, 10-krotnie. 1142 00:57:16,230 --> 00:57:18,280 Tak więc, innymi słowy, Nick wziął oryginalny obraz, 1143 00:57:18,280 --> 00:57:21,500 a on wszystko uwypuklają Czerwonego od niego, 1144 00:57:21,500 --> 00:57:23,850 obniżenie ilości czerwonego Atrament, jeśli będzie w nim. 1145 00:57:23,850 --> 00:57:26,060 >> Wartości niebieskie i zielone są po prostu bez sensu, 1146 00:57:26,060 --> 00:57:30,000 Wartości losowe, alias hałasu zaprojektowane zaciemniać rzeczywisty obraz. 1147 00:57:30,000 --> 00:57:32,250 Więc co Nick nie był on stonowany czerwony, a następnie 1148 00:57:32,250 --> 00:57:34,380 on po prostu rzucił losowo Ilości niebieski i zielony 1149 00:57:34,380 --> 00:57:37,590 na obraz do rodzaju niejasne co jest rzeczywiście nadal. 1150 00:57:37,590 --> 00:57:41,089 Musisz cofnąć te zakłócenia aby odsłonić obraz. 1151 00:57:41,089 --> 00:57:44,255 Po pierwsze, należy ustawić wszystkie wartości niebieskie i zielone do zera, aby je z drogi, 1152 00:57:44,255 --> 00:57:48,700 i spojrzeć na wynik. Następnie pomnożyć każdą czerwoną wartość o 10, 1153 00:57:48,700 --> 00:57:51,720 skalowanie z powrotem do przybliżeniu jego końcowa wartość. 1154 00:57:51,720 --> 00:57:53,035 Czym jest słynny obiekt? 1155 00:57:53,035 --> 00:57:57,920 >> Więc wszystko z was ma ten prostokąt W Twojej przeglądarce jest teraz. 1156 00:57:57,920 --> 00:58:00,830 I zauważyć, że istnieją pewne Kod startowy, że tak powiem. 1157 00:58:00,830 --> 00:58:04,370 Jest to kod JavaScript, który Nick napisał dla ciebie. 1158 00:58:04,370 --> 00:58:07,250 I zauważył, że nie ma linia w środku, że 1159 00:58:07,250 --> 00:58:10,380 rozpoczyna się ukośnikiem slash, to co zwykle nazywa komentarz. 1160 00:58:10,380 --> 00:58:14,660 Oznacza to, że jest to formuła dla programisty że nie ma żadnego znaczenia funkcjonalnego. 1161 00:58:14,660 --> 00:58:16,520 To tylko wizualną wskazówkę do człowieka. 1162 00:58:16,520 --> 00:58:18,670 >> Tak więc można iść do przodu i usunąć tylko tę linię, 1163 00:58:18,670 --> 00:58:22,214 i być bardzo ostrożnym, aby nie usunąć lub zmienić cokolwiek innego. 1164 00:58:22,214 --> 00:58:25,130 I niech mi tylko przejść przez co ten kod robi, a ja go zostawić 1165 00:58:25,130 --> 00:58:28,580 do ciebie, aby dowiedzieć się tajne obraz. 1166 00:58:28,580 --> 00:58:32,226 To pierwsza linia tutaj, że właśnie podświetlonych daje następujące. 1167 00:58:32,226 --> 00:58:34,100 Po lewej stronie, masz co się nazywa 1168 00:58:34,100 --> 00:58:39,140 zmienna, że ​​Nick ma arbitralnie, ale racjonalnie nazywa IM w obrazie. 1169 00:58:39,140 --> 00:58:41,660 Po prawej stronie tego znaku równości, 1170 00:58:41,660 --> 00:58:45,240 on mówi mi dać nowy cytat cytatu "Prosty obraz". 1171 00:58:45,240 --> 00:58:49,680 >> Prosty obraz w tym kontekście jest to, co się nazywa klasa, dobrze, 1172 00:58:49,680 --> 00:58:53,910 to trochę jak class-- technicznie prototype-- ale tak naprawdę, 1173 00:58:53,910 --> 00:58:58,000 to daje mi nowy obiekt, którego treść są pliku, 1174 00:58:58,000 --> 00:58:59,610 żelazo puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 Innymi słowy, Nick utworzona pojęcie to prosty obrazek 1176 00:59:03,190 --> 00:59:05,920 tak, że można na pedagogicznego cele, bawić się z obrazem 1177 00:59:05,920 --> 00:59:09,790 i zmienić jego czerwony, zielony i niebieski wartości. 1178 00:59:09,790 --> 00:59:11,750 >> A jak mamy to robić? 1179 00:59:11,750 --> 00:59:15,360 To nieco tajemnicze składni tutaj to trochę jak powtarzania bloku 1180 00:59:15,360 --> 00:59:19,140 że niektórzy z was widział w Scratch wcześniej dzisiaj, gdzie można powtórzyć 10 razy. 1181 00:59:19,140 --> 00:59:22,220 W tym przypadku nie ma Nick ustalony numer, jak 10. 1182 00:59:22,220 --> 00:59:28,020 Zamiast tego mówi, zainicjować zmienną o nazwie x 0, 1183 00:59:28,020 --> 00:59:33,180 sprawdzić, czy x jest mniejsza niż szerokość obrazu. 1184 00:59:33,180 --> 00:59:38,160 >> I tak, aby być bardziej właściwe, obraz jest Zmienna, kropka oznacza iść w jej wnętrzu 1185 00:59:38,160 --> 00:59:40,900 i uzyskać jego szerokość, a Następnie otwarte paren, zamknięte 1186 00:59:40,900 --> 00:59:43,687 paren jest po prostu sposobem programisty mówić, że jest to funkcja. 1187 00:59:43,687 --> 00:59:44,520 Jest to procedura. 1188 00:59:44,520 --> 00:59:46,430 Jest to funkcja ktoś inny napisał. 1189 00:59:46,430 --> 00:59:48,570 Użyj go i dać mi odpowiedź. 1190 00:59:48,570 --> 00:59:53,610 A potem x ++ to fantazyjny sposób mówiąc, po co zrobiłeś to raz, 1191 00:59:53,610 --> 00:59:55,850 przyrost X o 1. 1192 00:59:55,850 --> 00:59:58,760 Innymi słowy, jest sposobem programisty 1193 00:59:58,760 --> 01:00:05,760 indukowania pętlę, która jest zamiar iteracyjnego 1194 01:00:05,760 --> 01:00:10,410 wszystkich kolumn w obrazie. 1195 01:00:10,410 --> 01:00:14,790 >> Obraz jest tylko siatka kropki, wiersze i kolumny kropek. 1196 01:00:14,790 --> 01:00:18,270 Jest to sposób iteracji w stosunku do wszystkich tych kolumn. 1197 01:00:18,270 --> 01:00:20,770 I od wewnątrz, Tymczasem mamy iteracji 1198 01:00:20,770 --> 01:00:24,030 na wysokości, tutaj i tu i tu. 1199 01:00:24,030 --> 01:00:29,442 Więc to jest tylko sposób Traipsing, prawie jak starej szkoły do ​​pisania, 1200 01:00:29,442 --> 01:00:32,230 po prostu przejść nad Cały obraz iteracyjnie. 1201 01:00:32,230 --> 01:00:36,370 Mimo, że nie jest całkiem w całości jasne, po prostu wziąć na wiarę teraz, 1202 01:00:36,370 --> 01:00:38,880 że tych trzech liniach kodu razem oznaczają 1203 01:00:38,880 --> 01:00:43,090 zamiar pozwalają spojrzeć iteracyjnie na każdym pikselu, każda kropka w obrazie. 1204 01:00:43,090 --> 01:00:43,790 >> Co to jest pixel? 1205 01:00:43,790 --> 01:00:46,250 Dobrze, aby być jasne, jeśli przyjrzymy co oryginał i powiększyć, 1206 01:00:46,250 --> 01:00:49,060 jeśli naprawdę umieścić swoje oczy na ekranie komputera, to 1207 01:00:49,060 --> 01:00:53,510 po prostu cała masa kropek, kilka Tysiąc kropki pakowane razem tam. 1208 01:00:53,510 --> 01:00:56,180 A więc to, co jesteś zamiar zrobić? 1209 01:00:56,180 --> 01:00:59,240 Każdy z tych punktów, ostateczna definicja, 1210 01:00:59,240 --> 01:01:06,350 Jest to wynikiem tego, co na ogół nazywa RGB, czerwony, zielony, niebieski, która 1211 01:01:06,350 --> 01:01:09,940 znowu, można łączyć daje dowolną liczbę kolorów. 1212 01:01:09,940 --> 01:01:13,200 >> W rzeczywistości, jeśli pamiętać, od wielu, wielu lat temu, 1213 01:01:13,200 --> 01:01:17,320 ekrany projekcyjne podobne do tych rzeczy używane mieć nie jeden ale trzy soczewki. 1214 01:01:17,320 --> 01:01:20,700 Jednym z nich wypluć światło czerwone, jeden z je wypluć zielone światło, jeden z nich 1215 01:01:20,700 --> 01:01:21,600 wypluć niebieskie światło. 1216 01:01:21,600 --> 01:01:24,391 A jeśli jesteś w gimnazjum jakbym był tam gdzie nigdy nie było 1217 01:01:24,391 --> 01:01:27,000 prawidłowo ustawione, byłaś Zawsze oglądania filmów historii 1218 01:01:27,000 --> 01:01:29,770 które były nieco zniekształcony, ponieważ trzy kolory nie były 1219 01:01:29,770 --> 01:01:30,970 łącząc prawidłowo. 1220 01:01:30,970 --> 01:01:36,330 >> Okazuje się, że każdy z Wartości te czerwone, zielone i niebieskie, 1221 01:01:36,330 --> 01:01:37,980 może mieć wiele powiązanych z nimi. 1222 01:01:37,980 --> 01:01:42,500 Na przykład, 0 dla czerwona oznacza brak czerwony, 0 oznacza brak zieleni na zielono, 1223 01:01:42,500 --> 01:01:45,120 i 0 dla niebieskiego oznacza brak niebieski. 1224 01:01:45,120 --> 01:01:49,403 Więc jeśli nie masz czerwony, zielony kolor, ani niebieski, jaki kolor masz? 1225 01:01:49,403 --> 01:01:51,009 >> PUBLICZNOŚCI: [INAUDIBLE] 1226 01:01:51,009 --> 01:01:52,800 DAVID MALAN: byś nadzieję, że tak, to jest białe. 1227 01:01:52,800 --> 01:01:55,333 Niestety, ten operates-- przykro? 1228 01:01:55,333 --> 01:01:56,380 >> PUBLICZNOŚCI: [INAUDIBLE] 1229 01:01:56,380 --> 01:01:58,630 DAVID MALAN: Więc właściwie mają czarny, w tym przypadku. 1230 01:01:58,630 --> 01:02:01,530 Więc jeśli masz Żaden z tych kolory włączone, masz czarny. 1231 01:02:01,530 --> 01:02:06,510 Jednakże, jeśli masz, powiedzmy, że wiele z nich, jak dużo czerwonego, 255 z nich, 1232 01:02:06,510 --> 01:02:10,340 dużo zieleni, a wiele błękitu, że jest biały. 1233 01:02:10,340 --> 01:02:12,230 Tak więc są to dwie skrajności. 1234 01:02:12,230 --> 01:02:17,460 Więc od tej logiki, jeśli mam dużo czerwony i zielony kolor i ma niebieskie, 1235 01:02:17,460 --> 01:02:18,485 jakiego koloru jest to, że? 1236 01:02:18,485 --> 01:02:19,360 PUBLICZNOŚCI: [INAUDIBLE] 1237 01:02:19,360 --> 01:02:20,610 DAVID MALAN: Tak, oczywiście. 1238 01:02:20,610 --> 01:02:25,940 I to nie czerwony, wiele zielony, niebieski no, a następnie 1239 01:02:25,940 --> 01:02:29,590 jeśli have-- dobrze, po prostu skończyć jest tylko dlatego, ale, oczywiście, 1240 01:02:29,590 --> 01:02:31,350 Teraz jest niebieski. 1241 01:02:31,350 --> 01:02:33,030 I teraz można połączyć te kolory. 1242 01:02:33,030 --> 01:02:36,430 Teraz tak na marginesie, jeśli ktoś z was ma kiedykolwiek zrobić jakąś rzeczywistą projektowanie stron internetowych, 1243 01:02:36,430 --> 01:02:38,360 Państwo może faktycznie zobacz symbole, takie jak ten. 1244 01:02:38,360 --> 01:02:42,030 FFF-- i rzeczywiście, jest to Prawdopodobnie nawet to nie. 1245 01:02:42,030 --> 01:02:44,380 To FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Każdy widział F i E znajdują się i A through-- tak, jak się okazuje, 1247 01:02:48,970 --> 01:02:52,970 Wczoraj rozmawialiśmy o przecinku, a dziś, trochę o przecinku. 1248 01:02:52,970 --> 01:02:54,570 Dzisiaj rozmawialiśmy o binarnym. 1249 01:02:54,570 --> 01:02:59,010 Okazuje się, szesnastkowy jest bardzo wspólny system bazowy do wykorzystania w informatyce. 1250 01:02:59,010 --> 01:03:04,960 Binary wynosi dwa, dziesiętne 10, hex jest 16. 1251 01:03:04,960 --> 01:03:08,640 I okazuje się, w jaki sposób liczyć w systemie szesnastkowym? 1252 01:03:08,640 --> 01:03:11,620 Zero, jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem, 1253 01:03:11,620 --> 01:03:14,730 dziewięć, co używacie po dziewiątej? 1254 01:03:14,730 --> 01:03:16,600 Jaki jest następny numer? 1255 01:03:16,600 --> 01:03:19,180 Mamy już używany zero. 1256 01:03:19,180 --> 01:03:20,570 Potrzebuję 16 z nich. 1257 01:03:20,570 --> 01:03:25,770 Zero, jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem, dziewięć, 1258 01:03:25,770 --> 01:03:27,520 trzeba trochę arbitralne konwencję. 1259 01:03:27,520 --> 01:03:30,810 >> A co ludzkość postanowiła trochę czasu temu, że po dziewięciu przychodzi list 1260 01:03:30,810 --> 01:03:34,450 A i B, a następnie następnie C. Tak sposób liczyć w systemie szesnastkowym 1261 01:03:34,450 --> 01:03:37,040 oznacza zero, jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem, dziewięć, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F i liczy Ci całą drogę, jak się okazuje, do 15. 1263 01:03:42,880 --> 01:03:47,850 Więc zera do 15 wynosi zero przez F. Teraz, dlaczego jest to, że znacząca? 1264 01:03:47,850 --> 01:03:51,570 Dobrze, gdy masz dwa F'S, to w jaki sposób wyrażać 255. 1265 01:03:51,570 --> 01:03:54,350 >> Tak długie opowiadanie, w świat Photoshop 1266 01:03:54,350 --> 01:03:57,299 że programy graficzne projektowanie, w świecie tworzenia stron WWW, 1267 01:03:57,299 --> 01:03:59,590 gdzie masz wiele kolorów, Oczywiście, do zabawy, 1268 01:03:59,590 --> 01:04:02,350 Często programiści wyrażają te w systemie szesnastkowym, 1269 01:04:02,350 --> 01:04:05,260 tylko dlatego, że ma tendencję być trochę prostsze. 1270 01:04:05,260 --> 01:04:07,850 Choć na pierwszy rzut oka to o wiele bardziej skomplikowane. 1271 01:04:07,850 --> 01:04:11,590 >> Zatem w każdym przypadku, jest ważne bo Nick w Stanford 1272 01:04:11,590 --> 01:04:15,100 dał nam sześć kawałków funkcjonalności to ty, początkujący programiści, 1273 01:04:15,100 --> 01:04:17,060 będą mieć możliwość używania. 1274 01:04:17,060 --> 01:04:19,960 Wbudowany w tej sieci Strona jest sześć funkcji, 1275 01:04:19,960 --> 01:04:21,820 Nick sześć procedur, które napisał. 1276 01:04:21,820 --> 01:04:26,800 Trzy z nich będzie Ci numer, czerwony, zielony lub niebieski wartość. 1277 01:04:26,800 --> 01:04:28,787 Trzy z nich ustawia tej wartości. 1278 01:04:28,787 --> 01:04:30,620 I te podkreślenia to tylko zastępcze, 1279 01:04:30,620 --> 01:04:32,600 więc trzeba wiedzieć, co to jest. 1280 01:04:32,600 --> 01:04:36,240 >> Więc z tych trzech funkcji, pierwszy z co 1281 01:04:36,240 --> 01:04:39,190 to będzie to współrzędna x, a druga z tych rzeczy 1282 01:04:39,190 --> 01:04:40,700 to będzie współrzędna y. 1283 01:04:40,700 --> 01:04:44,650 Innymi słowy, co kropki, które piksel chcesz uzyskać zieleń, 1284 01:04:44,650 --> 01:04:46,480 uzyskać błękit, dostać czerwień. 1285 01:04:46,480 --> 01:04:51,440 A potem tutaj, to będzie x, to będzie mieć wartość y, 1286 01:04:51,440 --> 01:04:55,379 i to ma być liczbą. 1287 01:04:55,379 --> 01:04:57,170 Więc zróbmy pierwszy Linia ta wraz 1288 01:04:57,170 --> 01:05:00,220 a potem zostawię go dla Ciebie spróbować wyprowadzić resztę. 1289 01:05:00,220 --> 01:05:03,100 Tak więc zgodnie z instrukcją Na tej stronie, musimy 1290 01:05:03,100 --> 01:05:08,960 zwiększenie red od czynnika 10 i musimy usunąć zielony 1291 01:05:08,960 --> 01:05:09,930 i wyjąć niebieski. 1292 01:05:09,930 --> 01:05:12,410 Zacznijmy od tych ostatnich scenariuszy. 1293 01:05:12,410 --> 01:05:17,760 Więc jeśli chcę, a ja jadę wcięcia za pomocą spacje 1294 01:05:17,760 --> 01:05:22,291 jeśli chcę ustawić na czerwono, zielony, niebieski lub wartość, 1295 01:05:22,291 --> 01:05:23,540 Zamierzam wykonać następujące czynności. 1296 01:05:23,540 --> 01:05:31,280 >> Obraz, im.setBlue, a następnie podstawie tu moimi instrukcjami, 1297 01:05:31,280 --> 01:05:36,700 jakie trzy rzeczy powinienem wpisz wewnątrz nawiasów teraz? 1298 01:05:36,700 --> 01:05:41,960 Muszę wartość x, wartość y, a jaki numer 1299 01:05:41,960 --> 01:05:48,770 należy umieścić tutaj, jeśli chcę się pozbyć z niebieskim, na podstawie tej historii tutaj? 1300 01:05:48,770 --> 01:05:49,630 Po prostu zero. 1301 01:05:49,630 --> 01:05:52,420 Jeśli chcę Niebieskie, jestem po prostu zamiar zmienić go do zera. 1302 01:05:52,420 --> 01:05:54,465 >> Teraz po prostu podsumować to co to robi. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 Mam tu na te góry drugie i trzecie 1305 01:06:01,170 --> 01:06:04,080 I twierdził, dwie pętle, zagnieżdżone pętle, jeśli ciebie 1306 01:06:04,080 --> 01:06:08,360 będzie, że będziemy mieć wpływ postępującej od lewej do prawej, 1307 01:06:08,360 --> 01:06:11,590 od góry do dołu na całej powierzchni x Wartości i wszystkich wartości Y. 1308 01:06:11,590 --> 01:06:15,167 Bo znowu, obraz jest tylko siatka z wierszy i kolumn. 1309 01:06:15,167 --> 01:06:17,000 Więc to dostanie pozbyć się wszystkich błękitu. 1310 01:06:17,000 --> 01:06:18,627 Pozwól mi odejść w następnej kolejce do ciebie. 1311 01:06:18,627 --> 01:06:20,043 Jak mogę pozbyć się wszystkich zielonych? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> PUBLICZNOŚCI: [INAUDIBLE] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID MALAN: Nicea. 1315 01:06:26,151 --> 01:06:28,260 >> PUBLICZNOŚCI: [INAUDIBLE] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID MALAN: Nicea. 1317 01:06:30,850 --> 01:06:36,120 I mam zamiar pomniejszyć, i po prostu zabrać dbać o to, że nie zrobiłeś żadnych literówek. 1318 01:06:36,120 --> 01:06:39,390 A jeśli jesteś wygodne z tego, co zrobiłeś, 1319 01:06:39,390 --> 01:06:42,936 iść do przodu, a następnie kliknij przycisk Uruchom / Zapisz i zobaczyć co się dzieje. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 I znowu zrobiliśmy zaledwie trzy zmiany. 1322 01:06:48,690 --> 01:06:52,130 Usunęliśmy ten pierwszy komentarz i zastępuje go 1323 01:06:52,130 --> 01:06:53,575 z tych dwóch linii kodu. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 I to jest OK, jeśli trzeba trafić przycisk Run / Zapisz kilka razy 1326 01:06:58,450 --> 01:07:01,190 coś naprawić. 1327 01:07:01,190 --> 01:07:03,610 >> I pozwól mi również powiększyć moje Kod więc można rozpisać. 1328 01:07:03,610 --> 01:07:04,110 Dobry. 1329 01:07:04,110 --> 01:07:08,720 Więc widzę Andrew ma co wydaje się być błędem. 1330 01:07:08,720 --> 01:07:11,110 On po prostu ma wielki czarny prostokąt na swoim ekranie. 1331 01:07:11,110 --> 01:07:13,120 Ma ktoś wielki czarny prostokąt? 1332 01:07:13,120 --> 01:07:13,390 >> PUBLICZNOŚCI: Tak. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID MALAN: Big czarny prostokąt? 1334 01:07:14,360 --> 01:07:16,068 OK, więc pomyślmy o tym, co to znaczy. 1335 01:07:16,068 --> 01:07:20,560 Powiedzieliśmy, że zero, zero, zero, więc nie ma zieleni, nie ma czerwony, ma niebieskie, 1336 01:07:20,560 --> 01:07:21,980 ma zamiar dać czarny. 1337 01:07:21,980 --> 01:07:24,467 I okazuje się, że większość naszych laptopów 1338 01:07:24,467 --> 01:07:25,800 Po prostu nie mają wystarczająco dużo wierność. 1339 01:07:25,800 --> 01:07:27,750 Nie można powiedzieć, że dość jest rzeczywiście coś tam. 1340 01:07:27,750 --> 01:07:30,340 A jeśli rodzaj może oprzeć ekran do przodu i do tyłu, 1341 01:07:30,340 --> 01:07:32,850 Może nie widzisz Coś tam? 1342 01:07:32,850 --> 01:07:34,820 Może, rodzaj, rodzaj? 1343 01:07:34,820 --> 01:07:36,640 To nie jest idealnie czarne. 1344 01:07:36,640 --> 01:07:38,050 >> PUBLICZNOŚCI: [INAUDIBLE] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID MALAN: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Istnieją pewne red tam, ale Pamiętam ze specyfikacji 1347 01:07:42,610 --> 01:07:44,940 problemu, Nick stonowanych go w dół. 1348 01:07:44,940 --> 01:07:47,860 On uwypuklają go nieco, ale nie aż do zera. 1349 01:07:47,860 --> 01:07:51,670 Więc jeśli chcemy, aby powiększyć ilość czerwony, pozwól mi zaproponować ten trick. 1350 01:07:51,670 --> 01:07:53,750 Pozwól mi przybliżyć na ekranie. 1351 01:07:53,750 --> 01:07:58,678 I pozwól mi iść dalej i powiedzieć, Kwota równa im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Ten wiersz kodu daje mi coś, co nazywa się zmienną. 1354 01:08:05,790 --> 01:08:09,643 Mam arbitralnie, ale, prawdopodobnie, racjonalnie nazywa moja zmienna co, 1355 01:08:09,643 --> 01:08:10,143 widocznie? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Ilość. 1358 01:08:14,340 --> 01:08:14,980 Wystarczy kwoty. 1359 01:08:14,980 --> 01:08:16,960 Mogłem nazwał go cokolwiek chcę, ale jestem 1360 01:08:16,960 --> 01:08:19,490 Korzystając z tej innej funkcji które opisałem wcześniej 1361 01:08:19,490 --> 01:08:25,359 aby uzyskać ilość koloru czerwonego w x y przecinkami. 1362 01:08:25,359 --> 01:08:27,520 Dlaczego mam to zrobić? 1363 01:08:27,520 --> 01:08:30,004 Co chcesz zrobić tutaj? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Trzeba add-- 1366 01:08:33,619 --> 01:08:34,493 PUBLICZNOŚCI: [INAUDIBLE] 1367 01:08:34,493 --> 01:08:36,279 DAVID MALAN: Tak, może pomnożyć przez 10. 1368 01:08:36,279 --> 01:08:38,862 A jeśli o tym nie wiedzą, że jestem zamiar iść naprzód i to zrobić. 1369 01:08:38,862 --> 01:08:42,060 Mam zamiar iść do przodu i powiedzmy, chcę ilość koloru czerwonego 1370 01:08:42,060 --> 01:08:46,550 Chcę być cokolwiek jest na czerwono, razy 10, 1371 01:08:46,550 --> 01:08:50,330 a gwiazda, gwiazdka na własną Klawiatura jest the-- nie używaj x. 1372 01:08:50,330 --> 01:08:51,569 Użyj gwiazdę. 1373 01:08:51,569 --> 01:08:55,350 To, w jaki sposób pomnożyć rzeczy W większości języków programowania. 1374 01:08:55,350 --> 01:08:59,790 >> Tak więc, zgodnie z intuicją Kareem, w przechowywane w tej zmiennej o nazwie kwoty, 1375 01:08:59,790 --> 01:09:03,649 to ile czerwona chcę w miejscu xy. 1376 01:09:03,649 --> 01:09:11,500 Jak teraz, że mogę zrobić piksel ma ten numer? 1377 01:09:11,500 --> 01:09:12,859 Już zrobiłeś tego wcześniej. 1378 01:09:12,859 --> 01:09:17,666 Ustawić zielona i niebieskiego do żadnej wartości do zera. 1379 01:09:17,666 --> 01:09:18,540 PUBLICZNOŚCI: [INAUDIBLE] 1380 01:09:18,540 --> 01:09:20,040 DAVID MALAN: Tak, dobrze nie chcesz go do 10. 1381 01:09:20,040 --> 01:09:21,460 Już sam matematyki tutaj. 1382 01:09:21,460 --> 01:09:24,779 Więc jesteśmy coraz wartości czerwony, która jest mała liczba, zapewne. 1383 01:09:24,779 --> 01:09:26,180 Jesteśmy pomnożenie przez 10. 1384 01:09:26,180 --> 01:09:29,139 Co chcesz zrobić z Kwota zmienna teraz? 1385 01:09:29,139 --> 01:09:30,130 >> PUBLICZNOŚCI: [INAUDIBLE] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID MALAN: Nicea. 1387 01:09:30,880 --> 01:09:34,616 Więc im.set-- co? 1388 01:09:34,616 --> 01:09:35,640 >> PUBLICZNOŚCI: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID MALAN: setRed, w miejscu xy. 1390 01:09:39,760 --> 01:09:40,260 Tak. 1391 01:09:40,260 --> 01:09:41,200 I właśnie kwoty. 1392 01:09:41,200 --> 01:09:44,257 Innymi słowy, zmienna Jest to tymczasowy zastępczy 1393 01:09:44,257 --> 01:09:45,840 które można umieścić cokolwiek chcesz w. 1394 01:09:45,840 --> 01:09:48,680 Mamy stało się umieszczenie Liczba w tym, w danym momencie. 1395 01:09:48,680 --> 01:09:51,569 Mamy pomnożyć ją 10, aby je powiększyć. 1396 01:09:51,569 --> 01:09:56,480 A teraz jestem zastąpienie tej zmiennej jako ten trzeci argument, lub wejście 1397 01:09:56,480 --> 01:09:57,810 ustawić na czerwono. 1398 01:09:57,810 --> 01:10:00,440 I tak, że po zakończyć to i biorą pod uwagę 1399 01:10:00,440 --> 01:10:02,330 z średnikami i nawiasów. 1400 01:10:02,330 --> 01:10:06,290 >> Śmiało i kliknij run / zapisać ponownie, a ty 1401 01:10:06,290 --> 01:10:10,690 powinien zobaczyć, magicznie, co było faktycznie tam. [? Arwa,?], Co tam? 1402 01:10:10,690 --> 01:10:16,412 Wieża Eiffla w pełnoprawnym czerwony, nie całkiem ciemno. 1403 01:10:16,412 --> 01:10:17,870 powinny być bardziej oczywiste teraz, tak? 1404 01:10:17,870 --> 01:10:18,840 OK. 1405 01:10:18,840 --> 01:10:20,215 I Andrew, nie więcej czarna skrzynka? 1406 01:10:20,215 --> 01:10:21,090 PUBLICZNOŚCI: [INAUDIBLE] 1407 01:10:21,090 --> 01:10:22,180 DAVID MALAN: W porządku. 1408 01:10:22,180 --> 01:10:23,610 Więc będę mieć to na ekranie. 1409 01:10:23,610 --> 01:10:27,010 Jeśli chcesz grać z tym później będę odtworzyć to dla ciebie. 1410 01:10:27,010 --> 01:10:29,140 Ale ten kod tutaj zrobił dokładnie to. 1411 01:10:29,140 --> 01:10:31,460 Dlaczego nie możemy zrobić jeden inny. 1412 01:10:31,460 --> 01:10:33,880 Pozwól mi przejść lekko w dół. 1413 01:10:33,880 --> 01:10:36,760 >> Więc w tym przypadku, projektor tak naprawdę nie są sprawiedliwe. 1414 01:10:36,760 --> 01:10:40,486 Ale na ekranach, to prawdopodobnie mają bardzo czerwony i bardzo czarną skrzynkę. 1415 01:10:40,486 --> 01:10:42,610 To też jest zagadką, że pokazuje coś sławny. 1416 01:10:42,610 --> 01:10:44,193 Jednak obraz został zniekształcony. 1417 01:10:44,193 --> 01:10:47,740 Prawdziwy obraz, tym razem jest w wartościach niebieskich i zielonych. 1418 01:10:47,740 --> 01:10:51,820 Jednak oni wszyscy podzielono przez 20 tak, że wartości są bardzo małe. 1419 01:10:51,820 --> 01:10:54,660 Czerwone wartości są po prostu liczb losowych, hałas. 1420 01:10:54,660 --> 01:10:57,190 Cofnij te zakłócenia ujawnić prawdziwy obraz. 1421 01:10:57,190 --> 01:10:59,200 >> Więc Nick potem mówi, co robić. 1422 01:10:59,200 --> 01:11:04,290 Ustawić czerwony wartości do zera, a to nie popsuć, co to jest. 1423 01:11:04,290 --> 01:11:07,110 Następnie pomnożyć niebieski i zielone wartości o 20. 1424 01:11:07,110 --> 01:11:09,820 Więc to jest prawie Ten sam program, jak poprzednio, 1425 01:11:09,820 --> 01:11:11,380 ale jesteś odwrócenie procesu. 1426 01:11:11,380 --> 01:11:13,780 I położę mój kod zanim zostanie w przypadku 1427 01:11:13,780 --> 01:11:16,650 Aby odnieść się do niego lub grać dalej z tego. 1428 01:11:16,650 --> 01:11:18,100 Pozwól mi przybliżyć się na tym. 1429 01:11:18,100 --> 01:11:21,450 Ale rozwiązania miedzi zdjęcie logiczna, numer dwa. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> PUBLICZNOŚCI: [INAUDIBLE] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID MALAN: OK, więc to jeden jestem Nie zamierza dać jak najwięcej wskazówek. 1433 01:11:44,010 --> 01:11:47,220 Więc would-- och, niech zobacz, masz literówkę tutaj. 1434 01:11:47,220 --> 01:11:49,621 Więc pamiętaj, to tutaj rzeczywiście musi tam pojechać. 1435 01:11:49,621 --> 01:11:52,870 Więc to, co chciałbym zaproponować, jeśli chcesz skupić się na tym jednym, nie jest odpowiedź. 1436 01:11:52,870 --> 01:11:57,060 Jeśli chcesz rozpisać tym, że powinien otrzymać najpierw jedną pracę. 1437 01:11:57,060 --> 01:11:59,910 A następnie można użyć jej jako Inspiracją do drugiego. 1438 01:11:59,910 --> 01:12:02,230 Miły. 1439 01:12:02,230 --> 01:12:02,730 Dobry. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> A dla ciekawskich Jest to prosty przykład 1442 01:12:08,180 --> 01:12:11,080 z nauką czy sztuką nazywa steganografii, 1443 01:12:11,080 --> 01:12:14,100 sztuka ukrywania informacji w obrazach. 1444 01:12:14,100 --> 01:12:16,890 Zazwyczaj, obrazy mogą być znaki wodne bardzo rażąco 1445 01:12:16,890 --> 01:12:19,500 z logo w dnie róg, ale wyraźnie, ty 1446 01:12:19,500 --> 01:12:22,070 może być o wiele bardziej skomplikowany o nim i rzeczywiście 1447 01:12:22,070 --> 01:12:25,050 ukryć inne obrazy w obrazach jakiś sposób z tą techniką. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Weź kolejne 30 sekund, a potem będziemy przynajmniej ogłosić, co powinieneś zobaczyć. 1450 01:13:05,770 --> 01:13:08,330 I zostawię trzeci jeden jako at-home ćwiczeniu 1451 01:13:08,330 --> 01:13:11,353 jeśli chcesz więcej zakwestionować ten weekend. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 I myślę, że może Andrew zdobyć go w pierwszej kolejności. 1454 01:13:20,390 --> 01:13:22,645 Jaki jest drugi obraz, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> PUBLICZNOŚCI: Statua Wolności. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID MALAN: Statua Wolności Odpowiedź będzie tym razem. 1457 01:13:28,500 --> 01:13:31,140 Więc jeszcze raz, tylko niektóre proste przykłady, których celem 1458 01:13:31,140 --> 01:13:35,040 to daje poczucie, jak mamy przetłumaczone obrazowym Scratch 1459 01:13:35,040 --> 01:13:40,410 Bloki do bardziej denerwujące i więcej Kod skomplikowane, ale wszystkie z pomysłów 1460 01:13:40,410 --> 01:13:42,980 nadal są dokładnie takie same, aczkolwiek po wprowadzeniu 1461 01:13:42,980 --> 01:13:48,380 Teraz pojęcia zmiennej, będąc możliwość tymczasowego przechowywania coś. 1462 01:13:48,380 --> 01:13:51,750 >> Zróbmy jeszcze jeden praktyczny, tylko teraz połączyć kropki 1463 01:13:51,750 --> 01:13:53,880 do czegoś nieco bardziej w świecie rzeczywistym. 1464 01:13:53,880 --> 01:13:56,610 Kiedy będziesz gotowy, jeśli można przejść do tego adresu URL na ekranie. 1465 01:13:56,610 --> 01:14:00,610 To również swoją kopię slajdy, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 Załóżmy, faktycznie coś zrobić realne, by tak rzec, w internecie 1467 01:14:03,660 --> 01:14:07,600 za pomocą interfejsu API Map Google, lub Interfejs aplikacji do programowania, 1468 01:14:07,600 --> 01:14:08,940 w następujący sposób. 1469 01:14:08,940 --> 01:14:12,341 >> Google, podobnie jak wiele firm, zapewnia dużo wolnego funkcjonalności 1470 01:14:12,341 --> 01:14:14,840 które można wykorzystać do budowy własnych ciekawych aplikacji. 1471 01:14:14,840 --> 01:14:18,890 W rzeczywistości, jeśli kiedykolwiek używałeś Uber dostać taksówkę lub samochód, 1472 01:14:18,890 --> 01:14:21,640 pewnie wiecie, że ma Uber mapie i to widać na nim samochody. 1473 01:14:21,640 --> 01:14:24,870 Oznacza to, że najlepiej jak potrafię powiedzieć, Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 w rzeczywistości są one za pomocą map Google, ale Uber nie jest jednostką mapowanie, 1475 01:14:28,884 --> 01:14:31,050 ani też, że być Szczególnie ciekawy problem 1476 01:14:31,050 --> 01:14:33,510 rozwiązać na szczycie swojej Problem obsługi samochodów. 1477 01:14:33,510 --> 01:14:35,510 I tak stoisz, raz na ramionach 1478 01:14:35,510 --> 01:14:37,520 innych, Google w tej sprawie. 1479 01:14:37,520 --> 01:14:42,850 Więc używają map Google, ale ich własne usługi samochodowe i inne takie cechy. 1480 01:14:42,850 --> 01:14:47,770 >> Więc mamy zamiar wykorzystać tego, aby wykonać następujące czynności. 1481 01:14:47,770 --> 01:14:50,230 A jeśli Poszedłem zbyt szybko, zadzwoń do mnie na chwilę. 1482 01:14:50,230 --> 01:14:53,500 Szczęśliwy Przypomnę niektóre rzeczy obrazu. 1483 01:14:53,500 --> 01:14:56,290 Powinieneś zobaczyć siebie na stronie takiego. 1484 01:14:56,290 --> 01:14:58,230 Tak miło Google'a i oni są jednymi z najlepszych 1485 01:14:58,230 --> 01:15:01,364 świadczenia nie tylko API, ale wolny API, które 1486 01:15:01,364 --> 01:15:02,780 Można grać z lub użyć komercyjnie. 1487 01:15:02,780 --> 01:15:06,450 Robią rozpocząć ładowanie, czy Twój Wykorzystanie jest wysoka, ale poszedł do przodu z góry 1488 01:15:06,450 --> 01:15:10,490 i podpisany nas darmowe konto , To mieć nadzieję, że 10 komputerów 1489 01:15:10,490 --> 01:15:12,480 Nie dyskwalifikuje nas za nagle. 1490 01:15:12,480 --> 01:15:14,320 Więc mam nadzieję, że ta Demonstracja będzie działać. 1491 01:15:14,320 --> 01:15:18,840 >> I zauważył, że mają dla API Android, iOS, usług internetowych i internetowych, 1492 01:15:18,840 --> 01:15:19,620 cokolwiek to jest. 1493 01:15:19,620 --> 01:15:20,700 Skupmy się na internecie. 1494 01:15:20,700 --> 01:15:26,560 Więc kliknij w różowym pudełku, www, oraz że będzie cię prowadzić, miejmy nadzieję, na stronie 1495 01:15:26,560 --> 01:15:27,630 tutaj. 1496 01:15:27,630 --> 01:15:29,335 I oni mają całą masę API. 1497 01:15:29,335 --> 01:15:31,210 I to może być trochę przytłaczające w pierwszym, 1498 01:15:31,210 --> 01:15:33,000 ale będę kierować do nas przez to, co chcemy. 1499 01:15:33,000 --> 01:15:38,500 >> W lewym górnym rogu jest Google Maps JavaScript API, API JavaScript. 1500 01:15:38,500 --> 01:15:40,380 Więc idź naprzód i kliknij tamten. 1501 01:15:40,380 --> 01:15:49,360 A to doprowadzi cię teraz do Poniższa strona, dema i przykładowy kod. 1502 01:15:49,360 --> 01:15:51,190 Pozwól mi przybliżyć się tutaj. 1503 01:15:51,190 --> 01:15:56,300 I niech mi dostać nam to-- przewijać gdzie jest napisane szybkich kroków zacząć. 1504 01:15:56,300 --> 01:15:57,970 Twój ekran powinien wyglądać kopalni. 1505 01:15:57,970 --> 01:16:01,130 >> I jest dwa kroki, dostać klucz i zaczynają rozwijać. 1506 01:16:01,130 --> 01:16:04,190 Już to zrobiłem krok po jednym dla USA, uzyskanie tak zwanego klucza. 1507 01:16:04,190 --> 01:16:05,320 I jest to wspólny pomysł. 1508 01:16:05,320 --> 01:16:09,210 Klucz API jest na ogół po prostu duża liczba losowa lub ciąg 1509 01:16:09,210 --> 01:16:11,130 które mają wkleić do kodu, 1510 01:16:11,130 --> 01:16:15,280 tak, że Google wie kim jesteś, kiedy używasz ich usług, ich API. 1511 01:16:15,280 --> 01:16:17,370 To nie znaczy, że jesteśmy w trakcie ładowania czegokolwiek. 1512 01:16:17,370 --> 01:16:21,030 A teraz, kliknij, zamiast jeden, kliknij zaczynają rozwijać. 1513 01:16:21,030 --> 01:16:25,990 Gdybyś tylko mógł pomachać mnie na razie nie wiem, gdzie jesteśmy. 1514 01:16:25,990 --> 01:16:28,040 >> Więc my właśnie zarysowuje powierzchni, ale to, co się tutaj 1515 01:16:28,040 --> 01:16:31,000 Myślałem, że byłoby przekonujące jest rzeczywiście dla nas wszystkich, 1516 01:16:31,000 --> 01:16:34,240 stosując Cloud9 w jednym oknie i Ten poradnik w innym oknie, 1517 01:16:34,240 --> 01:16:37,120 pozwala rzeczywiście dostać nasz własny aplikacji i działa 1518 01:16:37,120 --> 01:16:40,920 które osadza zwyczaj Google mapa w naszej własnej stronie internetowej, 1519 01:16:40,920 --> 01:16:43,010 a następnie dodaje jeden lub dwa elementy. 1520 01:16:43,010 --> 01:16:45,520 Ale właśnie zarysowuje powierzchni, co możemy zrobić. 1521 01:16:45,520 --> 01:16:47,020 >> Więc po prostu szybkie sprawdzenie poczytalność. 1522 01:16:47,020 --> 01:16:49,740 Czy wszyscy w tej stronie Google Maps API JavaScript? 1523 01:16:49,740 --> 01:16:50,872 Powinien powiedzieć podręczny. 1524 01:16:50,872 --> 01:16:53,330 Nie zamierzamy przejść przez całość w dowolny sposób. 1525 01:16:53,330 --> 01:16:58,090 OK, na innej karcie, jeśli nie mają go otworzyć, należy przejść do Cloud9 1526 01:16:58,090 --> 01:17:03,500 i dostać się po prostu nowa karta ostatecznie. 1527 01:17:03,500 --> 01:17:11,070 Więc znowu c9.io na dzień c9.io, i po prostu utworzyć nowy plik. 1528 01:17:11,070 --> 01:17:13,500 I śmiało i rozmowa to, co chcesz. 1529 01:17:13,500 --> 01:17:16,495 Zadzwoniłem kopalni map.html. 1530 01:17:16,495 --> 01:17:17,870 Nazwijmy to wszystko kończy się w .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 I powinno być z grubsza gdzie jestem w tym procesie 1533 01:17:26,580 --> 01:17:31,470 tylko z migającym w pustym wierszu Zakładka o nazwie coś jak map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 Lub plik, tym razem nowy plik. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> A teraz, po ponad Google Maps API JavaScript, 1538 01:17:48,000 --> 01:17:50,010 będziemy pominąć czytanie przez cały ten tekst. 1539 01:17:50,010 --> 01:17:53,760 Ale zauważ, że jest Hello World Rzeczywiście wszędzie, widać to teraz. 1540 01:17:53,760 --> 01:17:58,020 Witaj świecie ma ten wielki kolorowy Przykładem całą masę HTML. 1541 01:17:58,020 --> 01:18:03,590 Śmiało i kopiować i wklejać tylko, że HTML, więc od typu doc ​​na górze 1542 01:18:03,590 --> 01:18:08,810 aż do ścisłej tagu HTML, przejdź naprzód i skopiować wszystkie that-- ponownie 1543 01:18:08,810 --> 01:18:14,430 to pod świata powitania example-- i wklej to do swojej karcie Cloud9, 1544 01:18:14,430 --> 01:18:17,996 tak, że teraz na ekranie powinien wyglądać mniej więcej tak jak moje. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> I można go zapisać, ale nie wkładaj go jeszcze. 1547 01:18:24,520 --> 01:18:26,290 Niech najpierw spojrzeć na kod i sprawdzić, czy 1548 01:18:26,290 --> 01:18:29,110 nie można wywnioskować, czy nauczyć od tego, co jest Google 1549 01:18:29,110 --> 01:18:30,860 miał nam ślepo kopiować i wklejać. 1550 01:18:30,860 --> 01:18:33,334 Oni po prostu chcą pomóc, dosłownie, zaczął się z nami, 1551 01:18:33,334 --> 01:18:35,500 ale nie jest to dużo Złożoność faktycznie istnieje. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Wszelkie pytania tylko jeszcze? 1554 01:18:42,210 --> 01:18:43,790 Jesteśmy bezpieczni, aby posunąć się naprzód? 1555 01:18:43,790 --> 01:18:44,330 OK. 1556 01:18:44,330 --> 01:18:46,800 >> Tak szybko, niech po prostu zrobić kilka krótkich testy sprawdzające. 1557 01:18:46,800 --> 01:18:48,800 Linia jedno co ja zobaczyć, i miejmy nadzieję, że ci 1558 01:18:48,800 --> 01:18:51,710 zobaczyć, co to znaczy, DOCTYPE html? 1559 01:18:51,710 --> 01:18:52,385 Kareem, przypomnieć? 1560 01:18:52,385 --> 01:18:53,260 PUBLICZNOŚCI: [INAUDIBLE] 1561 01:18:53,260 --> 01:18:53,968 DAVID MALAN: Tak. 1562 01:18:53,968 --> 01:18:54,870 Nadchodzi HTML 5. 1563 01:18:54,870 --> 01:18:57,950 Tymczasem na drugiej linii Ekran oznacza tutaj hej przeglądarkę, 1564 01:18:57,950 --> 01:18:59,482 tutaj jest rzeczywisty HTML. 1565 01:18:59,482 --> 01:19:01,440 Linia trzy hej jest przeglądarka, tu pojawia się głowa. 1566 01:19:01,440 --> 01:19:04,260 Linia czterech jest, oczywiście, hej Przeglądarka, oto tytuł. 1567 01:19:04,260 --> 01:19:07,780 Co to linia pięciu zrobić? 1568 01:19:07,780 --> 01:19:09,930 Właściwie, to nie Naprawdę nic zrobić dla nas. 1569 01:19:09,930 --> 01:19:13,340 W tym przypadku, po prostu zmienia rozmiar strona z domyślnie. Linia sześć, 1570 01:19:13,340 --> 01:19:16,140 Nie rozmawialiśmy na temat, ale określa kodowanie znaków. 1571 01:19:16,140 --> 01:19:19,181 Jest różne sposoby kodowania plików, zwłaszcza w przypadku języków obcych. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 po prostu wydaje się być domyślna. 1573 01:19:21,100 --> 01:19:26,580 >> Więc teraz zobaczymy w kolejce siedmiu do 16, niektóre CSS. 1574 01:19:26,580 --> 01:19:29,260 I choć nie widzieliście wszystkie te rzeczy przed, 1575 01:19:29,260 --> 01:19:30,810 możemy wywnioskować rodzaju. 1576 01:19:30,810 --> 01:19:37,075 Więc linii osiem sposobów, hej przeglądarka obowiązują wszystkie z poniższych kryteriów, do których dwóch pasków, 1577 01:19:37,075 --> 01:19:37,575 widocznie? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 HTML i ciało tekstu. 1580 01:19:41,701 --> 01:19:43,200 Więc przecinek jest nową rzeczą tam. 1581 01:19:43,200 --> 01:19:46,140 I to jest właśnie sposób podając wiele znaczników na raz. 1582 01:19:46,140 --> 01:19:47,640 >> Następnie mamy nawiasy klamrowe. 1583 01:19:47,640 --> 01:19:51,170 Więc jak widać, ta informuje przeglądarkę, aby wysokość widoku 100%. 1584 01:19:51,170 --> 01:19:54,170 Więc nawet jeśli jest bardzo mało treść sprawiają, że całą stronę 1585 01:19:54,170 --> 01:19:55,530 sprawiają, że rzeczą wypełnić stronę. 1586 01:19:55,530 --> 01:19:57,524 Bądź mapa ostatecznie wypełnić stronę. 1587 01:19:57,524 --> 01:19:58,690 Margines, co to znaczy? 1588 01:19:58,690 --> 01:20:01,559 To zazwyczaj jak arbitralne białe miejsca wokół krawędzi 1589 01:20:01,559 --> 01:20:04,350 że niektóre projektant przeglądarka prostu że powinny być tam, bo 1590 01:20:04,350 --> 01:20:05,540 rodzaj sprawia, że ​​rzeczy wyglądają czystszy. 1591 01:20:05,540 --> 01:20:06,498 Ale my nie chcemy. 1592 01:20:06,498 --> 01:20:08,710 Chcemy mapa dzieje aż do krawędzi. 1593 01:20:08,710 --> 01:20:10,930 Dopełnienie, w duchu podobnym do marginesów. 1594 01:20:10,930 --> 01:20:14,980 Marginesy znaczy na zewnątrz, środki wypełniające w środku, ale jest to ten sam rodzaj transakcji. 1595 01:20:14,980 --> 01:20:17,520 To trochę buforze między tobą a krawędzie. 1596 01:20:17,520 --> 01:20:21,170 >> A potem linia 13 jest dobry Szansa na szybki przegląd. 1597 01:20:21,170 --> 01:20:26,440 Co robi ostry znak mapę myśli lub hashtag map myśli? 1598 01:20:26,440 --> 01:20:29,650 Co oznacza, że ​​znajdują się w zasadzie? 1599 01:20:29,650 --> 01:20:31,485 >> PUBLICZNOŚCI: [INAUDIBLE] 1600 01:20:31,485 --> 01:20:32,360 DAVID MALAN: Dokładnie. 1601 01:20:32,360 --> 01:20:36,900 Ta właściwość ta właściwość CSS Dotyczy to tylko jedna rzecz, znacznik HTML 1602 01:20:36,900 --> 01:20:41,180 który ma identyfikator środki, koniec cytatu "map". 1603 01:20:41,180 --> 01:20:44,460 A teraz szybko do przodu, przewijania w dół do dolnej części pliku, który 1604 01:20:44,460 --> 01:20:49,860 nie jest zbyt daleko, a zawiadomienie o linię 19, jeśli wkleić go dokładnie tak samo jak ja, 1605 01:20:49,860 --> 01:20:53,405 Linia 19 ma tylko div, który jest Podział strony, która wczoraj 1606 01:20:53,405 --> 01:20:54,820 nazywa się obszar w kształcie prostokąta. 1607 01:20:54,820 --> 01:20:55,820 To nie ma nic w nim. 1608 01:20:55,820 --> 01:20:57,550 To otwarta tag, blisko tag. 1609 01:20:57,550 --> 01:20:59,490 Ale to ma unikatowy identyfikator. 1610 01:20:59,490 --> 01:21:02,090 >> Więc to, co wydaje się być tutaj dzieje jest Google 1611 01:21:02,090 --> 01:21:05,880 jest przygotowując naszą stronę internetową, aby mieć pełne 100% wysokości, 1612 01:21:05,880 --> 01:21:09,680 i nie ma obicie, bez marginesów, bo co mamy zamiar umieścić wewnątrz 1613 01:21:09,680 --> 01:21:13,647 DIV, który jest unikatowy identyfikator mapa, jest rzeczywiste osadzone map. 1614 01:21:13,647 --> 01:21:15,480 I chcemy, aby wypełnić strony, a nie tylko 1615 01:21:15,480 --> 01:21:17,560 być jakiś mały prostokąt w środku. 1616 01:21:17,560 --> 01:21:24,220 Więc linia 14 podobnie podkreśla, The mapa sama powinna mieć wysokość 100%. 1617 01:21:24,220 --> 01:21:29,220 >> Więc teraz zauważyć pomiędzy liniami 20 i 28, jest to kod JavaScript. 1618 01:21:29,220 --> 01:21:33,020 A to, mimo że składniowo trochę dziwne, 1619 01:21:33,020 --> 01:21:34,730 Nie ma aż tak dużo się tu dzieje. 1620 01:21:34,730 --> 01:21:39,310 W linii 21, jest deklarowania coś, co nazywa się zmienną. 1621 01:21:39,310 --> 01:21:42,030 Zamiast nazywając ją wynosi, tak jak poprzednio, 1622 01:21:42,030 --> 01:21:44,500 jesteśmy dokładniej mówiąc var, co oznacza po prostu zmienną. 1623 01:21:44,500 --> 01:21:46,520 Mogliśmy używane, że w Kod Nicka, ale nie zrobił tego, więc 1624 01:21:46,520 --> 01:21:48,190 nie przeszkadza to zrobić albo. 1625 01:21:48,190 --> 01:21:50,240 Jest to zmienna o nazwie map, a następnie nie ma 1626 01:21:50,240 --> 01:21:53,360 funkcja, która jest podobno nazywa initMap. 1627 01:21:53,360 --> 01:21:55,780 >> Tak to jest jak nasz własny niestandardowy kawałek układanki w Scratch. 1628 01:21:55,780 --> 01:21:58,830 Utworzyliśmy kawałek Funkcjonalność nazywa initMap, 1629 01:21:58,830 --> 01:22:00,980 można wywnioskować, rodzaj co tu się dzieje. 1630 01:22:00,980 --> 01:22:02,930 Po lewej stronie, mamy zmienną, 1631 01:22:02,930 --> 01:22:06,000 więc mamy zamiar umieścić następujące rzeczą wewnątrz tej zmiennej, 1632 01:22:06,000 --> 01:22:07,362 od prawej do lewej. 1633 01:22:07,362 --> 01:22:11,940 Z prawej strony mówi, hej Przeglądarka, daj mi nową mapę Google. 1634 01:22:11,940 --> 01:22:16,490 I google.maps.map jest po prostu modny sposób określania, które tej funkcji 1635 01:22:16,490 --> 01:22:19,790 należący do Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> Po nawiasach, widzieliśmy to już wcześniej, hej przeglądarka, dostać 1637 01:22:23,010 --> 01:22:29,210 me elementy w części strony, tag na stronie, której unikatowy identyfikator is-- 1638 01:22:29,210 --> 01:22:30,710 >> PUBLICZNOŚCI: [INAUDIBLE] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID MALAN: --map. 1640 01:22:31,790 --> 01:22:35,770 A co się dzieje, dobrze, ta linia razem, linia 23, 1641 01:22:35,770 --> 01:22:38,630 zasadniczo mówiąc: hej przeglądarki, przejdź się do mnie 1642 01:22:38,630 --> 01:22:42,800 że pusty div na stronie którego unikatowy identyfikator jest mapa, 1643 01:22:42,800 --> 01:22:45,600 bo chcę, aby wstawić pod it-- wstrzyknąć do niego, 1644 01:22:45,600 --> 01:22:49,520 jeśli will-- całą masę treści co dzieje się pochodzić z sieci, 1645 01:22:49,520 --> 01:22:50,427 następnie. 1646 01:22:50,427 --> 01:22:52,010 I Google robi to wszystko dla nas. 1647 01:22:52,010 --> 01:22:55,350 >> Więc jeszcze raz, na samym końcu dnia, mamy tego przykład abstrakcji. 1648 01:22:55,350 --> 01:22:58,610 Nie mam pojęcia co to jest mapa czyli jak wdrożyć mapę API. 1649 01:22:58,610 --> 01:22:59,460 Nie trzeba. 1650 01:22:59,460 --> 01:23:02,740 Po prostu trzeba powiedzieć mapę gdzie umieścić siebie i pozostawić 1651 01:23:02,740 --> 01:23:04,880 Realizacja tych leżących u podstaw Dane do Google. 1652 01:23:04,880 --> 01:23:08,190 Teraz jest podobno dwa kawałki danych 1653 01:23:08,190 --> 01:23:11,940 że w tym przykładzie jest dostarczanie API Google. 1654 01:23:11,940 --> 01:23:16,450 Podobno w centrum mapy, i poziom powiększenia, że ​​tak powiem. 1655 01:23:16,450 --> 01:23:21,390 >> A czy ktoś rozpoznaje te współrzędne, szerokość i długość geograficzna? 1656 01:23:21,390 --> 01:23:24,364 Prawdopodobnie nie, ale możemy wrócić tutorial, dosłownie zobaczyć. 1657 01:23:24,364 --> 01:23:25,780 Ale zobaczymy go za chwilę. 1658 01:23:25,780 --> 01:23:29,880 Stopień powiększenia jest wartością z przedziału, nie wiem Wiesz, jeden na 13 lub coś takiego. 1659 01:23:29,880 --> 01:23:32,880 To po prostu ma do czynienia z, jak daleko jesteś powiększony lub na zewnątrz, i to wszystko. 1660 01:23:32,880 --> 01:23:35,690 A teraz na samym końcu strona, informacja linia 29-- 1661 01:23:35,690 --> 01:23:39,960 to trochę brzydki, bo to wraps-- tej linii kodu 1662 01:23:39,960 --> 01:23:44,570 jest to, co ściąga do Przeglądarka rzeczywiste API Google'a. 1663 01:23:44,570 --> 01:23:47,500 Cały kod, który Google inżynierowie napisane, że wdrożenie 1664 01:23:47,500 --> 01:23:50,000 cała ta cecha niezabudowany mapach. 1665 01:23:50,000 --> 01:23:51,470 >> Teraz niczego nie zmieni. 1666 01:23:51,470 --> 01:23:54,761 Jeśli jesteś po wzdłuż, śmiało wystarczy zapisać ten plik, jeśli rzeczywiście mają 1667 01:23:54,761 --> 01:23:55,760 Co ja mam. 1668 01:23:55,760 --> 01:23:57,370 Idź do jego zawartości. 1669 01:23:57,370 --> 01:23:59,820 Można kliknąć przycisk Uruchom do góry i że powie 1670 01:23:59,820 --> 01:24:03,050 Ci adres URL serwera WWW ponownie. 1671 01:24:03,050 --> 01:24:06,010 I doprowadzi cię do nowej karcie. 1672 01:24:06,010 --> 01:24:11,910 Jeśli klikniesz otwarty do map.html, a kursy są jesteś 1673 01:24:11,910 --> 01:24:15,520 dostanie ostrzeżenie, komunikat o błędzie, tak? 1674 01:24:15,520 --> 01:24:18,570 Komunikat o błędzie, komunikat o błędzie? 1675 01:24:18,570 --> 01:24:21,170 >> Tak niestety, błąd Komunikat nie jest pouczające 1676 01:24:21,170 --> 01:24:23,890 chyba faktycznie otworzyć Konsola, że ​​mamy specjalną zakładkę 1677 01:24:23,890 --> 01:24:27,110 przechowywane otwierając wczoraj trochę wcześniej dzisiaj. 1678 01:24:27,110 --> 01:24:29,445 Ale natknąłem tym wcześniej, więc ja już 1679 01:24:29,445 --> 01:24:30,820 zorientowali się, co jest rozwiązaniem. 1680 01:24:30,820 --> 01:24:34,440 W dzisiejszych slajdów lub raczej w Cloud9, zawiadomienie 1681 01:24:34,440 --> 01:24:36,430 że nie zrobił coś celowo. 1682 01:24:36,430 --> 01:24:40,690 Zauważ, że ten tag w skrypt Linia 29, jeśli czytasz przez niego, 1683 01:24:40,690 --> 01:24:44,440 to jak maps.googleapis.com/~~pobj coś, coś, coś, 1684 01:24:44,440 --> 01:24:46,430 Następnie zauważył kogoś, jeden z twórców, 1685 01:24:46,430 --> 01:24:50,040 napisał w całej stolicy Litery, klucz API. 1686 01:24:50,040 --> 01:24:51,700 >> Musimy wkleić coś tam. 1687 01:24:51,700 --> 01:24:53,450 I był to krok Zrobiłem dla nas wcześniej, 1688 01:24:53,450 --> 01:24:57,190 i znowu mogą czarnej listy z nami, jeśli nagle, 12 lub więcej z nas 1689 01:24:57,190 --> 01:24:59,470 zacząć używać tego samego klucza, ale zobaczymy co się stanie. 1690 01:24:59,470 --> 01:25:03,030 Więc jeśli idziesz do dzisiejszych slajdy, jeden slajd później tam 1691 01:25:03,030 --> 01:25:07,070 Ten bardzo ostry wyglądający ciąg tekstu. 1692 01:25:07,070 --> 01:25:12,230 Idź przed siebie i po prostu skopiować to i wkleić go gdzie jest napisane swój klucz API. 1693 01:25:12,230 --> 01:25:15,120 To jeden Zarejestrowałem się. 1694 01:25:15,120 --> 01:25:17,700 >> I na pewno nie starają wpisując je ręcznie, 1695 01:25:17,700 --> 01:25:21,210 ponieważ czuje obarczona z literówek, potencjalnie. 1696 01:25:21,210 --> 01:25:23,260 Więc po prostu skopiuj i wklej to. 1697 01:25:23,260 --> 01:25:26,090 I to się dzieje, aby linię dłużej, ale teraz, żeby była jasność, 1698 01:25:26,090 --> 01:25:29,540 powinno to wyglądać trochę bardziej jak ten, w którym klucz nie jest równy 1699 01:25:29,540 --> 01:25:32,200 kapitalizowane krzyczy na ciebie. 1700 01:25:32,200 --> 01:25:34,810 Zapisz stronę, wróć do drugiej zakładki, załaduj ponownie, 1701 01:25:34,810 --> 01:25:36,770 i mamy nadzieję zobaczyć mapę gdzie? 1702 01:25:36,770 --> 01:25:37,790 >> PUBLICZNOŚCI: Australia. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID MALAN: Australia. 1704 01:25:38,748 --> 01:25:41,200 Więc widocznie te są współrzędne GPS Australii. 1705 01:25:41,200 --> 01:25:44,491 I daj mi chodzić na chwilę i pomóc każdemu, kto nie do końca tam, 1706 01:25:44,491 --> 01:25:47,729 ale pozwól mi zaproponować, za pośrednictwem Google, znaleźć Współrzędne GPS w swoim rodzinnym mieście 1707 01:25:47,729 --> 01:25:48,770 lub własnego kraju. 1708 01:25:48,770 --> 01:25:51,436 I pewnie Google może wyłączyć tę w górę lub w Wikipedii można powiedzieć. 1709 01:25:51,436 --> 01:25:54,410 Ale wybrać dwie różne wartości dla szerokości i długości geograficznej, 1710 01:25:54,410 --> 01:25:57,530 wrócić i wklej je i następnie odświeżyć stronę po zapisaniu 1711 01:25:57,530 --> 01:26:00,718 i sprawdzić, czy można mieć map do własnego rodzinnego miasta. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> A kiedy skończysz tym, follow-up challenge-- 1714 01:26:08,042 --> 01:26:11,250 a dam trochę mniej kierunek, świadomie, abyście świadomie 1715 01:26:11,250 --> 01:26:13,791 trzeba walczyć na kilka minut z dokumentacją, 1716 01:26:13,791 --> 01:26:18,740 zmienić mapę, aby nie być w tym kreskówkowe domyślne, ale mapa satelitarna. 1717 01:26:18,740 --> 01:26:24,600 Więc rzeczywiście zobaczyć satelitę obrazy zamiast ładnych kolorach. 1718 01:26:24,600 --> 01:26:29,710 >> I podpowiedź dam ci to zmienić typ mapy. 1719 01:26:29,710 --> 01:26:33,084 Wróć do uzyskania rozpoczętą stronę inspiracji. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Jak można wywnioskować, jeśli szukasz miejsca, 1722 01:26:42,390 --> 01:26:44,250 istnieje tak wiele więcej rzeczy można zrobić. 1723 01:26:44,250 --> 01:26:46,380 Niektórzy z was mają już zmieniony typ mapy. 1724 01:26:46,380 --> 01:26:49,890 Ale można do-- na przykład, niech mnie przejść na coś zrobiliśmy na kurs 1725 01:26:49,890 --> 01:26:52,050 I teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 Jeden z naszych undergrads to zrobił. 1727 01:26:53,470 --> 01:26:58,890 Jesteśmy centrum naszą mapę na Harvard Yard i nakładki wszystkich tych nazw budowlanych, 1728 01:26:58,890 --> 01:27:01,070 i mieliśmy go dodać to. 1729 01:27:01,070 --> 01:27:04,270 Więc jeśli chcę sprawdzić, na przykład, Matthews Hall 1730 01:27:04,270 --> 01:27:05,730 mamy trochę menu rozwijanego. 1731 01:27:05,730 --> 01:27:09,080 I myślę, że używa Bootstrap, na Biblioteka omówiliśmy wcześniej w tej sprawie. 1732 01:27:09,080 --> 01:27:12,190 I jeśli klikniesz na Matthews Hall, natychmiast 1733 01:27:12,190 --> 01:27:14,790 skoki mapę do pewnego lokalizacja, i to widać 1734 01:27:14,790 --> 01:27:16,440 Ci obraz w tym małym podręcznym. 1735 01:27:16,440 --> 01:27:18,670 >> Ale nawet ta mała pop-up, nie wdrożyć. 1736 01:27:18,670 --> 01:27:27,521 Gdybym przewinąć w dół na nasze coraz rozpoczętą stronę i poszukaj informacji okien, 1737 01:27:27,521 --> 01:27:29,770 zobaczysz, że niektóre z Funkcjonalność ty sam 1738 01:27:29,770 --> 01:27:31,561 Można dodać, choć nieco bardziej złożony, 1739 01:27:31,561 --> 01:27:33,970 Jest coś, co nazywa się okno informacyjne. 1740 01:27:33,970 --> 01:27:37,190 A jeśli kliknę przykład tutaj, i to jest zabawa, 1741 01:27:37,190 --> 01:27:40,530 można zrobić takie rzeczy, klikając na znacznik, a następnie voila, 1742 01:27:40,530 --> 01:27:42,400 Informacje wyskakuje. 1743 01:27:42,400 --> 01:27:45,874 >> Więc nie dość wprowadzane wystarczającej funkcje JavaScript 1744 01:27:45,874 --> 01:27:49,040 namalować obraz dokładnie tak, jak ci może podłączyć wszystkie te rzeczy razem, 1745 01:27:49,040 --> 01:27:50,706 ale mamy trochę powierzchownie. 1746 01:27:50,706 --> 01:27:53,140 W rzeczywistości, co właśnie zrobił, gdy Kliknąłem na ten znacznik, 1747 01:27:53,140 --> 01:27:55,819 było wyzwalanie wydarzeniem, z Tzw na kliknij zdarzenie. 1748 01:27:55,819 --> 01:27:57,610 I rzeczywiście zobaczył wydarzenie w dniu dzisiejszym, 1749 01:27:57,610 --> 01:28:00,670 tzw przedstawić zdarzenia, kiedy byliśmy zapobiegania 1750 01:28:00,670 --> 01:28:02,490 Użytkownik od poszukiwania kotów. 1751 01:28:02,490 --> 01:28:06,560 Więc mamy rodzaj zbierane i wybrał spośród wszystkich tych różnych funkcji, 1752 01:28:06,560 --> 01:28:08,990 dać poczucie, miejmy nadzieję, o tym, co rzeczywiście można 1753 01:28:08,990 --> 01:28:11,000 zrobić z nieco bardziej komfort w programowaniu 1754 01:28:11,000 --> 01:28:12,587 i całkowicie wolnych zasobów. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Jakieś pytania? 1757 01:28:18,770 --> 01:28:19,790 Nie? 1758 01:28:19,790 --> 01:28:22,542 To twoja ostatnia szansa, przynajmniej teraz, w piątek, 1759 01:28:22,542 --> 01:28:25,000 dostać nic poza klatką piersiową tak, że wyjdziesz stąd 1760 01:28:25,000 --> 01:28:27,067 czuje się pewnie i komfortowo. 1761 01:28:27,067 --> 01:28:27,566 Tak. 1762 01:28:27,566 --> 01:28:29,740 >> PUBLICZNOŚCI: Dlaczego nie dodać jeszcze jedną rzecz? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID MALAN: O mój Boże. 1764 01:28:32,720 --> 01:28:35,260 Muszę odpocząć w ten weekend, myślę. 1765 01:28:35,260 --> 01:28:36,180 Inne pytania? 1766 01:28:36,180 --> 01:28:37,055 >> PUBLICZNOŚCI: [INAUDIBLE] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID MALAN: Ty can-- w Internet Explorer, odpoczynek w spokoju, 1769 01:28:46,810 --> 01:28:49,310 użyłeś aby móc umieścić VB skrypt, wirtualne prosty skrypt, 1770 01:28:49,310 --> 01:28:50,643 ale to naprawdę nigdy nie przyjął. 1771 01:28:50,643 --> 01:28:52,490 Więc krótka odpowiedź jest po prostu JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Inne pytania? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 Dobrze, dobrze, pozwól mi to zrobić. 1776 01:28:59,760 --> 01:29:02,070 Daj mi złapać naszych kolegów na zewnątrz. 1777 01:29:02,070 --> 01:29:04,500 Mają jakąś ocenę formy, które chcą wszyscy 1778 01:29:04,500 --> 01:29:06,310 spędzić kilka minut wypełniania. 1779 01:29:06,310 --> 01:29:08,775 Chcą zebrać tego formularza i wszelkich Zwolnienia, które można mieć na zewnątrz. 1780 01:29:08,775 --> 01:29:10,240 Oni także mają certyfikaty. 1781 01:29:10,240 --> 01:29:12,380 Zgaduję tam jeszcze kilka przekąski na zewnątrz. 1782 01:29:12,380 --> 01:29:14,360 Pozwól mi przekazać je na zewnątrz, a jeśli masz jakieś pytania w międzyczasie 1783 01:29:14,360 --> 01:29:17,120 będę chodzić bardziej indywidualnie i możemy Ci zacząć. 1784 01:29:17,120 --> 01:29:17,879 Tak oczywiście. 1785 01:29:17,879 --> 01:29:18,754 PUBLICZNOŚCI: [INAUDIBLE] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID MALAN: To Zazwyczaj prawda w tych dniach. 1788 01:29:28,570 --> 01:29:30,730 Oczywiście w internecie oprogramowania, jesteś opierając 1789 01:29:30,730 --> 01:29:32,901 na innych, jesteś albo estetycznie używając rzeczy 1790 01:29:32,901 --> 01:29:35,400 jak Bootstrap, więc nie zaimplementować niski poziom 1791 01:29:35,400 --> 01:29:37,169 Szczegóły menu i Przyciski i to wszystko. 1792 01:29:37,169 --> 01:29:39,210 Teraz, opierając się na kogoś takich jak Google, dzięki czemu 1793 01:29:39,210 --> 01:29:42,050 nie trzeba budować Uber biznesu i biznesu mapowanie, 1794 01:29:42,050 --> 01:29:44,850 i dowolną liczbę podobnych zastosowaniach. 1795 01:29:44,850 --> 01:29:46,350 >> W rzeczywistości, loginy są popularne, too. 1796 01:29:46,350 --> 01:29:48,500 Jeśli używany lub Spotify dowolną liczbę stron internetowych, 1797 01:29:48,500 --> 01:29:51,210 musisz zalogować się do niektórych strony internetowe za pomocą Facebooka. 1798 01:29:51,210 --> 01:29:53,350 Więc co jest ładne, nie API są do logowania 1799 01:29:53,350 --> 01:29:56,570 w dzisiejszych czasach, dzięki czemu nie trzeba mieć swój własny stół użytkowników 1800 01:29:56,570 --> 01:29:59,440 a wszystko z własnej bazy danych niekoniecznie w tym samym stopniu. 1801 01:29:59,440 --> 01:30:01,795 Możesz pozwolić Facebook zrobić wszystko tej złożoności dla Ciebie. 1802 01:30:01,795 --> 01:30:03,920 Więc jest to ekscytujący czas, Szczerze mówiąc, w programowaniu, 1803 01:30:03,920 --> 01:30:07,200 ponieważ istnieje tak wiele stron trzecich usługi, które można zbudować na szczycie. 1804 01:30:07,200 --> 01:30:10,890 >> I znowu, cena, jaką płacisz jest albo finansowe lub przestoju. 1805 01:30:10,890 --> 01:30:13,750 Jeśli Google idzie w dół, tak nie Uber, prawdopodobnie, 1806 01:30:13,750 --> 01:30:15,690 ale być może, że to rozsądny kompromis. 1807 01:30:15,690 --> 01:30:18,040 I znowu, to był jeden z tematów, miejmy nadzieję, że w ciągu ostatnich kilku dni, 1808 01:30:18,040 --> 01:30:18,780 właśnie te kompromisy. 1809 01:30:18,780 --> 01:30:20,738 I rzadko ma zamiar być prawidłowa odpowiedź. 1810 01:30:20,738 --> 01:30:25,700 To naprawdę jest lepsza z dwóch lub większej liczby odpowiedzi. 1811 01:30:25,700 --> 01:30:26,682 >> Przekazać te okolice. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> I te rachunki Cloud9 będą kontynuowane do pracy, w teorii, w sposób ciągły. 1814 01:30:41,110 --> 01:30:45,000 Może się okazać, jeśli czekać kilka dni lub tygodni lub więcej, aby zalogować się na nich, 1815 01:30:45,000 --> 01:30:49,170 Może to potrwać jak jeden lub Pięć minut, aby otworzyć z powrotem, 1816 01:30:49,170 --> 01:30:54,090 ale to tylko dlatego, że włożyli go do snu, aby zapisać się na zasobach. 1817 01:30:54,090 --> 01:31:10,527