1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Přehrávání hudby] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID Malan: Toto je CS50, a to je začátek týdne osm. 5 00:00:13,350 --> 00:00:17,510 A jsme tak nadšeni přivítat back, velké překvapení, CS50 vlastní Ramon 6 00:00:17,510 --> 00:00:22,160 Galvan, rostoucí senior, který byl strávil posledních několik měsíců 7 00:00:22,160 --> 00:00:26,190 Od července v Los Angeles, v Hollywoodu, doslova pracují na zbrusu nového televizoru 8 00:00:26,190 --> 00:00:31,930 výstava s názvem Colony, tvůrce, který je vlastně Harvard kamenec sám. 9 00:00:31,930 --> 00:00:36,610 A tak jsme velmi rádi, že vidět debut v síti USA letos v lednu. 10 00:00:36,610 --> 00:00:40,370 Takže zůstaňte naladěni na to, a pro více Ramon pro příštích týdnech. 11 00:00:40,370 --> 00:00:42,550 >> Vědět hned, že konec je blízko. 12 00:00:42,550 --> 00:00:47,400 A co to znamená je, že to není vše, co hodně zbylo z CS50, smutné. 13 00:00:47,400 --> 00:00:49,400 Máme jen tři problém Sady left-- je tu 14 00:00:49,400 --> 00:00:52,510 Problém set six--, který je v vaše ruce nyní nebo brzy budou, 15 00:00:52,510 --> 00:00:56,080 v průběhu letošního week-- je určen k překlenutí naše světy příkazového řádku, kde 16 00:00:56,080 --> 00:00:59,450 jsme strávili většinu času pomocí C, a svět webové programování. 17 00:00:59,450 --> 00:01:02,350 No, uvidíte spoustu nápadů půjčil si od příkazového řádku práce, 18 00:01:02,350 --> 00:01:04,560 ale také spoustu nových a zajímavé nápady 19 00:01:04,560 --> 00:01:07,929 které se rovněž bude germaine pro mobilní aplikace a pro technologie, 20 00:01:07,929 --> 00:01:10,470 obecněji, s níž kluci jsou všichni dobře známe v dnešní době 21 00:01:10,470 --> 00:01:12,090 na notebooky a telefony a podobně. 22 00:01:12,090 --> 00:01:15,220 >> Takže budete realizovat ne webové stránky, nebo webové stránky 23 00:01:15,220 --> 00:01:17,620 samy o sobě, ale o skutečný webový server. 24 00:01:17,620 --> 00:01:21,590 Budete psát zbytek webového serveru napsaný v C, jehož cílem v životě 25 00:01:21,590 --> 00:01:25,410 je přijímat požadavky HTTP, ty virtuální obálky jsme pořád mluvit 26 00:01:25,410 --> 00:01:29,780 o, a vlastně reagují buď Některé statické content-- jako tečka HTML 27 00:01:29,780 --> 00:01:32,310 soubor, nebo tečka JPEG nebo jakýkoli jiný počet souborů, 28 00:01:32,310 --> 00:01:37,070 nebo dokonce soubor PHP, kdy váš web Server se bude vykládat, že PHP 29 00:01:37,070 --> 00:01:38,332 kód a vyplivnout výsledky. 30 00:01:38,332 --> 00:01:40,540 Nyní jsme pro vás připravili docela dost rámce 31 00:01:40,540 --> 00:01:43,100 pro to-- skutečně Distribuce kód problému 32 00:01:43,100 --> 00:01:47,496 set six je více než 1000 linek dlouho, je Mnoho z nich je komentáře, být fair-- 33 00:01:47,496 --> 00:01:49,370 ale toto je ve skutečnosti znamená, být příležitost 34 00:01:49,370 --> 00:01:52,570 dostat své špinavé ruce potápění do poměrně velkého projektu 35 00:01:52,570 --> 00:01:55,570 že máme velmi konkrétně vytesané kusy pro vás, 36 00:01:55,570 --> 00:01:59,046 takže opravdu při ukončení CS50 a vstoupit do reálného světa programování 37 00:01:59,046 --> 00:02:00,920 a chtějí fušovat do libovolný počet projektů, 38 00:02:00,920 --> 00:02:03,253 budete mít mnohem větší, pohodlí stahování nějaký zdroj 39 00:02:03,253 --> 00:02:05,020 kód, některé open source projekt na webu, 40 00:02:05,020 --> 00:02:08,174 a potápění v a dělat Změny, které uznáte za vhodné. 41 00:02:08,174 --> 00:02:11,340 Problém set seven se bude o vytvořit vlastní webovou aplikaci 42 00:02:11,340 --> 00:02:14,140 který bere dynamický vstup a vytváří dynamický výstup v podobě 43 00:02:14,140 --> 00:02:16,920 z etrade.com-jako webové stránky. 44 00:02:16,920 --> 00:02:20,800 A problém nastavit osm se zaměří na dosud jiný jazyk, známý jako JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Mezitím, finální Projekt je na obzoru. 46 00:02:24,170 --> 00:02:26,800 Tzv pre-návrh je kvůli Ode dneška za týden. 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- podle specifikace, který je na CS50 je website-- 48 00:02:29,930 --> 00:02:33,260 je docela neformální příležitost pro odeslat docela stručnou e-mail 49 00:02:33,260 --> 00:02:35,170 na své učení kolegy jen aby ho obeznámit 50 00:02:35,170 --> 00:02:38,250 nebo jí o tom, co si myslíš, aby použít ho jako vrbu. 51 00:02:38,250 --> 00:02:40,980 A mají zdravý rozum check-- zda si myslíte 52 00:02:40,980 --> 00:02:43,210 o kousání off příliš moc nebo možná příliš málo, 53 00:02:43,210 --> 00:02:46,480 nebo možná nemáte tušení, vůbec a chtějí, aby se zapojily do konverzace. 54 00:02:46,480 --> 00:02:48,480 >> Poté je návrh a status hlášení, 55 00:02:48,480 --> 00:02:51,860 tzv CS50 Hackathon zde Cambridge pro Harvard a Yale studenty 56 00:02:51,860 --> 00:02:52,362 podobně. 57 00:02:52,362 --> 00:02:54,320 Závěrečný projekt je Implementace je odtud. 58 00:02:54,320 --> 00:02:59,290 A pak CS50 veletrh tady, v Cambridge, stejně jako další v New Haven. 59 00:02:59,290 --> 00:03:02,500 Takže návrhu se podívat na webové stránky pro tyto údaje. 60 00:03:02,500 --> 00:03:06,530 >> Ale víc vzrušující, taky, je možnost dostat své špinavé ruce, 61 00:03:06,530 --> 00:03:09,350 a vaše mysl otevřené celek banda témat a nástrojů 62 00:03:09,350 --> 00:03:12,920 a techniky, jež jsou doplňkové core Osnova Course, 63 00:03:12,920 --> 00:03:14,810 ale přesto související. 64 00:03:14,810 --> 00:03:18,400 A také nádherný odrazovým můstkem do dělá opravdu cool konečné projekty, které 65 00:03:18,400 --> 00:03:22,020 jdou daleko nad rámec materiálu, který jsme probrali formálně problém nastavit nebo v přednášce. 66 00:03:22,020 --> 00:03:24,446 Tak jděte na webové stránky CS50 pro celý seznam seminářů. 67 00:03:24,446 --> 00:03:26,070 Pokud ještě nemáte registrovat, je to v pořádku. 68 00:03:26,070 --> 00:03:29,860 Jděte do toho a zaregistrovat stále a budeme navázat s živým odkaz pro streamování, 69 00:03:29,860 --> 00:03:31,844 den a čas je na webových stránkách. 70 00:03:31,844 --> 00:03:33,760 A všechno bude zaznamenávány a dát on-line 71 00:03:33,760 --> 00:03:35,800 když není možné aby se konkrétní dny a časy. 72 00:03:35,800 --> 00:03:39,380 >> Pokud jde o to, co je před námi thereafter-- dobře, Samozřejmě, je tu CS50 Hackathon. 73 00:03:39,380 --> 00:03:43,560 Tuto fotografii, odvolání, z týdne nulové přijata kolem 4 AM jednoho večera v minulých letech. 74 00:03:43,560 --> 00:03:46,900 CS50 veletrh, který se znovu se bude konat v obou městech. 75 00:03:46,900 --> 00:03:49,760 A pak, jen sázet semeno, i když jsme ještě 76 00:03:49,760 --> 00:03:54,080 mají měsíčně a levé části semestru, pokud byste se rádi připojili CS50 vlastní učení 77 00:03:54,080 --> 00:03:56,770 personál, a chcete začít přemýšlet o získání CA, 78 00:03:56,770 --> 00:03:59,550 nebo výuky člověk, vím, že Začneme mluvit víc o tom 79 00:03:59,550 --> 00:04:00,630 Později v tomto semestru. 80 00:04:00,630 --> 00:04:03,470 Ale tady na obrázku je většina z letošního týmu. 81 00:04:03,470 --> 00:04:06,950 >> A tak, PHP-- a já jsem byl tak smutný minulý týden, že [? Allyse?] Laskavě 82 00:04:06,950 --> 00:04:09,370 šel do úsilí získání Američtí tyto nádherné rekvizity 83 00:04:09,370 --> 00:04:11,720 že jsem se skončit s použitím, tak to opravdu jen podíval trochu hloupý 84 00:04:11,720 --> 00:04:15,160 že jsme měli lopatu sedí zde vše den minulou středu, a trochu lžíce. 85 00:04:15,160 --> 00:04:17,709 Ale tohle byl můj metaforický způsob, jak se snaží malovat 86 00:04:17,709 --> 00:04:21,600 obraz toho, proč jsme přechod z C na jazyk, jako je PHP. 87 00:04:21,600 --> 00:04:25,480 A totéž lze říci o jakékoliv počet languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 nebo svazky others--, ale zatímco v C, například, psaní programu v C 89 00:04:31,270 --> 00:04:34,050 může být jako obvykle přičemž lžíci, jako je tento 90 00:04:34,050 --> 00:04:36,770 a kopat díru v země, v písku nebo hlíny. 91 00:04:36,770 --> 00:04:39,770 PHP umožňuje pořizovat moc větší sousta z problému, 92 00:04:39,770 --> 00:04:42,842 psaní mnohem méně kódu použitím mnohem menší nástroj, 93 00:04:42,842 --> 00:04:45,050 protože tam je mnohem víc funkčnost pieced v. 94 00:04:45,050 --> 00:04:47,633 >> Teď, když jsme byli opravdu dramatický, budeme muset něco lopata 95 00:04:47,633 --> 00:04:48,760 tady, ale budiž. 96 00:04:48,760 --> 00:04:51,370 Mezitím, druhý metafora jsme přišli s 97 00:04:51,370 --> 00:04:53,770 Je, samozřejmě, mohl byste používat něco jako klíč 98 00:04:53,770 --> 00:04:56,610 zatlouct něco jako hřebík. 99 00:04:56,610 --> 00:04:58,980 Ale samozřejmě, právo nástroj pro použití se děje 100 00:04:58,980 --> 00:05:01,360 být ani tak jazyk nazvaný C- 101 00:05:01,360 --> 00:05:03,590 a teď jsem prostě naštvaný [? Sanders,?] Pravděpodobně, 102 00:05:03,590 --> 00:05:07,890 budeme napravit tak later-- správným nástrojem k často používají 103 00:05:07,890 --> 00:05:09,640 se nebude to nejnižší úroveň nástroj. 104 00:05:09,640 --> 00:05:13,720 A skutečně, C není jazyk, který většina z vás se vůbec bude používat, 105 00:05:13,720 --> 00:05:15,590 nebo by nutně znovu použít. 106 00:05:15,590 --> 00:05:18,350 >> A ve skutečnosti, trochu secret-- jediný čas 107 00:05:18,350 --> 00:05:23,160 Já používám C sám je v podstatě mezi Září a prosinci každého pádu 108 00:05:23,160 --> 00:05:23,870 semestr. 109 00:05:23,870 --> 00:05:25,790 A to proto, že jsme použít jej jako příležitost 110 00:05:25,790 --> 00:05:27,852 naučit základům programování, 111 00:05:27,852 --> 00:05:29,810 a s ním počítačem věda, základy dat 112 00:05:29,810 --> 00:05:32,435 struktury, algoritmy a jako--, ale velmi rychle se budete 113 00:05:32,435 --> 00:05:35,010 vidět, že syntaxe a myšlenky podkladových C 114 00:05:35,010 --> 00:05:37,530 jsou tak nádherně převoditelný na modernější 115 00:05:37,530 --> 00:05:41,130 vyšší úrovně, jako jsou jazyky PHP a Python a Perl a Java 116 00:05:41,130 --> 00:05:46,750 a Objective-C- ve skutečnosti, ne tolik Objective-C-, ale Swift, ty novější 117 00:05:46,750 --> 00:05:50,010 jazyky, které mnozí z vás pak fušovat s vámi závěrečný projekt. 118 00:05:50,010 --> 00:05:55,070 >> Takže bez dalších okolků, pojďme vlastně použít PHP vyřešit některé problémy. 119 00:05:55,070 --> 00:06:00,230 Připomeňme, že na začátku, poslední týden, používali jsme pouze CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 jsme napsali Dinky malý program že právě řekl, "Hello world". 121 00:06:02,990 --> 00:06:05,680 A pak jsem se chytá v soubor s názvem hello.php. 122 00:06:05,680 --> 00:06:07,280 A pak jsem běžel tento příkaz. 123 00:06:07,280 --> 00:06:08,080 >> A proč? 124 00:06:08,080 --> 00:06:09,900 V angličtině, co se to tady děje? 125 00:06:09,900 --> 00:06:12,760 Co jsem dělal, když Běžel jsem tento příkaz? 126 00:06:12,760 --> 00:06:13,405 >> To jo? 127 00:06:13,405 --> 00:06:16,572 >> Diváků: Je tu nějaká funkce PHP že čte to, co se in-- chápe, že. 128 00:06:16,572 --> 00:06:19,696 DAVID Malan: Dobrý, tam je nějaká funkce PHP-- a nech mě být konkrétnější, 129 00:06:19,696 --> 00:06:21,810 existuje program s názvem PHP, také známý jako 130 00:06:21,810 --> 00:06:25,872 Interpret, který chápe, Obsah hello.php, 131 00:06:25,872 --> 00:06:27,830 a interpretuje to shora dole, zleva doprava, 132 00:06:27,830 --> 00:06:29,590 a dělá to, co tyto příkazy říkají. 133 00:06:29,590 --> 00:06:33,320 Příkazy v hello.php, samozřejmě, právě zdroj code-- funkce 134 00:06:33,320 --> 00:06:35,750 a proměnné a smyčky a podobně, že my sami 135 00:06:35,750 --> 00:06:37,460 začaly psát v PHP. 136 00:06:37,460 --> 00:06:40,240 >> Ale na rozdíl od C, což je kompilované jazyk, 137 00:06:40,240 --> 00:06:42,810 PHP stačí psát, a spusťte jej. 138 00:06:42,810 --> 00:06:46,420 Můžete přeskočit tento krok prostředníka přeměňovat to na nul a jedniček, 139 00:06:46,420 --> 00:06:47,790 a potom v chodu. 140 00:06:47,790 --> 00:06:50,510 A tak to, co je vzhůru o to? 141 00:06:50,510 --> 00:06:52,690 Proč jsme přeskočením krok? 142 00:06:52,690 --> 00:06:55,238 Proč více moderních jazyků mají tendenci tento krok přeskočit? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Jaký byl přínos? 145 00:07:01,220 --> 00:07:02,080 >> Nebo jen intuitivně? 146 00:07:02,080 --> 00:07:04,200 I když máme ne Před psaný hodně PHP, 147 00:07:04,200 --> 00:07:07,210 co je prospěšné o ne kompilaci kódu si o tom myslíš? 148 00:07:07,210 --> 00:07:08,520 Ne? 149 00:07:08,520 --> 00:07:09,610 Není spáchání? 150 00:07:09,610 --> 00:07:11,350 Poškrábání vaší hlavě? 151 00:07:11,350 --> 00:07:12,614 To jo. 152 00:07:12,614 --> 00:07:13,600 >> Diváků: dynamičtější. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Malan: Dynamičtější? 154 00:07:14,683 --> 00:07:16,032 Co myslíš? 155 00:07:16,032 --> 00:07:17,000 >> Diváků: [Neslyšitelné] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID Malan: OK, dobrá, tak v závislosti na vstupu, 158 00:07:22,390 --> 00:07:23,470 nemusíte kompilovat při každém. 159 00:07:23,470 --> 00:07:24,990 A je to opravdu jako jednoduché, jak to, co that-- 160 00:07:24,990 --> 00:07:26,990 je bod pokračování sestavit svůj kód? 161 00:07:26,990 --> 00:07:29,480 To je jen krok, který je making-- to vyžaduje, 162 00:07:29,480 --> 00:07:31,900 Za posledních několik týdny, dvakrát tolik kroků 163 00:07:31,900 --> 00:07:33,820 jak bylo právě běžící program. 164 00:07:33,820 --> 00:07:36,940 Bylo to užitečné vidět, že vás uvidíte nějaké chybové hlášky a tak dále, 165 00:07:36,940 --> 00:07:38,720 ale je to pořád jen nepříjemný krok. 166 00:07:38,720 --> 00:07:41,810 >> A tak si uvědomil, programátoři v průběhu času, proč ne my 167 00:07:41,810 --> 00:07:45,327 začněte psát jazyky, které nemají Potřebujeme tu poměrně mechanické krok, 168 00:07:45,327 --> 00:07:47,160 takže stačí napsat váš kód a spusťte jej. 169 00:07:47,160 --> 00:07:48,920 Ale co byla cena že jsme viděli jsme zaplatili 170 00:07:48,920 --> 00:07:50,910 minulý týden, s jedním konkrétním příkladu? 171 00:07:50,910 --> 00:07:51,650 Ano? 172 00:07:51,650 --> 00:07:52,370 >> Speed. 173 00:07:52,370 --> 00:07:54,690 Tak [? Co je?] tlumočníci trochu pomaleji, 174 00:07:54,690 --> 00:07:57,330 v tom, že nuly a jedničky jsou pěkné a rychle pro počítač 175 00:07:57,330 --> 00:08:00,070 pochopit, protože Intel CPU, nebo co to je, 176 00:08:00,070 --> 00:08:03,070 jen chápe, co se děje na s těmito vzory bitů. 177 00:08:03,070 --> 00:08:05,370 Vzhledem k tomu, tlumočníka je program, který opravdu 178 00:08:05,370 --> 00:08:07,980 musí přečíst zdroj ASCII kód, který jste napsali, 179 00:08:07,980 --> 00:08:12,700 a převést ji, abych tak řekl, nebo zjistit, jak to nakonec převádí 180 00:08:12,700 --> 00:08:13,525 se nul a jedniček. 181 00:08:13,525 --> 00:08:15,650 Tak to prostě trvá trochu trochu hit výkonu. 182 00:08:15,650 --> 00:08:16,858 Takže je to trochu kompromis. 183 00:08:16,858 --> 00:08:21,570 Nyní, pokud to uděláme tady, dovolte mi, abych jděte do toho a dělat příklad takto. 184 00:08:21,570 --> 00:08:26,610 Pokud bych jít sem, nový soubor, jdu uložit To je opět hello.php. 185 00:08:26,610 --> 00:08:31,450 A teď budu pokračovat a říkají, "print hello world" - 186 00:08:31,450 --> 00:08:35,130 a připomenout, že mohu použít tisk, vůbec se mi nelíbí muset použít print-F. A teď tady dole, 187 00:08:35,130 --> 00:08:42,039 když udělám PHP z hello.php, huh-- I Nezdá se, že je již vyložily. 188 00:08:42,039 --> 00:08:43,412 Co jsem udělal špatně? 189 00:08:43,412 --> 00:08:44,710 >> Diváků: Šikmé náramky. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Malan: Jo, budete potřebovat že úhel držák do top. 191 00:08:47,015 --> 00:08:49,390 Takže je to trochu nepříjemné, ale dostanete rychle na to zvyknete. 192 00:08:49,390 --> 00:08:53,500 Mám-li psát PHP kód, já Obecně je třeba říci programu, 193 00:08:53,500 --> 00:08:56,950 nebo sdělit interpret, hej PHP, přichází nějaký PHP kód. 194 00:08:56,950 --> 00:09:00,440 A pak se na správnou míru, udělal bych to uzavřít to není s to, ale spíše 195 00:09:00,440 --> 00:09:03,740 s jen otázka úhlu známky držák, takže teď tady dole, 196 00:09:03,740 --> 00:09:06,840 když spustím to znovu, teď I získat požadovaný výsledek. 197 00:09:06,840 --> 00:09:09,820 >> Nyní pojďme udělat mírné optimalizace, jen proto, že jste to neviděli. 198 00:09:09,820 --> 00:09:14,040 To je tak trochu nepříjemné, že jsem muset běžet PHP prostoru hello.php, 199 00:09:14,040 --> 00:09:16,060 protože v minulosti jsem mohl jen napsat dot lomítko 200 00:09:16,060 --> 00:09:17,560 název programu, který je docela hezké. 201 00:09:17,560 --> 00:09:19,420 Je to trochu lepší uživatelský zážitek. 202 00:09:19,420 --> 00:09:24,160 >> Tak to dopadá, můžete to udělat v PHP s following-- I 203 00:09:24,160 --> 00:09:28,780 lze použít docela záhadný zaklínadlo na vrcholu tady, 204 00:09:28,780 --> 00:09:31,740 který se obecně nazývá shebang, přičemž se jedná o ostrý symbol, 205 00:09:31,740 --> 00:09:34,270 abych tak řekl, je to rána nebo vykřičník. 206 00:09:34,270 --> 00:09:38,490 A teď je cesta k programu na typické systému Linux, který 207 00:09:38,490 --> 00:09:41,500 se nazývá prostředí, nebo env. 208 00:09:41,500 --> 00:09:43,920 A to line-- dlouhý příběh short-- linka člověk jen 209 00:09:43,920 --> 00:09:48,710 říká, hej počítač, najít PHP tlumočníka pro mě v životním prostředí, 210 00:09:48,710 --> 00:09:50,610 najít v paměti, abych tak řekl. 211 00:09:50,610 --> 00:09:54,130 >> A co je příjemné teď, je že když půjdu tady dole, 212 00:09:54,130 --> 00:09:57,750 Můžu dělat dot lomítko ahoj tečka php, nebo-- hmm. 213 00:09:57,750 --> 00:09:59,000 Přístup odepřen. 214 00:09:59,000 --> 00:10:02,350 No, uvidíte ještě víc z toho s problémem set sedm, pokud jste 215 00:10:02,350 --> 00:10:04,060 tak ještě neučinili, s oprávněními. 216 00:10:04,060 --> 00:10:06,510 Ukazuje se, že musím k provedení tohoto příkazu 217 00:10:06,510 --> 00:10:10,779 s názvem [? chamod?] pro změnu mode-- A plus x hello.php. 218 00:10:10,779 --> 00:10:13,820 Tento dodatečný musím [neslyšitelných] krok, který říká můj počítač, 219 00:10:13,820 --> 00:10:16,400 aby hello.php spustitelný soubor. 220 00:10:16,400 --> 00:10:21,310 A teď sledujte, co happens-- tečku lomítko hello.php, to prostě běží. 221 00:10:21,310 --> 00:10:23,310 Nepotřebuji specifikovat tlumočník ještě. 222 00:10:23,310 --> 00:10:26,680 A můžu si to ještě hezčí, přesto, když jsem přejmenovat tuto věc. 223 00:10:26,680 --> 00:10:30,570 Kdybych přesunout hello.php jen Hello-- takže oznámení v levém horním rohu, 224 00:10:30,570 --> 00:10:32,860 název programu je opravdu už jen Ahoj. 225 00:10:32,860 --> 00:10:37,300 Teď jsem si, aby to vypadalo jako program C, i když je to napsáno v PHP-- 226 00:10:37,300 --> 00:10:39,210 nebo upřímně řečeno jakékoliv číslo jiných jazyků. 227 00:10:39,210 --> 00:10:41,480 >> Takže marginální vylepšení, žádná funkční rozdíl. 228 00:10:41,480 --> 00:10:44,460 Ale je to jen trochu kuriozita teď, takže můžete psát programy 229 00:10:44,460 --> 00:10:48,989 v jakémkoli jazyce, a uživatel není musí vědět, nebo jedno, co to jsou. 230 00:10:48,989 --> 00:10:51,030 Dobře, pojďme se podívat na více přesvědčivý příklad nyní 231 00:10:51,030 --> 00:10:52,850 že jsem rozdmýchala s předstihem. 232 00:10:52,850 --> 00:10:54,955 A to se nazývá quote.php. 233 00:10:54,955 --> 00:10:56,740 A je k dispozici on-line. 234 00:10:56,740 --> 00:11:00,299 A všimněte si, že je to docela short-- ale je to program pro příkazový řádek, který je 235 00:11:00,299 --> 00:11:02,840 bude vypadat nahoru ceny akcií pro mě, který je ve skutečnosti děje 236 00:11:02,840 --> 00:11:04,230 být relevantní k problém nastavit sedm. 237 00:11:04,230 --> 00:11:05,396 >> Takže pojďme se podívat, co dělám. 238 00:11:05,396 --> 00:11:08,640 Na samém vrcholu jsem dostal otevřený držák otazník PHP. 239 00:11:08,640 --> 00:11:13,372 Pak mám tuto linii, čímž jsem vyžadující soubor nazvaný functions.php-- 240 00:11:13,372 --> 00:11:15,080 budeme vidět více o tom za chvíli, 241 00:11:15,080 --> 00:11:17,340 ale to je jako C je ostré verze patří, 242 00:11:17,340 --> 00:11:19,090 kam chceš jít zahrnovat další soubor. 243 00:11:19,090 --> 00:11:23,720 PHP volá to vyžadují, i když to také má obsahovat funkci. 244 00:11:23,720 --> 00:11:26,861 A ukázalo se, že je function.php Jen něco, co jsem napsal před třídou. 245 00:11:26,861 --> 00:11:29,860 Dal jsem ho do stejného adresáře, protože Chtěl jsem vytknout nějaký kód 246 00:11:29,860 --> 00:11:31,800 že bychom mohli chtít použít jinde. 247 00:11:31,800 --> 00:11:34,560 >> Mezitím, budete pravděpodobně odvodit, co se tady děje. 248 00:11:34,560 --> 00:11:39,200 To je trochu odlišný od C-, ale Co mám na mysli tím zajistit řádné používání? 249 00:11:39,200 --> 00:11:41,180 Přeložit tento technicky. 250 00:11:41,180 --> 00:11:45,950 Za jakých okolností jsem já ukončení programu, nebo ukončení? 251 00:11:45,950 --> 00:11:47,074 To jo? 252 00:11:47,074 --> 00:11:47,990 >> Diváků: Pokud nemáte dva argumenty příkazového řádku. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Malan: Když nemám na argumenty příkazového řádku. 254 00:11:49,480 --> 00:11:52,396 A nezapomeňte, že jeden z těchto argumenty je jméno programu sám. 255 00:11:52,396 --> 00:11:55,340 A druhá bude další slovo, které jsem psát po řádku. 256 00:11:55,340 --> 00:11:57,460 Takže stejně jako C, toto je můj způsob kontroly, 257 00:11:57,460 --> 00:12:00,022 se uživatel spolupracovat a spustit program, jak jsem zamýšlel? 258 00:12:00,022 --> 00:12:01,730 A teď, je tu něco trochu jinak 259 00:12:01,730 --> 00:12:04,020 s C- první řadě jsme mají tento znak dolaru, 260 00:12:04,020 --> 00:12:07,710 a co dolar přihlásit označují v PHP? 261 00:12:07,710 --> 00:12:08,440 Jen variabilní. 262 00:12:08,440 --> 00:12:11,731 To je all-- jen proměnná následovaná co chcete skutečně říkají. 263 00:12:11,731 --> 00:12:14,000 Všimněte si, že je něco chybí z mého programu PHP, 264 00:12:14,000 --> 00:12:18,210 stejně jako to chybělo poslední týden, proti C, což je to, co? 265 00:12:18,210 --> 00:12:21,620 >> A typy, ale i něco jiného. 266 00:12:21,620 --> 00:12:26,409 Neexistuje žádný něco function-- hlavní funkci. 267 00:12:26,409 --> 00:12:27,450 Neexistuje žádná hlavní funkce. 268 00:12:27,450 --> 00:12:29,680 Právě jste začít psát Váš kód, aniž by museli 269 00:12:29,680 --> 00:12:32,790 se starat o poměrně libovolný konvence pojmenování některé výchozí 270 00:12:32,790 --> 00:12:33,880 Funkce main. 271 00:12:33,880 --> 00:12:36,720 Takže arg C je opravdu jen globální proměnnou 272 00:12:36,720 --> 00:12:39,049 že tlumočníka dává k dispozici ke mně. 273 00:12:39,049 --> 00:12:40,090 Nyní, to je zajímavé. 274 00:12:40,090 --> 00:12:41,140 Tak se podívejte na věci. 275 00:12:41,140 --> 00:12:43,370 Znak dolaru stock je na odešel, to je můj variabilní. 276 00:12:43,370 --> 00:12:45,120 Na pravé straně, tam je prý 277 00:12:45,120 --> 00:12:50,270 funkce v PHP volal, že vyhledávání Já jsem kolem své poslední příkazový řádek 278 00:12:50,270 --> 00:12:51,902 Argument to-- bez ohledu na slovo. 279 00:12:51,902 --> 00:12:53,610 A uvidíme, jak to pracuje v okamžiku. 280 00:12:53,610 --> 00:12:55,380 >> A pak nakonec Hlásím cenu. 281 00:12:55,380 --> 00:12:58,650 Jsem vytištění jednoho Podíl takové a takové. 282 00:12:58,650 --> 00:13:02,082 A pamatujte si, to je Způsob, PHP-- způsobem v PHP-- 283 00:13:02,082 --> 00:13:04,290 kde nemusíte dělat znak dolaru S ještě. 284 00:13:04,290 --> 00:13:06,782 Stačí použít složené závorky a zapojte v nějaké proměnné. 285 00:13:06,782 --> 00:13:09,240 Nemusíte se starat o použití printf stejným způsobem. 286 00:13:09,240 --> 00:13:13,530 >> A jako stranou, když dáte proměnné uvnitř dvojitých uvozovek, jako je tento, 287 00:13:13,530 --> 00:13:17,370 používáte ozdobný techniky volal variabilní interpolace. 288 00:13:17,370 --> 00:13:20,380 Znamená to jen připojit proměnnou tady. 289 00:13:20,380 --> 00:13:23,760 A jako stranou, někteří z vás, kteří přišli z jiných programovacích prostředí, 290 00:13:23,760 --> 00:13:26,960 nesmíte používat apostrofy kolem řetězce to udělat. 291 00:13:26,960 --> 00:13:30,290 Je nutné použít uvozovky pro variabilní interpolace do práce. 292 00:13:30,290 --> 00:13:32,740 Jinak budete doslova vidět ty složené závorky. 293 00:13:32,740 --> 00:13:34,500 >> Tak konečně, pojďme do toho a spustit to. 294 00:13:34,500 --> 00:13:36,690 Dovolte mi, aby můj terminál trochu větší. 295 00:13:36,690 --> 00:13:41,940 Nech mě jít dopředu a spusťte uvnitř mé citace adresáře. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? citát?] PHP quote tečka PHP, 297 00:13:46,950 --> 00:13:50,290 a budu hledat něco, jako GOOG, která je její burzovní symbol, 298 00:13:50,290 --> 00:13:55,510 a jedna akcie novým názvem, Abeceda Inc, stojí $ 717 k dnešnímu dni. 299 00:13:55,510 --> 00:13:58,680 Dobře, pokud chceme spustit tento znovu, někdo 300 00:13:58,680 --> 00:14:02,600 mají další burzovní chtějí vzhlížet? 301 00:14:02,600 --> 00:14:06,770 >> Myslím si, že je Microsoft tenhle, MSFT-- $. 53 302 00:14:06,770 --> 00:14:09,720 Myslím si, že Yahoo je možná to. 303 00:14:09,720 --> 00:14:12,130 A Facebook je. 304 00:14:12,130 --> 00:14:13,740 >> Takže to, co je tento program dělá? 305 00:14:13,740 --> 00:14:16,306 Magie se zdá být zakotveny v této funkci vyhledávání. 306 00:14:16,306 --> 00:14:17,430 Takže pojďme se rychle podívat. 307 00:14:17,430 --> 00:14:21,815 >> Ukazuje se, že nepřijde s PHP, je to ve functions.php. 308 00:14:21,815 --> 00:14:23,690 A nebudeme procházet Tento velmi podrobně, 309 00:14:23,690 --> 00:14:28,040 nevšimnout operativní slovo je zde že na řádku šestého functions.php-- 310 00:14:28,040 --> 00:14:29,440 Doslova jsem říci funkci. 311 00:14:29,440 --> 00:14:31,050 I uveďte název své funkce. 312 00:14:31,050 --> 00:14:34,330 Pak jsem určit jakýkoliv parametry, nebo parametry, 313 00:14:34,330 --> 00:14:36,480 Chci, že funkce take-- žádný typ. 314 00:14:36,480 --> 00:14:37,580 A pak jsem ji realizovat. 315 00:14:37,580 --> 00:14:39,240 >> A já budu mávat mou ruku na implementaci, 316 00:14:39,240 --> 00:14:42,115 protože je to docela moderní pravdu teď, ale budeme ho vidět znovu vlastně 317 00:14:42,115 --> 00:14:44,700 v týdnu v problému nastavení sedm. 318 00:14:44,700 --> 00:14:47,490 Ale můžu vyčistit toto nahoru, taky. 319 00:14:47,490 --> 00:14:49,590 Také jsem součástí dnešní kód verze 320 00:14:49,590 --> 00:14:52,340 citátu, který nemá soubor tečka PHP. 321 00:14:52,340 --> 00:14:57,270 Protože to, co je pravděpodobně u Horní část pořadu jen citovat? 322 00:14:57,270 --> 00:15:00,140 To tzv shebang-- docela mystický zaklínadlo 323 00:15:00,140 --> 00:15:04,590 že říká, že najít PHP a poté spustit na můj kód zde. 324 00:15:04,590 --> 00:15:07,360 >> Dobře, takže přináší nás, kde jsme skončili 325 00:15:07,360 --> 00:15:09,560 Poslední time-- i když s některé pokročilejší příklady. 326 00:15:09,560 --> 00:15:13,980 Jakékoliv dotazy dosud o PHP nebo co děláme? 327 00:15:13,980 --> 00:15:15,570 No-- v pořádku. 328 00:15:15,570 --> 00:15:16,180 To jo? 329 00:15:16,180 --> 00:15:19,610 >> Publikum: Uvnitř HTML soubory, dělat vás-- 330 00:15:19,610 --> 00:15:22,226 [? ano?] [? stačí zavolat to?] a [neslyšitelný] PHP soubor? 331 00:15:22,226 --> 00:15:23,350 DAVID Malan: Dobrá otázka. 332 00:15:23,350 --> 00:15:26,070 Ve webovém souvislostech, které jsme doslova o přechodu na, 333 00:15:26,070 --> 00:15:28,028 nechcete použít tzv shebang v horní části, 334 00:15:28,028 --> 00:15:31,980 protože web server-- často program s názvem Apache nebo Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, nebo libovolný počet dalších web server software, 336 00:15:37,470 --> 00:15:40,636 ví, že když vidí, soubor tečka PHP, že to 337 00:15:40,636 --> 00:15:42,010 by měl běžet tlumočníka na to. 338 00:15:42,010 --> 00:15:43,468 Nevypadá to v té první linii. 339 00:15:43,468 --> 00:15:45,580 Takže tento první linie trik je jen, když jste 340 00:15:45,580 --> 00:15:48,330 psaní příkazového řádku programs-- které nebudeme dělat výborný často, 341 00:15:48,330 --> 00:15:52,510 ale je to náš způsob přemostění Náš příklad C až nyní naší PHP. 342 00:15:52,510 --> 00:16:00,680 >> Takže pojďme skutečně překlenout tento svět z příkazového řádku světě, na web 343 00:16:00,680 --> 00:16:02,230 pomocí následujícího postupu. 344 00:16:02,230 --> 00:16:05,090 Nech mě jít dopředu a kreslit přes na chvilku zde. 345 00:16:05,090 --> 00:16:09,940 Takže pokud budeme mít webový server, nebo spíše máme-li svůj laptop tady, 346 00:16:09,940 --> 00:16:11,280 které budu čerpat takhle. 347 00:16:11,280 --> 00:16:14,250 A tady máme internet v nějaké formě. 348 00:16:14,250 --> 00:16:18,210 A pak tady máme server v building-- 349 00:16:18,210 --> 00:16:20,760 to je, jak internet works-- a tady 350 00:16:20,760 --> 00:16:23,120 je server s některými světla možná. 351 00:16:23,120 --> 00:16:27,530 Co se to vlastně děje mezi těmito dvěma přípojkami? 352 00:16:27,530 --> 00:16:29,240 >> Takže v této budově je webový server. 353 00:16:29,240 --> 00:16:31,420 To je jen počítač že to běh některých operačních 354 00:16:31,420 --> 00:16:34,561 system-- možná zdarma software nazvaný Apache, který CS50 IDE běží. 355 00:16:34,561 --> 00:16:36,310 Takže se můžete skutečně myslíte o této budovy 356 00:16:36,310 --> 00:16:38,579 jako budova v který CSt0 IDE je uložen. 357 00:16:38,579 --> 00:16:40,870 To je místo, kde všechny z vás má účty, kde jsou všechny z vás, 358 00:16:40,870 --> 00:16:43,130 mít svůj vlastní webový server běh, všechny z vás, 359 00:16:43,130 --> 00:16:45,730 mají své vlastní jedinečné adresy URL, jak jsme začali diskutovat, 360 00:16:45,730 --> 00:16:47,280 a uvidíte více P. set šest. 361 00:16:47,280 --> 00:16:49,450 >> Tady je můj notebook někde jinde na internetu. 362 00:16:49,450 --> 00:16:54,550 A tak, když jsem navštívit URL, které patří se mi, že internetový provoz se děje 363 00:16:54,550 --> 00:16:58,360 se k serveru, na serveru Příjem HTTP request-- 364 00:16:58,360 --> 00:17:02,900 jako když si index.html a to je odpověď na tuto webovou stránku. 365 00:17:02,900 --> 00:17:04,280 Tak to je obecný vzor. 366 00:17:04,280 --> 00:17:07,089 Vzhledem k tomu, všechno nahoru Až do teď, dnes vše 367 00:17:07,089 --> 00:17:09,660 se děje pouze v hranice této budovy. 368 00:17:09,660 --> 00:17:12,910 Byl jsem pomocí mého notebooku, ale Byl jsem připojen k CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 takže všechny z těchto programů jsem jel byla uvnitř tohoto serveru, sám. 370 00:17:17,369 --> 00:17:22,660 >> Ale teď, začněme opětovné využití PHP napsat nějaké skutečné programy, které 371 00:17:22,660 --> 00:17:24,230 jsou podávány prostřednictvím webového serveru. 372 00:17:24,230 --> 00:17:30,320 A jak to udělat, já jdu do spoustu příkladů 373 00:17:30,320 --> 00:17:33,710 že představí tuto myšlenku zde. 374 00:17:33,710 --> 00:17:38,500 Takže to je tak trochu fantazie způsob, jak popisující programovací paradigma. 375 00:17:38,500 --> 00:17:41,540 >> A ve skutečnosti, jak ukončit CS50 nebo pracovat na závěrečných prací, 376 00:17:41,540 --> 00:17:43,520 nebo se někteří následují na třídě, začnete 377 00:17:43,520 --> 00:17:45,740 vidět, že world-- zejména vyrůstal 378 00:17:45,740 --> 00:17:48,300 s jazyky jako C že jsou super nízké level-- 379 00:17:48,300 --> 00:17:51,290 Uvědomuji si, že tam je lepší způsoby psaní softwaru. 380 00:17:51,290 --> 00:17:53,290 Existují určitá vzory můžete sledovat, 381 00:17:53,290 --> 00:17:57,640 některé způsoby organizace souborů a způsoby, jak pojmenování své funkce, 382 00:17:57,640 --> 00:18:00,300 takže dlouhý příběh krátký, svět má přijít 383 00:18:00,300 --> 00:18:04,340 s celou partou zkratek a jména pro způsoby programování. 384 00:18:04,340 --> 00:18:06,260 To jsou jen techniky, můžete použít. 385 00:18:06,260 --> 00:18:09,660 >> A jeden z nich se jmenuje MVC, Pro Model View Controller. 386 00:18:09,660 --> 00:18:12,270 A to je jen pro , teď příliš komplikované 387 00:18:12,270 --> 00:18:18,960 způsob, jak říct, jak byste měli rozvrhnout webové stránky PHP bázi, v našem případě. 388 00:18:18,960 --> 00:18:22,140 Jak organizovat soubory, jak si zorganizovat svou logiku, 389 00:18:22,140 --> 00:18:26,220 způsobem, který usnadňuje napsat složitější webové stránky? 390 00:18:26,220 --> 00:18:28,550 A skutečně, budeme rychle tam si s p-set sedm. 391 00:18:28,550 --> 00:18:32,020 >> Takže ve světě MVC, budete vidět, že náš kód lze obecně 392 00:18:32,020 --> 00:18:38,290 charakterizovat jako buď kódu modelu, nebo kód řadič, nebo zobrazení kódu. 393 00:18:38,290 --> 00:18:40,200 A já jdu na zjednodušovat ji jako follows-- 394 00:18:40,200 --> 00:18:42,074 regulátor je mozek vašeho programu, 395 00:18:42,074 --> 00:18:44,100 to je místo, kde všechny zajímavá logika se stane. 396 00:18:44,100 --> 00:18:46,110 Takže všechno, co jsme byli psaní tak daleko ve třídě, 397 00:18:46,110 --> 00:18:48,210 je něco jako řadiče code-- to ovládání 398 00:18:48,210 --> 00:18:50,585 váš program, vaše smyčky, vaše podmínky, vaše funkce 399 00:18:50,585 --> 00:18:52,100 a proměnné a všechno. 400 00:18:52,100 --> 00:18:56,160 >> Pohledy, nyní, se bude trochu jasnější ve světě webu. 401 00:18:56,160 --> 00:18:59,360 Pohled je estetika na vašich webových stránkách. 402 00:18:59,360 --> 00:19:04,080 To je to, co uživatel sees-- obrazy, tabulky HTML, HTML tagy, a všechny 403 00:19:04,080 --> 00:19:08,220 z toho, všechny načechraný estetický věci, které není tak těžké psát, 404 00:19:08,220 --> 00:19:11,380 ale je jen to, co jste generování, je tzv pohled, estetice. 405 00:19:11,380 --> 00:19:13,880 A model nakonec se děje být databáze, které stuff-- 406 00:19:13,880 --> 00:19:16,510 začneme potápění do všech Čím více se tuto středu. 407 00:19:16,510 --> 00:19:19,740 Takže regulátor je logika, pohled je estetická věci, 408 00:19:19,740 --> 00:19:23,500 a model bude, kde ukládáme naše aktuální data. 409 00:19:23,500 --> 00:19:26,410 >> Takže pojďme se podívat na to konkrétněji s následujícím příkladu. 410 00:19:26,410 --> 00:19:34,700 Chystám se jít do mého adresáře zde dnešní zdroje code--, z nichž všechny 411 00:19:34,700 --> 00:19:35,770 je k dispozici on-line. 412 00:19:35,770 --> 00:19:37,800 A já jdu do verze nula. 413 00:19:37,800 --> 00:19:41,500 A tady je-- nazvěme to na verze stránek CS50 je nula. 414 00:19:41,500 --> 00:19:43,010 Není toho moc, tady vůbec. 415 00:19:43,010 --> 00:19:46,810 Je to velmi jednoduché webové stránky, která je Pravděpodobně používáte, co HTML tags-- právě 416 00:19:46,810 --> 00:19:48,970 Asi z minulých příkladů? 417 00:19:48,970 --> 00:19:49,890 >> Co je to? 418 00:19:49,890 --> 00:19:53,920 H1-- pravděpodobně za to velký tučný název, že logo nahoru vrchol, CS50. 419 00:19:53,920 --> 00:19:55,080 A co je ještě ve hře? 420 00:19:55,080 --> 00:19:55,799 To jo? 421 00:19:55,799 --> 00:19:56,840 Diváků: Nečíslovaný seznam. 422 00:19:56,840 --> 00:19:59,990 DAVID Malan: Nečíslovaný list-- tak UL tag a možná pár LI tagy. 423 00:19:59,990 --> 00:20:01,840 A pokud si nepamatujete nich, to upřímně nezáleží. 424 00:20:01,840 --> 00:20:04,170 Jedná se o jakési načechraný implementační podrobnosti HTML 425 00:20:04,170 --> 00:20:06,378 že jste se rychle vyhledat a jste zpátky na vaší cestě. 426 00:20:06,378 --> 00:20:10,040 Budeme se více zaměřit na programování myšlenky, které jsou šťavnatější kousky. 427 00:20:10,040 --> 00:20:12,890 >> Tak ať to jen vzít rychlý podívejte se na HTML-- a opravdu 428 00:20:12,890 --> 00:20:16,880 když jsem otevřít zdroj zobrazení tady, Jo, to je přesně to, co se tady děje. 429 00:20:16,880 --> 00:20:18,440 Je tu značku UL. 430 00:20:18,440 --> 00:20:20,630 Vnořené uvnitř, který je Li tagy. 431 00:20:20,630 --> 00:20:24,470 A pak jsem si vypůjčil URL skutečného osnov zde. 432 00:20:24,470 --> 00:20:27,570 >> A pak v lectures.php je zřejmě 433 00:20:27,570 --> 00:20:31,640 další dynamicky generované stránky že to bude mít, pojďme see-- ah, 434 00:20:31,640 --> 00:20:33,170 První dva týdny přednášky. 435 00:20:33,170 --> 00:20:36,600 Tak týden nula a týden jednu, pojďme podívejte se na tohle-- kdybych zobrazit zdrojový kód stránky, 436 00:20:36,600 --> 00:20:38,120 také super jednoduché. 437 00:20:38,120 --> 00:20:42,430 Ty vedou na dvě stránky volal week0.php, a week1.php. 438 00:20:42,430 --> 00:20:44,040 Takže zvažte teď, co se děje. 439 00:20:44,040 --> 00:20:50,630 >> Když kliknu na week0.php, můj notebook je podání žádosti o week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Webový server, také známý jako, CS50 IDE, přijímá, že virtuální obálku. 442 00:20:58,110 --> 00:21:01,040 Je to vidět zprávu jako, dostat week0.php. 443 00:21:01,040 --> 00:21:05,060 To je pak interpretaci souboru, top dolů, doleva right-- souboru 444 00:21:05,060 --> 00:21:07,720 volal week0.php-- a plivat výsledky. 445 00:21:07,720 --> 00:21:10,510 Takže uvnitř tohoto souboru, week0.php, musí být 446 00:21:10,510 --> 00:21:15,410 řídicí logika, která je generování tento HTML, a budeme brzy vidět, že. 447 00:21:15,410 --> 00:21:19,340 >> Ale teď mi dovolte, abych klikněte na týden nula, a teď máme středu a pátek, 448 00:21:19,340 --> 00:21:25,260 a teď máme sklíčka pomalu týdnu nula. 449 00:21:25,260 --> 00:21:27,400 A možná pamatujete toto od při cestě zpět. 450 00:21:27,400 --> 00:21:29,340 Tak to je vše, tento web je dělá. 451 00:21:29,340 --> 00:21:31,120 >> Takže pojďme zvážit, jak se to dělá. 452 00:21:31,120 --> 00:21:34,290 Chystám se vrátit do zdrojový kód zde, v CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 a já jdu otevřít index.php. 454 00:21:36,660 --> 00:21:38,910 V horní části tohoto souboru je banda komentářů. 455 00:21:38,910 --> 00:21:43,000 A pak se v polovině tohoto souboru ji, Ukázalo se, že není žádný PHP kód vůbec. 456 00:21:43,000 --> 00:21:47,380 Protože pokud nemáte některý z otevřený držák otazník PHP tagy, 457 00:21:47,380 --> 00:21:49,180 jste zatím jen dát HTML. 458 00:21:49,180 --> 00:21:51,480 >> Vzhledem k tomu, co PHP interpret má dělat, 459 00:21:51,480 --> 00:21:53,938 je, když to čte tento file-- shora dolů, zleva right-- 460 00:21:53,938 --> 00:21:59,100 to jen interpretuje kód to vidí mezi tyto lomené závorky otazník. 461 00:21:59,100 --> 00:22:02,380 A něco jiného, ​​že tomu tak není uznat jako PHP, to prostě vyplivne. 462 00:22:02,380 --> 00:22:05,080 A HTML patří mezi věci to bude jen vyplivnout. 463 00:22:05,080 --> 00:22:09,090 >> Takže tento soubor mohl mít byli povoláni index.html, 464 00:22:09,090 --> 00:22:11,690 ale já jsem jmenovat všechno dot PHP jako odrazový můstek. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- podobně nezaujatý, je to jen nějaký HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, podobně jen některé HTML. 467 00:22:19,840 --> 00:22:22,300 >> Ale teď pojďme dát na příslovečný inženýrství klobouk, 468 00:22:22,300 --> 00:22:24,400 a zvážit, jak můžeme vylepšit to. 469 00:22:24,400 --> 00:22:28,541 Není těžké to udělat, ale jsem tak trochu přenesené do kopírování a vkládání. 470 00:22:28,541 --> 00:22:31,540 A ve skutečnosti, když jsem vytvořit dvousloupcový týden jste vím, co jsem asi dělat? 471 00:22:31,540 --> 00:22:34,940 Chystám se jít do week1.php, já jsem zaměřím na všechno. 472 00:22:34,940 --> 00:22:39,110 Chystám se ho kopírovat, vložit jej do nového souboru s názvem week2.php, 473 00:22:39,110 --> 00:22:42,440 vyladit některé adresy URL, a je na cestě. 474 00:22:42,440 --> 00:22:45,240 >> Takže na základě toho, co máme Viděl v C již, 475 00:22:45,240 --> 00:22:46,860 to není ono, doufejme. 476 00:22:46,860 --> 00:22:49,610 Kopírovat, vložit zřídka správným řešením. 477 00:22:49,610 --> 00:22:51,429 Takže to, co můžeme začít udělat pro zlepšení to? 478 00:22:51,429 --> 00:22:53,345 Tam, kde jsou příležitosti pro lepší design? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> V době, kdy jsem se dostat do týden osm, to jde 481 00:22:58,760 --> 00:23:00,910 být opravdu otravné pokud chci změnit 482 00:23:00,910 --> 00:23:03,930 písmo každého jednoho z mé stránky, nebo když budu chtít 483 00:23:03,930 --> 00:23:06,522 změnit strukturu rozvržení. 484 00:23:06,522 --> 00:23:08,396 Tak kde je příležitost pro lepší design? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Dobře, pojďme zvážit, co je sdíleny všechny tyto soubory. 487 00:23:15,160 --> 00:23:21,696 >> Tady je týden jednu, tady týden nula, tady je lectures.php, 488 00:23:21,696 --> 00:23:25,790 tady je to, co index.php-- je stejný a Jaký je rozdíl, zhruba řečeno, 489 00:23:25,790 --> 00:23:26,760 v každém z těchto souborů? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 To jo? 492 00:23:32,060 --> 00:23:34,560 >> Diváků: [Neslyšitelné] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Malan: OK, dobře. 495 00:23:42,160 --> 00:23:46,115 Takže tam je vzor, ​​jistě, přičemž pokaždé, když jsem se vybrat přednáška I, 496 00:23:46,115 --> 00:23:48,250 Měl bych být generování velmi podobné vypadající stránky. 497 00:23:48,250 --> 00:23:50,375 A tak snad můžu využít skutečnost, že ve skutečnosti, 498 00:23:50,375 --> 00:23:53,060 vědomě numericky indexovány naši lectures-- 499 00:23:53,060 --> 00:23:55,290 jestli můžu dát ještě víc slov vaší odpovědi. 500 00:23:55,290 --> 00:23:59,984 A co je jediná věc, opravdu, že to mění mezi týdne one-- 501 00:23:59,984 --> 00:24:02,400 a dovolte mi přejděte dolů, takže je to zhruba ve stejné place-- 502 00:24:02,400 --> 00:24:05,480 tak tady je týden nula, zhruba v horní části. 503 00:24:05,480 --> 00:24:12,370 Zde je týden jednou, týden nula, týden jedním, týden nula. 504 00:24:12,370 --> 00:24:14,370 OK, doslova pokud víte, žádný program vůbec, 505 00:24:14,370 --> 00:24:16,286 toto je nyní jen jako když vzor odpovídající hru. 506 00:24:16,286 --> 00:24:17,200 Takže to, co je? 507 00:24:17,200 --> 00:24:18,765 To jo? 508 00:24:18,765 --> 00:24:19,777 >> Diváků: [Neslyšitelné] 509 00:24:19,777 --> 00:24:22,360 DAVID Malan: Dobrý, tak titul se mění, někdy tak trochu. 510 00:24:22,360 --> 00:24:24,010 Zero bude, samozřejmě, na jednu. 511 00:24:24,010 --> 00:24:25,570 Totéž se děje v tagu H1. 512 00:24:25,570 --> 00:24:28,790 A nemáme dost vidět, jak snadno, protože URL jsou poněkud delší. 513 00:24:28,790 --> 00:24:30,670 Ale ty adresy URL se mění jen nepatrně. 514 00:24:30,670 --> 00:24:34,490 >> Ale to, co se nemění je, troufám si říci, většina obsahu page-- 515 00:24:34,490 --> 00:24:38,530 značka HTML je stejný, hlava je stejné, titul je téměř stejný, 516 00:24:38,530 --> 00:24:40,659 tělo je stejný, a skoro všechno ostatní 517 00:24:40,659 --> 00:24:42,450 je stejné, kromě ty malé vylepšení. 518 00:24:42,450 --> 00:24:45,310 Tak jak můžeme jít o factoring něco z toho ven? 519 00:24:45,310 --> 00:24:48,740 >> No dovolte mi navrhnout přesně že v další verzi. 520 00:24:48,740 --> 00:24:53,890 Tak tady ve verzi jedna, mám přesný stejné soubory, plus pár dalších. 521 00:24:53,890 --> 00:24:59,730 Tady je index.php-- a to iv případě jste nikdy neviděli PHP předtím, 522 00:24:59,730 --> 00:25:05,511 co mám asi dělat to vyřešit problem-- základě toho, co vidíte tady? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Jo, je to mírný závazku? 525 00:25:12,760 --> 00:25:13,450 Ne? 526 00:25:13,450 --> 00:25:16,020 Ano, jít dál. 527 00:25:16,020 --> 00:25:17,380 >> Diváků: [Neslyšitelné] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Malan: Jo. 529 00:25:18,380 --> 00:25:20,380 >> Diváků: [Neslyšitelné] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Malan: Potřebuji, abyste mluví jen trochu hlasitěji. 532 00:25:28,669 --> 00:25:31,084 >> Diváků: [Neslyšitelné] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Malan: OK, dobře. 535 00:25:36,660 --> 00:25:38,620 A think-- jsem, že těžké vás-- ale slyším 536 00:25:38,620 --> 00:25:42,690 že to, co jste se dostal na je, že tagy, které byly běžné až nahoru, 537 00:25:42,690 --> 00:25:47,710 a značky, které byly běžné na dno, byly nyní vytknout, 538 00:25:47,710 --> 00:25:51,140 nebo zařazen k jaké soubory? 539 00:25:51,140 --> 00:25:53,476 Header.php a footer.php-- a jdeme 540 00:25:53,476 --> 00:25:55,600 aby se některé vylepšení na řešit obavy jste právě 541 00:25:55,600 --> 00:25:59,370 zvýšil o počtu střídání, pro Například, když jsem tě slyšel správně. 542 00:25:59,370 --> 00:26:02,060 >> Ale to se zdá být podstata toho. 543 00:26:02,060 --> 00:26:04,820 Pokud došlo k obrovské množství redundance v horní části stránky, 544 00:26:04,820 --> 00:26:06,736 a obrovské množství redundance v dolní části, 545 00:26:06,736 --> 00:26:09,280 pojďme doslova highlight a snížit, že obsah out, 546 00:26:09,280 --> 00:26:13,270 dát do samostatné file--, stejně jako myšlenka CSS, kde jsme vytknout 547 00:26:13,270 --> 00:26:16,710 velmi podobné estetika, dal že v odděleném dot PHP souboru 548 00:26:16,710 --> 00:26:20,340 použijte vyžadují mechanism-- který je jako C ostrý include-- který 549 00:26:20,340 --> 00:26:23,570 je v podstatě jako říkat jít chytit obsah header.php, 550 00:26:23,570 --> 00:26:25,370 a kopírovat a vložit zde. 551 00:26:25,370 --> 00:26:29,490 >> Ale co to znamená je, že nyní v index.php, mám ty dva řádky. 552 00:26:29,490 --> 00:26:32,130 V lectures.php jsem také mají tyto dva řádky. 553 00:26:32,130 --> 00:26:35,230 V week0.php jsem také mají tyto dva řádky. 554 00:26:35,230 --> 00:26:38,380 >> Takže teď, když chci změnit název ze všech mých stránkách, 555 00:26:38,380 --> 00:26:40,530 nebo chci změnit základní struktura, 556 00:26:40,530 --> 00:26:44,380 Já ji nyní může změnit jen v jednom místě, nebo dva places-- záhlaví a zápatí, 557 00:26:44,380 --> 00:26:45,429 v tomto pořadí. 558 00:26:45,429 --> 00:26:47,970 Nyní začíná Kodexu se podívat trochu záhadný, že jo? 559 00:26:47,970 --> 00:26:53,590 Ale jestli si myslíte, že o tom, co na stránce je doing-- jestli jsem požadující week0.php, 560 00:26:53,590 --> 00:26:59,880 stejně jako na kreslení přes here-- při požadavku week0.php, 561 00:26:59,880 --> 00:27:00,960 co to znamená? 562 00:27:00,960 --> 00:27:04,410 >> Doslova je tento soubor požaduje prohlížeči. 563 00:27:04,410 --> 00:27:06,240 Na webovou server-- také známý jako 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- chytne to Soubor, week0.php, a čte 565 00:27:09,250 --> 00:27:10,780 to shora dolů, zleva doprava. 566 00:27:10,780 --> 00:27:15,400 Na prvním řádku, okamžitě narazí otevřený držák otazník PHP, vyžadují 567 00:27:15,400 --> 00:27:17,872 header tečka PHP, a tak co interpret PHP 568 00:27:17,872 --> 00:27:20,580 does--, který je vestavěný do webu Server, protože jsme předem nakonfigurováno 569 00:27:20,580 --> 00:27:24,580 to pro vás-- přepne se automaticky do header.php, zkopíruje obsah, 570 00:27:24,580 --> 00:27:25,640 vloží je zde. 571 00:27:25,640 --> 00:27:28,790 >> Ale pak tlumočnické setkání otazník blízko držák, 572 00:27:28,790 --> 00:27:30,320 takže je to všechno udělal myslí. 573 00:27:30,320 --> 00:27:33,400 Teď to jen slepě vyplivne out řádků dva až sedm, 574 00:27:33,400 --> 00:27:35,240 protože je to jen syrové HTML. 575 00:27:35,240 --> 00:27:38,470 Dostane na řádek osm, a to dělá Stejný magie again-- otevření souboru, 576 00:27:38,470 --> 00:27:41,460 popadat obsah, a vyžadovat, aby oni nebo jejich vkládání 577 00:27:41,460 --> 00:27:42,480 vpravo pak ani tam. 578 00:27:42,480 --> 00:27:44,210 >> Ale já jsem jen zmiňoval se o chybu. 579 00:27:44,210 --> 00:27:48,610 Toto je částečný krok zpět, protože když se podíváme na header.php, 580 00:27:48,610 --> 00:27:50,850 Já jsem trochu snížit roh. 581 00:27:50,850 --> 00:27:56,250 Jaké funkce jsem se vzdát, aby k získání tohoto arguable lepší design? 582 00:27:56,250 --> 00:27:57,305 To jo? 583 00:27:57,305 --> 00:27:58,180 Diváků: [Neslyšitelné] 584 00:27:58,180 --> 00:28:00,570 DAVID Malan: Jo, jsem tak trochu sečení netriviální roh. 585 00:28:00,570 --> 00:28:04,489 Jste poukázal na to, že to, co se mění byl název, číslo v názvu, 586 00:28:04,489 --> 00:28:05,530 a číslo v H1. 587 00:28:05,530 --> 00:28:08,170 Takže moje řešení bylo, OK, ať to jen přejmenovat stránku, 588 00:28:08,170 --> 00:28:10,080 a nezabývá, že problém vůbec. 589 00:28:10,080 --> 00:28:12,130 Takže to je částečný krok zpět pro jistotu. 590 00:28:12,130 --> 00:28:14,300 >> Ale co je pozoruhodné zde je, že to, co jsem udělal 591 00:28:14,300 --> 00:28:17,200 jinak je factored out všechny běžné věci. 592 00:28:17,200 --> 00:28:21,520 A v footer.php, Všiml jsem si, factored mimo to všechno, i když menší, 593 00:28:21,520 --> 00:28:22,790 společné věci. 594 00:28:22,790 --> 00:28:26,070 Tak jsem třeba nějak nyní bude moci další krok vpřed, a opravit 595 00:28:26,070 --> 00:28:27,160 že právní nárok na otázky. 596 00:28:27,160 --> 00:28:28,180 Takže pojďme to udělat. 597 00:28:28,180 --> 00:28:35,060 >> Nech mě jít do mé druhé verzi zde, což opět má stejné soubory 598 00:28:35,060 --> 00:28:36,825 s výjimkou jednoho nový přírůstek. 599 00:28:36,825 --> 00:28:38,950 A je to trochu víc verbose, ale uvidíme, jestli budeme 600 00:28:38,950 --> 00:28:40,550 může dráždit od sebe to, co se tady děje. 601 00:28:40,550 --> 00:28:45,370 Takže místo toho, vyžadující header.php, a footer.php, 602 00:28:45,370 --> 00:28:50,180 Připadá mi, že se vyžaduje pouze jeden file-- zavolal, samozřejmě, helpers.php. 603 00:28:50,180 --> 00:28:52,560 A dovolte mi, abych nyní stanovit, to, co je uvnitř helpers.php 604 00:28:52,560 --> 00:28:55,330 je jen banda funkcí že jsem napsal, stejně jako předtím. 605 00:28:55,330 --> 00:28:57,550 Ale volal jsem to helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Nyní se zdá, v řádek tři a 10, já jsem 607 00:29:00,370 --> 00:29:02,840 volá dvě functions-- vykreslení záhlaví, zápatí render. 608 00:29:02,840 --> 00:29:05,040 Ti, kteří nepřijdou s PHP, jsem napsal ty sám. 609 00:29:05,040 --> 00:29:07,880 A dal jsem je do helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Teď jsme jen viděli tuto syntaxi jednou, a bylo to výborný krátký. 611 00:29:11,210 --> 00:29:15,330 Ale to je zřejmě argument k tomu, aby záhlaví, funkce. 612 00:29:15,330 --> 00:29:16,450 Proč mám vědět, že? 613 00:29:16,450 --> 00:29:18,522 Tak tady je blízký paren, tady je otevřená paren. 614 00:29:18,522 --> 00:29:21,230 A samozřejmě, stejně jako v C, něco mezi těmito závorkami 615 00:29:21,230 --> 00:29:23,350 je input-- nebo argument funkce. 616 00:29:23,350 --> 00:29:26,710 >> Jaký je datový typ tohoto argumentu, na základě toho, co jsem zvýrazněny? 617 00:29:26,710 --> 00:29:30,820 Co ty hranaté závorky ukazují, na základě posledního týdne? 618 00:29:30,820 --> 00:29:33,390 Jo, to je array-- konkrétně asociativní pole. 619 00:29:33,390 --> 00:29:35,700 A to sice syntax je trochu funky, 620 00:29:35,700 --> 00:29:38,860 ale to je jen kolem v jednom páru klíčů hodnoty. 621 00:29:38,860 --> 00:29:43,530 Klíčem k úspěchu je, cituji konec citátu titul, a je hodnota CS50. 622 00:29:43,530 --> 00:29:46,220 >> Pokud bychom to udělal v C, to by mohlo místo toho 623 00:29:46,220 --> 00:29:49,400 vypadají spíše jako to, jen citovat konec citátu CS50-- 624 00:29:49,400 --> 00:29:52,460 nebo ve skutečnosti by to bylo kudrnaté šle, nebo něco podobného, ​​že v C, 625 00:29:52,460 --> 00:29:55,580 kde klíč je nula, a hodnota je CS50. 626 00:29:55,580 --> 00:29:59,840 Ale opět, v PHP, přestože syntax je opět trochu divný, 627 00:29:59,840 --> 00:30:02,860 to vám umožní předat slova namísto čísla 628 00:30:02,860 --> 00:30:05,120 spojovat klíčů s hodnotami. 629 00:30:05,120 --> 00:30:06,390 >> Takže co to všechno znamená? 630 00:30:06,390 --> 00:30:09,750 Pokud bych jít do helpers.php, Podívejme se na tuto funkci. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, spíše renderHeader je můj funkce, 632 00:30:13,620 --> 00:30:16,220 a vím, že proto, že vidím, Funkce klíčové slovo zde. 633 00:30:16,220 --> 00:30:19,450 To je nová z C- to zjevně bere argument s názvem data-- 634 00:30:19,450 --> 00:30:22,400 ale já jsem mohl nazval nic, ale volal jsem to údaje, 635 00:30:22,400 --> 00:30:25,090 stačí, aby se trochu clean-- a stačí se hádat, a to zejména 636 00:30:25,090 --> 00:30:28,173 pokud jste naprogramován v některých jiných vyšší úroveň jazyka předtím, něco 637 00:30:28,173 --> 00:30:29,820 nad C, koncepčně. 638 00:30:29,820 --> 00:30:33,820 >> Co rovné otevřený držák hranatou závorku pravděpodobně znamená? 639 00:30:33,820 --> 00:30:35,540 Nebo co to může znamenat? 640 00:30:35,540 --> 00:30:39,660 Už jsme neviděli to v C. Jo? 641 00:30:39,660 --> 00:30:40,480 >> Prázdné pole. 642 00:30:40,480 --> 00:30:45,440 Konkrétně to znamená, že v případě, Uživatel nevolá renderHeader 643 00:30:45,440 --> 00:30:49,340 s argumentem, já jsem stále bude mít argument s názvem dat, 644 00:30:49,340 --> 00:30:52,327 ale jeho výchozí hodnota je bude prázdné pole. 645 00:30:52,327 --> 00:30:53,660 Takže je to jen hezké pohodlí. 646 00:30:53,660 --> 00:30:56,493 Já nemusím křičet na uživatele, nebo říkat jste použili můj funkce špatně. 647 00:30:56,493 --> 00:30:59,849 Já si jen dát uživateli výchozí hodnota, pokud je mi nijak zvlášť nezajímá. 648 00:30:59,849 --> 00:31:01,890 Nyní je tato funkce, já jsem bude mávat své ruce na. 649 00:31:01,890 --> 00:31:07,620 Ale tato funkce umožňuje extrakt nám předat tyto proměnné v datech 650 00:31:07,620 --> 00:31:10,360 do header.php následujícím způsobem. 651 00:31:10,360 --> 00:31:13,100 A to je poslední kus, Myslím si, funky syntaxe. 652 00:31:13,100 --> 00:31:15,860 Tady je můj nový verze z header.php-- to 653 00:31:15,860 --> 00:31:20,140 říkával, a to doslova, otevřený držák titul CS50, a že to bylo. 654 00:31:20,140 --> 00:31:21,766 A to samé pro H1. 655 00:31:21,766 --> 00:31:24,310 >> Teď to prý říká, že něco docela funky. 656 00:31:24,310 --> 00:31:28,030 A dovolte mi, abych toto zjednodušení na chvíli takto. 657 00:31:28,030 --> 00:31:31,020 To je to, co jsem změnil svůj název, aby byl. 658 00:31:31,020 --> 00:31:35,140 Nicméně, je to už trochu ošklivý neustále otevřené závorky s PHP, 659 00:31:35,140 --> 00:31:36,610 a pak použijte funkci tisku. 660 00:31:36,610 --> 00:31:40,810 Ukazuje se, že PHP má zkratku zápis pro to, které je jen 661 00:31:40,810 --> 00:31:45,050 rovnítko, což je technicky Funkce tzv echo místo tisku, 662 00:31:45,050 --> 00:31:46,800 ale je to totéž, efektivně. 663 00:31:46,800 --> 00:31:48,440 >> To jen vypadá lépe. 664 00:31:48,440 --> 00:31:50,510 Je to jen syntaktickou cukr, chcete-li, 665 00:31:50,510 --> 00:31:52,260 že dělá můj kód vypadat trochu lépe. 666 00:31:52,260 --> 00:31:54,010 Ale ukazuje se, a uvidíme to znovu 667 00:31:54,010 --> 00:31:57,420 netrvalo dlouho, musíme nazývat protivně dlouho volání funkce 668 00:31:57,420 --> 00:32:00,582 Speciální znaky v HTML PHP, protože se ukázalo, 669 00:32:00,582 --> 00:32:02,790 tam jsou některé vstupy že uživatel by mohla poskytnout nám, 670 00:32:02,790 --> 00:32:05,160 nebo že uživatelé mohou dát nám, které se chystáte zlomit naše stránky. 671 00:32:05,160 --> 00:32:07,035 Ale uvidíme, že příští týden s JavaScript. 672 00:32:07,035 --> 00:32:10,740 Ale teď, jen vím, že tento soubor, headers.php, jednoduše 673 00:32:10,740 --> 00:32:13,040 má titul, který I prošel v roce, to dělat 674 00:32:13,040 --> 00:32:17,380 jistý, že je bezpečné pro vstřikování do pásu strana, a to vyplivne jako můj titul 675 00:32:17,380 --> 00:32:18,640 a jako můj H1. 676 00:32:18,640 --> 00:32:24,440 Takže když jsem se jít do této verze nyní, Všimněte si, že přednášky má jeho titul zpátky, 677 00:32:24,440 --> 00:32:28,630 týden zero má svůj název zpět, a opravdu, HTML jsem generování 678 00:32:28,630 --> 00:32:32,110 je shodný s co můj první verzi was-- s výjimkou pro mé bílými znaky, 679 00:32:32,110 --> 00:32:35,150 protože jsem začal formátování můj kód trochu jinak. 680 00:32:35,150 --> 00:32:38,082 Ale já jsem generované všechny kód mi záleží. 681 00:32:38,082 --> 00:32:39,790 Dovolte mi tedy pozastavit jen na chvíli a vidět 682 00:32:39,790 --> 00:32:42,200 pokud tam je nějaké otázky nebo zmateností jsem vytvořil. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Dobře, tak se pojďme otočit trochu těžší zde 685 00:32:48,150 --> 00:32:51,500 aby zjistil, jestli tam je příležitost pro zlepšení. 686 00:32:51,500 --> 00:32:56,130 Helpers.php také měl toto funkce, tzv renderFooter. 687 00:32:56,130 --> 00:32:59,652 A co je pozoruhodné, o renderHeader, a renderFooter? 688 00:32:59,652 --> 00:33:02,610 A opět, pro dnešní účely, know že funkce extrakt je jen 689 00:33:02,610 --> 00:33:08,280 můj způsob předávání argumentů do header.php a footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Litovat? 692 00:33:11,780 --> 00:33:13,056 >> Diváků: [Neslyšitelné] 693 00:33:13,056 --> 00:33:15,180 DAVID Malan: Jo, jen jsem změně vyžadují řádek. 694 00:33:15,180 --> 00:33:19,410 Takže doslova, já jsem spáchal hřích kopírování a vkládání, přesto znovu. 695 00:33:19,410 --> 00:33:21,920 Není to obrovské množství linek, ale když přijde on-- 696 00:33:21,920 --> 00:33:25,220 když jsem kopírování a vkládání vše stačí změnit jednu malou slovo, 697 00:33:25,220 --> 00:33:28,610 a jedna malá slovo, které Alan body ven je zápatí tady oproti záhlaví zde. 698 00:33:28,610 --> 00:33:30,670 Jinak je vše totožné, s výjimkou, 699 00:33:30,670 --> 00:33:32,180 Samozřejmě, jména funkci má. 700 00:33:32,180 --> 00:33:33,690 Takže to, co bychom mohli dělat lépe? 701 00:33:33,690 --> 00:33:39,810 >> No dovolte mi, abych otevřít tuto verzi tady, přičemž v helpers.php, 702 00:33:39,810 --> 00:33:42,300 proč ne já jen získat málo chytřejší o tom? 703 00:33:42,300 --> 00:33:46,410 Napište poněkud složitější kód, ale říkají to činí? 704 00:33:46,410 --> 00:33:48,470 Tak co jsem to zásadně změnilo? 705 00:33:48,470 --> 00:33:51,770 >> To trvá argument now-- dva argumenty, data stále. 706 00:33:51,770 --> 00:33:54,444 A co pak je první název pravděpodobně se používá pro, 707 00:33:54,444 --> 00:33:55,860 na základě toho, co čtete tady? 708 00:33:55,860 --> 00:33:58,452 I když některé z syntaxe je stále ještě nový. 709 00:33:58,452 --> 00:33:59,660 Co je znak dolaru šablona? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Litovat? 712 00:34:03,016 --> 00:34:03,710 >> Diváků: záhlaví nebo zápatí. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Malan: záhlaví nebo zápatí. 714 00:34:04,510 --> 00:34:07,134 Takže se zdá, jsem se rozhodl, že v případě, jediná věc, která se mění 715 00:34:07,134 --> 00:34:10,159 je to, co chci, šablona na print-- a šablony 716 00:34:10,159 --> 00:34:13,100 Mám na mysli to je plán pro kód, který chci výstup, 717 00:34:13,100 --> 00:34:16,350 ale chci se připojit v některých values-- takže když je to jen záhlaví 718 00:34:16,350 --> 00:34:20,440 nebo zápatí, proč ne já parametrizaci to a zavolejte znak argumentem dolaru 719 00:34:20,440 --> 00:34:21,409 šablona? 720 00:34:21,409 --> 00:34:26,250 A pak se to funky syntaxe mi umožňuje pro vytvoření cesty v proměnné sem. 721 00:34:26,250 --> 00:34:28,030 >> Takže znak dolaru cesta je variabilní. 722 00:34:28,030 --> 00:34:31,120 To, co dělá tuto syntaxi ano, pokud jste obeznámeni? 723 00:34:31,120 --> 00:34:32,512 To jo? 724 00:34:32,512 --> 00:34:34,065 >> Diváků: [Neslyšitelné] 725 00:34:34,065 --> 00:34:34,940 DAVID Malan: Přesně tak. 726 00:34:34,940 --> 00:34:37,600 Pokud je šablona je, cituji konec citátu, záhlaví, nebo pokud šablona je, 727 00:34:37,600 --> 00:34:41,170 quote konec citátu, zápatí, že linka že jsem se zvýrazní, linka osm, 728 00:34:41,170 --> 00:34:46,330 je prostě přičemž toto jméno, jako je záhlaví, a zřetězení jej bodovým PHP. 729 00:34:46,330 --> 00:34:49,750 Takže jsme neměli tento operátor v C. Tento operátor tečka je 730 00:34:49,750 --> 00:34:54,520 úžasná věc v PHP--, pokud jste obeznámeni s JavaScript nebo Java, 731 00:34:54,520 --> 00:34:56,949 můžete použít tlačítka plus přihlásit dělat zřetězení. 732 00:34:56,949 --> 00:34:59,974 >> V jazyce C, je to bolest v neck-- a já jsem moc líto, v p-set šest, 733 00:34:59,974 --> 00:35:02,390 budete muset udělat tohle-- to je bolest v krku 734 00:35:02,390 --> 00:35:03,930 zřetězit řetězce. 735 00:35:03,930 --> 00:35:04,670 Proč? 736 00:35:04,670 --> 00:35:06,580 No, protože pokud máte řetězec, který je tak dlouho, 737 00:35:06,580 --> 00:35:09,538 a jiný řetězec, který je tak dlouho, můžete nejen připojit dohromady. 738 00:35:09,538 --> 00:35:11,070 Co místo toho muset udělat v C? 739 00:35:11,070 --> 00:35:11,680 To jo? 740 00:35:11,680 --> 00:35:12,380 >> Diváků: [Neslyšitelné] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Malan: Musíte malloc paměť, nebo použít pole v zásobníku. 742 00:35:15,090 --> 00:35:17,214 A skutečně se aby to pole dostatečně velká 743 00:35:17,214 --> 00:35:20,940 aby se vešly to a to, plus zpětné lomítko nula. 744 00:35:20,940 --> 00:35:24,994 Pak zřetězit dohromady s použitím míchat kočku nebo ručně pomocí smyčky for, 745 00:35:24,994 --> 00:35:26,160 nebo libovolný počet technik. 746 00:35:26,160 --> 00:35:27,760 A my vám ukázat pár v p-set šest. 747 00:35:27,760 --> 00:35:29,080 >> Je to bolest v krku. 748 00:35:29,080 --> 00:35:34,190 A to je skutečně to, co mám na mysli o to proti tohle-- jako je C ve srovnání s PHP. 749 00:35:34,190 --> 00:35:36,870 Můžete jen získat tak mnohem více funkcionalita zdarma, 750 00:35:36,870 --> 00:35:39,030 takže se můžete soustředit, v ideálním případě, na zábavu 751 00:35:39,030 --> 00:35:41,190 část kódování se projekt, který chcete vyřešit, 752 00:35:41,190 --> 00:35:43,190 spíše než nízká úroveň detailů. 753 00:35:43,190 --> 00:35:49,840 >> Takže to jen vytváří header.php nebo footer.php založená na který z nich mám nazvat. 754 00:35:49,840 --> 00:35:52,280 A skutečně, když jdu do index.php, oznámení 755 00:35:52,280 --> 00:35:56,230 všechno, co se changed-- Místo volání vykreslení záhlaví nebo zápatí render, 756 00:35:56,230 --> 00:36:00,230 Volám činí, popřípadě s využitím název šablony, kterou chci dělat. 757 00:36:00,230 --> 00:36:02,370 A uvidíte i to, v problému set sedm, 758 00:36:02,370 --> 00:36:05,530 v němž bychom vám umožní použít stejná funkce, aby se svazky 759 00:36:05,530 --> 00:36:07,550 a svazky různých webových stránkách. 760 00:36:07,550 --> 00:36:10,570 >> Takže spíše než bydlí příliš více na ty details-- 761 00:36:10,570 --> 00:36:13,210 který uvidíte opět v Problém set sedmé pojďme se podívat 762 00:36:13,210 --> 00:36:16,850 na nyní začátku roztoku k více zajímavý problém. 763 00:36:16,850 --> 00:36:19,310 Dosud nic máme udělal má uložených dat. 764 00:36:19,310 --> 00:36:22,920 Ve skutečnosti, jediný čas, který jsme kdy uložili něco, co jsme udělali v této třídě 765 00:36:22,920 --> 00:36:31,030 je, když jsme měli velmi jednoduchou ukázku chvíli zpět, přičemž jsme použili vstupně-výstupní soubor v jazyce C, 766 00:36:31,030 --> 00:36:34,520 a myslím, že jsem napsal v mém jménu, a Hannah jméno, a Mariina jméno, 767 00:36:34,520 --> 00:36:37,610 nebo možná Andyho jméno, a pak jsme uložili ve formátu CSV file-- 768 00:36:37,610 --> 00:36:39,430 oddělené čárkou hodnoty souboru. 769 00:36:39,430 --> 00:36:43,530 >> A jsme fopen-- myslím, jsme použili fprintf pokud si vzpomínám, 770 00:36:43,530 --> 00:36:44,910 a uložili jsme soubor. 771 00:36:44,910 --> 00:36:46,920 Nyní, že je nejjednodušší forma databáze. 772 00:36:46,920 --> 00:36:50,230 Chcete-li vytvořit webové stránky pro Program Frosh IM, přičemž prváci 773 00:36:50,230 --> 00:36:53,390 můžete zaregistrovat na sport, v ideálním případě vás chcete udělat něco s těmito daty. 774 00:36:53,390 --> 00:36:55,370 Minulý týden jsme neudělali nic s data-- jsme právě řekli, 775 00:36:55,370 --> 00:36:56,661 jste registrováni, opravdu ne. 776 00:36:56,661 --> 00:36:58,950 Nebo možná jsem e-mailem Proctor, a bylo to. 777 00:36:58,950 --> 00:37:02,110 >> Ale bylo by hezké, kdyby to šlo dát, že Proctor souboru ve formátu CSV, 778 00:37:02,110 --> 00:37:03,340 jako souboru aplikace Excel. 779 00:37:03,340 --> 00:37:05,090 Nebo ještě lépe, bylo by to bylo hezké, kdybych mohl 780 00:37:05,090 --> 00:37:08,830 dal jména těchto uživatelů a koleji jména a všechny, které 781 00:37:08,830 --> 00:37:11,740 do databáze, která jen žije na věky, 782 00:37:11,740 --> 00:37:13,530 dokud vybrat smazat data. 783 00:37:13,530 --> 00:37:15,645 Databáze, která umožňuje mi na dotaz informace. 784 00:37:15,645 --> 00:37:18,070 A opravdu, že to, co je databáze. 785 00:37:18,070 --> 00:37:20,470 >> Představujeme dnes, a Příští týden také technologie 786 00:37:20,470 --> 00:37:25,020 volal SQL-- strukturovaného dotazu Jazyk, který je jiný jazyk. 787 00:37:25,020 --> 00:37:28,750 Je to v podstatě programování jazyka, ale pro databáze. 788 00:37:28,750 --> 00:37:31,760 A databáze pro tuto chvíli, jen myslet jako super efektní verzi 789 00:37:31,760 --> 00:37:35,710 Microsoft Excel nebo Google Tabulkami nebo čísla Apple. 790 00:37:35,710 --> 00:37:39,950 Je to obecně program, který umožňuje ukládat spoustu dat 791 00:37:39,950 --> 00:37:43,960 v řadách a sloupcích, zcela jako byste mohli v aplikaci Excel. 792 00:37:43,960 --> 00:37:47,100 >> Ale co je hezké, zejména v případě, nejsme výborný obeznámeni s aplikací Excel, 793 00:37:47,100 --> 00:37:52,040 co SQL vám umožní udělat, je to dotaz Informace o psaní řádků kódu 794 00:37:52,040 --> 00:37:55,220 kde je to možné, i když vaše Databáze má milion řádků v něm, 795 00:37:55,220 --> 00:37:57,190 můžete najít věci, super rychlý. 796 00:37:57,190 --> 00:37:59,950 Ve skutečnosti, Excel je zvláště špatné velkých datových souborů. 797 00:37:59,950 --> 00:38:02,460 A ve skutečnosti, až na pár Před lety, ukázalo se, 798 00:38:02,460 --> 00:38:08,890 Excel by umožnila pouze ukládat až 65535 řady data--, které 799 00:38:08,890 --> 00:38:12,020 zní jako hodně, ale u čas jsem byl postgraduální student, 800 00:38:12,020 --> 00:38:14,920 a Pamatuji si zakopl to proto, že jsem byl generování 801 00:38:14,920 --> 00:38:17,900 CSV soubory pro svého výzkumu a já Chtěl, aby je rychle analyzovat 802 00:38:17,900 --> 00:38:19,530 pouhým otevřením v aplikaci Excel. 803 00:38:19,530 --> 00:38:23,730 Samozřejmě, můj počítač právě havaroval, proto, že jsem měl více než 65.000 řádků. 804 00:38:23,730 --> 00:38:27,210 >> Ale kampak asi 65.535 pochází? 805 00:38:27,210 --> 00:38:29,670 Co to dělá Microsoft, podle všeho? 806 00:38:29,670 --> 00:38:32,430 Pokud jste dobrý se svými pravomocemi dvou? 807 00:38:32,430 --> 00:38:37,160 Jo, oni byli za použití 16-bit hodnota reprezentovat číslo řádku. 808 00:38:37,160 --> 00:38:41,310 A za druhé až 16 je 65,536-- minus jedna, protože pokud budete 809 00:38:41,310 --> 00:38:45,414 nulový index znamená, že byl většina počet řádků jsem mohl mít. 810 00:38:45,414 --> 00:38:46,830 A to byl jen rozhodnutí o designu. 811 00:38:46,830 --> 00:38:52,760 Uložením 16 bitů, oni mě omezen na 16.000 řádků namísto 4 miliardy, 812 00:38:52,760 --> 00:38:54,322 které jsem mohl mít v ideálním případě. 813 00:38:54,322 --> 00:38:57,030 Ale teď, budeme zavést to více v internetovém kontextu. 814 00:38:57,030 --> 00:39:00,390 A co je hezké o SQL je, že i i když je to dost silný a dost 815 00:39:00,390 --> 00:39:04,050 sofistikovaný, je to opravdu vaří až na čtyři klíčové operace, čtyři 816 00:39:04,050 --> 00:39:08,060 klíčové funkce, pokud will-- Select, pro získávání dat, vyhledávání 817 00:39:08,060 --> 00:39:12,510 pro data; odstranit nebo mazání dat; vložka pro přidávání řádků do databáze; 818 00:39:12,510 --> 00:39:13,410 a aktualizace. 819 00:39:13,410 --> 00:39:17,010 Takže pokud jste někdy používali Google Tabulky, Apple, Microsoft Numbers 820 00:39:17,010 --> 00:39:19,310 Excel, jste popraven, s největší pravděpodobností, vše 821 00:39:19,310 --> 00:39:22,530 z těchto operací jako lidské strany jen pomocí klávesnice a mouse-- 822 00:39:22,530 --> 00:39:26,050 vkládání dat, vočima zvolte nebo vyhledávat data, 823 00:39:26,050 --> 00:39:28,360 nebo aktualizovat údaje či odstraňovat data. 824 00:39:28,360 --> 00:39:29,870 >> Takže co to znamená? 825 00:39:29,870 --> 00:39:34,300 Dobře, předinstalované v CS50 IDE je program s názvem MySQL. 826 00:39:34,300 --> 00:39:37,050 Je to zdarma, open-source databáze, která je super populární. 827 00:39:37,050 --> 00:39:40,590 Facebook, například, používá to, aby to den, mimo jiné nástroje, které používají. 828 00:39:40,590 --> 00:39:44,300 A spousta velmi oblíbené webové stránky používat to z velké části proto, že je to rychlé, 829 00:39:44,300 --> 00:39:45,230 a protože je to zdarma. 830 00:39:45,230 --> 00:39:46,820 I když jistě existují alternativy. 831 00:39:46,820 --> 00:39:49,580 A někteří z vás možná fušovat s alternativy pro závěrečných prací. 832 00:39:49,580 --> 00:39:55,330 >> Jedná se o snímek obrazovky, zatím, z webový nástroj s názvem phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Je to náhoda, že Tento webový nástroj je také 834 00:39:58,260 --> 00:40:01,720 napsaný v jazyce, PHP, ale co to znamená dělat 835 00:40:01,720 --> 00:40:04,620 Je nám webová interface do databáze. 836 00:40:04,620 --> 00:40:07,180 Vzhledem k tomu, MySQL je obvykle něco, vás historicky, 837 00:40:07,180 --> 00:40:08,770 by v interakci s pouze s příkazového řádku. 838 00:40:08,770 --> 00:40:10,811 A to by bylo super nepříjemné a Arcane mít 839 00:40:10,811 --> 00:40:14,487 zadejte příkazy textové vyberte Údaje, vložit data, a mazat data. 840 00:40:14,487 --> 00:40:16,820 Takže někteří lidé na internetu napsal program, internetový 841 00:40:16,820 --> 00:40:18,900 že dejte nám zvládnout data v naší databázi. 842 00:40:18,900 --> 00:40:23,040 Je to jako dvojitým kliknutím na Excel, a běží její webové verze a. 843 00:40:23,040 --> 00:40:26,370 >> A co budete používat to pro nakonec příští týden, a to v p-set šest, 844 00:40:26,370 --> 00:40:28,680 ale je vybudovat něco, co volal CS50 Finance, který 845 00:40:28,680 --> 00:40:32,630 bude mít databázi Uživatelé, s uživatelských jmen a hesel, 846 00:40:32,630 --> 00:40:34,860 Dolar částky, které mají ve svých bankovních účtech. 847 00:40:34,860 --> 00:40:37,280 Je to bude něco, co použít k uložení 848 00:40:37,280 --> 00:40:39,910 symboly a množství populací, které uživatelé 849 00:40:39,910 --> 00:40:42,567 si koupil za použití virtuální dolarů, které vám dám jim. 850 00:40:42,567 --> 00:40:44,900 A to bude umožnit uživatelům registrovat pro vaše stránky, 851 00:40:44,900 --> 00:40:47,190 takže i vašich přátel mohou naladit na vašich webových stránkách 852 00:40:47,190 --> 00:40:49,360 a vlastně registrovat, přihlášení a pohrajte 853 00:40:49,360 --> 00:40:52,807 a pokusit se najít chybu v kódu, a pokusit se najít chyby na své webové stránky. 854 00:40:52,807 --> 00:40:55,390 A oni si prostě zaregistrovat přidávání se, účinně, 855 00:40:55,390 --> 00:40:58,120 pomocí kódu, píšete do databáze. 856 00:40:58,120 --> 00:41:02,470 >> Například, to je rychlý obrazovky z toho, co je databáze by mohla vypadat. 857 00:41:02,470 --> 00:41:05,190 To bylo od jednoho z loňské solutions-- 858 00:41:05,190 --> 00:41:07,760 to je jako mini Excel souboru, uložené v naší databázi, 859 00:41:07,760 --> 00:41:09,950 uložené v tomto software nazvaný MySQL. 860 00:41:09,950 --> 00:41:13,260 Na levé straně, jsem zjevně vzhledem k tomu, každému uživateli jedinečné číslo. 861 00:41:13,260 --> 00:41:16,200 Ve druhém sloupci, jsem dal každý uživatel name-- můj vlastní 862 00:41:16,200 --> 00:41:16,880 mezi nimi. 863 00:41:16,880 --> 00:41:21,430 A na pravé straně, Dal jsem jim hash. 864 00:41:21,430 --> 00:41:26,760 >> Nyní je to vlastně heslo, ale to není prostý text hesla. 865 00:41:26,760 --> 00:41:30,160 Je to šifrované heslo, pokud budete, nebo hash hesla. 866 00:41:30,160 --> 00:41:32,000 Což se vrátíme do zanedlouho. 867 00:41:32,000 --> 00:41:34,340 >> Ale pokud jste někdy četl článek o tom, jak 868 00:41:34,340 --> 00:41:37,950 vaše heslo na nějaké bance nebo některé webová stránka mohla být ohrožena, 869 00:41:37,950 --> 00:41:39,630 to může obecně znamenat jednu ze dvou věcí. 870 00:41:39,630 --> 00:41:42,780 Tak to je jen výňatek ze šesti uživatelů. 871 00:41:42,780 --> 00:41:45,460 Všichni z vás nyní může přijít out přes hacking nebo praskliny 872 00:41:45,460 --> 00:41:47,690 co hesla našich šest lidí jsou. 873 00:41:47,690 --> 00:41:49,720 Ale pokud jste někdy dostali výstraha nebo omluva 874 00:41:49,720 --> 00:41:52,803 od společnosti nebo webové stránky řeči, Omlouvám se, hacker vloupal do naší databáze, 875 00:41:52,803 --> 00:41:56,360 asi byste měli změnit svůj heslo, co by to znamenalo? 876 00:41:56,360 --> 00:41:59,670 >> No, jeden mohl znamenat, že společnost byla více pitomý, 877 00:41:59,670 --> 00:42:03,630 a byl uložením hesla ve sloupci, jako je tento, nezašifrované. 878 00:42:03,630 --> 00:42:05,840 Což znamená, že protivníka, který ukradl databáze, 879 00:42:05,840 --> 00:42:07,440 doslova zná vaše Uživatelské jméno a heslo. 880 00:42:07,440 --> 00:42:08,960 To je ten nejhorší možný scénář. 881 00:42:08,960 --> 00:42:11,710 A jak uvidíte v p-set sedm, tak snadno, aby se zabránilo. 882 00:42:11,710 --> 00:42:15,624 Neexistuje absolutně žádná omluva pro to forma hlouposti v dnešním Internetu. 883 00:42:15,624 --> 00:42:18,540 Two-- a najdeme nějaké články svědčit skutečnost, že tato stále 884 00:42:18,540 --> 00:42:21,710 se stane, nonetheless-- dva, možná protivník 885 00:42:21,710 --> 00:42:23,840 ukradl tuto verzi databáze. 886 00:42:23,840 --> 00:42:27,110 Což je stále ještě trochu špatně, protože teď vědí, že mám šest zákazníky, 887 00:42:27,110 --> 00:42:29,270 Vím, že uživatelská jména z těchto šesti zákazníků, 888 00:42:29,270 --> 00:42:32,910 a já vím, že šifrované verze nebo hashed verze, 889 00:42:32,910 --> 00:42:34,340 hesel těchto šesti zákazníků. 890 00:42:34,340 --> 00:42:37,010 Ale každý z vás, kteří by mohlo udělal [? Hacker 2?] 891 00:42:37,010 --> 00:42:41,150 kde jste popraskané hesel, nebo vzal Podívejte se na této verze problému 892 00:42:41,150 --> 00:42:46,280 set, proč je to ještě trochu znepokojující v případě, že protivník zná vaše hash 893 00:42:46,280 --> 00:42:47,435 hesla? 894 00:42:47,435 --> 00:42:49,732 >> Diváků: Vzhledem k tomu, co mohli zadejte celý slovník 895 00:42:49,732 --> 00:42:50,690 do hash funkce. 896 00:42:50,690 --> 00:42:54,520 A pokud vaše heslo je slovník Slovo, [? oni mohou jen match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Malan: Přesně tak, protivník můžete jen psát kód, jako někteří z vás 898 00:42:57,640 --> 00:43:00,526 udělal pro [? Hacker?] 2, kdy jste iteraci 899 00:43:00,526 --> 00:43:03,400 všechna slova ve slovníku, nebo všechny možné kombinace A 900 00:43:03,400 --> 00:43:06,610 až Z a jedna až nine-- který zní jako hodně, a to je. 901 00:43:06,610 --> 00:43:08,361 Ale pro počítač, je to zatraceně rychle. 902 00:43:08,361 --> 00:43:10,610 A ve skutečnosti, že bylo bod [? Hacker 2,?] Byl 903 00:43:10,610 --> 00:43:12,540 aby se věci, které doslova vypadá to, 904 00:43:12,540 --> 00:43:14,900 a zpětně analyzovat co to vlastně bylo. 905 00:43:14,900 --> 00:43:17,270 >> Takže se podíváme na to, jak můžeme uložit tento efektivněji. 906 00:43:17,270 --> 00:43:20,210 Ukázalo se, naštěstí v MySQL, tam jsou bude datové typy. 907 00:43:20,210 --> 00:43:22,800 A jeden z legrace částí o navrhování databází, abych byl upřímný, 908 00:43:22,800 --> 00:43:25,810 je vlastně rozhodování pro sebe Jak byste měli reprezentovat data? 909 00:43:25,810 --> 00:43:29,630 Pokud byste představují telefonní číslo as int, jako velký číslo nebo dlouhé? 910 00:43:29,630 --> 00:43:31,630 Nebo si skutečně udělat jako sled znaků? 911 00:43:31,630 --> 00:43:33,780 A tam může být velmi netriviální důsledky tohoto. 912 00:43:33,780 --> 00:43:36,714 >> Ve skutečnosti jeden z Nejdříve, zábava Germane příběhy 913 00:43:36,714 --> 00:43:39,880 je, když Mark Zuckerberg budoval Facebook, to bylo původně psáno v, 914 00:43:39,880 --> 00:43:42,300 a přesto je z velké části napsán v PHP. 915 00:43:42,300 --> 00:43:45,400 A jeden z největších problémů oni stáli na počátku byla měřítka. 916 00:43:45,400 --> 00:43:48,820 Když se přidával do školy poté, co Škola po škole, pokud je mi známo, 917 00:43:48,820 --> 00:43:51,639 jeden z originálních řešení byl v podstatě kopírovat a vložit 918 00:43:51,639 --> 00:43:53,430 některé z databází a některé z kódu, 919 00:43:53,430 --> 00:43:55,346 takže Harvard byl běžící na vlastní server 920 00:43:55,346 --> 00:43:56,995 a MIT běžel na vlastním serveru. 921 00:43:56,995 --> 00:43:59,120 A to byl důvod, proč, pro některé z vás, kdo by mohl připomenout, 922 00:43:59,120 --> 00:44:01,510 jste nemohli mít přátele v jiných sítích. 923 00:44:01,510 --> 00:44:05,050 >> Vy asi nemáte přátelům MIT nebo Harvard před 10 let nebo tak, 924 00:44:05,050 --> 00:44:07,467 ale vy jste nemohli span sítě pro částečně z tohoto důvodu. 925 00:44:07,467 --> 00:44:10,550 A jeden z největších výzev pro Mark a pro firmy, jako je Facebook 926 00:44:10,550 --> 00:44:13,460 je vlastně manipulaci stovky a tisíce a miliony 927 00:44:13,460 --> 00:44:14,460 žádostí za sekundu. 928 00:44:14,460 --> 00:44:16,501 Takže věci, začneme mluví o tento týden 929 00:44:16,501 --> 00:44:19,860 jsou opravdu bude relevantní k psaní dobrý software, a populárně 930 00:44:19,860 --> 00:44:23,040 úspěšné nástroje, které zvládne spoustu uživatelů. 931 00:44:23,040 --> 00:44:25,460 >> Takže budeme hovořit o věcech, jako je indexování a vyhledávání, 932 00:44:25,460 --> 00:44:26,910 ale že to je pro dnešek vše. 933 00:44:26,910 --> 00:44:28,780 Uvidíme se za více ve středu. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [MUSIC - "Seinfeld" téma] 936 00:44:33,902 --> 00:44:35,943 DAVID Malan: můžete, abyste to, a odečíst od ní. 937 00:44:35,943 --> 00:44:38,859 A nemusíte držet se některé předem stanovené množství paměti. 938 00:44:38,859 --> 00:44:40,580 No, co se, že bude jmenovat? 939 00:44:40,580 --> 00:44:42,369 >> Reproduktor 1: No, co se děje? 940 00:44:42,369 --> 00:44:43,535 SPEAKER 2: Co tím myslíš? 941 00:44:43,535 --> 00:44:44,451 Dává přednášku. 942 00:44:44,451 --> 00:44:47,650 DAVID Malan: A můžeme použít funkce volána malloc k memory-- 943 00:44:47,650 --> 00:44:50,050 >> Reproduktor 1: Proč se jeho paže v pohybu? 944 00:44:50,050 --> 00:44:52,450 >> SPEAKER 2: Dobře that's-- víte, že je to normální. 945 00:44:52,450 --> 00:44:57,162 Je to jako, že má jen velké klobásy visí tam. 946 00:44:57,162 --> 00:44:59,040 >> Reproduktor 1: To je normální? 947 00:44:59,040 --> 00:45:03,096 >> SPEAKER 2: Jo, myslím, že jsme jen předpokládat, on náhodně 948 00:45:03,096 --> 00:45:06,840 nahradil jeho deodorant s vteřinovým lepidlem. 949 00:45:06,840 --> 00:45:07,608