1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID Malan: Dobře, jsme zpátky. 3 00:00:01,560 --> 00:00:03,830 Takže pro vzrušující závěr, náš poslední úsek 4 00:00:03,830 --> 00:00:06,900 na webové programování, které jsem myslel, že bychom používat jako obecný termín 5 00:00:06,900 --> 00:00:08,440 zachytit několik zbývajících témat. 6 00:00:08,440 --> 00:00:10,390 Takže na konci den, budeme vlastně dělat 7 00:00:10,390 --> 00:00:14,830 trochu hands-on programování pro web s jazykem volal JavaScript. 8 00:00:14,830 --> 00:00:17,510 A myslím, že my se podíváme na něco, co souvisí s obrazy 9 00:00:17,510 --> 00:00:20,040 a objevování něčeho tajně skryté v obraze, 10 00:00:20,040 --> 00:00:23,230 a také se podívat na Google Maps API, aplikační programovací 11 00:00:23,230 --> 00:00:26,040 rozhraní, jako něco, reprezentativní pro typ softwaru 12 00:00:26,040 --> 00:00:28,800 To je stále více a volně k dispozici dnes. 13 00:00:28,800 --> 00:00:32,029 >> Ale proč bychom se podívat při přísada do tohoto světa 14 00:00:32,029 --> 00:00:34,070 že jsme byli trochu brát jako samozřejmost existuje 15 00:00:34,070 --> 00:00:36,720 na nějakou dobu, databáze. 16 00:00:36,720 --> 00:00:39,150 Za poslední den a půl jsme se předpokládat, 17 00:00:39,150 --> 00:00:42,910 že máme přístup k databázi, ale jaký problém se databáze vyřešit? 18 00:00:42,910 --> 00:00:45,540 Co to dělá pro nás? 19 00:00:45,540 --> 00:00:47,030 Co je to? 20 00:00:47,030 --> 00:00:48,679 >> Diváků: [neslyšitelné] 21 00:00:48,679 --> 00:00:51,720 DAVID Malan: Pojme veškeré informace, OK a jaké druhy informací 22 00:00:51,720 --> 00:00:53,186 Možná jste dal v něm? 23 00:00:53,186 --> 00:00:54,590 >> Diváků: [neslyšitelné] 24 00:00:54,590 --> 00:00:56,450 >> DAVID Malan: Veškeré informace dáte do ní, dostanete zpátky. 25 00:00:56,450 --> 00:00:57,070 To je pravda. 26 00:00:57,070 --> 00:01:01,900 A na typické webové stránky nebo web Aplikace, jaké druhy informací, 27 00:01:01,900 --> 00:01:03,385 specificky, můžete dát? 28 00:01:03,385 --> 00:01:04,260 Diváků: [neslyšitelné] 29 00:01:04,260 --> 00:01:05,051 DAVID Malan: Uživatelé. 30 00:01:05,051 --> 00:01:07,000 Takže to, co je uživatel? 31 00:01:07,000 --> 00:01:09,765 >> Diváků: [neslyšitelné] 32 00:01:09,765 --> 00:01:11,640 DAVID Malan: OK, zapsaná Uživatel webu. 33 00:01:11,640 --> 00:01:15,100 A co to znamená Úložiště informací uživatelů? 34 00:01:15,100 --> 00:01:17,260 Co komponuje uživatele? 35 00:01:17,260 --> 00:01:18,331 Uživatel má co? 36 00:01:18,331 --> 00:01:19,206 Diváků: [neslyšitelné] 37 00:01:19,206 --> 00:01:21,040 DAVID Malan: Jo, osobní Údaje, a to se mi líbí. 38 00:01:21,040 --> 00:01:21,970 Buďme přesnější. 39 00:01:21,970 --> 00:01:25,275 Takže uživatel má obvykle název, co jiného by mohl uživatel mít? 40 00:01:25,275 --> 00:01:26,150 Diváků: [neslyšitelné] 41 00:01:26,150 --> 00:01:29,130 DAVID Malan: an addr-- OK, takže první jméno, příjmení. 42 00:01:29,130 --> 00:01:29,630 To je dobré. 43 00:01:29,630 --> 00:01:31,463 Ve skutečnosti, pojďme opravit , protože to se děje 44 00:01:31,463 --> 00:01:35,010 otevřít příležitost pro diskuse, ještě dále. 45 00:01:35,010 --> 00:01:39,090 Křestní jméno, příjmení, pohlaví. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 ID nějakého druhu. 48 00:01:43,481 --> 00:01:43,980 Co dalšího? 49 00:01:43,980 --> 00:01:45,438 Slyšel jsem něco jiného předtím, taky. 50 00:01:45,438 --> 00:01:51,600 E-mail, poštovní adresa. 51 00:01:51,600 --> 00:01:58,170 >> Takže pojďme tam pauzu a nyní považují ne to, co jsme ukládání v databázi, 52 00:01:58,170 --> 00:02:01,980 ale- a není důvod, proč, protože je možná zřejmé, že jakmile se zaregistrujete uživatele, 53 00:02:01,980 --> 00:02:03,730 Chcete-li pamatovat na nějakou dobu. 54 00:02:03,730 --> 00:02:05,480 Nechcete, aby ji jen být uložen v paměti RAM 55 00:02:05,480 --> 00:02:08,690 a být tak forgotten-- zaměřme na how. 56 00:02:08,690 --> 00:02:11,700 >> Ukazuje se, že v svět databází, 57 00:02:11,700 --> 00:02:14,410 tu alespoň dva typy těchto dnech. 58 00:02:14,410 --> 00:02:20,010 Něco, co nazývá SQL databázi, Strukturovaný dotazovací jazyk, 59 00:02:20,010 --> 00:02:24,770 nebo cutely pojmenovaný, NoSQL, který není SQL. 60 00:02:24,770 --> 00:02:26,980 A ten je příkladem toho, co by mohlo 61 00:02:26,980 --> 00:02:30,660 nazvat objektově orientovaný, nebo sklad objekt, databáze 62 00:02:30,660 --> 00:02:36,010 který uchovává objekty, a nikoli výmluvou me, jak brzy uvidíme, řádky. 63 00:02:36,010 --> 00:02:41,800 >> Takže se budeme soustředit jen na krátký okamžik na První z nich, a sice, SQL 64 00:02:41,800 --> 00:02:46,850 databáze, i kdyby jen proto, že je tak známý už nikomu 65 00:02:46,850 --> 00:02:51,070 kdo používá Excel nebo Tabulky Google nebo Apple 66 00:02:51,070 --> 00:02:53,740 Čísla nebo jakýkoliv standardní tabulkový kalkulátor, 67 00:02:53,740 --> 00:02:56,040 nebo ekvivalentně, nebo více sofistikovaně, 68 00:02:56,040 --> 00:02:58,610 něco jako Microsoft Access nebo Oracle 69 00:02:58,610 --> 00:03:03,890 nebo MySQL nebo PostgreSQL, z nichž všechny jsou názvy produktů pro implementace 70 00:03:03,890 --> 00:03:04,865 z následujícího nápadu. 71 00:03:04,865 --> 00:03:10,350 >> Relační databáze je jednoduše něco, co má řádků a sloupců. 72 00:03:10,350 --> 00:03:12,850 A řádků a sloupců, Doslova jsem na mysli něco 73 00:03:12,850 --> 00:03:21,860 takhle, tak kde bychom mohli mít název pole a svého druhu tady. 74 00:03:21,860 --> 00:03:25,800 A skutečně, nech mě nyní začínají mapovat tyto. 75 00:03:25,800 --> 00:03:29,420 Takže vlastně nevím Proto jsem nakreslil samostatný graf. 76 00:03:29,420 --> 00:03:30,780 Zkusme udržet tento jednoduchý. 77 00:03:30,780 --> 00:03:34,830 >> Máme právo zde Počátky našeho stolu, kde 78 00:03:34,830 --> 00:03:40,150 To je název pole a to je datový typ, 79 00:03:40,150 --> 00:03:41,660 a podle typu mám na mysli následující. 80 00:03:41,660 --> 00:03:45,510 Je to číslo, je to řetězec, krátký řetězec jako slovo, 81 00:03:45,510 --> 00:03:49,340 Je to bod, je to binární data, jako obrázek? 82 00:03:49,340 --> 00:03:51,980 A ať to jen dráždit toto od sebe na chvíli. 83 00:03:51,980 --> 00:03:57,575 Takže první jméno, číslo, string, velký kus text-- 84 00:03:57,575 --> 00:03:58,450 Diváků: [neslyšitelné] 85 00:03:58,450 --> 00:03:59,616 DAVID Malan: Ano, tak řetězec. 86 00:03:59,616 --> 00:04:04,744 A v kontextu databáze, zmíníme obvykle nazývají toto pole char. 87 00:04:04,744 --> 00:04:07,660 Budu jen říct, char prozatím ale my jsme bude rafinovat to za chvíli. 88 00:04:07,660 --> 00:04:09,180 Charakter terénu. 89 00:04:09,180 --> 00:04:11,365 Poslední název je pravděpodobně stejný. 90 00:04:11,365 --> 00:04:11,865 Pohlaví? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Muž nebo žena, tak to může být pole char. 93 00:04:18,310 --> 00:04:21,380 Mohlo by to být buď citát, konec citátu "Mužské" nebo citát, konec citátu "ženské" 94 00:04:21,380 --> 00:04:23,650 nebo to může být m nebo f. 95 00:04:23,650 --> 00:04:26,540 Chcete-li být více inkluzivní, Možná budete potřebovat třetí hodnotu 96 00:04:26,540 --> 00:04:28,640 nebo nějaký druh jiné oblasti úplně. 97 00:04:28,640 --> 00:04:31,350 A tak můžete použít true false. 98 00:04:31,350 --> 00:04:35,036 Pole by se dalo nazvat mužské a pak by se dalo říci true nebo false. 99 00:04:35,036 --> 00:04:38,160 Ale nemusí nutně zachytit všechny informace, které by vás mohly chtít. 100 00:04:38,160 --> 00:04:41,118 >> Tak to dopadá je tu jiný typ pole, které by mohly být užitečné zde 101 00:04:41,118 --> 00:04:46,040 v typickém databázi, nazvaný ENUM, pokud se jedná o pole znak, 102 00:04:46,040 --> 00:04:50,480 ale ty, které navrhují, dostat výčet možných hodnot, 103 00:04:50,480 --> 00:04:54,630 jako citát, konec citátu "mužské", cituji: unquote "ženské", a tak dále. 104 00:04:54,630 --> 00:04:57,620 Takže bez ohledu na hodnotu je v databázi, 105 00:04:57,620 --> 00:05:00,670 je skutečně znakových, avšak musí být jedna z těchto hodnot. 106 00:05:00,670 --> 00:05:03,520 Pravděpodobně bychom nechtěli ENUM pro křestní jméno nebo příjmení. 107 00:05:03,520 --> 00:05:05,630 V opačném případě budeme mít výčet, jako název 108 00:05:05,630 --> 00:05:09,570 pochází z doslova každý je to možné křestní jméno a příjmení. 109 00:05:09,570 --> 00:05:13,960 >> OK, takže ID co by mělo být ID? 110 00:05:13,960 --> 00:05:15,200 Ano, možná celá řada. 111 00:05:15,200 --> 00:05:17,870 Takže pojďme držet se že pro tuto chvíli, číslo. 112 00:05:17,870 --> 00:05:22,010 A podle čísla, číslo je trochu příliš široká teď. 113 00:05:22,010 --> 00:05:23,900 Na konci druhého den, mám pocit, že jsme 114 00:05:23,900 --> 00:05:25,280 mělo být o něco přesnější. 115 00:05:25,280 --> 00:05:29,280 Počet mohlo znamenat podobně, jej by mohlo být něco jako 1,236. 116 00:05:29,280 --> 00:05:31,500 A to asi nebude Co máme na mysli ID. 117 00:05:31,500 --> 00:05:34,635 Co máme na mysli pravděpodobně pomocí ID? 118 00:05:34,635 --> 00:05:36,382 >> Diváků: [neslyšitelné] 119 00:05:36,382 --> 00:05:38,590 DAVID Malan: Oh, OK, takže Možná to není ani číslo. 120 00:05:38,590 --> 00:05:42,840 Možná je to skutečně jedinečný identifikátor to je řetězec, stejně jako uživatelské jméno. 121 00:05:42,840 --> 00:05:44,580 Takže absolutně, by mohl být. 122 00:05:44,580 --> 00:05:46,730 Myslím, že někdo pravděpodobně znamenalo numerický, ačkoli. 123 00:05:46,730 --> 00:05:48,460 Takže pojďme zůstat s tím. 124 00:05:48,460 --> 00:05:49,320 Jaké číslo? 125 00:05:49,320 --> 00:05:51,960 Co je víc precise-- celé číslo. 126 00:05:51,960 --> 00:05:56,710 Takže celá řada, jako 0, 1, 2, 3, takže budeme nazývat celé číslo. 127 00:05:56,710 --> 00:05:58,909 A i pak, bych mohl být hnidopišství, to je 128 00:05:58,909 --> 00:06:00,700 Není opravdu jen Obecně číslo chcete. 129 00:06:00,700 --> 00:06:04,340 Pravděpodobně nechtějí záporných hodnot, jen proto, že to prostě divné. 130 00:06:04,340 --> 00:06:06,070 Pravděpodobně budete chtít kladná celá čísla. 131 00:06:06,070 --> 00:06:07,920 Takže můžete také vyjádřit že v databázi, 132 00:06:07,920 --> 00:06:09,450 ale teď, budeme říkat číslo. 133 00:06:09,450 --> 00:06:10,650 >> E-mail? 134 00:06:10,650 --> 00:06:13,550 To je pravděpodobně prostě-- Cože? 135 00:06:13,550 --> 00:06:14,460 >> Diváků: [neslyšitelné] 136 00:06:14,460 --> 00:06:16,980 >> DAVID Malan: Je to e-mail, ale to postavy, ne? 137 00:06:16,980 --> 00:06:19,813 Má prostě funky charakter jako "AT" symbol nebo něco jiného, 138 00:06:19,813 --> 00:06:21,580 ale je to stále pole znak. 139 00:06:21,580 --> 00:06:23,900 A poštovní adresa? 140 00:06:23,900 --> 00:06:25,360 Charakter terénu. 141 00:06:25,360 --> 00:06:31,400 Tak to je hezký začátek, ale buďme trochu přesnější dnes. 142 00:06:31,400 --> 00:06:34,540 >> Tak to dopadá, že ve databáze, často 143 00:06:34,540 --> 00:06:39,120 mají na výběr přes jemnější verze těchto věcí. 144 00:06:39,120 --> 00:06:44,330 Ve skutečnosti, v typickém SQL databáze, SQL, nebo obecněji, relační databáze, 145 00:06:44,330 --> 00:06:46,680 databází s řadami a sloupy, často 146 00:06:46,680 --> 00:06:53,610 dostat určit nejen na typu field-- dovolte mi udělat nějaké místnosti here-- 147 00:06:53,610 --> 00:06:56,600 ale i délka. 148 00:06:56,600 --> 00:06:59,900 >> Tak, jak je křestní jméno? 149 00:06:59,900 --> 00:07:07,060 Myslím, že D-A-V-I-D. OK, to mám já Pravděpodobně právě urazil jako polovinu 150 00:07:07,060 --> 00:07:11,260 lidí v místnosti, vpravo, protože vaše jména jsou delší než pět 151 00:07:11,260 --> 00:07:16,608 dopisy, takže pět zdá být trochu sobec a naivní, takže to, co je lepší hodnota? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, v pořádku, a myslím, Jsme v pořádku v místnosti. 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 Proč nemohu vzít Přístup dříve, když jsme 157 00:07:29,540 --> 00:07:31,081 mluvili o pole a paměti? 158 00:07:31,081 --> 00:07:32,450 Proč ne já jen říct, jako 1000? 159 00:07:32,450 --> 00:07:35,260 Název nikdo se děje být delší než 1,000. 160 00:07:35,260 --> 00:07:36,706 Zatlačit zpátky. 161 00:07:36,706 --> 00:07:38,005 >> Diváků: [neslyšitelné] 162 00:07:38,005 --> 00:07:40,130 DAVID Malan: Jo, je to nehospodárné, vpravo, zvláště 163 00:07:40,130 --> 00:07:44,630 pokud většina názvy jsou jen pět nebo deset nebo 15 znaků, že je to velmi nehospodárné. 164 00:07:44,630 --> 00:07:45,810 Tak víte co? 165 00:07:45,810 --> 00:07:48,020 To je trochu těžká otázka. 166 00:07:48,020 --> 00:07:51,721 Nyní můžeme jistě analyzovat anglicky a názvy jakémkoli jiném jazyce je 167 00:07:51,721 --> 00:07:54,470 a přijít na to, no, co je average-- průměr není opravdu 168 00:07:54,470 --> 00:07:57,150 pomoci us-- co je max je asi to, co opravdu chceme. 169 00:07:57,150 --> 00:07:59,920 Ale ukazuje se, máme dokonce někteří volba nad Sem. 170 00:07:59,920 --> 00:08:03,400 >> V typickém SQL databáze, budete mají něco, co nazývá char pole 171 00:08:03,400 --> 00:08:07,505 a také varchar, V-A-R, variabilní pole char. 172 00:08:07,505 --> 00:08:08,630 A rozdíl je to. 173 00:08:08,630 --> 00:08:12,400 Char pole, ty, které navrhují, muset zadat předem 174 00:08:12,400 --> 00:08:14,900 Přesná délka pole. 175 00:08:14,900 --> 00:08:20,530 Takže možná křestní jméno stejně jako 20 cítí trochu bezpečí. 176 00:08:20,530 --> 00:08:23,950 Možná budete muset udělat nějaké googling na uvidíme, jestli to stačí skutečně bezpečné. 177 00:08:23,950 --> 00:08:26,910 Tam je zřejmě název s 21 znaky, ale teď, předpokládám 20 178 00:08:26,910 --> 00:08:27,620 je v bezpečí. 179 00:08:27,620 --> 00:08:30,070 >> Pole char by znamenalo v databázi, která vám 180 00:08:30,070 --> 00:08:33,289 Používáte-20 a vždy 20 znaky. 181 00:08:33,289 --> 00:08:37,419 Nyní, když je to jen D-A-V-I-D, 15 z nich jsou jen bude prázdné znaky, 182 00:08:37,419 --> 00:08:40,450 ale stále používáte všech 20 bajtů. 183 00:08:40,450 --> 00:08:46,302 Varchar pole, naopak znamená, že řetězec by měl být až 20 znaků 184 00:08:46,302 --> 00:08:48,260 ale když je to jen pět, jste jen bude používat 185 00:08:48,260 --> 00:08:51,270 pět, možná šest Aby Speciální hodnota na konci, 186 00:08:51,270 --> 00:08:54,980 jako ten 0 jsme diskutovali, že znamená konec znaku 187 00:08:54,980 --> 00:08:56,790 sekvence v paměti. 188 00:08:56,790 --> 00:08:59,950 >> Takže když si o tom myslíš můžete si vybrat char 189 00:08:59,950 --> 00:09:05,240 proti varcharNebo vzhledem k tomu, že trade-off? 190 00:09:05,240 --> 00:09:09,321 Char používá tolik charakterů, varchar používá více než tolik charakterů. 191 00:09:09,321 --> 00:09:10,196 Diváků: [neslyšitelné] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID Malan: OK, když víte, že délka řetězce docela přesvědčivé 194 00:09:16,900 --> 00:09:19,316 stačí použít char, protože v případě, ty to víš, prostě dát dolů. 195 00:09:19,316 --> 00:09:23,390 A možná, že to platí i pro zip kód, ve Spojených státech, přinejmenším, 02138, 196 00:09:23,390 --> 00:09:26,660 je to vždy bude pět znaky, dokud se přidat pomlčku čtyři. 197 00:09:26,660 --> 00:09:29,750 Ale můžete mít nějaké hodnoty které vždy víte délku. 198 00:09:29,750 --> 00:09:32,310 Anebo státní symboly, jako NY do New Yorku, 199 00:09:32,310 --> 00:09:33,811 a MA Massachusetts v USA. 200 00:09:33,811 --> 00:09:36,560 Možná jste si nějaké situace kde to je naprosto rozumné, 201 00:09:36,560 --> 00:09:39,520 ale podle této logiky, proč jsou dokonce jsme overthinking to? 202 00:09:39,520 --> 00:09:41,800 Proč ne my stačí použít varchar a pak jsme jen bude 203 00:09:41,800 --> 00:09:46,730 Vždy použijte dvě postavy tak jako tak, nebo Vždy použijte pět znaků vlastně je? 204 00:09:46,730 --> 00:09:50,300 Proč ne jen uložit varchar pro všechno tím, že touto logikou? 205 00:09:50,300 --> 00:09:51,677 Tam musí být nějaký háček. 206 00:09:51,677 --> 00:09:52,552 Diváků: [neslyšitelné] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID Malan: Could napsat něco špatného. 209 00:09:56,660 --> 00:09:58,090 Takže je to pravda. 210 00:09:58,090 --> 00:10:01,030 Ale i tehdy, nemohou používat více paměti, než jsem přidělit. 211 00:10:01,030 --> 00:10:03,340 Stále mám finále říci, po celé délce, 212 00:10:03,340 --> 00:10:06,780 takže nemohou náhodně dělat že chyba, ale dobrá myšlenka. 213 00:10:06,780 --> 00:10:10,510 Je to jemnější, ale je to velmi příbuzné do naší diskuse, vlastně polí 214 00:10:10,510 --> 00:10:12,390 a spojových seznamů dříve. 215 00:10:12,390 --> 00:10:16,290 >> Ukazuje se, že v databázi, pokud ví, že všechny hodnoty jsou 216 00:10:16,290 --> 00:10:19,250 pevnou délku, a to i v případě, některé z těchto hodnot jsou prázdné, 217 00:10:19,250 --> 00:10:22,484 druh esteticky prázdný, D-A-V-I-D a poté 15 polotovary, 218 00:10:22,484 --> 00:10:24,650 Ukazuje se, že pokud by každý pole má stejnou délku, 219 00:10:24,650 --> 00:10:28,670 podobně jako pole měla všechny své věci zády k sobě, aby zády k sobě tak, aby 220 00:10:28,670 --> 00:10:33,480 můžete jen plus 1 se dostat do další hodnota Stejná myšlenka v tabulce databáze. 221 00:10:33,480 --> 00:10:37,550 Pokud jsou všechny vaše postava Řetězce jsou stejně dlouhé, 222 00:10:37,550 --> 00:10:39,390 Máte to, co se nazývá random access. 223 00:10:39,390 --> 00:10:41,850 Pokud jsou všechny řetězce jsou Délka 20, vy ne jen 224 00:10:41,850 --> 00:10:45,230 dělat plus 1 stačí udělat navíc 20 plus 20 plus 20 plus 20, 225 00:10:45,230 --> 00:10:48,775 a můžete velmi rychle listovat nebo prohledávat všechny vaše data. 226 00:10:48,775 --> 00:10:54,420 >> Proměnná pole char, naopak, nemá vždy 20 znaků. 227 00:10:54,420 --> 00:10:58,000 To může mít 20 a poté 15 a pak 19 a poté 10, 228 00:10:58,000 --> 00:11:00,720 a tak pokud chcete vyhledávat přes to, nemůžeš jen slepě 229 00:11:00,720 --> 00:11:03,050 přidá se 20 bajtů se dostat na ten příští. 230 00:11:03,050 --> 00:11:07,280 Doslova muset prohledávat proto, že okraj datové struktury, 231 00:11:07,280 --> 00:11:08,340 chcete-li, je členitý. 232 00:11:08,340 --> 00:11:11,480 Je to trochu jde dovnitř a ven vychází na skutečnou délku řetězce. 233 00:11:11,480 --> 00:11:14,460 Takže když víte, délku, jako Kareem říká, použít pole char, 234 00:11:14,460 --> 00:11:16,460 protože získáváš Účinnost je 235 00:11:16,460 --> 00:11:19,170 schopen prohledávat rychleji když hledáte pro data, která, 236 00:11:19,170 --> 00:11:20,550 jinak používat proměnné. 237 00:11:20,550 --> 00:11:24,450 >> Bohužel, nemám dobrou odpověď na tom, jak dlouho by měl být název, 238 00:11:24,450 --> 00:11:26,360 ale na něco takového jméno, řekl bych, 239 00:11:26,360 --> 00:11:28,470 VARCHAR je obyčejný protože to nebude 240 00:11:28,470 --> 00:11:30,430 být pevnou délkou pro každého. 241 00:11:30,430 --> 00:11:33,650 20, nevím, 20 cítí trochu těsný. 242 00:11:33,650 --> 00:11:36,460 Řekněme, 50, 50. 243 00:11:36,460 --> 00:11:39,210 To není opravdu něco stát, že mnohem víc, řekněme 50 místo 40, 244 00:11:39,210 --> 00:11:41,260 ale na nějakém místě, budete potřebovat učinit úsudek volání. 245 00:11:41,260 --> 00:11:43,090 >> Velmi časté, upřímně řečeno, pro [? historický ?] 246 00:11:43,090 --> 00:11:47,670 Důvody, i když je to přehnané, tedy 255, protože před nějakým časem, 247 00:11:47,670 --> 00:11:51,440 v populárních databázových systémů, jako MySQL, bezplatný open source nástroj 248 00:11:51,440 --> 00:11:53,790 že mnoho společností stejně jako i Facebook používá, 249 00:11:53,790 --> 00:11:56,654 to je maximální výchozí takže lidé prostě šel s ním. 250 00:11:56,654 --> 00:11:59,070 Takže není nerozumné, ale budeme použijte trochu více intuici 251 00:11:59,070 --> 00:12:02,970 a říci, zda 50, to je asi trochu přehnané. 252 00:12:02,970 --> 00:12:05,720 >> Pohlaví, mám rád ENUM, a tak můžeme tudíž 253 00:12:05,720 --> 00:12:08,760 vyjmenovat mužem nebo ženou nebo možná efektivněji, 254 00:12:08,760 --> 00:12:13,420 m nebo f nebo nějaký jiný symbolika, ale Výčet cítí jako dobrá volba tam. 255 00:12:13,420 --> 00:12:16,740 Aby bylo jasno, pohlaví by mohl být jen varchar 256 00:12:16,740 --> 00:12:19,090 A mohli bychom prostě vše Souhlasíte s tím, jak milí lidé, 257 00:12:19,090 --> 00:12:21,010 vždy dát stejné hodnoty tam. 258 00:12:21,010 --> 00:12:22,720 Muž nebo žena, nebo kdoví co ještě. 259 00:12:22,720 --> 00:12:27,800 >> Ale problém tedy je, že jsme mohli udělat chybu, protože [neslyšitelné] navrhla 260 00:12:27,800 --> 00:12:29,140 dříve v jiném kontextu. 261 00:12:29,140 --> 00:12:32,780 Pokud uděláme chybu, mohli bychom získat nesprávné hodnoty v naší databázi. 262 00:12:32,780 --> 00:12:36,320 Takže to, co je hezké o databázích jako Oracle a MySQL a další, 263 00:12:36,320 --> 00:12:39,280 je, že máte tato poslední Vrstva obranu kde 264 00:12:39,280 --> 00:12:43,010 administrátor DBA, databáze, kdo je navrhování této tabulky jako my 265 00:12:43,010 --> 00:12:46,440 jsou slovně, mohli dát na místo ENUM, že 266 00:12:46,440 --> 00:12:51,250 chrání proti tomu zadáním muž, žena, a tak nikdo 267 00:12:51,250 --> 00:12:54,230 jinde ne programátor může náhodně vložit jinou hodnotu. 268 00:12:54,230 --> 00:12:55,480 Takže by to být dobrá věc. 269 00:12:55,480 --> 00:12:56,660 To je vlastnost. 270 00:12:56,660 --> 00:13:00,760 >> Takže ID, za předpokladu, že číselný identifikátor, bude Pravděpodobně by mělo být kladné celé číslo. 271 00:13:00,760 --> 00:13:04,380 A my někdy mají příležitostí k diskusi o délku. 272 00:13:04,380 --> 00:13:06,830 Vy ne typicky zadat číslo zde, 273 00:13:06,830 --> 00:13:11,310 byste místo toho určit, to je int, nebo velký int, 274 00:13:11,310 --> 00:13:12,980 protože jsou typicky volal. 275 00:13:12,980 --> 00:13:18,840 Ale typicky, celé číslo by bylo, řekněme, 4 bajty. 276 00:13:18,840 --> 00:13:23,694 A jestli je to 4 bajty, To je, kolik bitů? 277 00:13:23,694 --> 00:13:24,630 >> Diváků: [neslyšitelné] 278 00:13:24,630 --> 00:13:26,610 >> DAVID Malan: 32 bitů. 279 00:13:26,610 --> 00:13:30,270 Tak kolik uživatelů můžeme mít v naše databáze v případě, že všichni mají identifikátor 280 00:13:30,270 --> 00:13:33,320 a toto číslo musí být jedinečný? 281 00:13:33,320 --> 00:13:36,780 32 bitů znamená, že máme vzory jeden, dva, tři, čtyři, five-- 282 00:13:36,780 --> 00:13:41,000 Tak jak mnoho různých vzorů z nul a ty můžete mít, pokud existují 32? 283 00:13:41,000 --> 00:13:43,235 To je totéž jako ptát, co to dva na 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 Je to velké číslo, které Nemohu dost dostat v pořádku, 286 00:13:48,430 --> 00:13:50,270 ale vím, že je to zhruba 4 miliardy. 287 00:13:50,270 --> 00:13:53,970 Takže to znamená, že vaše databáze tabulka může mají čtyři miliardy uživatelů a to je vše. 288 00:13:53,970 --> 00:13:56,410 >> Takže je to zajímavá Design implikace. 289 00:13:56,410 --> 00:14:00,840 Slušný počet společností se rozhodli, možná ne tolik 290 00:14:00,840 --> 00:14:04,860 k jejich stolu uživatele, protože mají 4 miliardy uživatelů je vzácný problém. 291 00:14:04,860 --> 00:14:08,410 To je jakýsi Facebook stylu Problém, není typický společnost problém. 292 00:14:08,410 --> 00:14:12,670 Ale možná, pokud máte protokolů transakcí nebo nějaký druh dat, které se neustále 293 00:14:12,670 --> 00:14:15,610 dostane zapsán do databáze že absolutně mohla mít miliardy 294 00:14:15,610 --> 00:14:18,900 a miliardy řádků, a Použijete-li číslo na to, 295 00:14:18,900 --> 00:14:22,750 co se stane, jakmile dostanete do řádku číslo 4 miliardy 296 00:14:22,750 --> 00:14:26,210 a potom zkuste vložit 4000000000. a 1, tak říkajíc? 297 00:14:26,210 --> 00:14:29,610 Já zjednodušení čísla trochu. 298 00:14:29,610 --> 00:14:33,740 >> Můžete snížit zpět, mám na mysli vás muset zvládnout nějak. 299 00:14:33,740 --> 00:14:37,910 A jaký počítač bude typicky dělat, přemýšlet o tom ani z dnešního rána, 300 00:14:37,910 --> 00:14:42,430 pokud máte 4-bitovou hodnotu jako 1, 1, 1, 1, který, 301 00:14:42,430 --> 00:14:44,920 jen svázat ráno společně odpoledne, co 302 00:14:44,920 --> 00:14:48,369 nemá toto číslo představuje v binární? 303 00:14:48,369 --> 00:14:49,410 OK, budeme dělat to jednodušší. 304 00:14:49,410 --> 00:14:53,310 Co toto číslo představují v binární? 305 00:14:53,310 --> 00:14:56,794 OK, budeme dělat to jednodušší, jaká to představuje v binární? 306 00:14:56,794 --> 00:14:57,460 Diváků: Tři. 307 00:14:57,460 --> 00:14:59,670 DAVID Malan: Tři, protože máme ty column-- 308 00:14:59,670 --> 00:15:00,450 [SMÍCH] 309 00:15:00,450 --> 00:15:01,350 Uff! 310 00:15:01,350 --> 00:15:03,980 Měli jsme sloupec ones a sloupec dvojky. 311 00:15:03,980 --> 00:15:07,250 Takže předpokládám, že skutečně naše [? infield?] nebyli 32 bitů, 312 00:15:07,250 --> 00:15:13,440 ale to bylo dva bity, můžeme počítat od uživatele číslo 0, 1, 2, 3, 313 00:15:13,440 --> 00:15:18,040 a pak jsme trochu zpět k uživateli 00 znovu. 314 00:15:18,040 --> 00:15:19,739 Tak tohle je to, co obvykle se stane. 315 00:15:19,739 --> 00:15:22,780 Pokud jste někdy slyšeli expression-- Pravděpodobně ne, ale pokud have-- 316 00:15:22,780 --> 00:15:26,500 integer overflow, kde vás zachovat obracející všechny své bity 317 00:15:26,500 --> 00:15:29,640 být největší možné hodnoty, a pak jste mimo bitů, 318 00:15:29,640 --> 00:15:30,850 co by se obvykle stalo? 319 00:15:30,850 --> 00:15:32,280 Proč to říkám 00? 320 00:15:32,280 --> 00:15:33,220 No, to je tři. 321 00:15:33,220 --> 00:15:34,230 Jak mohu reprezentovat čtyři? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Jak mohu reprezentovat pro číslo 4 v binární? 324 00:15:38,915 --> 00:15:39,790 Diváků: [neslyšitelné] 325 00:15:39,790 --> 00:15:41,780 DAVID Malan: One-- jo, Neříkejte 100 samy o sobě, 326 00:15:41,780 --> 00:15:44,190 protože má špatný konotace, ale 1-0-0. 327 00:15:44,190 --> 00:15:48,920 Takže číslo 1-0-0 je vskutku v pořádku, ale pokud máte jen dva bity, 328 00:15:48,920 --> 00:15:50,820 Co jste vlastně udělal? 329 00:15:50,820 --> 00:15:53,219 Vy jste se převalil na 00. 330 00:15:53,219 --> 00:15:54,760 A vskutku, že to, co by se stalo. 331 00:15:54,760 --> 00:15:56,884 Ve skutečnosti si můžete myslet o tom známější. 332 00:15:56,884 --> 00:15:59,350 Pokud si vzpomínáte, co, před 16 lety, svět 333 00:15:59,350 --> 00:16:03,380 měl skončit, když Problém Y2K stalo. 334 00:16:03,380 --> 00:16:04,330 Proč tomu tak bylo? 335 00:16:04,330 --> 00:16:08,170 No většina počítačů, pro rozumné rozhodnutí, 336 00:16:08,170 --> 00:16:15,320 bylo ukládání čísel podobně jako rok 1975 nebo rok 1999 337 00:16:15,320 --> 00:16:19,010 jen pomocí dvou číslic V paměti počítače. 338 00:16:19,010 --> 00:16:21,950 Takže samozřejmě, co se stane, když se dostanete do roku 2000, 339 00:16:21,950 --> 00:16:25,790 půjdete do toho, nebo spíše, jo. 340 00:16:25,790 --> 00:16:30,120 Takže jdete do roku 2000, ale v případě, používáte pouze dvě číslice to vypadá 341 00:16:30,120 --> 00:16:32,660 stejně jako v roce 00 a Takže jsi převrátil. 342 00:16:32,660 --> 00:16:36,820 A to je důvod, proč mnoho systémů potřeboval být aktualizovány v té době. 343 00:16:36,820 --> 00:16:42,500 >> Takže s tím řekl, firmy jako Facebook naráží na to. 344 00:16:42,500 --> 00:16:46,147 Takže jediný způsob, jak zacházet s Situace, upřímně řečeno, je to předvídat. 345 00:16:46,147 --> 00:16:47,980 Nebo nejčistší způsob, jak zvládnout tuto situaci 346 00:16:47,980 --> 00:16:50,330 Je to předvídat, takže nemusíte muset provést změny později. 347 00:16:50,330 --> 00:16:51,970 Takže místo 8 bajtů, víte co? 348 00:16:51,970 --> 00:16:54,261 Já budu pokrokové tady, i když je to 349 00:16:54,261 --> 00:16:56,760 trochu optimistický, že budeme mít 4 miliardy 350 00:16:56,760 --> 00:16:58,850 a 1 uživatelé na našich webových stránkách. 351 00:16:58,850 --> 00:17:01,790 Ale pojďme stačí použít 8 bajtů, nebo 64 bitů, které by obecně měly být 352 00:17:01,790 --> 00:17:05,640 volal velké číslo, velmi technický. 353 00:17:05,640 --> 00:17:10,280 A to právě znamená, že můžete mít ještě více číslic vašeho čísla. 354 00:17:10,280 --> 00:17:12,599 Ale to je důležitý Rozhodnutí design, 355 00:17:12,599 --> 00:17:16,400 protože pokud si vybrat číslo, které má příliš málo kousků výraznosti 356 00:17:16,400 --> 00:17:19,089 byste mohli skutečně vytvořit chyba v softwaru. 357 00:17:19,089 --> 00:17:21,750 >> V pořádku, takže můžeme zabalit s e-maily a poštovní adresu. 358 00:17:21,750 --> 00:17:26,369 Tak e-mail, jak dlouho by měl e-mailová adresa bude? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Opravdu netuším, ale je to Pravděpodobně něco takového, 361 00:17:29,220 --> 00:17:32,261 protože jinak nikdo to bude napsat vás, pokud se dostane příliš dlouho, takže 50, 362 00:17:32,261 --> 00:17:33,360 jdeme s ním teď. 363 00:17:33,360 --> 00:17:35,770 Adresa, jak dlouho by to bylo? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 Diváků: [neslyšitelné] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID Malan: Nejde jen poštovní směrovací číslo, ačkoli. 368 00:17:43,890 --> 00:17:45,720 Poštovní adresa, slyšel jsem. 369 00:17:45,720 --> 00:17:50,720 Takže to je jako 1 Brattle náměstí, čárka, Cambridge Mass., čárka, 02138. 370 00:17:50,720 --> 00:17:53,860 A ve skutečnosti, dovolte mi stačí vytáhnout up trochu listu zde. 371 00:17:53,860 --> 00:17:56,510 Tento pocit, jako by to promarněná příležitost. 372 00:17:56,510 --> 00:18:01,480 Máme-li 1 Brattle náměstí, čárka, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Mám pocit, že můžeme dělat lépe než jen poštovní adresu. 374 00:18:04,510 --> 00:18:07,100 Proč ne my explodovat to trochu? 375 00:18:07,100 --> 00:18:08,030 Co mám jde? 376 00:18:08,030 --> 00:18:10,970 Co bychom měli mít místo Pro naše řádků tady, snad? 377 00:18:10,970 --> 00:18:12,260 >> Diváků: [neslyšitelné] 378 00:18:12,260 --> 00:18:17,579 >> DAVID Malan: Jo, tak se pojďme nazývají street_number, 379 00:18:17,579 --> 00:18:20,620 a podtržítko je jen obyčejný způsob, jak s co vypadá jako prostor, 380 00:18:20,620 --> 00:18:22,360 ale není to ve skutečnosti. 381 00:18:22,360 --> 00:18:26,240 Street, a pak city-- líto? 382 00:18:26,240 --> 00:18:28,440 >> Diváků: [neslyšitelné] 383 00:18:28,440 --> 00:18:29,690 DAVID Malan: Mohli bychom to udělat. 384 00:18:29,690 --> 00:18:30,702 Linka jedno, řádek dva. 385 00:18:30,702 --> 00:18:32,410 Proč se budeme držet to jednoduché pro teď, 386 00:18:32,410 --> 00:18:34,840 ale to je naprosto přijatelné rozhodnutí. 387 00:18:34,840 --> 00:18:38,180 A pak stát, a pak se pojďme být trochu US-centric prozatím 388 00:18:38,180 --> 00:18:42,040 a prostě poštovní směrovací číslo, jen proto, bude to vést k zajímavým omylem 389 00:18:42,040 --> 00:18:43,090 nebo problém zde. 390 00:18:43,090 --> 00:18:44,655 Takže předpokládám, že teď naši adresu. 391 00:18:44,655 --> 00:18:47,280 Je to trochu nepříjemné, že máme všechny tyto více polí, 392 00:18:47,280 --> 00:18:49,200 ale nyní můžeme označit věci trochu lépe. 393 00:18:49,200 --> 00:18:53,210 >> Takže teď ulice číslo pravděpodobně by neměla být char, by mělo? 394 00:18:53,210 --> 00:18:54,835 Co by to mělo být? 395 00:18:54,835 --> 00:18:55,710 Diváků: [neslyšitelné] 396 00:18:55,710 --> 00:18:57,835 DAVID Malan: Možná, že celá řada jako zase celé číslo? 397 00:18:57,835 --> 00:19:00,170 Velkou integer? 398 00:19:00,170 --> 00:19:02,170 Pravděpodobně nežijí na 4 miliardy Main Street 399 00:19:02,170 --> 00:19:03,490 nebo něco šílené takhle. 400 00:19:03,490 --> 00:19:06,850 Takže celé číslo je pravděpodobně v pořádku, ale má někoho 401 00:19:06,850 --> 00:19:13,880 kdy žil na adrese jako 1A Brattle náměstí, nebo 1 a 1/2? 402 00:19:13,880 --> 00:19:17,030 Tyto věci existují, bohužel, i když jste tam žili, 403 00:19:17,030 --> 00:19:21,240 jsou tyto anomálie jako byt 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Tak víte co, my pravděpodobně by nemělo jít s celým číslem, 405 00:19:24,260 --> 00:19:27,440 jinak jedeme ztratit některé prodeje. 406 00:19:27,440 --> 00:19:29,920 >> Char pole, možná? 407 00:19:29,920 --> 00:19:30,870 Nevím, jak dlouho. 408 00:19:30,870 --> 00:19:33,370 To asi nebude Tak dlouho, tak 10 nebo tak něco. 409 00:19:33,370 --> 00:19:34,950 Nikdo se bude psát delší číslo, možná. 410 00:19:34,950 --> 00:19:37,070 Ale opět, měli bychom pravděpodobně dát více myslel na to. 411 00:19:37,070 --> 00:19:39,900 Možná google, udělat nějaký výzkum, ale půjdeme se svými vnitřnostmi pro tuto chvíli. 412 00:19:39,900 --> 00:19:44,565 Ulic, char, 50, nevím. 413 00:19:44,565 --> 00:19:46,940 Na nějakém místě, nikdo se děje psát na obálce, 414 00:19:46,940 --> 00:19:49,350 taky, takže je to asi Některé horní hranice tam. 415 00:19:49,350 --> 00:19:54,200 City, stejný, jasně, takže char 50. 416 00:19:54,200 --> 00:19:59,120 >> Stát může být US-centric prozatím. 417 00:19:59,120 --> 00:20:01,850 Takže by to mohlo být seznam, tak laskav z úsudku, státní. 418 00:20:01,850 --> 00:20:04,000 Mohlo by to být jako dva znaky. 419 00:20:04,000 --> 00:20:06,140 Takže vlastně, možná, jsem si říkal char. 420 00:20:06,140 --> 00:20:09,420 Asi jsem na mysli varchar, jen na nějakou účinnost, 421 00:20:09,420 --> 00:20:12,240 ale vrátíme k toto rozhodnutí za chvíli. 422 00:20:12,240 --> 00:20:16,150 Mohl by to být char o délce 2 pro stát. 423 00:20:16,150 --> 00:20:20,670 Jestliže ve Spojených státech, které mají, stejně jako MA, Massachusetts, NY, New York, NJ, New 424 00:20:20,670 --> 00:20:22,100 Jersey, a tak dále. 425 00:20:22,100 --> 00:20:23,630 Takže by to mohlo být stanovena na to. 426 00:20:23,630 --> 00:20:25,900 DC pro Washington DC. 427 00:20:25,900 --> 00:20:29,915 >> Ale myslím si, Olivier, budete Navrhovaná jiný přístup. 428 00:20:29,915 --> 00:20:30,790 Diváků: [neslyšitelné] 429 00:20:30,790 --> 00:20:33,670 DAVID Malan: Jo, takže je to Trochu nepříjemné psát, 430 00:20:33,670 --> 00:20:37,890 ale výčet by mohl dávat větší smysl, proto, že tímto způsobem, alespoň v USA, 431 00:20:37,890 --> 00:20:41,320 byste mohli vyjmenovat, pokud zdlouhavě, ale to udělat jen jednou v databázi 432 00:20:41,320 --> 00:20:47,480 a nikdy nebudete muset přemýšlet o tom, to jsou všechny 50 dvou-znakové kódy. 433 00:20:47,480 --> 00:20:48,660 Tak jsem rád ENUM. 434 00:20:48,660 --> 00:20:51,720 Držme se, že tam, protože Tak nějak prosazuje větší přísnost. 435 00:20:51,720 --> 00:20:53,620 A pak se poštovní směrovací číslo? 436 00:20:53,620 --> 00:20:55,306 Myslím, že Andrew měl myšlenku na to 437 00:20:55,306 --> 00:20:56,180 Diváků: [neslyšitelné] 438 00:20:56,180 --> 00:20:57,240 DAVID Malan: Jo, pět nebo devět. 439 00:20:57,240 --> 00:20:58,323 Řekněme, aby to jednoduché. 440 00:20:58,323 --> 00:20:59,380 Jen to, pět pro tuto chvíli. 441 00:20:59,380 --> 00:21:03,070 Ale možná jsem mohl jen dělat celé číslo, ne? 442 00:21:03,070 --> 00:21:08,750 Mohl bych, ale víte, co jsem udělal Tato chyba jednou, v jistém smyslu. 443 00:21:08,750 --> 00:21:13,110 Před lety jsem byl migraci z Microsoft Outlook do služby Gmail, 444 00:21:13,110 --> 00:21:18,640 a Outlook má způsob, jak export všechny své kontakty jako soubor aplikace Excel, 445 00:21:18,640 --> 00:21:21,280 CSV souboru, oddělené čárkami soubor hodnot. 446 00:21:21,280 --> 00:21:23,950 A já jsem udělal chybu, já myslím, dvojité klepnutím na něj, 447 00:21:23,950 --> 00:21:27,380 Jednou jsem stáhnul vývoz k dispozici ujistěte se, že to vypadalo, jak jsem očekával. 448 00:21:27,380 --> 00:21:31,320 Musím mít hit uložit nebo nechat auto-save kop nebo tak něco. 449 00:21:31,320 --> 00:21:35,100 Protože když jsem pak importovány to do Gmailu, to všechno funguje. 450 00:21:35,100 --> 00:21:39,910 Ale po celá léta, k tomuto dni, a Udělal jsem to pět, před 10 lety, 451 00:21:39,910 --> 00:21:44,380 Jsem stále najít přátele, kteří mají adresy, které vypadají jako tento. 452 00:21:44,380 --> 00:21:45,700 Proč? 453 00:21:45,700 --> 00:21:47,900 >> Diváků: [neslyšitelné] 454 00:21:47,900 --> 00:21:50,650 >> DAVID Malan: Trvalo tlačítek 0, no, spíše ji 455 00:21:50,650 --> 00:21:53,810 vzal celou poštovní směrovací číslo as velké množství, a proto je 456 00:21:53,810 --> 00:21:56,590 přední 0, což znamená, nemá žádný význam. 457 00:21:56,590 --> 00:21:59,470 A tak 2138 se zdá být moje poštovní směrovací číslo. 458 00:21:59,470 --> 00:22:07,100 A to je, upřímně řečeno, nepříjemné Excel Funkce čímž myslím, že ve výchozím nastavení, 459 00:22:07,100 --> 00:22:10,980 i kdyby to znamenalo jen být text, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 rozhodne, nech mě být užitečné, a oh, vidím jen čísla. 461 00:22:13,780 --> 00:22:15,290 Pojďme zacházejí s těmi jako čísla. 462 00:22:15,290 --> 00:22:16,790 A to zkrátí úvodní nuly. 463 00:22:16,790 --> 00:22:19,165 >> Přísahám bohu, každý pár měsíců jsem najít adresu, 464 00:22:19,165 --> 00:22:22,300 a ven z jakési OCD, jdu zpátky dovnitř a přidejte 0, i když jsem nikdy 465 00:22:22,300 --> 00:22:23,700 poslat lidem dopisy nebo cokoliv. 466 00:22:23,700 --> 00:22:25,510 Ale já stále nacházíme zbytky toto. 467 00:22:25,510 --> 00:22:28,820 Takže to znamená, že je to dobrý nápad? 468 00:22:28,820 --> 00:22:31,610 OK, ne, protože každý v Massachusetts, v této oblasti, 469 00:22:31,610 --> 00:22:33,270 bude mít O jejich vedoucí. 470 00:22:33,270 --> 00:22:38,070 Takže pojďme se jako char, pravděpodobně pět. 471 00:22:38,070 --> 00:22:41,450 >> A tady, my si uvědomit, mohl použít ENUM a my 472 00:22:41,450 --> 00:22:44,600 mohl vyjmenovat 10,000 Možné poštovních směrovacích čísel 473 00:22:44,600 --> 00:22:48,530 ale že se cítí, jako by to patrně křížení linku, apod výhody. 474 00:22:48,530 --> 00:22:51,350 Máte-li na vstupu, který mnoho dat do databáze 475 00:22:51,350 --> 00:22:52,940 k ochraně proti něčemu. 476 00:22:52,940 --> 00:22:57,400 Takže char si uvědomil, stačí napsat v H-E-L-L-O jako vaše PSČ, 477 00:22:57,400 --> 00:22:59,180 která není, samozřejmě, numerické. 478 00:22:59,180 --> 00:23:01,680 Takže neexistuje žádný způsob, v typická databáze, 479 00:23:01,680 --> 00:23:05,561 specifikovat pouze číselné a jen pět znaků, 480 00:23:05,561 --> 00:23:07,310 takže budeme mít k tomu, že v kódu. 481 00:23:07,310 --> 00:23:11,100 Budeme k tomu, že v PHP nebo Java nebo cokoliv jazyka jsme 482 00:23:11,100 --> 00:23:14,230 použití na serveru vynutit tento druh omezení. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 V pořádku, takže všechny otázky ještě ne? 485 00:23:18,322 --> 00:23:19,780 Pojďme rozhodovat jiný vzor. 486 00:23:19,780 --> 00:23:22,500 Ukazuje se, že vás Také si musíme vybrat, 487 00:23:22,500 --> 00:23:26,600 Při navrhování databáze SQL, nebo typické relační database-- kde 488 00:23:26,600 --> 00:23:28,790 Znovu, relační jen znamená řádků a sloupců, 489 00:23:28,790 --> 00:23:35,500 To je, jak organizovat své data-- a uvědomit si, že to, co to znamená, 490 00:23:35,500 --> 00:23:37,740 Byl jsem zavádějící že jsem to drawing-- 491 00:23:37,740 --> 00:23:40,190 je to, co se nazývá schéma pro databázové tabulky. 492 00:23:40,190 --> 00:23:42,810 To je jako specifikace pro table-- 493 00:23:42,810 --> 00:23:48,040 ale když přijde čas skutečně ukládání dat, 494 00:23:48,040 --> 00:23:52,081 a budeme to dělat jen příkladem zde. 495 00:23:52,081 --> 00:23:55,080 Jdu otevřít Excel, protože Excel mi dá řádků a sloupců. 496 00:23:55,080 --> 00:23:58,050 A to je přesně to, co Oracle a MySQL a další nástroje mi dá. 497 00:23:58,050 --> 00:24:02,270 Takže jsem prostě jít k použití to kvůli diskuse je. 498 00:24:02,270 --> 00:24:05,250 Nech mě jít dopředu a otevřít Zástupce dokument zde 499 00:24:05,250 --> 00:24:06,310 přiblížit trochu. 500 00:24:06,310 --> 00:24:15,200 Tak například, naše hlavičky jsou nyní křestní jméno, příjmení, pohlaví, číslo, 501 00:24:15,200 --> 00:24:20,980 e-mail, číslo popisné, ulice, pokřiky. 502 00:24:20,980 --> 00:24:25,710 Ulice, město, stát, jen o vejde na obrazovce. 503 00:24:25,710 --> 00:24:29,080 >> Takže to, co to znamená, že když Uživatel nejdříve zaregistruje mých webových stránkách, 504 00:24:29,080 --> 00:24:32,880 že to bude něco podobného David, Malan, m, řekněme 1, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, bude číslo popisné být jako 1 Brattle Square, Cambridge, Massachusetts, 506 00:24:42,910 --> 00:24:44,780 02.138, a pak tak dále. 507 00:24:44,780 --> 00:24:48,290 Takže když řeknu, že relační databáze nebo SQL databáze je řádků a sloupců, 508 00:24:48,290 --> 00:24:49,350 Mám na mysli to. 509 00:24:49,350 --> 00:24:51,900 Že skutečná data jsou ukládána do řádků a sloupců. 510 00:24:51,900 --> 00:24:53,950 Je to jen náhoda, že jsme mluvili, 511 00:24:53,950 --> 00:24:56,033 a já jsem prostě kreslení v řádcích a sloupcích. 512 00:24:56,033 --> 00:24:58,320 To je jen schéma, zastřešující definice. 513 00:24:58,320 --> 00:25:01,640 >> Takže z těchto polí zde, nebo ekvivalentně, tam, 514 00:25:01,640 --> 00:25:06,270 což jsou oblasti, které si myslíte Jsem pravděpodobně hledat na tom, zda Jsem uživatel 515 00:25:06,270 --> 00:25:09,200 nebo jestli jsem správce databáze? 516 00:25:09,200 --> 00:25:12,426 Stejně jako to, co jsem já polí vlastně bude hledat dál? 517 00:25:12,426 --> 00:25:13,830 >> Diváků: [neslyšitelné] 518 00:25:13,830 --> 00:25:17,690 >> DAVID Malan: Jméno, jo tak Líbí se mi, to-- jo, 519 00:25:17,690 --> 00:25:19,750 e-mail může být docela běžné. 520 00:25:19,750 --> 00:25:21,440 Je nám líto, řekl jméno. 521 00:25:21,440 --> 00:25:24,030 Takže maybe-- a znovu, my jsme druh mluvit abstraktně. 522 00:25:24,030 --> 00:25:25,988 Nevím, proč bys bude hledat jména, 523 00:25:25,988 --> 00:25:29,340 ale že se cítí rozumné, pokud hledáte pro uživatele. 524 00:25:29,340 --> 00:25:31,170 Možná se uvádí, jistě, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> A je to kluzké sklon, protože jsem mohl 527 00:25:36,160 --> 00:25:38,890 vymyslet scénář, kde Možná, že můj šéf požádal mě, 528 00:25:38,890 --> 00:25:40,417 kolik mužů máme na našich stránkách? 529 00:25:40,417 --> 00:25:42,000 Kolik žen máme na našich stránkách? 530 00:25:42,000 --> 00:25:45,210 A tak na tom místě, možná budete chtít vyhledávat v oblasti žen a mužů, příliš, 531 00:25:45,210 --> 00:25:45,940 a nic jiného. 532 00:25:45,940 --> 00:25:47,350 Takže tam je tady trade-off. 533 00:25:47,350 --> 00:25:49,180 Opět platí, že neexistuje správná odpověď, ale existují 534 00:25:49,180 --> 00:25:53,760 je funkce ve většině databází SQL známý jako indexování, přičemž 535 00:25:53,760 --> 00:25:56,100 vy, návrhář se administrátor databáze, 536 00:25:56,100 --> 00:26:01,730 dostat se předem rozhodnout, který oblastí informačních technologií databáze by měla optimalizovat 537 00:26:01,730 --> 00:26:02,980 při vyhledávání. 538 00:26:02,980 --> 00:26:07,620 >> Dalo by se říci velmi naivně, optimalizovat to, že optimalizovat, optimalizovat to, 539 00:26:07,620 --> 00:26:10,300 optimalizovat, že i to, a databáze bude 540 00:26:10,300 --> 00:26:14,882 udělat nějaké magické věci pod kapuce a dělat něco takovým způsobem, 541 00:26:14,882 --> 00:26:17,090 že až se příště budete hledat Na některá z těchto polí, 542 00:26:17,090 --> 00:26:18,400 to bude ve skutečnosti být rychlejší. 543 00:26:18,400 --> 00:26:19,110 Je to možné. 544 00:26:19,110 --> 00:26:20,530 To nezruší samo. 545 00:26:20,530 --> 00:26:22,500 Ale tam musí být cena, kterou zaplatil. 546 00:26:22,500 --> 00:26:27,220 >> Pokud se vám naivně, nebo příliš nadšeně řekněme, index všech těchto oblastech, 547 00:26:27,220 --> 00:26:29,810 tak říkajíc, aby byly všechny efektivně vyhledávat, 548 00:26:29,810 --> 00:26:31,625 jakou cenu jsou pravděpodobně platit? 549 00:26:31,625 --> 00:26:32,500 Diváků: [neslyšitelné] 550 00:26:32,500 --> 00:26:33,090 DAVID Malan: Performance. 551 00:26:33,090 --> 00:26:33,798 Co tím myslíš? 552 00:26:33,798 --> 00:26:37,380 I výkonnost, alespoň v kontext jsem diskutovat, je nyní lépe. 553 00:26:37,380 --> 00:26:38,830 To je definice indexování. 554 00:26:38,830 --> 00:26:41,180 To bude dělat vyhledávání rychleji. 555 00:26:41,180 --> 00:26:43,366 Takže čas klesá, tak říkajíc. 556 00:26:43,366 --> 00:26:44,240 Diváků: [neslyšitelné] 557 00:26:44,240 --> 00:26:45,031 DAVID Malan: Space. 558 00:26:45,031 --> 00:26:46,520 Takže znovu, jedná se o běžný obchod. 559 00:26:46,520 --> 00:26:50,820 Mohu urychlit vyhledávání, ale je to bude stát více bajtů prostoru. 560 00:26:50,820 --> 00:26:51,610 Proč? 561 00:26:51,610 --> 00:26:55,230 No, ve výchozím nastavení, máme-li žádný z Tyto červené hvězdy, žádný z těchto indexů, 562 00:26:55,230 --> 00:26:58,797 jak říkám, jak si hledat jména v této databázi? 563 00:26:58,797 --> 00:27:00,630 Takže pojďme čerpat naše Pozornost na tento příklad. 564 00:27:00,630 --> 00:27:06,300 Máme-li Davida a Scullyová a Kareem a Arwa a jiní v těchto řadách, 565 00:27:06,300 --> 00:27:06,910 například. 566 00:27:06,910 --> 00:27:08,390 >> Takže pojďme dělat přesně to. 567 00:27:08,390 --> 00:27:13,990 Scullyová je tady, a poté máme Kareem a Arwa, 568 00:27:13,990 --> 00:27:18,390 a všichni ostatní, pokud nemáte mají definovaný index, tak říkajíc, 569 00:27:18,390 --> 00:27:20,160 nejlepší, co můžete udělat, je lineární hledání. 570 00:27:20,160 --> 00:27:23,470 Pokud hledáte Arwa, nejsme bude moci skočit přímo na ni 571 00:27:23,470 --> 00:27:24,140 rychle. 572 00:27:24,140 --> 00:27:26,556 Chystáme se začít vrchol a jet celou cestu až na dno, 573 00:27:26,556 --> 00:27:28,600 ne na rozdíl od našeho původního Příkladem Mike Smith. 574 00:27:28,600 --> 00:27:33,470 >> Pokud však říkám, hej, databáze, Index křestní jméno pole, 575 00:27:33,470 --> 00:27:37,000 pak to bude něco dělat milovník a podporovat něco 576 00:27:37,000 --> 00:27:38,130 jako binární vyhledávání. 577 00:27:38,130 --> 00:27:39,820 Pravděpodobně to není binární vyhledávání samo o sobě. 578 00:27:39,820 --> 00:27:42,810 Databáze mají tendenci používat jiný datová struktura volal b-stromy, 579 00:27:42,810 --> 00:27:46,540 nesmí být zaměňována s binárními stromy, že prostě dělat to rychlejší vyhledávání 580 00:27:46,540 --> 00:27:48,500 něco logaritmické v přírodě. 581 00:27:48,500 --> 00:27:53,510 Ale cena, kterou zaplatíte vybudovat, že vlastnost, že struktura dat v paměti, 582 00:27:53,510 --> 00:27:54,570 je více bytů. 583 00:27:54,570 --> 00:27:57,170 Tak to by mohlo trvat několik megabajtů, Některé GB, kdo ví? 584 00:27:57,170 --> 00:27:58,410 Záleží na typu dat. 585 00:27:58,410 --> 00:28:02,640 >> Takže na nějakém místě, musíte se rozhodnout, to asi není běžný případ. 586 00:28:02,640 --> 00:28:06,000 Takže jaké jsou skutečné společné Případy, jestli opravdu musel vybrat, 587 00:28:06,000 --> 00:28:10,080 co by mohlo být vaše oblíbené pole? 588 00:28:10,080 --> 00:28:10,580 E-mail. 589 00:28:10,580 --> 00:28:14,400 A líbí se mi EMAIL, protože e-mail, Teoreticky by měl být jedinečný. 590 00:28:14,400 --> 00:28:17,650 A tak obvykle, když víte, předem, že jeden z vašich polí 591 00:28:17,650 --> 00:28:20,277 je nebo bude jedinečný, že inklinuje být dobrým pole 592 00:28:20,277 --> 00:28:22,860 hledat dál, protože tímto způsobem, při hledání něčeho, 593 00:28:22,860 --> 00:28:26,194 budete se dostat zpět jeden nebo nulu odpovědi a pak máte hotovo. 594 00:28:26,194 --> 00:28:28,110 Nemusíte se držet hledá přesto jiní. 595 00:28:28,110 --> 00:28:31,992 >> A tak v tomto případě zde, e-mail, tak dlouho, jak si nelze registrovat dvakrát 596 00:28:31,992 --> 00:28:33,450 se stejným e-mailu, je dobrý. 597 00:28:33,450 --> 00:28:36,710 ID podle definice v computer science world, 598 00:28:36,710 --> 00:28:39,610 pokud mluvíte o ID, že měli lepší být jedinečný. 599 00:28:39,610 --> 00:28:42,970 To je něco jako konotace ID nebo identifikátor. 600 00:28:42,970 --> 00:28:46,440 A zbytek z nich by mohlo být, říkejme jim hezké vyvolených, 601 00:28:46,440 --> 00:28:47,860 ale ne ve skutečnosti nutná. 602 00:28:47,860 --> 00:28:49,976 >> A tak v databázi, určíte indexy, 603 00:28:49,976 --> 00:28:51,350 ale může být ještě přesnější. 604 00:28:51,350 --> 00:28:56,060 Můžete říci, hej, databáze, ujistěte se, ID, že každý v této tabulce je jedinečný. 605 00:28:56,060 --> 00:28:59,330 Ani se nechat programátor náhodně dát do duplicitní e-mailu 606 00:28:59,330 --> 00:29:00,740 nebo duplicitní ID číslo. 607 00:29:00,740 --> 00:29:03,140 Tolik jako výčty chránit nás podobně, vám 608 00:29:03,140 --> 00:29:04,881 mohou mít tyto obrany nižší úrovně. 609 00:29:04,881 --> 00:29:07,130 A tak návrh databáze, v nějaký smysl, je docela sranda, 610 00:29:07,130 --> 00:29:08,380 protože si to defenzivně. 611 00:29:08,380 --> 00:29:11,460 Můžete tak nějak předpokládá, že budete pracovat s hrozné, hrozné programátory 612 00:29:11,460 --> 00:29:15,550 a chcete, aby v co největším počtu obrany jak se můžete chránit svá data, 613 00:29:15,550 --> 00:29:18,940 ale zároveň chcete aby jim pomohla lepším výkonům 614 00:29:18,940 --> 00:29:21,386 výběrem, který Pole optimalizovat. 615 00:29:21,386 --> 00:29:24,260 Ale nemůžete být nutně to v vakuum, jako jsme trochu zde. 616 00:29:24,260 --> 00:29:26,480 Musíš vědět, jaké jsou tyto společné případy bytí. 617 00:29:26,480 --> 00:29:29,397 V případě, že vývojáři jsou prováděcí adresář, 618 00:29:29,397 --> 00:29:32,230 můžete velmi dobře chcete být schopni vyhledávat na téměř ve všech oblastech, 619 00:29:32,230 --> 00:29:33,830 Jen podle charakteru aplikace. 620 00:29:33,830 --> 00:29:37,910 Takže možná budete trávit že dodatečný prostor. 621 00:29:37,910 --> 00:29:39,090 >> Správně, nějaké otázky? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 To jo. 624 00:29:42,486 --> 00:29:43,470 >> Diváků: [neslyšitelné] 625 00:29:43,470 --> 00:29:44,404 >> DAVID Malan: Ne. 626 00:29:44,404 --> 00:29:45,279 >> Diváků: [neslyšitelné] 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 >> Diváků: [neslyšitelné] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID Malan: Oh, takže jsme Řeč je svým způsobem 632 00:29:54,850 --> 00:29:57,940 Nyní je to zcela jazyk agnostik. 633 00:29:57,940 --> 00:30:02,370 Takže jsme nyní hovoříme o relační databáze obecněji 634 00:30:02,370 --> 00:30:04,760 nebo SQL databází obecněji. 635 00:30:04,760 --> 00:30:06,870 >> Diváků: [neslyšitelné] 636 00:30:06,870 --> 00:30:10,030 >> DAVID Malan: Lepší slovo používat se může použít každý jazyk. 637 00:30:10,030 --> 00:30:15,280 Takže můžu psát kód JavaScript, C kód, C ++ kódu, kód v jazyce Java, Ruby kód, 638 00:30:15,280 --> 00:30:19,010 z nichž všechny mluvit s databáze a spouštět dotazy. 639 00:30:19,010 --> 00:30:22,310 Ve skutečnosti to není špatné segue příkladného dotazu. 640 00:30:22,310 --> 00:30:25,720 A opět, my nebudeme jít do Java nebo C ++ nebo nic z toho už, 641 00:30:25,720 --> 00:30:29,420 ale v SQL, jazyk, který držím s odkazem, Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 to samo o sobě je programovací jazyk, ale je to znamenalo, které mají být použity pro žádný 643 00:30:32,790 --> 00:30:37,330 překvapení, Structured Query dotazy. 644 00:30:37,330 --> 00:30:38,660 >> Tím mám na mysli to. 645 00:30:38,660 --> 00:30:41,190 Tak, jak si vybrat data z databáze MySQL 646 00:30:41,190 --> 00:30:49,330 Je doslova psát ve svém programu něco jako vyberte hvězdu ze strany uživatelů. 647 00:30:49,330 --> 00:30:52,200 Jsem za předpokladu, že tato tabulka, od nynějška se nazývá uživatelů. 648 00:30:52,200 --> 00:30:54,860 I to by mohlo říkat cokoli chceme, ale tento druh dává smysl. 649 00:30:54,860 --> 00:30:57,240 A tak select je velmi Společný sloveso, pokud vás 650 00:30:57,240 --> 00:30:59,290 bude v SQL, která doslova dělá. 651 00:30:59,290 --> 00:31:02,730 Co si myslíte star znamená, že v tomto kontextu? 652 00:31:02,730 --> 00:31:04,410 >> Diváků: [neslyšitelné] 653 00:31:04,410 --> 00:31:05,380 >> DAVID Malan: Je mi to líto? 654 00:31:05,380 --> 00:31:06,300 >> Diváků: [neslyšitelné] 655 00:31:06,300 --> 00:31:09,580 >> DAVID Malan: Není nutná, je to obsažnější než to, že ve skutečnosti. 656 00:31:09,580 --> 00:31:11,700 Je to postava divoké karty. 657 00:31:11,700 --> 00:31:14,740 Hvězda téměř vždy znamená cokoliv, tak to znamená, že v tomto případě, 658 00:31:14,740 --> 00:31:16,510 vybrat vše z databáze. 659 00:31:16,510 --> 00:31:20,730 Takže když to říkám, mám na mysli vrať mi každý sloupec 660 00:31:20,730 --> 00:31:22,440 z mého stolu s názvem uživatele. 661 00:31:22,440 --> 00:31:24,730 Tak dej mi sadu výsledků, jak se jmenuje. 662 00:31:24,730 --> 00:31:28,210 Jinými slovy, dej mi kopii tabulkový procesor, je to, co jsem dostat na adrese. 663 00:31:28,210 --> 00:31:34,890 >> Ale kdybych řekl, zvolte hvězda od uživatelů kde ID je rovno 1, jak velká by měla 664 00:31:34,890 --> 00:31:36,640 můj výsledek set bude dál? 665 00:31:36,640 --> 00:31:41,680 Nebo ekvivalentně, měli kolik řádků Já se vrátil z databáze? 666 00:31:41,680 --> 00:31:45,860 Pravděpodobně jen jedno, jestli mám opravdu zacházeno ID jako jedinečný identifikátor, 667 00:31:45,860 --> 00:31:50,710 a je-li David má tento jedinečný identifikátor, I bychom se vrátit jeden a pouze jeden řádek 668 00:31:50,710 --> 00:31:53,220 obsahující všechny Davidovy informací. 669 00:31:53,220 --> 00:31:56,390 Kdybych řekl, kde ID se rovná 99, měl bych se vrátit, 670 00:31:56,390 --> 00:32:00,320 v této souvislosti, nulový počet řádků, alespoň v současné době. 671 00:32:00,320 --> 00:32:03,620 >> Nicméně, když nemám opravdu péče o všech těchto informací, 672 00:32:03,620 --> 00:32:06,970 Mohl bych jen říct, odkud David žije? 673 00:32:06,970 --> 00:32:10,860 Vybrat poštovní směrovací číslo od Uživatelé kde ID je 1. 674 00:32:10,860 --> 00:32:15,820 Tím se vyberou ke mně jen Davidův zip kód a nikoliv celistvost tohoto řádku. 675 00:32:15,820 --> 00:32:19,541 Proč bych to místo dělat hvězda dotazu, divoké karty? 676 00:32:19,541 --> 00:32:21,950 >> Diváků: [neslyšitelné] 677 00:32:21,950 --> 00:32:24,590 >> DAVID Malan: Jo, já bych mohl potřebovat pouze ji. 678 00:32:24,590 --> 00:32:26,350 Takže výkon je opět odpověď zde. 679 00:32:26,350 --> 00:32:28,540 Proč žádat více Informace, než je potřeba, 680 00:32:28,540 --> 00:32:32,020 protože i když je to v pořádku dohromady, stále máte zkopírovat tato data 681 00:32:32,020 --> 00:32:35,560 Zdálo by se, z databáze do svého programu nějakým způsobem, 682 00:32:35,560 --> 00:32:38,490 a to je prostě hloupé, pokud vás Jediné, co potřebujete pět z těchto číslic, 683 00:32:38,490 --> 00:32:40,340 Není celistvost řádku. 684 00:32:40,340 --> 00:32:42,180 >> Tak jak mám vložit uživatele? 685 00:32:42,180 --> 00:32:44,780 Předpokládejme, že uživatel má právě registrovány poprvé. 686 00:32:44,780 --> 00:32:46,560 Syntaxe by obvykle vypadat například takto. 687 00:32:46,560 --> 00:32:52,700 Vložit do uživatelů, a pak bychom říci hodnoty, 688 00:32:52,700 --> 00:33:00,150 a pak bychom říci hodnoty jako, řekněme, Lauren Scullyovou, 689 00:33:00,150 --> 00:33:02,380 tady náš kameraman. 690 00:33:02,380 --> 00:33:04,390 A další pole pohlaví. 691 00:33:04,390 --> 00:33:08,020 Takže budeme říkat citát, konec citátu "F", pak máme ID 692 00:33:08,020 --> 00:33:12,250 a budu say-- pojďme předstírat, že to není vlastně tady, 693 00:33:12,250 --> 00:33:14,380 takže budeme vzad v příběhu. 694 00:33:14,380 --> 00:33:16,530 Takže 2 bude její číslo. 695 00:33:16,530 --> 00:33:19,130 A pak další pole Zde je její e-mail. 696 00:33:19,130 --> 00:33:22,140 Takže to bude jako Lauren Scullyová a tak dále, 697 00:33:22,140 --> 00:33:24,360 a my prostě dot dot dot jej odtud dál. 698 00:33:24,360 --> 00:33:26,890 Teď to bude trochu zdlouhavé, ale vložka dotaz 699 00:33:26,890 --> 00:33:28,310 by nakonec vypadat takhle. 700 00:33:28,310 --> 00:33:30,970 >> Pokud chci zbavit Scully, uh-oh, pojďme odhlásit 701 00:33:30,970 --> 00:33:37,420 ji, ona odstraní svůj účet, smazat od uživatelů, kde ID se rovná 2, 702 00:33:37,420 --> 00:33:38,500 se zbavit Scullyové. 703 00:33:38,500 --> 00:33:48,050 Nebo mohu říci aktualizovat uživatelé nastavit, řekněme, co bychom mohli změnit? 704 00:33:48,050 --> 00:33:49,430 Předpokládejme, že se pohybuje. 705 00:33:49,430 --> 00:33:53,730 Set zip rovná 021-- ani náhodou, že je její současný zip. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Jedinou další poštovní směrovací číslo Vím, že ve světě. 708 00:33:56,320 --> 00:33:59,002 Takže se změní Její zip code-- ve skutečnosti, 709 00:33:59,002 --> 00:34:00,460 že by se změnit její PSČ. 710 00:34:00,460 --> 00:34:02,170 >> Co jsem právě udělal? 711 00:34:02,170 --> 00:34:04,292 I přesto, že syntaxe je pravděpodobně nová. 712 00:34:04,292 --> 00:34:05,302 >> Diváků: [neslyšitelné] 713 00:34:05,302 --> 00:34:08,010 DAVID Malan: Jo, přestěhoval jsem všem Beverly Hills v Kalifornii. 714 00:34:08,010 --> 00:34:11,920 Takže bych měl vlastně říci, kde ID rovná 2. 715 00:34:11,920 --> 00:34:12,820 A tak dále. 716 00:34:12,820 --> 00:34:15,290 Takže SQL je vše kolem nich druhy instrukcí. 717 00:34:15,290 --> 00:34:20,260 Vyberte, vkládat, odstraňovat, aktualizovat s těmito predikátu na konci 718 00:34:20,260 --> 00:34:22,139 Tyto doložky, kde se tak říkajíc. 719 00:34:22,139 --> 00:34:25,170 A je tu mnohem více můžete ano, ale je to opravdu jen scvrkává 720 00:34:25,170 --> 00:34:29,750 jednoduše, pokud arcanely, vyjadřující co chcete databáze dělat. 721 00:34:29,750 --> 00:34:31,580 >> A pak databáze bude zjistit, kdy 722 00:34:31,580 --> 00:34:35,630 Vložíte Lauren Scullyová do databáze, kde ji dát do paměti 723 00:34:35,630 --> 00:34:38,230 takže můžeme velmi rychle dostat ji na základě její e-mailové adresy 724 00:34:38,230 --> 00:34:42,610 nebo na základě své identifikační číslo nebo podobně. 725 00:34:42,610 --> 00:34:43,391 Jo, Dan. 726 00:34:43,391 --> 00:34:44,266 Diváků: [neslyšitelné] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID Malan: Opravdu dobrá otázka. 729 00:34:47,780 --> 00:34:50,370 Budou tyto skripty změnit z Microsoft Access do Oracle 730 00:34:50,370 --> 00:34:52,290 MySQL do PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 Stručná odpověď je, že záleží na okolnostech. 732 00:34:53,790 --> 00:34:58,697 V teorii, je velmi významný společný podmnožinou SQL 733 00:34:58,697 --> 00:35:00,780 který je sdílen napříč všemi těchto implementací. 734 00:35:00,780 --> 00:35:03,340 Nicméně, různí výrobci mají přidané funkce 735 00:35:03,340 --> 00:35:07,120 ke svým databázím dělat určité věci nad rámec těchto funkcí, 736 00:35:07,120 --> 00:35:08,720 které by mohly ve skutečnosti zlomit. 737 00:35:08,720 --> 00:35:11,210 >> Takže vývojáři jakým zajištění proti tomu, 738 00:35:11,210 --> 00:35:14,350 je to, že spíše než psát surové SQL kód jako píšu tady, 739 00:35:14,350 --> 00:35:19,460 oni místo toho používat knihovnu, společná knihovna, která sama o sobě 740 00:35:19,460 --> 00:35:23,650 je trochu vyšší úrovni a souhrny vzdálenosti, která produkt, který používáte. 741 00:35:23,650 --> 00:35:25,710 A to vám dává Funkce a procedury 742 00:35:25,710 --> 00:35:28,810 zavolat, takže již nikdy ve skutečnosti napsat syrové SQL. 743 00:35:28,810 --> 00:35:32,609 >> V teorii, pak můžete změnit Výrobky z Oracle Microsoft 744 00:35:32,609 --> 00:35:34,650 nebo vice versa, nebo něco jinde, a ty doslova 745 00:35:34,650 --> 00:35:36,920 Změna nic o kódu. 746 00:35:36,920 --> 00:35:40,180 Skutečností však je, že někdy vzdát funkce jako výsledek. 747 00:35:40,180 --> 00:35:43,860 Možná jste si vybrali výrobky, protože to má tyto funkce s přidanou hodnotou, 748 00:35:43,860 --> 00:35:46,610 a vy jste právě teď není jejich použití vědomě. 749 00:35:46,610 --> 00:35:51,630 >> A anecdotally, většina společností tendenci Nikdy se vzdálit od své databáze. 750 00:35:51,630 --> 00:35:54,002 Takže i když je to hezké mají funkci, realita 751 00:35:54,002 --> 00:35:55,960 znamená, že pokud jste reorganizaci databáze, že jste 752 00:35:55,960 --> 00:35:59,890 pravděpodobně dělat kytice dalších změn tak jako tak, že vy ne nutně 753 00:35:59,890 --> 00:36:01,360 je třeba předpokládat, že. 754 00:36:01,360 --> 00:36:03,720 Takže je to patrně over-inženýrské problém, 755 00:36:03,720 --> 00:36:05,670 ale záleží na kontextu. 756 00:36:05,670 --> 00:36:09,960 Ale teoreticky, SQL je sdílena přes tyto různé produkty. 757 00:36:09,960 --> 00:36:11,560 Opravdu dobré otázky. 758 00:36:11,560 --> 00:36:12,272 To jo. 759 00:36:12,272 --> 00:36:13,147 >> Diváků: [neslyšitelné] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID Malan: Jo, si můžete myslet databázi 762 00:36:21,480 --> 00:36:25,020 je jen server, na konci den, a uvnitř tohoto serveru 763 00:36:25,020 --> 00:36:28,670 je celá řada stoly, řádků a sloupců. 764 00:36:28,670 --> 00:36:33,410 A při odeslání dotazu takhle ze svého programu, vaše webové stránky, 765 00:36:33,410 --> 00:36:39,340 napsaný v jazyce Java, Ruby, Python, cokoliv, server přijímá tento příkaz 766 00:36:39,340 --> 00:36:41,660 a výkladu ve doslova stejným způsobem 767 00:36:41,660 --> 00:36:43,660 jsme diskutovali dříve s interpretovaný jazyk, 768 00:36:43,660 --> 00:36:47,333 a pak se provádí nějakou akci na nulu nebo více řádků v nula nebo více tabulek. 769 00:36:47,333 --> 00:36:48,208 Diváků: [neslyšitelné] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID Malan: Přesně tak, přesně tak. 772 00:36:55,070 --> 00:36:58,450 Takže v pseudokódu na něco jako by to mohlo být toto. 773 00:36:58,450 --> 00:37:02,450 Ve vašem PHP souboru nebo Váš Python soubor nebo vaše Java soubor, 774 00:37:02,450 --> 00:37:09,210 budete muset pseudocode kód, nebo Stírací-jako kameny, jak, pokud uživatel navštíví 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V poprvé, vložte do uživatele a tak dále. 776 00:37:19,870 --> 00:37:22,619 A my bychom si to přeložit do více kódu beton do konce roku. 777 00:37:22,619 --> 00:37:24,660 Ale vážně, všichni jsme základní stavební kameny zde 778 00:37:24,660 --> 00:37:27,680 i když jsme přeskakování některých z prováděcích opatření. 779 00:37:27,680 --> 00:37:31,560 >> Dovolte mi tedy najít chybu s tím, co úžasně udělal před chvílí. 780 00:37:31,560 --> 00:37:36,470 Vytvořili jste pěkně celá tabulka pro uživatele. 781 00:37:36,470 --> 00:37:38,920 Je pravda, že bychom mohli realizovat že v několika různými způsoby, 782 00:37:38,920 --> 00:37:43,030 ale vy jste ve skutečnosti nás vedly dolů path-- a říkám vám, 783 00:37:43,030 --> 00:37:48,080 ale je to asi moje fault-- z dosti Implementace neefektivní databáze. 784 00:37:48,080 --> 00:37:49,950 Není to normalizovat. 785 00:37:49,950 --> 00:37:52,320 >> A tím myslím normalizovaná tam bude, 786 00:37:52,320 --> 00:37:57,380 v průběhu času, významná redundance, a tudíž neefektivnost, 787 00:37:57,380 --> 00:38:00,210 to je plýtvání místem. 788 00:38:00,210 --> 00:38:05,650 Na jen to, co vidíte tady, může založený můžete si představit, pokud to plýtvání místem 789 00:38:05,650 --> 00:38:08,710 se chystá pocházejí, v průběhu doby, jak více a více uživatelů registrovat 790 00:38:08,710 --> 00:38:10,860 pro vaše webové stránky? 791 00:38:10,860 --> 00:38:13,047 Jaká data se může stát nadbytečné? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> Diváků: [neslyšitelné] 794 00:38:20,940 --> 00:38:22,686 >> DAVID Malan: Proč myslíš, že? 795 00:38:22,686 --> 00:38:23,561 Diváků: [neslyšitelné] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID Malan: Jo. 798 00:38:32,930 --> 00:38:35,622 A předpokládejme, že pro účely Od dnešního dne, že je to pravda. 799 00:38:35,622 --> 00:38:38,330 Ukázalo se, a my jsme se naučili toto tvrdě, že to není pravda. 800 00:38:38,330 --> 00:38:41,670 Nějak více městech, nějak stejné poštovní směrovací číslo, 801 00:38:41,670 --> 00:38:43,390 který poruší toto nádherné intuici. 802 00:38:43,390 --> 00:38:46,180 Ale předpokládejme, že je to pravda, protože je to téměř vždy pravda. 803 00:38:46,180 --> 00:38:51,390 Takže předpokládám, že poštovní směrovací číslo je vždy spojena se stejným městem 804 00:38:51,390 --> 00:38:53,600 a stát, který je laskavý přiměřené předpokladu, 805 00:38:53,600 --> 00:38:54,840 ale nesprávné, to dopadá. 806 00:38:54,840 --> 00:38:57,310 Ale rozumný předpoklad pro dnešní účely. 807 00:38:57,310 --> 00:39:01,650 >> Pak předpokládám, že žiji v Cambridge, MA, podle tabulky tohoto uživatele, 808 00:39:01,650 --> 00:39:04,100 a předpokládám, že Lauren Scullyová žije v Cambridge, Massachusetts, 809 00:39:04,100 --> 00:39:06,120 a předpokládám, že Kareem žije v Cambridge, Massachusetts, 810 00:39:06,120 --> 00:39:10,400 a Arwa žije v Cambridge, MA, každý z nás v 02138. 811 00:39:10,400 --> 00:39:15,890 Proč jsme si pamatovat Cambridge, MA, 02138 pro všechny čtyři z nás? 812 00:39:15,890 --> 00:39:18,903 Co by mělo stačit mít na paměti? 813 00:39:18,903 --> 00:39:20,249 >> Diváků: [neslyšitelné] 814 00:39:20,249 --> 00:39:21,540 DAVID Malan: Jen poštovní směrovací číslo. 815 00:39:21,540 --> 00:39:25,080 Jen to 02.138 existuje, protože Víte, co bychom mohli dělat? 816 00:39:25,080 --> 00:39:32,650 Mohli bychom si trochu fantazie zde a tady, definovat jiné tabulky 817 00:39:32,650 --> 00:39:35,850 kde to má být jméno, to bude druh, 818 00:39:35,850 --> 00:39:38,840 to bude, že je Délka a od nynějška, jsem 819 00:39:38,840 --> 00:39:42,900 bude nazývat můj měst tabulky. 820 00:39:42,900 --> 00:39:47,011 To bylo voláno, z Samozřejmě, že moje uživatelé tabulky. 821 00:39:47,011 --> 00:39:49,885 A tak co bych měl dát sem pro mou měst stůl, myslíš? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> Diváků: [neslyšitelné] 824 00:39:54,535 --> 00:39:55,930 >> DAVID Malan: Jo. 825 00:39:55,930 --> 00:40:01,440 Takže zip a stát a město. 826 00:40:01,440 --> 00:40:05,350 A tak typu tady, budeme říkat to bude char 5 znovu, 827 00:40:05,350 --> 00:40:06,750 s výhradou k diskusi o dříve. 828 00:40:06,750 --> 00:40:14,810 To bude výčet, snad jako dříve, a město bude varchar 50. 829 00:40:14,810 --> 00:40:17,960 A tak teď Co získám vymazat z této tabulky 830 00:40:17,960 --> 00:40:21,995 eliminovat neefektivnost, že? 831 00:40:21,995 --> 00:40:23,100 >> Diváků: [neslyšitelné] 832 00:40:23,100 --> 00:40:23,850 DAVID Malan: Nice. 833 00:40:23,850 --> 00:40:30,239 Státní a městské jít pryč, takže jsem teď eliminovat potenciální neefektivnost 834 00:40:30,239 --> 00:40:33,280 pro zapamatování redundantně, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, což doufejme se nikdy nezmění. 836 00:40:35,712 --> 00:40:37,670 A i když to dělá, to je minorly nepříjemné, nyní 837 00:40:37,670 --> 00:40:39,750 že musím změnit že v několika řadách, 838 00:40:39,750 --> 00:40:43,770 zatímco tady, mohl jsem jen změňte ji na jednom místě. 839 00:40:43,770 --> 00:40:46,890 >> A teď, co je trade-off, snad? 840 00:40:46,890 --> 00:40:48,020 To bylo mimořádně výhodné. 841 00:40:48,020 --> 00:40:50,730 Měl všechny svoje data pěkně pohromadě. 842 00:40:50,730 --> 00:40:53,644 Ale co je jednoznačně tento případ teď? 843 00:40:53,644 --> 00:40:55,684 >> Diváků: [neslyšitelné] 844 00:40:55,684 --> 00:40:58,100 DAVID Malan: Přesně tak, a já rád, že jste použili slovo připojit, 845 00:40:58,100 --> 00:41:01,320 protože to je skutečně klíčové slovo, ve světě relačních databází 846 00:41:01,320 --> 00:41:05,270 v SQL, je to skutečné slovo, Možná typ nebo alespoň sdělit. 847 00:41:05,270 --> 00:41:09,280 A ve skutečnosti to, co nyní máme dělat zvolit Davidův úplné informace 848 00:41:09,280 --> 00:41:19,700 něco jako select hvězda z Uživatelé, připojit měst, on-- a teď 849 00:41:19,700 --> 00:41:24,010 Chystám se jen přesunout na druhý řádek takže tento fits-- users.zip rovná 850 00:41:24,010 --> 00:41:34,570 cities.zip, kde users.ID rovná1. 851 00:41:34,570 --> 00:41:35,550 >> Tak o co jde? 852 00:41:35,550 --> 00:41:38,970 Je to ošklivé hledat, ale můžete druh číst to zleva doprava, shora dolů. 853 00:41:38,970 --> 00:41:41,030 Vybrat hvězda od uživatelů je stejné jako předtím, 854 00:41:41,030 --> 00:41:42,930 ale není to od uživatelů, jsou samy o sobě. 855 00:41:42,930 --> 00:41:45,910 Je to od uživatelů připojit měst. 856 00:41:45,910 --> 00:41:48,520 Co mám spojující tyto dva stoly dál? 857 00:41:48,520 --> 00:41:51,820 No, zdá se, že Členové Tabulky zip pole, 858 00:41:51,820 --> 00:41:54,810 a toto období je jen speciální Syntaxe vyjádřit tuto myšlenku, 859 00:41:54,810 --> 00:41:58,130 A toto je města tabulky zip pole. 860 00:41:58,130 --> 00:42:01,580 Chci ti dva se rovná, ale já chci, aby nakonec vybrat 861 00:42:01,580 --> 00:42:06,280 jen ty řádky, kde ID v tabulce uživatelů 862 00:42:06,280 --> 00:42:08,730 rovná 1, což shodou okolností moje. 863 00:42:08,730 --> 00:42:11,781 >> A jen proto, aby bylo jasno, je programátor, typicky při 864 00:42:11,781 --> 00:42:14,780 napevno něco podobného čísla 1, protože jinak pouze webové stránky 865 00:42:14,780 --> 00:42:17,630 podporuje Davida nebo Úplně první uživatel, budete 866 00:42:17,630 --> 00:42:20,720 by místo toho dělat něco jako ID, kde 867 00:42:20,720 --> 00:42:22,510 To představuje Proměnná, něco, 868 00:42:22,510 --> 00:42:26,210 se mohou časem měnit, podobný v duchu toho, co jsem řekl dříve 869 00:42:26,210 --> 00:42:28,080 S těmito druhy zástupnými znaky. 870 00:42:28,080 --> 00:42:30,396 Ale teď prostě budeme napevno ji jako 1. 871 00:42:30,396 --> 00:42:31,520 A tak co to znamená? 872 00:42:31,520 --> 00:42:35,100 No, příjemný způsob, jak představit to je že v případě této kombinace je tabulka uživatelů, 873 00:42:35,100 --> 00:42:38,090 a to ruka je na zipy stolek, jsme tak nějak finding-- 874 00:42:38,090 --> 00:42:41,330 a konečky prstů jsou na zip sem a konečky prstů 875 00:42:41,330 --> 00:42:43,740 Zde je zip, jsi druh jej zámkové 876 00:42:43,740 --> 00:42:47,950 tak, že dostanete zpět výsledný původní tabulka tím, že skutečně spojování 877 00:42:47,950 --> 00:42:49,590 dva stoly na společném poli. 878 00:42:49,590 --> 00:42:50,840 A to nemusí být zip. 879 00:42:50,840 --> 00:42:54,460 Mohlo by to být nejvíce něco jiného, ​​ale zip je pěkné, protože člověk, je to krátké, 880 00:42:54,460 --> 00:42:56,470 dva, je to vždy stejnou délku, takže je tu 881 00:42:56,470 --> 00:43:02,270 skutečnou účinnost s tím, co Olivier zde navrhované 882 00:43:02,270 --> 00:43:05,200 s vytknutím zip, a [Neslyšitelný] navrhuje, aby se zbavíme 883 00:43:05,200 --> 00:43:07,110 města a státy. 884 00:43:07,110 --> 00:43:11,370 >> Tak to je ten proces známý jako normalizace. 885 00:43:11,370 --> 00:43:14,171 Jakékoliv dotazy na to? 886 00:43:14,171 --> 00:43:16,170 No dovolte mi připomenout, To je ten druh věcí, 887 00:43:16,170 --> 00:43:19,202 i když je to poměrně nízké úrovni, Tato diskuse, které byste si mohli myslet 888 00:43:19,202 --> 00:43:20,910 jste nějak dostat ztratil v plevelů, 889 00:43:20,910 --> 00:43:26,690 To je projevem dostatek příležitost pro developery být špatné. 890 00:43:26,690 --> 00:43:29,600 A ve skutečnosti, i když jsme v kurzy jsem se naučil, když jsme měli, 891 00:43:29,600 --> 00:43:32,290 Například, nezkušený vysokoškolské programátoři 892 00:43:32,290 --> 00:43:35,920 vytvářet webové stránky, na první pohled, webové stránky může vypadat úžasně. 893 00:43:35,920 --> 00:43:38,280 A mají všechny Funkčnost jsme požadovali, 894 00:43:38,280 --> 00:43:40,650 vývojáři odvedli dobrou práci. 895 00:43:40,650 --> 00:43:43,370 >> Ale nemusela nutně vědět dost o návrhu databáze 896 00:43:43,370 --> 00:43:46,680 nebo neměli přemýšlet dost o typech dat 897 00:43:46,680 --> 00:43:49,220 a typy uživatelů na webová stránka se bude muset, 898 00:43:49,220 --> 00:43:53,240 a my zjistíme, tedy o šest měsíců později, poté, co jsem absolvoval, nebo přesunul, 899 00:43:53,240 --> 00:43:56,016 že sakra, naše webové stránky Je opravdu, opravdu pomalu. 900 00:43:56,016 --> 00:43:58,890 A já to ani nemluvím o tom mít milióny či tisíce uživatelů. 901 00:43:58,890 --> 00:44:02,580 Mám na mysli několik set uživatelů na akademické půdě, všechny z nich udělat, například, 902 00:44:02,580 --> 00:44:04,870 obchod pro kurzech ve stejnou dobu, jsou 903 00:44:04,870 --> 00:44:07,010 použitím této katalog kursu Žádost jsem se zmínil 904 00:44:07,010 --> 00:44:10,410 a ta věc je stále ve skutečnosti zpomalit, protože tam nebyly žádné indexy. 905 00:44:10,410 --> 00:44:13,740 Nebyly zjištěny žádné červené hvězdy, takže se mluvit, nebo jsme měli nemusí být nutně 906 00:44:13,740 --> 00:44:17,690 vytknout společná data získat nějaké úspory prostoru. 907 00:44:17,690 --> 00:44:21,880 >> A tak, když prověřování vývojáře nebo databázi osoby nebo podobně, 908 00:44:21,880 --> 00:44:25,864 druhy otázek promyslet Je dokonce při kontrole něčí kód, 909 00:44:25,864 --> 00:44:28,530 říkat, ne nutně vypadat přes všechny jejich kódu, ale říkají, 910 00:44:28,530 --> 00:44:30,154 Podívejme se skrz databázových tabulek. 911 00:44:30,154 --> 00:44:31,150 Co to ukládání? 912 00:44:31,150 --> 00:44:33,941 A pak říkat, no, počkej minuta, proč jste pomocí celé číslo? 913 00:44:33,941 --> 00:44:36,224 Co když máme 4 miliardy a jeden z těchto řádcích? 914 00:44:36,224 --> 00:44:38,140 A tyto druhy Otázky je příležitost 915 00:44:38,140 --> 00:44:40,170 na druh tlačit zpět a získat představu o tom, kde 916 00:44:40,170 --> 00:44:42,300 pokud nejste spokojeni dělat to, s někým techničtější 917 00:44:42,300 --> 00:44:45,425 zeptat na tyto otázky o tom, zda nebo ne člověk opravdu zná své věci. 918 00:44:45,425 --> 00:44:47,890 A to je ten druh věci také, že lidé 919 00:44:47,890 --> 00:44:50,540 na internetu, kteří jsou-samouk, možná 920 00:44:50,540 --> 00:44:53,920 učit se méně často, protože vás nemusí nutně narazit na něj 921 00:44:53,920 --> 00:44:56,630 tolik, protože se můžete dostat Databáze nahoru a běh, 922 00:44:56,630 --> 00:44:58,880 ale pokud jste četli up na seminářích nebo byli 923 00:44:58,880 --> 00:45:01,880 řekl o normalizaci databáze a indexování a výkon, 924 00:45:01,880 --> 00:45:04,255 jedná se o spoustu věcí, které jsou ti neublíží. 925 00:45:04,255 --> 00:45:07,480 A byste si mohli myslet, nebo špatný inženýr by se říci, oh, dobře, jsme lepší plat 926 00:45:07,480 --> 00:45:09,600 pro větší databázi nebo rychlejší databáze 927 00:45:09,600 --> 00:45:13,360 nebo jen házet peníze na to, vertikálně stupnice, nemusí tomu tak být. 928 00:45:13,360 --> 00:45:16,920 Vydáte-li se in-- a můžete jít po fact-- a přidat indexy, 929 00:45:16,920 --> 00:45:20,320 a to by mohlo trvat několik hodin, než se Databáze vybudovat, že nové údaje 930 00:45:20,320 --> 00:45:24,100 struktura, která jsem zmínil dříve, stále můžete opravit po faktu, 931 00:45:24,100 --> 00:45:26,180 že toto je místo, kde vás začít rozlišovat 932 00:45:26,180 --> 00:45:28,830 dobrých designéři z špatný designéři, a to nejen z estetického hlediska, 933 00:45:28,830 --> 00:45:32,972 ale výkon-moudrý stejně. 934 00:45:32,972 --> 00:45:33,555 Nějaké otázky? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Ne? 937 00:45:37,480 --> 00:45:41,980 Takže pro NoSQL, který byl jiný typ z databáze, ke které jsem se zmiňoval dříve, 938 00:45:41,980 --> 00:45:43,490 nemáte řádků a sloupců. 939 00:45:43,490 --> 00:45:47,000 Místo toho, měli byste mít něco která vypadá trochu jako je tento. 940 00:45:47,000 --> 00:45:48,630 Budu používat společné syntaxi. 941 00:45:48,630 --> 00:45:51,270 Složené závorky náhodou se zde používá poměrně hodně. 942 00:45:51,270 --> 00:45:55,400 Ty by mohly mít něco jako křestní jméno je David, 943 00:45:55,400 --> 00:46:00,180 můžete mít poslední Jméno je Malan, citace, 944 00:46:00,180 --> 00:46:07,530 můžete mít ID je-- promiňte, whoops-- číslo 1, 945 00:46:07,530 --> 00:46:13,410 e-mail je malan@harvard.edu, a nebudu obtěžovat psaní se na ostatní, a poté 946 00:46:13,410 --> 00:46:14,380 některé další věci. 947 00:46:14,380 --> 00:46:17,380 >> Jinými slovy, to je reprezentace textová 948 00:46:17,380 --> 00:46:20,720 z toho, co bychom obecně nazývat objekt v počítačovém programu. 949 00:46:20,720 --> 00:46:26,079 A objekt je obecně jen sbírka párů klíčových hodnot. 950 00:46:26,079 --> 00:46:27,370 Takže znovu, to opakující se téma. 951 00:46:27,370 --> 00:46:30,440 Viděli jsme páry klíč hodnota v HTML, jsme viděli dvojice hodnotu klíče nyní 952 00:46:30,440 --> 00:46:34,020 v souvislosti s databází a my Viděl páry klíčových hodnot v rámci 953 00:46:34,020 --> 00:46:35,970 of Myslím, že jazyk dneska. 954 00:46:35,970 --> 00:46:36,890 Udržuje přijít. 955 00:46:36,890 --> 00:46:39,620 A vskutku, to je fakt jaká data scvrkává, 956 00:46:39,620 --> 00:46:44,240 data a metadata, nebo hodnoty a klíče, příslušně. 957 00:46:44,240 --> 00:46:47,430 >> Tak non-relační databáze, něco na bázi 958 00:46:47,430 --> 00:46:50,680 Na objektech, kde se právě shlukují vše dohromady a dát ho 959 00:46:50,680 --> 00:46:55,640 do paměti, by obecně zobrazen jako nebo myšlenka, protože to. 960 00:46:55,640 --> 00:47:00,500 A nechám, že nyní jako druh alternativního přístupu. 961 00:47:00,500 --> 00:47:03,750 A jeden nemusí být nutně lepší než ostatní. 962 00:47:03,750 --> 00:47:07,310 Ve skutečnosti je velmi v módě Tyto dny jsou databázové systémy 963 00:47:07,310 --> 00:47:11,942 jako MongoDB a REDIS a málo jiné takové nástroje, volně dostupné, 964 00:47:11,942 --> 00:47:13,400 ale jsou stále v módě. 965 00:47:13,400 --> 00:47:18,850 Částečně proto, že nabízejí dodatečné obsahuje více než těchto tabulkových přístupů, 966 00:47:18,850 --> 00:47:20,850 ale také proto, že jsou poněkud snadnější použití, 967 00:47:20,850 --> 00:47:24,099 protože nemusíte přemýšlet, jak těžké o spoustě těchto rozhodnutí designu. 968 00:47:24,099 --> 00:47:25,970 Takže plusy a minusy. 969 00:47:25,970 --> 00:47:29,740 Takže si uvědomit, tam jsou možnosti rámec toho, co jsme právě strávili čas. 970 00:47:29,740 --> 00:47:32,310 >> Tak jdeme na to. 971 00:47:32,310 --> 00:47:37,870 Pojďme přechod poněkud zpátky na webové programování, 972 00:47:37,870 --> 00:47:40,470 takže jsme trochu k závěru, dnes s něčím 973 00:47:40,470 --> 00:47:43,930 To je trochu hands-on, plnicí V některých mezer od včerejška. 974 00:47:43,930 --> 00:47:45,340 Nech mě jít do toho prvního. 975 00:47:45,340 --> 00:47:49,310 Takže připomenout, že včera jsme měli nějaké kanonické HTML 976 00:47:49,310 --> 00:47:55,110 Stránky, které měly na počátku, jen HTML, a pak sekundárně měl CSS, 977 00:47:55,110 --> 00:47:56,620 Kaskádové styly. 978 00:47:56,620 --> 00:47:59,830 Jedná se o nový tag, který jsme neměli Včera, nebo zabývat, 979 00:47:59,830 --> 00:48:01,490 takzvaný tag script. 980 00:48:01,490 --> 00:48:05,830 >> Ukázalo se, že můžete skutečně vložit jazyk nazvaný JavaScript Váš web 981 00:48:05,830 --> 00:48:08,310 stránky a učinit svůj web Stránky něco udělat. 982 00:48:08,310 --> 00:48:09,710 Tak co mám na mysli? 983 00:48:09,710 --> 00:48:12,630 No, nech mě jít dopředu a jen vypůjčit si tento kód na chvíli. 984 00:48:12,630 --> 00:48:15,860 Chystám se jít do Cloud9, není třeba se tam sami ještě ne, 985 00:48:15,860 --> 00:48:21,350 a budu volat tuto alert.HTML. 986 00:48:21,350 --> 00:48:23,650 Jdu vložit svůj spis sem. 987 00:48:23,650 --> 00:48:32,070 A jen proto, aby bylo jasnější, co jsem udělal, nech mě jít na tuto adresu a jít upozornit, 988 00:48:32,070 --> 00:48:33,870 a uvidíte Hello World. 989 00:48:33,870 --> 00:48:35,440 >> Ale to je trochu nezaujatý. 990 00:48:35,440 --> 00:48:37,410 Chci dělat něco trochu jinak. 991 00:48:37,410 --> 00:48:40,610 Takže budu skutečně udělat. 992 00:48:40,610 --> 00:48:43,820 Chystám se jít sem e, a mezi mé značky skriptu, 993 00:48:43,820 --> 00:48:53,460 říkají alert ( "ahoj, svět"); takže oznámení je to trochu nedbalý, ale mám HTML, 994 00:48:53,460 --> 00:48:56,180 uvnitř které je jazyk s názvem JavaScript, 995 00:48:56,180 --> 00:48:59,420 a to je to, co se nazývá Funkce volání nebo volání procedur. 996 00:48:59,420 --> 00:49:04,500 To je sloveso, doslova, v tomto případě, a já vyvolání funkce kódu 997 00:49:04,500 --> 00:49:06,310 že někdo jiný napsal. 998 00:49:06,310 --> 00:49:09,630 >> Takže funkčnost je střehu, takže pojďme na tuto stránku 999 00:49:09,630 --> 00:49:14,046 nyní a klepněte na tlačítko Načíst znovu, a teď viz trochu interaktivity. 1000 00:49:14,046 --> 00:49:15,420 Je to trochu staré školy a ošklivý. 1001 00:49:15,420 --> 00:49:18,580 To vám trochu připomíná pop-up, snad, z dávných dob 1002 00:49:18,580 --> 00:49:22,030 ale to přece udělat něco trochu víc programový. 1003 00:49:22,030 --> 00:49:26,940 >> Takže víc než to, udělejme něco zajímavější. 1004 00:49:26,940 --> 00:49:30,980 Nechte mě jít sem a zbavit se toho. 1005 00:49:30,980 --> 00:49:33,840 A já jdu dopředu a vytvořit formulář jako my včera. 1006 00:49:33,840 --> 00:49:34,840 Vlastně, víte co? 1007 00:49:34,840 --> 00:49:37,350 Chystám se jít do google.html, které jsme 1008 00:49:37,350 --> 00:49:43,027 začal včera, které vypadala jako to, prostřednictvím kterého jsme hledali pro kočku 1009 00:49:43,027 --> 00:49:45,360 Ale všimnout, je tu něco jako chyba v aktuální verzi. 1010 00:49:45,360 --> 00:49:49,770 Pracuje pro kočky, ale předpokládám, že I nespolupracují a jsem psát nic, 1011 00:49:49,770 --> 00:49:53,290 a já prostě na tlačítko odeslat. 1012 00:49:53,290 --> 00:49:54,540 To je trochu podivné chování. 1013 00:49:54,540 --> 00:49:57,300 Vzal mě ke skutečnému Google, mi nedali chybovou zprávu. 1014 00:49:57,300 --> 00:50:00,590 Chtěl bych říci uživatele je třeba, aby nám nějakou hodnotu. 1015 00:50:00,590 --> 00:50:01,780 >> Tak jak můžeme to udělat? 1016 00:50:01,780 --> 00:50:06,790 No dovolte mi vrátit se do Cloud9 a nech mě jít do horní části mé stránky 1017 00:50:06,790 --> 00:50:11,980 a přidat tag script jako je tento, kde Jdu psát nějaký kód JavaScriptu. 1018 00:50:11,980 --> 00:50:15,420 A já budu dělat následující. 1019 00:50:15,420 --> 00:50:22,910 If (document.getelementByID-- a odvolání že jsme mluvili o tom dříve, 1020 00:50:22,910 --> 00:50:23,960 tato funkce. 1021 00:50:23,960 --> 00:50:25,310 Jaké ID chci dostat? 1022 00:50:25,310 --> 00:50:33,050 Chci se dostat q, a jdu řekněme rovná nic, jako tohle-- 1023 00:50:33,050 --> 00:50:38,220 ve skutečnosti dovolte mi použít dvojité uvozovky Jen pro consistency-- se rovná nic, 1024 00:50:38,220 --> 00:50:46,650 Pak alert ( "Prosím, zadejte dotaz") zde. 1025 00:50:46,650 --> 00:50:49,200 >> Takže mám co se zdá být něco jako podmínku. 1026 00:50:49,200 --> 00:50:51,410 Viděli jsme tuto obecnou myšlenku na Scratch. 1027 00:50:51,410 --> 00:50:54,240 Je to jako jeden z těch puzzle kousky, které vypadaly jako tento. 1028 00:50:54,240 --> 00:50:55,780 A co to říkám? 1029 00:50:55,780 --> 00:50:59,520 No, tady dole si všimněte, že jsem dělat následující. 1030 00:50:59,520 --> 00:51:02,790 Chystám se dát tento formulář Pole nejen název q, což 1031 00:51:02,790 --> 00:51:06,630 je to, co dostane přešel na Google, ale já jsem chystá dát mu lokální identifikátor, 1032 00:51:06,630 --> 00:51:07,630 také volal q. 1033 00:51:07,630 --> 00:51:11,780 Ale já jsem mohl zavolat to něco, co bych chtít, já jsem prostě jít, aby to jednoduché 1034 00:51:11,780 --> 00:51:14,570 a také to nazývají q, jen pro jednoduchost. 1035 00:51:14,570 --> 00:51:17,650 >> A teď budu dělat něco trochu víc. 1036 00:51:17,650 --> 00:51:22,600 Na polí formuláře tady, jdu přidat, co se nazývá zpracování události. 1037 00:51:22,600 --> 00:51:32,260 Na předložit, chci volat funkce nazvaná validovat. 1038 00:51:32,260 --> 00:51:35,520 To ještě neexistuje, toto slovo, nebo to sloveso ověřování, 1039 00:51:35,520 --> 00:51:38,560 protože to, co budu dělat up tady je přidat nějaký kód. 1040 00:51:38,560 --> 00:51:42,200 >> Jdu říct funkce Ověřit. 1041 00:51:42,200 --> 00:51:48,280 Jdu odsadit to a přidat další složená závorka tady a druhá tady. 1042 00:51:48,280 --> 00:51:50,110 Podívejme se, co je to právě dělá. 1043 00:51:50,110 --> 00:51:54,210 Mám now-- myslet na to, jak byl vytvořen my Vlastní skládačky, které nebyly dříve 1044 00:51:54,210 --> 00:51:57,440 existovat, a já jsem to nazval puzzle poskládat ověřením kousek skládačky. 1045 00:51:57,440 --> 00:52:01,620 Jeho smyslem života je realizovat čtyři řádky kódu uvnitř ní. 1046 00:52:01,620 --> 00:52:04,940 >> Pokud document.getElementById tak koncepčně, 1047 00:52:04,940 --> 00:52:09,380 který se chystá jít do prvku, HTML element, jehož jedinečný 1048 00:52:09,380 --> 00:52:12,930 myšlenka je jen q, a pak přestože Syntaxe vypadá trochu divně, 1049 00:52:12,930 --> 00:52:16,430 že rovné rovná jen znamená, že rovná. 1050 00:52:16,430 --> 00:52:20,950 Tak to znamená, že v případě, že prvek s jedinečný identifikátor q, kdy dostal, 1051 00:52:20,950 --> 00:52:25,700 nemá žádnou hodnotu, to prostě rovná citát konec citátu, nic není, 1052 00:52:25,700 --> 00:52:27,170 poté co chci dělat? 1053 00:52:27,170 --> 00:52:29,360 Chci křičet na uživateli. 1054 00:52:29,360 --> 00:52:31,710 >> A nepůjdeme velmi podrobně zde. 1055 00:52:31,710 --> 00:52:32,960 Jdu return false. 1056 00:52:32,960 --> 00:52:34,380 Že se jedná o chybu. 1057 00:52:34,380 --> 00:52:38,746 Else, jdu se vrátit pravda. 1058 00:52:38,746 --> 00:52:40,120 Takže buď to fungovalo, nebo ne. 1059 00:52:40,120 --> 00:52:41,800 Nepravdivé nebo pravda. 1060 00:52:41,800 --> 00:52:47,820 A teď když jsem neudělal žádnou chybu, dovolte mi zachránit to a znovu to. 1061 00:52:47,820 --> 00:52:50,940 A ať mi právě dvakrát zkontrolujte, že Nechtěl jsem ve skutečnosti provádět žádné překlepy, 1062 00:52:50,940 --> 00:52:52,690 takže si nemyslím rozpaků sám. 1063 00:52:52,690 --> 00:52:54,240 Uvidíme, jestli to funguje. 1064 00:52:54,240 --> 00:52:56,930 >> Takže teď budu psát kočky. 1065 00:52:56,930 --> 00:52:59,421 To ještě funguje, nebo polovina práce, minimálně. 1066 00:52:59,421 --> 00:53:02,170 Nyní mi dovolte to znovu, a teď se me pokuste se o odeslání bez psaní 1067 00:53:02,170 --> 00:53:05,860 anything-- sakra, to zlomilo. 1068 00:53:05,860 --> 00:53:06,430 Moment. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Dovolte mi, abych otevření konzoly, [Neslyšitelné] přihlásit, znovu načíst stránku. 1071 00:53:12,660 --> 00:53:13,576 Zkusím to znovu. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 Oh, sakra. 1074 00:53:17,501 --> 00:53:18,000 Zapomněl jsem. 1075 00:53:18,000 --> 00:53:18,630 Udělal jsem překlep. 1076 00:53:18,630 --> 00:53:20,760 Vzpomínám si, co to je. 1077 00:53:20,760 --> 00:53:21,350 .hodnota. 1078 00:53:21,350 --> 00:53:27,060 Chtěl jsem říct, pokud je hodnota prvku, jejichž ID je q 1079 00:53:27,060 --> 00:53:29,800 rovná, pak křičet na uživatele. 1080 00:53:29,800 --> 00:53:31,870 >> Takže teď mi dovolte znovu zadržet dech. 1081 00:53:31,870 --> 00:53:33,480 Jdeme na to. 1082 00:53:33,480 --> 00:53:34,130 Tam jedeme. 1083 00:53:34,130 --> 00:53:35,010 Prosím, zadejte dotaz. 1084 00:53:35,010 --> 00:53:36,840 Takže to není mě nechal projít. 1085 00:53:36,840 --> 00:53:40,210 Můžu být trochu hravý s tím, a místo kontroly pro žádnou hodnotu, 1086 00:53:40,210 --> 00:53:46,720 Mohu říci něco jako: již nemusíte hledat pro kočky, 1087 00:53:46,720 --> 00:53:51,150 a nyní můžeme jen více hravou nechat uživatel hledat pro psy jestliže on nebo ona 1088 00:53:51,150 --> 00:53:57,490 chce, nebo když jdu sem a vyhledávat pro kočky, teď nemůžu. 1089 00:53:57,490 --> 00:53:58,690 >> Takže to, co je tady stánek s jídlem? 1090 00:53:58,690 --> 00:54:03,010 Takže jedno, jsme zavedli do náš svět HTML a CSS, 1091 00:54:03,010 --> 00:54:04,320 programovací funkce. 1092 00:54:04,320 --> 00:54:06,300 Mohu vlastně teď činit rozhodnutí v kódu. 1093 00:54:06,300 --> 00:54:10,570 Dříve, vše, co jsem mohl udělat, je označit textový obsah nebo grafického obsahu 1094 00:54:10,570 --> 00:54:13,080 a říci mu, na co se zaměřit podobně, a kde se má zobrazit. 1095 00:54:13,080 --> 00:54:16,650 Teď můžu vlastně ptát otázky webové stránky 1096 00:54:16,650 --> 00:54:20,010 a učinit rozhodnutí na základě na něm, a vyzve uživatele 1097 00:54:20,010 --> 00:54:22,780 když potřebuji křičet na něj. 1098 00:54:22,780 --> 00:54:28,740 >> Tak pojďme zkusit něco sami s tím. 1099 00:54:28,740 --> 00:54:33,350 Jen do toho, dovolte mi otevřít další snímek tady, a jen poukázat na jednu věc. 1100 00:54:33,350 --> 00:54:37,250 Stejně jako u CSS, můžeme vytknout Naše JavaScript kód do samostatného souboru, 1101 00:54:37,250 --> 00:54:40,660 můžete udělat totéž s JavaScriptu pomocí CSS. 1102 00:54:40,660 --> 00:54:44,520 A vy ji využít pomocí zdroje atribut script tag. 1103 00:54:44,520 --> 00:54:46,540 Ale nebudeme komplikovat věci pro tuto chvíli. 1104 00:54:46,540 --> 00:54:50,440 Místo toho, pokud si mohl přejít na této stránce není, 1105 00:54:50,440 --> 00:55:02,690 ale-- dovolte mi přesunout tento kolem order-- přejít na, kdybyste mohl, tuto stránku zde. 1106 00:55:02,690 --> 00:55:03,592 Tato adresa URL zde. 1107 00:55:03,592 --> 00:55:04,550 Je to v dnešních snímků. 1108 00:55:04,550 --> 00:55:07,133 Možná budete muset znovu načíst, protože Přidal jsem pár věcí. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Ale tam, kde někteří hádanky čekají. 1111 00:55:13,890 --> 00:55:16,670 A to nám dá šanci, v poněkud více zábavy kontextu, 1112 00:55:16,670 --> 00:55:20,610 fušovat s některými JavaScriptu. 1113 00:55:20,610 --> 00:55:25,505 A když se tam dostat, Vysvětlím ti to, co čeká. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Získat zelenou. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Nastavit modré. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Nastaví zelená, červená sady. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Jejda. 1122 00:56:20,220 --> 00:56:22,330 Promiňte. 1123 00:56:22,330 --> 00:56:27,630 >> To je rozsah našeho Dokumentace pro tuto výzvu. 1124 00:56:27,630 --> 00:56:29,920 A to bude pracovat následujícím způsobem. 1125 00:56:29,920 --> 00:56:33,340 Takže to, co máte na toto téma Stránka je celá parta 1126 00:56:33,340 --> 00:56:38,024 obrazových hádanky tím kamaráda Stanfordovy univerzity. 1127 00:56:38,024 --> 00:56:41,190 Takže to, co vidíte tady je téměř druh jedné z těchto magické oko hádanky, 1128 00:56:41,190 --> 00:56:43,815 ale prostě dívat, jestli na to, se nic vyskočí na vás. 1129 00:56:43,815 --> 00:56:46,000 Spíše je něco skryté v tomto snímku. 1130 00:56:46,000 --> 00:56:47,790 A to je skrytý v následujícím způsobem. 1131 00:56:47,790 --> 00:56:51,740 Snímky, jak možná víte, může být složený z pouhých tří barev. 1132 00:56:51,740 --> 00:56:53,346 Některé červená, některé modré, a některé zelené. 1133 00:56:53,346 --> 00:56:55,220 A můžeme dělat vše Barvy duhy 1134 00:56:55,220 --> 00:56:57,570 smícháním těchto tří barev nějak. 1135 00:56:57,570 --> 00:57:01,940 >> Takže to vypadá většinou zelené a modré, ale jak říká tady Nick, 1136 00:57:01,940 --> 00:57:04,060 Tento železo puzzle obrázek je logická. 1137 00:57:04,060 --> 00:57:06,780 Že obsahuje obraz co slavný, nicméně, 1138 00:57:06,780 --> 00:57:08,310 byl obraz zkreslený. 1139 00:57:08,310 --> 00:57:11,500 Slavný objekt je v červených hodnotách. 1140 00:57:11,500 --> 00:57:13,810 Nicméně, červené hodnoty byli všichni děleno 10. 1141 00:57:13,810 --> 00:57:16,230 Tak oni jsou příliš malé faktorem 10. 1142 00:57:16,230 --> 00:57:18,280 Takže jinými slovy, Nick vzal originální obraz, 1143 00:57:18,280 --> 00:57:21,500 a on desaturated vše z červené z něj, 1144 00:57:21,500 --> 00:57:23,850 snížení množství červené inkoust, chcete-li, v něm. 1145 00:57:23,850 --> 00:57:26,060 >> Zelené a modré hodnoty jsou jen bezvýznamné, 1146 00:57:26,060 --> 00:57:30,000 náhodné hodnoty, aka hluk navržený zakrýt skutečný obraz. 1147 00:57:30,000 --> 00:57:32,250 Takže to, co udělal, bylo, že Nick zmírnil červené a poté 1148 00:57:32,250 --> 00:57:34,380 prostě hodil náhodné Množství modrá a zelená 1149 00:57:34,380 --> 00:57:37,590 Na obrazu na druhu temný co je vlastně tam pořád. 1150 00:57:37,590 --> 00:57:41,089 Musíte se vrátit zpět tyto rozpory odhalit obraz. 1151 00:57:41,089 --> 00:57:44,255 Za prvé, nastavit všechny modré a zelené hodnoty na nulu dostat ven z cesty, 1152 00:57:44,255 --> 00:57:48,700 a podívat se na výsledek. Pak vynásobit každou červenou hodnotu 10, 1153 00:57:48,700 --> 00:57:51,720 škálování zpět do přibližně její konečná hodnota. 1154 00:57:51,720 --> 00:57:53,035 Co je známý objekt? 1155 00:57:53,035 --> 00:57:57,920 >> Takže vy všichni mají tento obdélník ve svém prohlížeči právě teď. 1156 00:57:57,920 --> 00:58:00,830 A všimněte si, že tam je nějaká startovací kód, abych tak řekl. 1157 00:58:00,830 --> 00:58:04,370 To je kód JavaScript, který Nick napsal pro vás. 1158 00:58:04,370 --> 00:58:07,250 A všimněte si, že je tu čára uprostřed, že 1159 00:58:07,250 --> 00:58:10,380 začíná lomítkem lomítkem, to je co se obecně nazývá komentář. 1160 00:58:10,380 --> 00:58:14,660 To znamená, že je to výraz pro programátora že nemá žádný funkční význam. 1161 00:58:14,660 --> 00:58:16,520 Je to jen vizuální podnět k člověku. 1162 00:58:16,520 --> 00:58:18,670 >> Takže můžete jít dopředu a odstranit pouze jeden řádek 1163 00:58:18,670 --> 00:58:22,214 a bylo super pozor, abyste odstranit nebo změnit něco jiného. 1164 00:58:22,214 --> 00:58:25,130 A dovolte mi, abych vás provedou co tento kód dělá, a to nechám 1165 00:58:25,130 --> 00:58:28,580 na vás, abyste zjistili tajný obraz. 1166 00:58:28,580 --> 00:58:32,226 Tento první řádek tady, že jsem jen zvýrazněný vám dává následující. 1167 00:58:32,226 --> 00:58:34,100 Na levé straně, Máte to, co se nazývá 1168 00:58:34,100 --> 00:58:39,140 proměnná, která má Nick libovolně, ale rozumně volal im pro image. 1169 00:58:39,140 --> 00:58:41,660 Na pravé straně uvedeného rovnítko, 1170 00:58:41,660 --> 00:58:45,240 on říká mi dát nový citát, konec citátu "simple image". 1171 00:58:45,240 --> 00:58:49,680 >> Jednoduchý obraz, v této souvislosti je to, co se nazývá třída, no, 1172 00:58:49,680 --> 00:58:53,910 je to něco jako class-- technicky prototype-- ale ve skutečnosti, 1173 00:58:53,910 --> 00:58:58,000 to mi dává nový objekt, jehož obsah jsou soubor, 1174 00:58:58,000 --> 00:58:59,610 železo-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 Jinými slovy, Nick vytvořil tento pojem jednoduchého obrazu 1176 00:59:03,190 --> 00:59:05,920 takže můžeme, pro pedagogické účely, hrát si s obrazem 1177 00:59:05,920 --> 00:59:09,790 a změnit jeho červená, zelené a modré hodnoty. 1178 00:59:09,790 --> 00:59:11,750 >> A jak jsme na tom, že? 1179 00:59:11,750 --> 00:59:15,360 Toto poněkud záhadný syntaxe zde Je něco jako opakování bloku 1180 00:59:15,360 --> 00:59:19,140 že někteří z vás viděl v Scratch dříve Dnes, kde si můžete opakovat 10 krát. 1181 00:59:19,140 --> 00:59:22,220 V tomto případě, Nick nemá napevno čísla jako 10. 1182 00:59:22,220 --> 00:59:28,020 Místo toho říká, inicializovat proměnná s názvem x 0, 1183 00:59:28,020 --> 00:59:33,180 zkontrolujte, zda je x menší než šířka obrazu. 1184 00:59:33,180 --> 00:59:38,160 >> A tak, aby se více správné, jako je variabilní, tečka znamená jít uvnitř ní 1185 00:59:38,160 --> 00:59:40,900 a získat jeho šířku a Pak otevřete paren, uzavřená 1186 00:59:40,900 --> 00:59:43,687 paren je jen programátorský způsob, říkat to je funkce. 1187 00:59:43,687 --> 00:59:44,520 Jedná se o postup. 1188 00:59:44,520 --> 00:59:46,430 To je funkčnost někdo jiný napsal. 1189 00:59:46,430 --> 00:59:48,570 Použijte ji a vrať mi odpověď. 1190 00:59:48,570 --> 00:59:53,610 A pak x ++ je ozdobný způsob, říkat, poté, co jste udělal to jednou, 1191 00:59:53,610 --> 00:59:55,850 přírůstek x o 1. 1192 00:59:55,850 --> 00:59:58,760 Jinými slovy, toto je programátorský způsob, 1193 00:59:58,760 --> 01:00:05,760 vyvolat smyčku, který je bude iteraci 1194 01:00:05,760 --> 01:00:10,410 všechny sloupce v obraze. 1195 01:00:10,410 --> 01:00:14,790 >> Obraz je pouze mřížka tečky, řádky a sloupce bodů. 1196 01:00:14,790 --> 01:00:18,270 To je způsob, jak iterace přes všechny tyto sloupce. 1197 01:00:18,270 --> 01:00:20,770 A na vnitřní straně, Mezitím jsme iterace 1198 01:00:20,770 --> 01:00:24,030 přes výšek, zde i zde a zde. 1199 01:00:24,030 --> 01:00:29,442 Takže je to jen způsob, jak traipsing, skoro jako starý školní psací stroj, 1200 01:00:29,442 --> 01:00:32,230 prostě jít přes Celý obraz opakovaně. 1201 01:00:32,230 --> 01:00:36,370 Dokonce to není tak docela úplně jasná, prostě vzít na víru teď, 1202 01:00:36,370 --> 01:00:38,880 že tyto tři řádky kódu jsou společně 1203 01:00:38,880 --> 01:00:43,090 bude vám umožní opakovaně hledat na každém pixelu, každá tečka v obraze. 1204 01:00:43,090 --> 01:00:43,790 >> Co je to pixel? 1205 01:00:43,790 --> 01:00:46,250 Tak aby bylo jasno, podíváme-li se na originálu a zvětšení, 1206 01:00:46,250 --> 01:00:49,060 pokud opravdu dát své oči na obrazovce počítače, to je 1207 01:00:49,060 --> 01:00:53,510 jen celá řada bodů, několik Tisíc bodů baleny společně tam. 1208 01:00:53,510 --> 01:00:56,180 A tak to, co jste asi dělat? 1209 01:00:56,180 --> 01:00:59,240 Každý z těchto bodů, konečná definice, 1210 01:00:59,240 --> 01:01:06,350 je výsledkem toho, co je všeobecně volal RGB, červená, zelená, modrá, které 1211 01:01:06,350 --> 01:01:09,940 opět, mohou být kombinovány, aby dát libovolný počet barev. 1212 01:01:09,940 --> 01:01:13,200 >> Ve skutečnosti, pokud si vzpomenete Z mnoha lety, mnoho let, 1213 01:01:13,200 --> 01:01:17,320 Projektorové plátna, jako jsou tyto věci míval ne jednu čočku, ale tři. 1214 01:01:17,320 --> 01:01:20,700 Jeden z nich vyplivnout červené světlo, jeden z je vyplivnout zelenou, jeden z nich 1215 01:01:20,700 --> 01:01:21,600 vyplivnout modré světlo. 1216 01:01:21,600 --> 01:01:24,391 A pokud jste byli na střední škole jako jsem byl, kde nikdy nebyli 1217 01:01:24,391 --> 01:01:27,000 správně vyrovnán, že jsi Vždy sledování filmů historie 1218 01:01:27,000 --> 01:01:29,770 které byly mírně zkreslený, protože tyto tři barvy nebyly 1219 01:01:29,770 --> 01:01:30,970 Kombinací správně. 1220 01:01:30,970 --> 01:01:36,330 >> Ale ukazuje se, že každý z Tyto hodnoty červené, zelené a modré, 1221 01:01:36,330 --> 01:01:37,980 může mít řadu spojený s nimi. 1222 01:01:37,980 --> 01:01:42,500 Například, 0 pro Red znamená žádný červené, 0 zelené znamená, že žádná zelená, 1223 01:01:42,500 --> 01:01:45,120 a 0 pro modré znamená bez modré. 1224 01:01:45,120 --> 01:01:49,403 Takže pokud máte ne červená, ne zelená, a ne modré, jakou barvu máte? 1225 01:01:49,403 --> 01:01:51,009 >> Diváků: [neslyšitelné] 1226 01:01:51,009 --> 01:01:52,800 DAVID Malan: To bys doufám, že je to bílé. 1227 01:01:52,800 --> 01:01:55,333 Bohužel, toto operates-- líto? 1228 01:01:55,333 --> 01:01:56,380 >> Diváků: [neslyšitelné] 1229 01:01:56,380 --> 01:01:58,630 DAVID Malan: Takže jste vlastně mají černý, v tomto případě. 1230 01:01:58,630 --> 01:02:01,530 Takže pokud máte žádný z nich Barvy zapnuta, máte černé. 1231 01:02:01,530 --> 01:02:06,510 Nicméně, pokud máte, řekněme hodně z nich, stejně jako spousta červené, 255 o tom, 1232 01:02:06,510 --> 01:02:10,340 spousta zeleně, a mnoho z modré, která je bílá. 1233 01:02:10,340 --> 01:02:12,230 Tak to jsou dva extrémy. 1234 01:02:12,230 --> 01:02:17,460 Takže podle této logiky, když mám hodně červené a zelené ne a ne modrá, 1235 01:02:17,460 --> 01:02:18,485 jakou barvu to je? 1236 01:02:18,485 --> 01:02:19,360 Diváků: [neslyšitelné] 1237 01:02:19,360 --> 01:02:20,610 DAVID Malan: Jasně, samozřejmě. 1238 01:02:20,610 --> 01:02:25,940 A pak není červená, spousta zelená, modrá ne, a poté 1239 01:02:25,940 --> 01:02:29,590 pokud jste have-- dobře, budeme jen dokončit to, jen proto, že, ale to, samozřejmě, 1240 01:02:29,590 --> 01:02:31,350 Nyní je modrá. 1241 01:02:31,350 --> 01:02:33,030 A nyní můžete kombinovat tyto barvy. 1242 01:02:33,030 --> 01:02:36,430 Nyní jako stranou, je-li někdo z vás někdy udělal nějakou skutečnou designu webových stránek, 1243 01:02:36,430 --> 01:02:38,360 jste ve skutečnosti může viz symboly jako je tato. 1244 01:02:38,360 --> 01:02:42,030 FFF-- a ve skutečnosti, to je pravděpodobně ani to ne. 1245 01:02:42,030 --> 01:02:44,380 Je to FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Každý, kdo někdy viděl F je a ŽP a A through-- tak to dopadá, 1247 01:02:48,970 --> 01:02:52,970 jsme mluvili včera o jedno desetinné místo, a dnes, druh o desítkové soustavě. 1248 01:02:52,970 --> 01:02:54,570 Dnes jsme mluvili o binární. 1249 01:02:54,570 --> 01:02:59,010 Ukázalo se, hexadecimální je velmi společný základ systému pro použití v počítači. 1250 01:02:59,010 --> 01:03:04,960 Binární je dvě za desetinnou čárkou je 10, hex je 16. 1251 01:03:04,960 --> 01:03:08,640 A ukázalo se, jak dělat můžete počítat v šestnáctkové soustavě? 1252 01:03:08,640 --> 01:03:11,620 Nula, jeden, dva, tři, čtyři, pět, šest, sedm, osm, 1253 01:03:11,620 --> 01:03:14,730 devět, co používáte po deváté? 1254 01:03:14,730 --> 01:03:16,600 Jaký je další číslo? 1255 01:03:16,600 --> 01:03:19,180 Už jsme použili nulu. 1256 01:03:19,180 --> 01:03:20,570 Musím 16 z nich. 1257 01:03:20,570 --> 01:03:25,770 Nula, jeden, dva, tři, čtyři, pět, šest, sedm, osm, devět, 1258 01:03:25,770 --> 01:03:27,520 budete potřebovat nějaké libovolné konvence. 1259 01:03:27,520 --> 01:03:30,810 >> A co lidstvo rozhodl nějaký čas Před že po devíti přichází písmeno 1260 01:03:30,810 --> 01:03:34,450 A a pak B a poté C. Takže jak jste počítat v hexadecimální 1261 01:03:34,450 --> 01:03:37,040 je nula, jedna, dva, tři, čtyři, pět, šest, sedm, osm, devět, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, a že se bude počítat jste celou cestu, to dopadá, na 15. 1263 01:03:42,880 --> 01:03:47,850 Tak nula až 15 je nula až F. A proč je to důležité? 1264 01:03:47,850 --> 01:03:51,570 No, když máte dva F je, že to, jak se vyjádřit 255. 1265 01:03:51,570 --> 01:03:54,350 >> Tak dlouhý příběh krátký, v svět Photoshop, 1266 01:03:54,350 --> 01:03:57,299 že grafický design software, ve světě vývoj webových aplikací, 1267 01:03:57,299 --> 01:03:59,590 kde máte spoustu barev, Samozřejmě, hrát s, 1268 01:03:59,590 --> 01:04:02,350 Často budou programátoři vyjadřovat ty v šestnáctkové soustavě, 1269 01:04:02,350 --> 01:04:05,260 jen proto, že to inklinuje být trochu jednodušší. 1270 01:04:05,260 --> 01:04:07,850 I když se na první pohled je to mnohem složitější. 1271 01:04:07,850 --> 01:04:11,590 >> Takže v každém případě, to je důležité protože Nick ve Stanfordu 1272 01:04:11,590 --> 01:04:15,100 nám dal šest kusů funkčnosti To jsi ty, pučící programátoři, 1273 01:04:15,100 --> 01:04:17,060 budou mít nyní možnost používat. 1274 01:04:17,060 --> 01:04:19,960 Zabudované do tohoto webu Stránka je šest funkcí, 1275 01:04:19,960 --> 01:04:21,820 Šest postupy, které Nick napsal. 1276 01:04:21,820 --> 01:04:26,800 Tři z nich se dostanete číslo, červená, zelená nebo modrá hodnotu. 1277 01:04:26,800 --> 01:04:28,787 Tři z nich se nastaví tuto hodnotu. 1278 01:04:28,787 --> 01:04:30,620 A tyto podtržítka jsou jen zástupné symboly, 1279 01:04:30,620 --> 01:04:32,600 takže je třeba vědět, co to je. 1280 01:04:32,600 --> 01:04:36,240 >> Takže se tyto tři funkce, První z těchto věcí 1281 01:04:36,240 --> 01:04:39,190 bude x-souřadnici, a druhý z těchto věcí 1282 01:04:39,190 --> 01:04:40,700 se bude jednat o souřadnici y. 1283 01:04:40,700 --> 01:04:44,650 Jinými slovy, které DOT, který pixel chceš dostat zeleň, 1284 01:04:44,650 --> 01:04:46,480 dostat modré, dostat červenou barvou. 1285 01:04:46,480 --> 01:04:51,440 A pak tady, to bude x, to bude Y hodnotu, 1286 01:04:51,440 --> 01:04:55,379 a to se bude celá řada. 1287 01:04:55,379 --> 01:04:57,170 Takže pojďme udělat první Řada dohromady 1288 01:04:57,170 --> 01:05:00,220 a pak Nechám to na vás pokusit se odvodit zbytek. 1289 01:05:00,220 --> 01:05:03,100 Takže podle pokynů Na této stránce potřebujeme 1290 01:05:03,100 --> 01:05:08,960 pro zvýšení červené o faktor 10, a musíme odstranit zelenou 1291 01:05:08,960 --> 01:05:09,930 a vyjměte modré. 1292 01:05:09,930 --> 01:05:12,410 Začněme s posledně zmíněných scénářů. 1293 01:05:12,410 --> 01:05:17,760 Takže pokud chci, a jdu odsadit pomocí nějaké mezery, 1294 01:05:17,760 --> 01:05:22,291 když chci nastavit červenou, zelená nebo modrá hodnotu, 1295 01:05:22,291 --> 01:05:23,540 Chystám se udělat následující. 1296 01:05:23,540 --> 01:05:31,280 >> Image, im.setBlue, a poté na základě mých instrukcí zde, 1297 01:05:31,280 --> 01:05:36,700 Jaké tři věci bych měl typ uvnitř závorek teď? 1298 01:05:36,700 --> 01:05:41,960 Musím x hodnotu, y hodnotu a jaké číslo 1299 01:05:41,960 --> 01:05:48,770 Bych měl dát sem, když chci zbavit ničeho, založený na tomto příběhu tady? 1300 01:05:48,770 --> 01:05:49,630 Prostě nula. 1301 01:05:49,630 --> 01:05:52,420 Pokud chci Nedojde k vytvoření modrého, jsem jen chystá změnit na nulu. 1302 01:05:52,420 --> 01:05:54,465 >> Nyní se pojďme jen shrnout, co to dělá. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 Mám zde na těchto špičkových Druhý a třetí řádek, 1305 01:06:01,170 --> 01:06:04,080 Celek jsem dvě smyčky, vnořené smyčky, pokud vás 1306 01:06:04,080 --> 01:06:08,360 bude, že budou mít za následek postupující zleva doprava, 1307 01:06:08,360 --> 01:06:11,590 shora dolů přes všechny x hodnoty a všechny hodnoty y. 1308 01:06:11,590 --> 01:06:15,167 Vzhledem k tomu, znovu, je obraz jen mřížka řádků a sloupců. 1309 01:06:15,167 --> 01:06:17,000 Takže tohle je dostane zbavit veškerého čistého nebe. 1310 01:06:17,000 --> 01:06:18,627 Nech mě odejít do dalšího řádku na vás. 1311 01:06:18,627 --> 01:06:20,043 Jak se mohu zbavit všechny zelené? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> Diváků: [neslyšitelné] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID Malan: Nice. 1315 01:06:26,151 --> 01:06:28,260 >> Diváků: [neslyšitelné] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID Malan: Nice. 1317 01:06:30,850 --> 01:06:36,120 A budu oddálit, a jen brát péči o které jste neudělali žádné překlepy. 1318 01:06:36,120 --> 01:06:39,390 A pokud jste pohodlné s tím, co jste udělal, 1319 01:06:39,390 --> 01:06:42,936 pokračujte a klikněte na tlačítko Spustit / Uložit a vidět to, co dostanete. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 A opět jsme udělali jen tři změny. 1322 01:06:48,690 --> 01:06:52,130 vypouští jsme, že první komentovat a nahradil ji 1323 01:06:52,130 --> 01:06:53,575 s těmito dvěma řádky kódu. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 A to je v pořádku, pokud je potřeba zasáhnout tlačítka Run / ušetřit pár krát 1326 01:06:58,450 --> 01:07:01,190 něco napravit. 1327 01:07:01,190 --> 01:07:03,610 >> A dovolte mi také přiblížit na mém kód, takže můžete přepsat. 1328 01:07:03,610 --> 01:07:04,110 Dobrý. 1329 01:07:04,110 --> 01:07:08,720 Vidím Andrew má co Zdá se, že to byla chyba. 1330 01:07:08,720 --> 01:07:11,110 Jenom dostal velký černý obdélník na jeho obrazovce. 1331 01:07:11,110 --> 01:07:13,120 Má někdo jiný má velký černý obdélník? 1332 01:07:13,120 --> 01:07:13,390 >> Diváků: Ano. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID Malan: Velký černý obdélník? 1334 01:07:14,360 --> 01:07:16,068 OK, takže pojďme přemýšlet o tom, co to znamená. 1335 01:07:16,068 --> 01:07:20,560 Řekli jsme si, že nula, nula, nula, takže není zelená, ne červená, ne modrá, 1336 01:07:20,560 --> 01:07:21,980 se chystá dát ty černá. 1337 01:07:21,980 --> 01:07:24,467 A ukázalo se, že Většina našich notebooků 1338 01:07:24,467 --> 01:07:25,800 prostě nemají dostatek věrnost. 1339 01:07:25,800 --> 01:07:27,750 Nemůžete docela tam říct, je ve skutečnosti něco, co existuje. 1340 01:07:27,750 --> 01:07:30,340 A pokud jste trochu možná opřít obrazovka dopředu a dozadu, 1341 01:07:30,340 --> 01:07:32,850 Možná to vidíte tam něco malého? 1342 01:07:32,850 --> 01:07:34,820 Možná, druh, tak nějak? 1343 01:07:34,820 --> 01:07:36,640 Není to naprosto černé. 1344 01:07:36,640 --> 01:07:38,050 >> Diváků: [neslyšitelné] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID Malan: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Tam je nějaká červená tam, ale pamatovat ze specifikací 1347 01:07:42,610 --> 01:07:44,940 problému, Nick tónovaný dolů. 1348 01:07:44,940 --> 01:07:47,860 On to desaturated poněkud ale ne úplně na nulu. 1349 01:07:47,860 --> 01:07:51,670 Takže pokud chceme zvětšit objem červené, dovolte mi navrhnout tento trik. 1350 01:07:51,670 --> 01:07:53,750 Nech mě přiblížit na mé obrazovce. 1351 01:07:53,750 --> 01:07:58,678 A nech mě jít napřed a řekni Částka se rovná im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Tento řádek kódu se mi dávat něco, co nazývá proměnné. 1354 01:08:05,790 --> 01:08:09,643 Mám libovolně, ale pravděpodobně, rozumně zavolal můj variabilní co, 1355 01:08:09,643 --> 01:08:10,143 podle všeho? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Množství. 1358 01:08:14,340 --> 01:08:14,980 Jen částky. 1359 01:08:14,980 --> 01:08:16,960 Mohl jsem to nazval cokoli chci, ale jsem 1360 01:08:16,960 --> 01:08:19,490 Pomocí této další funkce že jsem popsal dříve 1361 01:08:19,490 --> 01:08:25,359 získat množství červené barvy u x čárka y. 1362 01:08:25,359 --> 01:08:27,520 Proč jsem to udělal? 1363 01:08:27,520 --> 01:08:30,004 Co chcete dělat? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Musíte add-- 1366 01:08:33,619 --> 01:08:34,493 Diváků: [neslyšitelné] 1367 01:08:34,493 --> 01:08:36,279 DAVID Malan: Ano, možná vynásobte ji 10 let. 1368 01:08:36,279 --> 01:08:38,862 A pokud se vám to nevíte, že jsem jít dopředu a to udělat. 1369 01:08:38,862 --> 01:08:42,060 Chystám se jít dopředu a řekněme, chci množství červené 1370 01:08:42,060 --> 01:08:46,550 Chci být cokoliv je v mínusu, krát 10, 1371 01:08:46,550 --> 01:08:50,330 a hvězda, hvězdička na vašem Klávesnice je the-- nepoužívají x. 1372 01:08:50,330 --> 01:08:51,569 Použijte hvězdu. 1373 01:08:51,569 --> 01:08:55,350 Takhle se množit věci ve většině programovacích jazyků. 1374 01:08:55,350 --> 01:08:59,790 >> Takže podle Kareem intuice, uložené v této proměnné nazvané množství, 1375 01:08:59,790 --> 01:09:03,649 Je kolik červený Chci na umístění xy. 1376 01:09:03,649 --> 01:09:11,500 Jak teď mám dělat, že Pixel mít toto číslo? 1377 01:09:11,500 --> 01:09:12,859 Jste již předtím udělal. 1378 01:09:12,859 --> 01:09:17,666 Nastavíte zelená a modré na žádnou hodnotu, na nulu. 1379 01:09:17,666 --> 01:09:18,540 Diváků: [neslyšitelné] 1380 01:09:18,540 --> 01:09:20,040 DAVID Malan: Ano, Nechcete ho do 10. 1381 01:09:20,040 --> 01:09:21,460 Už jste udělal matematický zde. 1382 01:09:21,460 --> 01:09:24,779 Tak se dostáváme hodnotu červené, což je nízký počet, pravděpodobně. 1383 01:09:24,779 --> 01:09:26,180 Jsme vynásobením až o 10. 1384 01:09:26,180 --> 01:09:29,139 Co chcete dělat s Proměnná částka teď? 1385 01:09:29,139 --> 01:09:30,130 >> Diváků: [neslyšitelné] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID Malan: Nice. 1387 01:09:30,880 --> 01:09:34,616 Takže im.set-- co? 1388 01:09:34,616 --> 01:09:35,640 >> Diváků: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID Malan: setRed na umístění xy. 1390 01:09:39,760 --> 01:09:40,260 To jo. 1391 01:09:40,260 --> 01:09:41,200 A právě výše. 1392 01:09:41,200 --> 01:09:44,257 Jinými slovy, proměnná je dočasný zástupný 1393 01:09:44,257 --> 01:09:45,840 že si můžete dát cokoliv chcete v. 1394 01:09:45,840 --> 01:09:48,680 My stalo, že se dosazením Číslo v ní, v tuto chvíli. 1395 01:09:48,680 --> 01:09:51,569 Máme násobí ji 10, aby bylo větší. 1396 01:09:51,569 --> 01:09:56,480 A teď jsem náhradou této proměnné jako ten třetí argument, nebo vstup 1397 01:09:56,480 --> 01:09:57,810 pro nastavení červené. 1398 01:09:57,810 --> 01:10:00,440 A tak, že jakmile dokončit to, a berou na vědomí 1399 01:10:00,440 --> 01:10:02,330 z středníkem a v závorkách. 1400 01:10:02,330 --> 01:10:06,290 >> Pokračujte a klikněte spustit / uložit znovu, a vy 1401 01:10:06,290 --> 01:10:10,690 Měli byste vidět, magicky, co bylo ve skutečnosti tam. [? Arwa,?], Co tam je? 1402 01:10:10,690 --> 01:10:16,412 Eiffelova věž v plnohodnotné červená, ne tak docela tma. 1403 01:10:16,412 --> 01:10:17,870 to by mělo být více zřejmé nyní, ano? 1404 01:10:17,870 --> 01:10:18,840 OK. 1405 01:10:18,840 --> 01:10:20,215 A Andrew, nic víc černá skříňka? 1406 01:10:20,215 --> 01:10:21,090 Diváků: [neslyšitelné] 1407 01:10:21,090 --> 01:10:22,180 DAVID Malan: Dobře. 1408 01:10:22,180 --> 01:10:23,610 Takže budu držet to na obrazovce. 1409 01:10:23,610 --> 01:10:27,010 Chcete-li hrát s touto později, budu znovu to pro vás. 1410 01:10:27,010 --> 01:10:29,140 Ale tento kód tady udělal přesně to. 1411 01:10:29,140 --> 01:10:31,460 Proč ne my, kdo jiný. 1412 01:10:31,460 --> 01:10:33,880 Nech mě mírně posunout dolů. 1413 01:10:33,880 --> 01:10:36,760 >> Takže v tomto případě, projektoru není opravdu to spravedlnost. 1414 01:10:36,760 --> 01:10:40,486 Ale na svých obrazovkách, pravděpodobně mají velmi červené a velmi černou skříňku. 1415 01:10:40,486 --> 01:10:42,610 I to je hádanka, která ukazuje něco slavnou. 1416 01:10:42,610 --> 01:10:44,193 Snímek však byl zkreslený. 1417 01:10:44,193 --> 01:10:47,740 Skutečný obraz, tentokrát je v modrých a zelených hodnotách. 1418 01:10:47,740 --> 01:10:51,820 Nicméně, Všichni byli rozděleni o 20, takže hodnoty jsou velmi malé. 1419 01:10:51,820 --> 01:10:54,660 Červené hodnoty jsou jen náhodná čísla, šum. 1420 01:10:54,660 --> 01:10:57,190 Vrátit těchto narušení odhalit pravdivý obraz. 1421 01:10:57,190 --> 01:10:59,200 >> Takže Nick pak vám řekne, co má dělat. 1422 01:10:59,200 --> 01:11:04,290 Nastavte červené hodnoty na nulu, a pak nekazí, co to je. 1423 01:11:04,290 --> 01:11:07,110 Pak násobit modré a zelené hodnoty od 20. 1424 01:11:07,110 --> 01:11:09,820 Takže je to skoro Stejný program jako dříve, 1425 01:11:09,820 --> 01:11:11,380 ale vy jste zvrácení procesu. 1426 01:11:11,380 --> 01:11:13,780 A dám kód než se na obrazovce v případě, 1427 01:11:13,780 --> 01:11:16,650 Chcete-li se vrátit zpět k němu nebo hrát dále s tím, že jeden. 1428 01:11:16,650 --> 01:11:18,100 Nech mě přiblížit na to. 1429 01:11:18,100 --> 01:11:21,450 Ale řešit mědi image puzzle, číslo dvě. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> Diváků: [neslyšitelné] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID Malan: OK, takže to jedno, že jsem nebude dát co nejvíce rad. 1433 01:11:44,010 --> 01:11:47,220 Tak jsem would-- oh, pojďme vidět, že máte překlep zde. 1434 01:11:47,220 --> 01:11:49,621 Takže pamatujte, že to zde ve skutečnosti potřebuje jít tam. 1435 01:11:49,621 --> 01:11:52,870 Takže to, co bych navrhoval, chcete-li zaměřit se na tento jeden, je tu odpověď. 1436 01:11:52,870 --> 01:11:57,060 Chcete-li přepsat to, že by měl dostat první jeden pracovní. 1437 01:11:57,060 --> 01:11:59,910 A pak můžete použít jako inspirací pro druhé. 1438 01:11:59,910 --> 01:12:02,230 Pěkný. 1439 01:12:02,230 --> 01:12:02,730 Dobrý. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> A pro zvídavé, To je jednoduchý příklad 1442 01:12:08,180 --> 01:12:11,080 z vědy nebo umění volal steganografie, 1443 01:12:11,080 --> 01:12:14,100 umění skrývání informací v obrazech. 1444 01:12:14,100 --> 01:12:16,890 Typicky může být obrazy vodoznakem velmi bezostyšně 1445 01:12:16,890 --> 01:12:19,500 s logem ve spodní části roh, ale je jasné, vy 1446 01:12:19,500 --> 01:12:22,070 může být mnohem sofistikovanější o něm a vlastně 1447 01:12:22,070 --> 01:12:25,050 skrýt další obrazy v obrazech nějak s touto technikou. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Trvat dalších 30 sekund, a pak budeme alespoň oznámit, co byste měli vidět. 1450 01:13:05,770 --> 01:13:08,330 A Nechám třetí onu ve formě at-home cvičení, 1451 01:13:08,330 --> 01:13:11,353 pokud byste chtěli spíš jako zpochybnit tento víkend. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 A myslím, že by mohl Andrew ji nejprve dostat. 1454 01:13:20,390 --> 01:13:22,645 Jaký je druhý obraz, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> Publikum: Socha Svobody. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID Malan: Socha Svobody Bude odpověď tentokrát. 1457 01:13:28,500 --> 01:13:31,140 Takže znovu, jen několik jednoduchých příklady, jehož cílem 1458 01:13:31,140 --> 01:13:35,040 je poskytnout vám představu, jak jsme přeložen obrazovou Scratch 1459 01:13:35,040 --> 01:13:40,410 bloky na více nepříjemné a další složitý kód, ale všechny myšlenky 1460 01:13:40,410 --> 01:13:42,980 jsou stále přesně stejné, i když se zavedením 1461 01:13:42,980 --> 01:13:48,380 Nyní pojmu proměnné, přičemž schopné dočasně ukládat něco. 1462 01:13:48,380 --> 01:13:51,750 >> Udělejme ještě jeden hands-on, jen proto, aby se pospojovat 1463 01:13:51,750 --> 01:13:53,880 na něco trochu více reálného světa. 1464 01:13:53,880 --> 01:13:56,610 Až budete připraveni, pokud si mohl jděte na tuto adresu URL na obrazovce. 1465 01:13:56,610 --> 01:14:00,610 To je také svou kopii skluzavky, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 Pojďme něco dělat real, tak říkajíc, na webu 1467 01:14:03,660 --> 01:14:07,600 s použitím Google Maps API, nebo aplikační programovací rozhraní, 1468 01:14:07,600 --> 01:14:08,940 a to následujícím způsobem. 1469 01:14:08,940 --> 01:14:12,341 >> Google, stejně jako mnoho firem, poskytuje spoustu volného funkčnosti 1470 01:14:12,341 --> 01:14:14,840 které můžete použít k vybudování svého Vlastní zajímavé aplikace. 1471 01:14:14,840 --> 01:14:18,890 Ve skutečnosti, pokud jste někdy používali Uber, aby si taxi nebo auto, 1472 01:14:18,890 --> 01:14:21,640 pravděpodobně víte, že má Uber mapy a to ukazuje vozy na něm. 1473 01:14:21,640 --> 01:14:24,870 To znamená, že jak nejlépe mohu říci, Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 Oni jsou vlastně pomocí map Google, ale Uber není mapování společnost, 1475 01:14:28,884 --> 01:14:31,050 ani by to být Zvláště zajímavý problém 1476 01:14:31,050 --> 01:14:33,510 řešit na vrcholu své Problém autoservisů. 1477 01:14:33,510 --> 01:14:35,510 A tak stojíme, opět na ramenou 1478 01:14:35,510 --> 01:14:37,520 druhých, Google v tomto případě. 1479 01:14:37,520 --> 01:14:42,850 Takže oni používají Google Maps, ale jejich vlastní autoopravnách a další podobné rysy. 1480 01:14:42,850 --> 01:14:47,770 >> Takže budeme využívat z toho dělat následující. 1481 01:14:47,770 --> 01:14:50,230 A jestli jsem zašel příliš rychle, stačí zavolat si mě za chvíli. 1482 01:14:50,230 --> 01:14:53,500 Šťastný shrnout některé z obrazu věcí. 1483 01:14:53,500 --> 01:14:56,290 Měl by ses vidět na stránce, jako je tato. 1484 01:14:56,290 --> 01:14:58,230 Tak hezký Google, a jsou to jedny z nejlepších 1485 01:14:58,230 --> 01:15:01,364 poskytovat nejen API, ale bez API, které vám 1486 01:15:01,364 --> 01:15:02,780 Můžete hrát s nebo komerčnímu využití. 1487 01:15:02,780 --> 01:15:06,450 Nemají spustit, pokud vaše použití vás nabíjí je vysoká, ale já šel dopředu s předstihem 1488 01:15:06,450 --> 01:15:10,490 a podepsal nás se k účtu zdarma že doufejme, 10 počítačů 1489 01:15:10,490 --> 01:15:12,480 nás nebudou diskvalifikovat pro najednou. 1490 01:15:12,480 --> 01:15:14,320 Tak doufejme, že tento Demonstrace bude fungovat. 1491 01:15:14,320 --> 01:15:18,840 >> A všimněte si, že mají API pro Android, iOS, web a webové služby, 1492 01:15:18,840 --> 01:15:19,620 co to je. 1493 01:15:19,620 --> 01:15:20,700 Zaměřme se na webu. 1494 01:15:20,700 --> 01:15:26,560 Takže klikněte na růžový box, web, a to vás dovede snad i na stránku 1495 01:15:26,560 --> 01:15:27,630 zde. 1496 01:15:27,630 --> 01:15:29,335 A že mám spoustu API. 1497 01:15:29,335 --> 01:15:31,210 A to může být trochu ohromující na první, 1498 01:15:31,210 --> 01:15:33,000 ale nám to řídit tím, co chceme. 1499 01:15:33,000 --> 01:15:38,500 >> V levém horním rohu je Google Maps JavaScript API JavaScript API. 1500 01:15:38,500 --> 01:15:40,380 Proto neváhejte a klikněte na tento jeden. 1501 01:15:40,380 --> 01:15:49,360 A to vás povede nyní na Následující stránky, ukázky a ukázkový kód. 1502 01:15:49,360 --> 01:15:51,190 Nech mě tady oddálit. 1503 01:15:51,190 --> 01:15:56,300 A dovolte mi, abych nás to-- posunout dolů k místu, kde se říká, že rychlé počáteční kroky. 1504 01:15:56,300 --> 01:15:57,970 Vaše obrazovka by měla vypadat moje. 1505 01:15:57,970 --> 01:16:01,130 >> A je tu dva kroky, získat klíč a začít rozvíjet. 1506 01:16:01,130 --> 01:16:04,190 Už jsem udělal krok, jeden pro us, dostat takzvaný klíč. 1507 01:16:04,190 --> 01:16:05,320 A je to společný nápad. 1508 01:16:05,320 --> 01:16:09,210 Klíč API je zpravidla jen velké náhodné číslo nebo řetězec 1509 01:16:09,210 --> 01:16:11,130 že jste měl vložit do svého kódu, 1510 01:16:11,130 --> 01:16:15,280 tak, že Google ví, kdo jste, když používáte své služby, jejich API. 1511 01:16:15,280 --> 01:16:17,370 Neznamená, že jsme nabíjí cokoliv. 1512 01:16:17,370 --> 01:16:21,030 A teď, klikněte namísto jeden, klepněte na tlačítko start vyvíjí. 1513 01:16:21,030 --> 01:16:25,990 Pokud byste mohli jen zamávat mi přes ne-li si jistý, kde jsme. 1514 01:16:25,990 --> 01:16:28,040 >> Takže budeme jen poškrábat povrchu, ale co zde 1515 01:16:28,040 --> 01:16:31,000 Myslel jsem, že by bylo přesvědčivé je vlastně mít všechny z nás, 1516 01:16:31,000 --> 01:16:34,240 použitím Cloud9 v jednom okně a Tento výukový program v jiném okně, 1517 01:16:34,240 --> 01:16:37,120 umožňuje skutečně dostat naše vlastní Aplikace nahoru a běh 1518 01:16:37,120 --> 01:16:40,920 že vloží vlastní Google map v naší vlastní webové stránky, 1519 01:16:40,920 --> 01:16:43,010 a pak přidá jednu nebo dvě funkce. 1520 01:16:43,010 --> 01:16:45,520 Ale my si jen poškrábat Povrch, co můžeme udělat. 1521 01:16:45,520 --> 01:16:47,020 >> Takže jen rychlá kontrola zdravý rozum. 1522 01:16:47,020 --> 01:16:49,740 Jsou všichni na této stránce, Google Maps API JavaScript? 1523 01:16:49,740 --> 01:16:50,872 Měl říct, jak začít. 1524 01:16:50,872 --> 01:16:53,330 Nebudeme projít celá věc jakýmikoli prostředky. 1525 01:16:53,330 --> 01:16:58,090 OK, v jiném kartě, pokud ne mají ji otevřenou, jdou do Cloud9 1526 01:16:58,090 --> 01:17:03,500 a dostat se do právě Novou kartu nakonec. 1527 01:17:03,500 --> 01:17:11,070 Takže znovu, c9.io ze včerejška, c9.io, a jen vytvořit nový soubor. 1528 01:17:11,070 --> 01:17:13,500 A jít dopředu a volání to, co byste chtěli. 1529 01:17:13,500 --> 01:17:16,495 Zavolal jsem dolu map.html. 1530 01:17:16,495 --> 01:17:17,870 Nazvěme to něco končící .html. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 A vy byste měli být zhruba kde jsem v tomto procesu 1533 01:17:26,580 --> 01:17:31,470 jen s blikajícím řádku v prázdný Karta s názvem něco jako map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 Nebo soubor, nový soubor tentokrát. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> A nyní, více než na API Google Maps JavaScript, 1538 01:17:48,000 --> 01:17:50,010 budeme přeskočit čtení přes všechny tohoto textu. 1539 01:17:50,010 --> 01:17:53,760 Ale všimněte si, že je hello world opravdu všude, to vidíte teď. 1540 01:17:53,760 --> 01:17:58,020 Hello world má tento velký barevný Příkladem spoustu HTML. 1541 01:17:58,020 --> 01:18:03,590 Pokračuj a zkopírovat a vložit pouze to, že HTML, takže od typu doc ​​v horní části 1542 01:18:03,590 --> 01:18:08,810 celou cestu až do těsného HTML tagu, jdi Přepiště všechny to-- znovu, 1543 01:18:08,810 --> 01:18:14,430 že je pod hello world example-- a vložit, že do své kartě Cloud9, 1544 01:18:14,430 --> 01:18:17,996 takže teď obrazovka by měl vypadat zhruba jako já. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> A můžete si ji uložit, ale nenačtou to ještě ne. 1547 01:18:24,520 --> 01:18:26,290 Pojďme se podívat na první kód a uvidíme, jestli budeme 1548 01:18:26,290 --> 01:18:29,110 nelze odvodit, nebo se dozvědět z toho, co je Google 1549 01:18:29,110 --> 01:18:30,860 bylo nás slepě kopírovat a vložit. 1550 01:18:30,860 --> 01:18:33,334 Oni prostě chtějí pomoci, doslova, dostat nás začal, 1551 01:18:33,334 --> 01:18:35,500 ale tam to není moc Složitost ve skutečnosti tam. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Nějaké otázky ještě ne? 1554 01:18:42,210 --> 01:18:43,790 Jsme v bezpečí postupovat vpřed? 1555 01:18:43,790 --> 01:18:44,330 OK. 1556 01:18:44,330 --> 01:18:46,800 >> Tak rychle, ať to prostě udělat několik rychlých rychlé kontroly. 1557 01:18:46,800 --> 01:18:48,800 Linka jedno z toho, co jsem vidět, a doufejme, že vám 1558 01:18:48,800 --> 01:18:51,710 vidět, co to znamená, DOCTYPE html? 1559 01:18:51,710 --> 01:18:52,385 Kareem, připomínají? 1560 01:18:52,385 --> 01:18:53,260 Diváků: [neslyšitelné] 1561 01:18:53,260 --> 01:18:53,968 DAVID Malan: Ano. 1562 01:18:53,968 --> 01:18:54,870 Zde přichází HTML 5. 1563 01:18:54,870 --> 01:18:57,950 Mezitím, lemují dva na Obrazovka zde znamená hej prohlížeč, 1564 01:18:57,950 --> 01:18:59,482 Zde přichází skutečná HTML. 1565 01:18:59,482 --> 01:19:01,440 Řádek tři je hej prohlížeč, tady je hlava. 1566 01:19:01,440 --> 01:19:04,260 Linka čtyři je, samozřejmě, hej prohlížeče, přichází titul. 1567 01:19:04,260 --> 01:19:07,780 Co linka pět dělat? 1568 01:19:07,780 --> 01:19:09,930 Ve skutečnosti to není dělat nic pro nás. 1569 01:19:09,930 --> 01:19:13,340 V tomto případě je to jen změní stránku ve výchozím nastavení. Linka šest, 1570 01:19:13,340 --> 01:19:16,140 jsme se mluvit, ale to Určuje kódování znaků. 1571 01:19:16,140 --> 01:19:19,181 Je tu různé způsoby, jak zakódovat soubory, zejména pro výuku cizích jazyků. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 jen inklinuje být výchozí. 1573 01:19:21,100 --> 01:19:26,580 >> Takže teď uvidíme v souladu sedm až 16, některé CSS. 1574 01:19:26,580 --> 01:19:29,260 A i když jsme se neviděli všechny tyto věci dříve, 1575 01:19:29,260 --> 01:19:30,810 můžeme odvodit druh. 1576 01:19:30,810 --> 01:19:37,075 Takže linku osm prostředky, hej prohlížeč, platí všechny tyto operace dvou značek, 1577 01:19:37,075 --> 01:19:37,575 podle všeho? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 HTML a tělo textu. 1580 01:19:41,701 --> 01:19:43,200 Takže čárka je nová věc tam. 1581 01:19:43,200 --> 01:19:46,140 A to je jen způsob, zadávání více značek najednou. 1582 01:19:46,140 --> 01:19:47,640 >> Pak jsme dostali složené závorky. 1583 01:19:47,640 --> 01:19:51,170 Takže zdá se, že to říká prohlížeči, aby výšku strana 100%. 1584 01:19:51,170 --> 01:19:54,170 Takže i když je tam velmi málo obsah, aby celou stránku, 1585 01:19:54,170 --> 01:19:55,530 aby se věc vyplnil stránku. 1586 01:19:55,530 --> 01:19:57,524 Make mapu nakonec vyplnil stránku. 1587 01:19:57,524 --> 01:19:58,690 Margin, co to znamená? 1588 01:19:58,690 --> 01:20:01,559 To je obvykle jako libovolná bílý prostor kolem okrajů 1589 01:20:01,559 --> 01:20:04,350 že některé prohlížeče designér jen rozhodl, by měla být, proto, že 1590 01:20:04,350 --> 01:20:05,540 druh dělá věci vypadají čistší. 1591 01:20:05,540 --> 01:20:06,498 Ale my nechceme. 1592 01:20:06,498 --> 01:20:08,710 Chceme, aby se mapa bude celou cestu k okrajům. 1593 01:20:08,710 --> 01:20:10,930 Polstrování, svým duchem podobat marže. 1594 01:20:10,930 --> 01:20:14,980 Okraje znamená mimo, výplň prostředky dovnitř, ale je to stejný druh obchodu. 1595 01:20:14,980 --> 01:20:17,520 Je to trochu vyrovnávací paměti mezi vámi a na okrajích. 1596 01:20:17,520 --> 01:20:21,170 >> A pak linka 13 je dobrá šance pro rychlý přehled. 1597 01:20:21,170 --> 01:20:26,440 Co dělá ostrý označení map znamenat, nebo hashtag mapa znamená? 1598 01:20:26,440 --> 01:20:29,650 Co to odkazují na v zásadě? 1599 01:20:29,650 --> 01:20:31,485 >> Diváků: [neslyšitelné] 1600 01:20:31,485 --> 01:20:32,360 DAVID Malan: Přesně tak. 1601 01:20:32,360 --> 01:20:36,900 Tato vlastnost, tato vlastnost CSS se týká jen jednu věc, značka HTML 1602 01:20:36,900 --> 01:20:41,180 který má ID citát, konec citátu "mapu". 1603 01:20:41,180 --> 01:20:44,460 A teď pojďme rychle dopředu, svitek až na konec souboru, který 1604 01:20:44,460 --> 01:20:49,860 Není příliš daleko, a upozornění na lince 19, pokud jste ji vložit přesně tak, jako já, 1605 01:20:49,860 --> 01:20:53,405 linka 19 má jen div, což je divize, kde jsem včera 1606 01:20:53,405 --> 01:20:54,820 volal obdélníkový region. 1607 01:20:54,820 --> 01:20:55,820 Je to nemá nic v něm. 1608 01:20:55,820 --> 01:20:57,550 Je to otevřený tag, v blízkosti tag. 1609 01:20:57,550 --> 01:20:59,490 Ale to mít jedinečný identifikátor. 1610 01:20:59,490 --> 01:21:02,090 >> Takže to, co se zdá být dělo tady je Google 1611 01:21:02,090 --> 01:21:05,880 se chystá naši webovou stránku mít kompletní výšku 100%, 1612 01:21:05,880 --> 01:21:09,680 a ne výplň, žádné okraje, protože co budeme dát dovnitř 1613 01:21:09,680 --> 01:21:13,647 tento div, jehož jedinečný identifikátor je map, je skutečná vloženou mapu. 1614 01:21:13,647 --> 01:21:15,480 A chceme, aby vyplnit stránku, a to nejen 1615 01:21:15,480 --> 01:21:17,560 být nějaký malý obdélník uprostřed. 1616 01:21:17,560 --> 01:21:24,220 Takže linka 14 obdobně zdůrazňuje se Pro sebe by měl mít výšku 100%. 1617 01:21:24,220 --> 01:21:29,220 >> Takže teď si všimnout mezi řádky 20 a 28, to je JavaScript kód. 1618 01:21:29,220 --> 01:21:33,020 A to znamená, že i když je to syntakticky trochu divně, 1619 01:21:33,020 --> 01:21:34,730 že to není tak moc tady děje. 1620 01:21:34,730 --> 01:21:39,310 V řádku 21, to prohlašuje něco, co nazývá proměnné. 1621 01:21:39,310 --> 01:21:42,030 Místo toho, volat to částek, jako jsme to udělali předtím, 1622 01:21:42,030 --> 01:21:44,500 budeme přesněji říká var, což znamená jen proměnné. 1623 01:21:44,500 --> 01:21:46,520 Mohli bychom použili, že v Nickova kód, ale neudělal to, a tak jsem 1624 01:21:46,520 --> 01:21:48,190 se neobtěžoval dělat to jeden. 1625 01:21:48,190 --> 01:21:50,240 Je to proměnná s názvem map, a pak je tu 1626 01:21:50,240 --> 01:21:53,360 funkce, která je prý volal initMap. 1627 01:21:53,360 --> 01:21:55,780 >> Takže to je jako naše vlastní zvyklosti skládačky do nuly. 1628 01:21:55,780 --> 01:21:58,830 Vytvořili jsme kus Funkčnost nazýván initMap, 1629 01:21:58,830 --> 01:22:00,980 a můžete odvodit druh co se tam děje. 1630 01:22:00,980 --> 01:22:02,930 Na levé straně, máme proměnnou, 1631 01:22:02,930 --> 01:22:06,000 takže jdeme dát následující věc uvnitř této proměnné, 1632 01:22:06,000 --> 01:22:07,362 zprava doleva. 1633 01:22:07,362 --> 01:22:11,940 Pravá strana říká, hej browser, dej mi novou mapu Google. 1634 01:22:11,940 --> 01:22:16,490 A google.maps.map je jen funky způsob, specifikující, že tuto funkci 1635 01:22:16,490 --> 01:22:19,790 Patří do Map Google. 1636 01:22:19,790 --> 01:22:23,010 >> Po závorkách, jsme viděli předtím, hej prohlížeče, získáte 1637 01:22:23,010 --> 01:22:29,210 me prvky v stránky, tag na stránce, jejíž jedinečný identifikátor je-- 1638 01:22:29,210 --> 01:22:30,710 >> Diváků: [neslyšitelné] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID Malan: --map. 1640 01:22:31,790 --> 01:22:35,770 A co se děje, dobře, Tato linka spolu, linka 23, 1641 01:22:35,770 --> 01:22:38,630 je v podstatě říká, hej prohlížeč, jdi si mě 1642 01:22:38,630 --> 01:22:42,800 které se vlévají div na stránce jehož jedinečný identifikátor je mapa, 1643 01:22:42,800 --> 01:22:45,600 protože chci vložit do to-- injekci do ní, 1644 01:22:45,600 --> 01:22:49,520 pokud jste will-- spoustu obsahu co se stane, že přichází z webu, 1645 01:22:49,520 --> 01:22:50,427 následně. 1646 01:22:50,427 --> 01:22:52,010 A Google dělá všechno pro nás. 1647 01:22:52,010 --> 01:22:55,350 >> Takže znovu, na samém konci dne, máme tento příklad abstrakce. 1648 01:22:55,350 --> 01:22:58,610 Nemám ponětí, co je mapa nebo jak implementovat mapy API. 1649 01:22:58,610 --> 01:22:59,460 Nepotřebujeme se. 1650 01:22:59,460 --> 01:23:02,740 Jen musíme říct mapy kam umístit sebe, a odejít 1651 01:23:02,740 --> 01:23:04,880 jsou základem implementace Podrobnosti Googlu. 1652 01:23:04,880 --> 01:23:08,190 Nyní je zde zjevně dva údaje 1653 01:23:08,190 --> 01:23:11,940 že tento příklad je poskytující API Google. 1654 01:23:11,940 --> 01:23:16,450 Zřejmě středu mapy, a úroveň zvětšení, tak říkajíc. 1655 01:23:16,450 --> 01:23:21,390 >> A někdo rozpoznat tyto souřadnice, zeměpisné šířky a délky? 1656 01:23:21,390 --> 01:23:24,364 Pravděpodobně ne, ale můžeme se vrátit na tutoriálu, doslova vidět. 1657 01:23:24,364 --> 01:23:25,780 Ale my ho uvidíme za chvíli. 1658 01:23:25,780 --> 01:23:29,880 Úroveň zoomu je hodnota mezi, já ne Víte, jeden v 13. nebo něco takového. 1659 01:23:29,880 --> 01:23:32,880 Jen to má co do činění s tím, jak daleko jste zvětšovat a zmenšovat, a to je vše. 1660 01:23:32,880 --> 01:23:35,690 A teď na samém konci stránky, vývěsní linka 29-- 1661 01:23:35,690 --> 01:23:39,960 je to trochu ošklivé, protože to wraps-- tento řádek kódu 1662 01:23:39,960 --> 01:23:44,570 je to, co stáhne do Prohlížeč skutečné API Google. 1663 01:23:44,570 --> 01:23:47,500 Veškerý kód, který je Google inženýři psali, které implementují 1664 01:23:47,500 --> 01:23:50,000 Celý tento rys nezabudovatelného map. 1665 01:23:50,000 --> 01:23:51,470 >> Nyní se pojďme nic nezmění. 1666 01:23:51,470 --> 01:23:54,761 Pokud jste po dobu, jděte do toho a jen uložit tento soubor, pokud jste opravdu mít 1667 01:23:54,761 --> 01:23:55,760 co mám. 1668 01:23:55,760 --> 01:23:57,370 Přejděte na jeho adresu URL. 1669 01:23:57,370 --> 01:23:59,820 Můžete kliknout na tlačítko Spustit up vrcholu a že řekne 1670 01:23:59,820 --> 01:24:03,050 jste URL webového serveru znovu. 1671 01:24:03,050 --> 01:24:06,010 A to vás povede k nové kartě. 1672 01:24:06,010 --> 01:24:11,910 Pokud klepnete na tlačítko Otevřít pro map.html, a šance jsou jste 1673 01:24:11,910 --> 01:24:15,520 dostane upozornění, chybové hlášení, ano? 1674 01:24:15,520 --> 01:24:18,570 Chybové hlášení, chybové hlášení? 1675 01:24:18,570 --> 01:24:21,170 >> Takže bohužel, chyba Zpráva není to poučné 1676 01:24:21,170 --> 01:24:23,890 pokud jste skutečně otevřít konzola, že karta zvláštní my 1677 01:24:23,890 --> 01:24:27,110 uchovávány otevření včera trochu dřív. 1678 01:24:27,110 --> 01:24:29,445 Ale já narazil dřív, takže už jsem 1679 01:24:29,445 --> 01:24:30,820 přišel na to, co je řešení. 1680 01:24:30,820 --> 01:24:34,440 V dnešních skluzavky, nebo spíše v Cloud9, vývěsní 1681 01:24:34,440 --> 01:24:36,430 že jsme neměli dělat něco záměrně. 1682 01:24:36,430 --> 01:24:40,690 Všimněte si, že tento skript značka v linka 29, pokud budete číst přes to, 1683 01:24:40,690 --> 01:24:44,440 Je to jako maps.googleapis.com/~~pobj něco, něco, něco, 1684 01:24:44,440 --> 01:24:46,430 Všimněte si někoho, jeden z vývojářů, 1685 01:24:46,430 --> 01:24:50,040 napsal v celém hlavním městě dopisy, váš klíč API. 1686 01:24:50,040 --> 01:24:51,700 >> Musíme vložit něco tam. 1687 01:24:51,700 --> 01:24:53,450 A to byl krok Udělal jsem pro nás předtím, 1688 01:24:53,450 --> 01:24:57,190 a opět by mohly blacklist us-li najednou 12 nebo více z nás 1689 01:24:57,190 --> 01:24:59,470 začít používat stejný klíč, ale uvidíme, co se stane. 1690 01:24:59,470 --> 01:25:03,030 Takže pokud jdete do dnešní skluzavky, jeden snímek později, je tu 1691 01:25:03,030 --> 01:25:07,070 Tento velmi funky-vypadat jako textový řetězec. 1692 01:25:07,070 --> 01:25:12,230 Jít dopředu a jen zkopírovat to a vložte ho tam, kde se říká, že váš API klíč. 1693 01:25:12,230 --> 01:25:15,120 To je ten, co jsem se přihlásili k. 1694 01:25:15,120 --> 01:25:17,700 >> A rozhodně nezkoušejte psát to ručně, 1695 01:25:17,700 --> 01:25:21,210 protože to je plný s překlepy, potenciálně. 1696 01:25:21,210 --> 01:25:23,260 Takže stačí zkopírovat a vložit to. 1697 01:25:23,260 --> 01:25:26,090 A to bude dělat linku déle, ale teď, jen aby bylo jasno, 1698 01:25:26,090 --> 01:25:29,540 to by mělo vypadat trochu víc jako je tento, kde klíč se rovná ne 1699 01:25:29,540 --> 01:25:32,200 kapitalizované řvát na vás. 1700 01:25:32,200 --> 01:25:34,810 Uložte stránku, vraťte na kartu druhou, znovu, 1701 01:25:34,810 --> 01:25:36,770 a doufat, že vidí mapu, kde? 1702 01:25:36,770 --> 01:25:37,790 >> Diváků: Australia. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID Malan: Austrálie. 1704 01:25:38,748 --> 01:25:41,200 Takže zřejmě to jsou ty GPS souřadnic z Austrálie. 1705 01:25:41,200 --> 01:25:44,491 A dovolte mi chodit na chvíli a pomáhají každému, kdo není úplně tam, 1706 01:25:44,491 --> 01:25:47,729 ale dovolte mi navrhnout, přes Google, najít GPS souřadnic ze své vlastní rodné město 1707 01:25:47,729 --> 01:25:48,770 nebo vlastní domovské země. 1708 01:25:48,770 --> 01:25:51,436 A pravděpodobně Google může proměnit toto up, nebo Wikipedia vám říci. 1709 01:25:51,436 --> 01:25:54,410 Ale vybrat dvě různé hodnoty pro zeměpisné šířky a délky, 1710 01:25:54,410 --> 01:25:57,530 přejít zpět a vložit, a pak znovu načíst stránku po uložení 1711 01:25:57,530 --> 01:26:00,718 a uvidíme, jestli můžete mít map pro vlastní rodném městě. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> A když budete hotovi s že následná-up challenge-- 1714 01:26:08,042 --> 01:26:11,250 a já ti dám trochu méně směr, úmyslně, takže vás záměrně 1715 01:26:11,250 --> 01:26:13,791 muset bojovat za pár minut s dokumentací, 1716 01:26:13,791 --> 01:26:18,740 změnit mapu být ne to cartoonish default, ale satelitní mapa. 1717 01:26:18,740 --> 01:26:24,600 Takže jste vlastně vidět satelit snímků namísto pěkných barev. 1718 01:26:24,600 --> 01:26:29,710 >> A náznak dám ti Je-li změnit typ mapy. 1719 01:26:29,710 --> 01:26:33,084 Vrať se, že dostat začal stránky pro inspiraci. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Jak jste si možná sbírala, pokud hledáte, 1722 01:26:42,390 --> 01:26:44,250 je jich tolik více co můžete udělat. 1723 01:26:44,250 --> 01:26:46,380 Někteří z vás již byl změněn typ mapy. 1724 01:26:46,380 --> 01:26:49,890 Ale můžete do-- například, dovolte mi, abych přejít na něco, co jsme udělali pro kurz 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 našich undergrads to udělal. 1727 01:26:53,470 --> 01:26:58,890 My střed mapy přes Harvard Yard a překrýt všechny z těchto jmen stavebních, 1728 01:26:58,890 --> 01:27:01,070 a měli jsme ho přidat toto. 1729 01:27:01,070 --> 01:27:04,270 Takže když chci hledat, Například, Matthews Hall, 1730 01:27:04,270 --> 01:27:05,730 Máme trochu drop-down menu. 1731 01:27:05,730 --> 01:27:09,080 A myslím, že je pomocí Bootstrap, na Knihovna jsme diskutovali dříve pro toto. 1732 01:27:09,080 --> 01:27:12,190 A pokud kliknete na Matthews Hall, okamžitě 1733 01:27:12,190 --> 01:27:14,790 skoky mapy do určité umístění, a to ukazuje 1734 01:27:14,790 --> 01:27:16,440 Jste obraz v této malé pop-up. 1735 01:27:16,440 --> 01:27:18,670 >> Ale i tento malý pop-up, jsme neměli realizovat. 1736 01:27:18,670 --> 01:27:27,521 Kdybych se posunout dolů na našich získání začal stránku a podívejte se na informačních oken, 1737 01:27:27,521 --> 01:27:29,770 uvidíte, že některé z Funkčnost vy sám 1738 01:27:29,770 --> 01:27:31,561 může přidat, i když s trochu víc složitost, 1739 01:27:31,561 --> 01:27:33,970 je něco, co nazývá informační okno. 1740 01:27:33,970 --> 01:27:37,190 A když jsem na tlačítko příklad tady, a to je to, co je zábavné, 1741 01:27:37,190 --> 01:27:40,530 můžete dělat věci, jako je tento, Kliknutím na značku a pak voila, 1742 01:27:40,530 --> 01:27:42,400 Informace o vyskočí. 1743 01:27:42,400 --> 01:27:45,874 >> Takže jsme se docela zavedeny dost vlastnosti JavaScriptu 1744 01:27:45,874 --> 01:27:49,040 malovat obraz přesně tak, jak vám mohl zapojit všechny tyto věci dohromady, 1745 01:27:49,040 --> 01:27:50,706 ale my jsme trochu pod povrch. 1746 01:27:50,706 --> 01:27:53,140 Ve skutečnosti to, co jsem právě udělal, když Jsem kliknul na tuto značku, 1747 01:27:53,140 --> 01:27:55,819 byl spouštěcí událost, takzvaný na událost click. 1748 01:27:55,819 --> 01:27:57,610 A my jsme vlastně viděli Událost dneska, 1749 01:27:57,610 --> 01:28:00,670 tzv předložit událost, Když jsme byli prevenci 1750 01:28:00,670 --> 01:28:02,490 Uživatel pátrání po koček. 1751 01:28:02,490 --> 01:28:06,560 Takže jsme se trochu zvedl a choosed ze všech těchto různých funkcí, 1752 01:28:06,560 --> 01:28:08,990 aby vám pocit, doufejme, z toho, co můžete vlastně 1753 01:28:08,990 --> 01:28:11,000 co dělat s trochu více komfort při programování, 1754 01:28:11,000 --> 01:28:12,587 a zcela volné prostředky. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Nějaké otázky? 1757 01:28:18,770 --> 01:28:19,790 Ne? 1758 01:28:19,790 --> 01:28:22,542 Toto je vaše poslední šance, že alespoň dnes, v pátek, 1759 01:28:22,542 --> 01:28:25,000 dostat něco z vašeho hrudníku takže odsud 1760 01:28:25,000 --> 01:28:27,067 pocit sebevědomí a pohodlné. 1761 01:28:27,067 --> 01:28:27,566 Ano. 1762 01:28:27,566 --> 01:28:29,740 >> Diváků: Proč ne přidáte ještě jednu věc? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID Malan: Oh můj bože. 1764 01:28:32,720 --> 01:28:35,260 Musím si odpočinout tento víkend, myslím. 1765 01:28:35,260 --> 01:28:36,180 Další otázky? 1766 01:28:36,180 --> 01:28:37,055 >> Diváků: [neslyšitelné] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID Malan: Vy can-- v Internet Explorer, odpočinek v míru, 1769 01:28:46,810 --> 01:28:49,310 můžete použít, aby bylo možné dát VB skript, virtuální základní scénář, 1770 01:28:49,310 --> 01:28:50,643 ale že ve skutečnosti nikdy pochopil. 1771 01:28:50,643 --> 01:28:52,490 Tak krátká odpověď je prostě JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Další otázky? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 Dobře, dobře, nech mě to udělat. 1776 01:28:59,760 --> 01:29:02,070 Nech mě chytit naše kolegy venku. 1777 01:29:02,070 --> 01:29:04,500 Mají nějaké hodnocení formy, které chtějí každého 1778 01:29:04,500 --> 01:29:06,310 strávit pár minut vyplňování. 1779 01:29:06,310 --> 01:29:08,775 Chtějí sbírat tuto formu a jakýkoli prominutí, které jste venku. 1780 01:29:08,775 --> 01:29:10,240 Budou mít také certifikáty. 1781 01:29:10,240 --> 01:29:12,380 Hádám, že to ještě nějaké občerstvení venku. 1782 01:29:12,380 --> 01:29:14,360 Nechť projdu tyto ven, a pokud vás máte jakékoliv dotazy do té doby, 1783 01:29:14,360 --> 01:29:17,120 Budu chodit více individuálně a můžeme začít. 1784 01:29:17,120 --> 01:29:17,879 Ano, samozřejmě. 1785 01:29:17,879 --> 01:29:18,754 Diváků: [neslyšitelné] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID Malan: To je Obvykle platí v těchto dnech. 1788 01:29:28,570 --> 01:29:30,730 Jistě s webu software, budete naklánět 1789 01:29:30,730 --> 01:29:32,901 na ostatní, ať už jste esteticky použití věci 1790 01:29:32,901 --> 01:29:35,400 jako bootstrap, takže se nemusíte muset provádět nízkou úroveň 1791 01:29:35,400 --> 01:29:37,169 podrobnosti o nabídkách a Tlačítka a tak. 1792 01:29:37,169 --> 01:29:39,210 Ty opírající se o někoho jako je Google, aby vás 1793 01:29:39,210 --> 01:29:42,050 Nemusíte vybudovat Uber obchodní a mapování podnikání, 1794 01:29:42,050 --> 01:29:44,850 a libovolný počet podobnou aplikacích. 1795 01:29:44,850 --> 01:29:46,350 >> Ve skutečnosti, přihlášení jsou populární také. 1796 01:29:46,350 --> 01:29:48,500 Pokud jste použili Spotify nebo libovolný počet webových stránek, 1797 01:29:48,500 --> 01:29:51,210 budete se přihlásit do některé webové stránky pomocí Facebooku. 1798 01:29:51,210 --> 01:29:53,350 co takže je tu pěkný, jsou API pro přihlášení 1799 01:29:53,350 --> 01:29:56,570 v dnešní době, takže nemáte mít svůj vlastní uživatelé tabulku 1800 01:29:56,570 --> 01:29:59,440 a všechny své vlastní databáze nutně ve stejném rozsahu. 1801 01:29:59,440 --> 01:30:01,795 Můžete nechat Facebook dělat vše této složitosti pro vás. 1802 01:30:01,795 --> 01:30:03,920 Takže je to vzrušující doba, čestně, při programování, 1803 01:30:03,920 --> 01:30:07,200 protože existuje tolik třetí stranou služby, které můžete stavět na vrcholu. 1804 01:30:07,200 --> 01:30:10,890 >> A opět, cena, kterou zaplatíte, je ať už finanční nebo prostoje. 1805 01:30:10,890 --> 01:30:13,750 Pokud Google jde dolů, tak dělá Uber, pravděpodobně, 1806 01:30:13,750 --> 01:30:15,690 ale možná to je rozumný kompromis. 1807 01:30:15,690 --> 01:30:18,040 A opět, že byl jedním z témat, doufejme, že za posledních pár dní, 1808 01:30:18,040 --> 01:30:18,780 Právě tyto kompromisy. 1809 01:30:18,780 --> 01:30:20,738 A málokdy je tam děje být správná odpověď. 1810 01:30:20,738 --> 01:30:25,700 Je to opravdu lepší ze dvou nebo více odpovědí. 1811 01:30:25,700 --> 01:30:26,682 >> Předat tyto kolem. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> A tyto účty Cloud9 bude pokračovat do práce, teoreticky, na neomezenou dobu. 1814 01:30:41,110 --> 01:30:45,000 Dalo by se zjistit, zda budete čekat několik dní nebo týden nebo více přihlásit zpět do nich, 1815 01:30:45,000 --> 01:30:49,170 to může trvat jako jeden nebo pět minut otevřít zálohovat, 1816 01:30:49,170 --> 01:30:54,090 ale to jen proto, že dal to spát ušetřit na zdroje. 1817 01:30:54,090 --> 01:31:10,527