1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Prehrávanie 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čiatok týždňa osem. 5 00:00:13,350 --> 00:00:17,510 A sme tak nadšení privítať back, veľké prekvapenie, CS50 vlastné Ramon 6 00:00:17,510 --> 00:00:22,160 Galvan, rastúce senior, ktorý bol strávil posledných niekoľko mesiacov 7 00:00:22,160 --> 00:00:26,190 Od júla v Los Angeles, v Hollywoode, doslova pracujú na zbrusu nového televízora 8 00:00:26,190 --> 00:00:31,930 výstava s názvom Colony, tvorca, ktorý je vlastne Harvard kamenec sám. 9 00:00:31,930 --> 00:00:36,610 A tak sme veľmi radi, že vidieť debut v sieti USA tento rok v januári. 10 00:00:36,610 --> 00:00:40,370 Takže zostaňte naladení na to, a pre viac Ramon pre najbližších týždňoch. 11 00:00:40,370 --> 00:00:42,550 >> Vedieť hneď, že koniec je blízko. 12 00:00:42,550 --> 00:00:47,400 A čo to znamená je, že to nie je všetko, čo veľa zostalo z CS50, smutné. 13 00:00:47,400 --> 00:00:49,400 Máme len tri problém Sady left-- je tu 14 00:00:49,400 --> 00:00:52,510 Problém set six--, ktorý je v vaše ruky teraz alebo čoskoro budú, 15 00:00:52,510 --> 00:00:56,080 v priebehu tohtoročného week-- je určený na preklenutie naše svety príkazového riadku, kde 16 00:00:56,080 --> 00:00:59,450 sme strávili väčšinu času pomocou C, a svet webové programovanie. 17 00:00:59,450 --> 00:01:02,350 No, uvidíte veľa nápadov požičal si od príkazového riadku práce, 18 00:01:02,350 --> 00:01:04,560 ale aj veľa nových a zaujímavé nápady 19 00:01:04,560 --> 00:01:07,929 ktoré sa tiež bude Germaine pre mobilné aplikácie a pre technológie, 20 00:01:07,929 --> 00:01:10,470 všeobecnejšie, s ktorou chlapci sú všetci dobre poznáme v dnešnej dobe 21 00:01:10,470 --> 00:01:12,090 na notebooky a telefóny a podobne. 22 00:01:12,090 --> 00:01:15,220 >> Takže budete realizovať nie webové stránky, alebo webové stránky 23 00:01:15,220 --> 00:01:17,620 samy o sebe, ale o skutočný webový server. 24 00:01:17,620 --> 00:01:21,590 Budete písať zvyšok webového servera napísaný v C, ktorého cieľom v živote 25 00:01:21,590 --> 00:01:25,410 je prijímať požiadavky HTTP, ty virtuálne obálky sme stále hovoriť 26 00:01:25,410 --> 00:01:29,780 o, a vlastne reagujú buď Niektoré statické content-- ako bodka HTML 27 00:01:29,780 --> 00:01:32,310 súbor, alebo bodka JPEG alebo akýkoľvek iný počet súborov, 28 00:01:32,310 --> 00:01:37,070 alebo dokonca súbor PHP, kedy váš web Server sa bude vykladať, že PHP 29 00:01:37,070 --> 00:01:38,332 kód a vypľuť výsledky. 30 00:01:38,332 --> 00:01:40,540 Teraz sme pre vás pripravili docela dost rámca 31 00:01:40,540 --> 00:01:43,100 pre to-- skutočne Distribúcia kód problému 32 00:01:43,100 --> 00:01:47,496 set six je viac ako 1000 liniek dlho, je Mnoho z nich je komentáre, byť fair-- 33 00:01:47,496 --> 00:01:49,370 ale toto je v skutočnosti znamená, byť príležitosť 34 00:01:49,370 --> 00:01:52,570 dostať svoje špinavé ruky potápanie do pomerne veľkého projektu 35 00:01:52,570 --> 00:01:55,570 že máme veľmi konkrétne vytesané kusy pre vás, 36 00:01:55,570 --> 00:01:59,046 takže naozaj pri ukončení CS50 a vstúpiť do reálneho sveta programovania 37 00:01:59,046 --> 00:02:00,920 a chcú fušovať do ľubovoľný počet projektov, 38 00:02:00,920 --> 00:02:03,253 budete mať oveľa väčšie, pohodlie sťahovanie nejaký zdroj 39 00:02:03,253 --> 00:02:05,020 kód, niektoré open source projekt na webe, 40 00:02:05,020 --> 00:02:08,174 a potápanie v a robiť Zmeny, ktoré uznáte za vhodné. 41 00:02:08,174 --> 00:02:11,340 Problém set seven sa bude o vytvoriť vlastnú webovú aplikáciu 42 00:02:11,340 --> 00:02:14,140 ktorý berie dynamický vstup a vytvára dynamický výstup v podobe 43 00:02:14,140 --> 00:02:16,920 z etrade.com-ako webové stránky. 44 00:02:16,920 --> 00:02:20,800 A problém nastaviť osem sa zameria na doteraz iný jazyk, známy ako JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Medzitým, finálna Projekt je na obzore. 46 00:02:24,170 --> 00:02:26,800 Tzv pre-návrh je kvôli Odo dneška za týždeň. 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- podľa špecifikácie, ktorý je na CS50 je website-- 48 00:02:29,930 --> 00:02:33,260 je celkom neformálne príležitosť pre odoslať docela stručnou e-mail 49 00:02:33,260 --> 00:02:35,170 na svoje učenie kolegov len aby ho oboznámiť 50 00:02:35,170 --> 00:02:38,250 alebo jej o tom, čo si myslíš, aby použiť ho ako vŕbu. 51 00:02:38,250 --> 00:02:40,980 A majú zdravý rozum check-- či si myslíte 52 00:02:40,980 --> 00:02:43,210 o hryzenie off príliš moc alebo možno príliš málo, 53 00:02:43,210 --> 00:02:46,480 alebo možno nemáte tušenie, vôbec a chcú, aby sa zapojili do konverzácie. 54 00:02:46,480 --> 00:02:48,480 >> Potom je návrh a status hlásenia, 55 00:02:48,480 --> 00:02:51,860 tzv CS50 hackathon tu Cambridge pre Harvard a Yale študentov 56 00:02:51,860 --> 00:02:52,362 podobne. 57 00:02:52,362 --> 00:02:54,320 Záverečný projekt je Implementácie je odtiaľ. 58 00:02:54,320 --> 00:02:59,290 A potom CS50 veľtrh tu, v Cambridge, rovnako ako ďalšie v New Haven. 59 00:02:59,290 --> 00:03:02,500 Takže návrhu sa pozrieť na webové stránky pre tieto údaje. 60 00:03:02,500 --> 00:03:06,530 >> Ale viac vzrušujúce, taky, je možnosť dostať svoje špinavé ruky, 61 00:03:06,530 --> 00:03:09,350 a vaša myseľ otvorené celok banda tém a nástrojov 62 00:03:09,350 --> 00:03:12,920 a techniky, ktoré sú doplnkové core Osnova Course, 63 00:03:12,920 --> 00:03:14,810 ale napriek tomu súvisiace. 64 00:03:14,810 --> 00:03:18,400 A tiež nádherný odrazovým mostíkom do robí naozaj cool konečné projekty, ktoré 65 00:03:18,400 --> 00:03:22,020 idú ďaleko nad rámec materiálu, ktorý sme prebrali formálne problém nastaviť alebo v prednáške. 66 00:03:22,020 --> 00:03:24,446 Tak choďte na webové stránky CS50 pre celý zoznam seminárov. 67 00:03:24,446 --> 00:03:26,070 Ak ešte nemáte registrovať, je to v poriadku. 68 00:03:26,070 --> 00:03:29,860 Choďte do toho a zaregistrovať stále a budeme nadviazať s živým odkaz pre streamovanie, 69 00:03:29,860 --> 00:03:31,844 deň a čas je na webových stránkach. 70 00:03:31,844 --> 00:03:33,760 A všetko bude zaznamenávané a dať on-line 71 00:03:33,760 --> 00:03:35,800 keď nie je možné aby sa konkrétne dni a časy. 72 00:03:35,800 --> 00:03:39,380 >> Pokiaľ ide o to, čo je pred nami thereafter-- dobre, Samozrejme, je tu CS50 hackathon. 73 00:03:39,380 --> 00:03:43,560 Túto fotografiu, odvolanie, z týždňa nulovej prijatá okolo 4 AM jedného večera v minulých rokoch. 74 00:03:43,560 --> 00:03:46,900 CS50 veľtrh, ktorý sa znovu sa bude konať v oboch mestách. 75 00:03:46,900 --> 00:03:49,760 A potom, len sadiť semeno, aj keď sme ešte 76 00:03:49,760 --> 00:03:54,080 majú mesačne a ľavej časti semestra, pokiaľ by ste sa radi pripojili CS50 vlastné učenie 77 00:03:54,080 --> 00:03:56,770 personál, a chcete začať premýšľať o získanie CA, 78 00:03:56,770 --> 00:03:59,550 alebo výučby človek, viem, že Začneme hovoriť viac o tom 79 00:03:59,550 --> 00:04:00,630 Neskôr v tomto semestri. 80 00:04:00,630 --> 00:04:03,470 Ale tu na obrázku je väčšina z tohtoročného tímu. 81 00:04:03,470 --> 00:04:06,950 >> A tak, PHP-- a ja som bol tak smutný minulý týždeň, že [? Allysa?] Láskavo 82 00:04:06,950 --> 00:04:09,370 išiel do úsilia získania Americkí tieto nádherné rekvizity 83 00:04:09,370 --> 00:04:11,720 že som sa skončiť s použitím, tak to naozaj len pozrel trochu hlúpy 84 00:04:11,720 --> 00:04:15,160 že sme mali lopatu sedí tu všetko deň minulú stredu, a trochu lyžice. 85 00:04:15,160 --> 00:04:17,709 Ale toto bol môj metaforický spôsob, ako sa snaží maľovať 86 00:04:17,709 --> 00:04:21,600 obraz toho, prečo sme prechod z C na jazyk, ako je PHP. 87 00:04:21,600 --> 00:04:25,480 A to isté možno povedať o akejkoľvek počet languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 alebo zväzky others--, ale zatiaľ čo v C, napríklad, písanie programu v C 89 00:04:31,270 --> 00:04:34,050 môže byť ako obvykle pričom lyžicu, ako je tento 90 00:04:34,050 --> 00:04:36,770 a kopať dieru v krajiny, v piesku alebo hliny. 91 00:04:36,770 --> 00:04:39,770 PHP umožňuje robiť moc väčšie sústa z problému, 92 00:04:39,770 --> 00:04:42,842 písanie oveľa menej kódu použitím oveľa menšie nástroj, 93 00:04:42,842 --> 00:04:45,050 pretože tam je oveľa viac funkčnosť pieced v. 94 00:04:45,050 --> 00:04:47,633 >> Teraz, keď sme boli naozaj dramatický, budeme musieť niečo lopata 95 00:04:47,633 --> 00:04:48,760 tu, ale budiž. 96 00:04:48,760 --> 00:04:51,370 Medzitým, druhý metafora sme prišli s 97 00:04:51,370 --> 00:04:53,770 Je, samozrejme, mohol by ste používať niečo ako kľúč 98 00:04:53,770 --> 00:04:56,610 zatĺcť niečo ako klinec. 99 00:04:56,610 --> 00:04:58,980 Ale samozrejme, právo nástroj pre použitie sa deje 100 00:04:58,980 --> 00:05:01,360 byť ani tak jazyk nazvaný C- 101 00:05:01,360 --> 00:05:03,590 a teraz som jednoducho naštvaný [? Sanders ,?] Pravdepodobne, 102 00:05:03,590 --> 00:05:07,890 budeme napraviť tak later-- správnym nástrojom k často používajú 103 00:05:07,890 --> 00:05:09,640 sa nebude to najnižšia úroveň nástroj. 104 00:05:09,640 --> 00:05:13,720 A skutočne, C nie je jazyk, ktorý väčšina z vás sa vôbec bude používať, 105 00:05:13,720 --> 00:05:15,590 alebo by nutne znovu použiť. 106 00:05:15,590 --> 00:05:18,350 >> A v skutočnosti, trochu secret-- jediný čas 107 00:05:18,350 --> 00:05:23,160 Ja používam C sám je v podstate medzi Septembri a decembri každého pádu 108 00:05:23,160 --> 00:05:23,870 semester. 109 00:05:23,870 --> 00:05:25,790 A to preto, že sme použiť ho ako príležitosť 110 00:05:25,790 --> 00:05:27,852 naučiť základom programovania, 111 00:05:27,852 --> 00:05:29,810 a s ním počítačom veda, základy dát 112 00:05:29,810 --> 00:05:32,435 štruktúry, algoritmy a jako--, ale veľmi rýchlo sa budete 113 00:05:32,435 --> 00:05:35,010 vidieť, že syntax a myšlienky podkladových C 114 00:05:35,010 --> 00:05:37,530 sú tak nádherne prevoditeľný na modernejšie 115 00:05:37,530 --> 00:05:41,130 vyššej úrovne, ako sú jazyky PHP a Python a Perl a Java 116 00:05:41,130 --> 00:05:46,750 a Objective-C- v skutočnosti, nie toľko Objective-C-, ale Swift, tie novšie 117 00:05:46,750 --> 00:05:50,010 jazyky, ktoré mnohí z vás potom fušovať s vami záverečný projekt. 118 00:05:50,010 --> 00:05:55,070 >> Takže bez ďalších okolkov, poďme vlastne použiť PHP vyriešiť niektoré problémy. 119 00:05:55,070 --> 00:06:00,230 Pripomeňme, že na začiatku, posledný týždeň, používali sme len CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 sme napísali Dinky malý program že práve povedal, "Hello world". 121 00:06:02,990 --> 00:06:05,680 A potom som sa chytá v súbor s názvom hello.php. 122 00:06:05,680 --> 00:06:07,280 A potom som bežal tento príkaz. 123 00:06:07,280 --> 00:06:08,080 >> A prečo? 124 00:06:08,080 --> 00:06:09,900 V angličtine, čo sa to tu deje? 125 00:06:09,900 --> 00:06:12,760 Čo som robil, keď Bežal som tento príkaz? 126 00:06:12,760 --> 00:06:13,405 >> Jo? 127 00:06:13,405 --> 00:06:16,572 >> Divákov: Je tu nejaká funkcia PHP že číta to, čo sa in-- chápe, že. 128 00:06:16,572 --> 00:06:19,696 DAVID Malan: Dobrý, tam je nejaká funkcia PHP-- a nechaj ma byť konkrétnejší, 129 00:06:19,696 --> 00:06:21,810 existuje program s názvom PHP, tiež známy ako 130 00:06:21,810 --> 00:06:25,872 Interpret, ktorý chápe, Obsah hello.php, 131 00:06:25,872 --> 00:06:27,830 a interpretuje to zhora dole, zľava doprava, 132 00:06:27,830 --> 00:06:29,590 a robí to, čo tieto príkazy hovoria. 133 00:06:29,590 --> 00:06:33,320 Príkazy v hello.php, samozrejme, práve zdroj code-- funkcie 134 00:06:33,320 --> 00:06:35,750 a premenné a slučky a podobne, že my sami 135 00:06:35,750 --> 00:06:37,460 začala písať v PHP. 136 00:06:37,460 --> 00:06:40,240 >> Ale na rozdiel od C, čo je kompilované jazyk, 137 00:06:40,240 --> 00:06:42,810 PHP stačí písať, a spustite ho. 138 00:06:42,810 --> 00:06:46,420 Môžete preskočiť tento krok prostredníka premieňať to na núl a jednotiek, 139 00:06:46,420 --> 00:06:47,790 a potom v chode. 140 00:06:47,790 --> 00:06:50,510 A tak to, čo je hore o to? 141 00:06:50,510 --> 00:06:52,690 Prečo sme preskočením krok? 142 00:06:52,690 --> 00:06:55,238 Prečo viac moderných jazykov majú tendenciu tento krok preskočiť? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Aký bol prínos? 145 00:07:01,220 --> 00:07:02,080 >> Alebo len intuitívne? 146 00:07:02,080 --> 00:07:04,200 Aj keď máme nie Pred písaný veľa PHP, 147 00:07:04,200 --> 00:07:07,210 čo je prospešné o ne kompiláciu kódu si o tom myslíš? 148 00:07:07,210 --> 00:07:08,520 Nie? 149 00:07:08,520 --> 00:07:09,610 Nie je spáchanie? 150 00:07:09,610 --> 00:07:11,350 Poškriabaniu vašej hlave? 151 00:07:11,350 --> 00:07:12,614 Jo. 152 00:07:12,614 --> 00:07:13,600 >> Divákov: dynamickejšie. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Malan: Dynamickejší? 154 00:07:14,683 --> 00:07:16,032 Čo myslíš? 155 00:07:16,032 --> 00:07:17,000 >> Divákov: [Nepočuteľné] 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 vstupe, 158 00:07:22,390 --> 00:07:23,470 nemusíte kompilovať pri každom. 159 00:07:23,470 --> 00:07:24,990 A je to naozaj ako jednoduché, ako to, čo that-- 160 00:07:24,990 --> 00:07:26,990 je bod pokračovanie zostaviť svoj kód? 161 00:07:26,990 --> 00:07:29,480 To je len krok, ktorý je making-- to vyžaduje, 162 00:07:29,480 --> 00:07:31,900 Za posledných niekoľko týždne, dvakrát toľko krokov 163 00:07:31,900 --> 00:07:33,820 ako bolo práve bežiaci program. 164 00:07:33,820 --> 00:07:36,940 Bolo to užitočné vidieť, že vás uvidíte nejaké chybové hlášky a tak ďalej, 165 00:07:36,940 --> 00:07:38,720 ale je to stále len nepríjemný krok. 166 00:07:38,720 --> 00:07:41,810 >> A tak si uvedomil, programátori v priebehu času, prečo nie my 167 00:07:41,810 --> 00:07:45,327 začnite písať jazyky, ktoré nemajú Potrebujeme tu pomerne mechanické krok, 168 00:07:45,327 --> 00:07:47,160 takže stačí napísať váš kód a spustite ho. 169 00:07:47,160 --> 00:07:48,920 Ale čo bola cena že sme videli sme zaplatili 170 00:07:48,920 --> 00:07:50,910 minulý týždeň, s jedným konkrétnym prí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 [? Čo je?] Tlmočníci trochu pomalšie, 174 00:07:54,690 --> 00:07:57,330 v tom, že nuly a jednotky sú pekné a rýchlo pre počítač 175 00:07:57,330 --> 00:08:00,070 pochopiť, pretože Intel CPU, alebo čo to je, 176 00:08:00,070 --> 00:08:03,070 len chápe, čo sa deje na s týmito vzormi bitov. 177 00:08:03,070 --> 00:08:05,370 Vzhľadom k tomu, tlmočníka je program, ktorý naozaj 178 00:08:05,370 --> 00:08:07,980 musí prečítať zdroj ASCII kód, ktorý ste napísali, 179 00:08:07,980 --> 00:08:12,700 a previesť ju, aby som tak povedal, alebo zistiť, ako to nakoniec prevádza 180 00:08:12,700 --> 00:08:13,525 sa núl a jednotiek. 181 00:08:13,525 --> 00:08:15,650 Tak to jednoducho 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 Teraz, ak to urobíme tu, dovoľte mi, aby som choďte do toho a robiť príklad takto. 184 00:08:21,570 --> 00:08:26,610 Ak by som ísť sem, nový súbor, idem uložiť To je opäť hello.php. 185 00:08:26,610 --> 00:08:31,450 A teraz budem pokračovať a hovoria, "print hello world" - 186 00:08:31,450 --> 00:08:35,130 a pripomenúť, že môžem použiť tlač, vôbec sa mi nepáči musieť použiť print-F. A teraz tu dole, 187 00:08:35,130 --> 00:08:42,039 keď urobím PHP z hello.php, huh-- I Nezdá sa, že je už vyložili. 188 00:08:42,039 --> 00:08:43,412 Čo som urobil zle? 189 00:08:43,412 --> 00:08:44,710 >> Divákov: Šikmé náramky. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Malan: Jo, budete potrebovať že uhol držiak do top. 191 00:08:47,015 --> 00:08:49,390 Takže je to trochu nepríjemné, ale dostanete rýchlo na to zvyknete. 192 00:08:49,390 --> 00:08:53,500 Ak mám písať PHP kód, ja Všeobecne je potrebné povedať programu, 193 00:08:53,500 --> 00:08:56,950 alebo oznámiť interpret, hej PHP, prichádza nejaký PHP kód. 194 00:08:56,950 --> 00:09:00,440 A potom sa na správnu mieru, urobil by som to uzavrieť to nie je s to, ale skôr 195 00:09:00,440 --> 00:09:03,740 s len otázka uhla známky držiak, takže teraz tu dole, 196 00:09:03,740 --> 00:09:06,840 keď spustím to znova, teraz Aj získať požadovaný výsledok. 197 00:09:06,840 --> 00:09:09,820 >> Teraz poďme urobiť mierne optimalizácie, len preto, že ste to nevideli. 198 00:09:09,820 --> 00:09:14,040 To je tak trochu nepríjemné, že som musieť bežať PHP priestoru hello.php, 199 00:09:14,040 --> 00:09:16,060 pretože v minulosti som mohol len napísať dot lomítko 200 00:09:16,060 --> 00:09:17,560 názov programu, ktorý je celkom pekné. 201 00:09:17,560 --> 00:09:19,420 Je to trochu lepší užívateľský zážitok. 202 00:09:19,420 --> 00:09:24,160 >> Tak to dopadá, môžete to urobiť v PHP s following-- I 203 00:09:24,160 --> 00:09:28,780 možno použiť celkom záhadný zaklínadlo na vrchole tu, 204 00:09:28,780 --> 00:09:31,740 ktorý sa všeobecne nazýva shebang, pričom sa jedná o ostrý symbol, 205 00:09:31,740 --> 00:09:34,270 aby som tak povedal, je to rana alebo výkričník. 206 00:09:34,270 --> 00:09:38,490 A teraz je cesta k programu na typické systému Linux, ktorý 207 00:09:38,490 --> 00:09:41,500 sa nazýva prostredie, alebo env. 208 00:09:41,500 --> 00:09:43,920 A to line-- dlhý príbeh short-- linka človek len 209 00:09:43,920 --> 00:09:48,710 hovorí, hej počítač, nájsť PHP tlmočníka pre mňa v životnom prostredí, 210 00:09:48,710 --> 00:09:50,610 nájsť v pamäti, aby som tak povedal. 211 00:09:50,610 --> 00:09:54,130 >> A čo je príjemné teraz, je že keď pôjdem tu dole, 212 00:09:54,130 --> 00:09:57,750 Môžem robiť dot lomítko ahoj bodka php, nebo-- hmm. 213 00:09:57,750 --> 00:09:59,000 Prístup zamietnutý. 214 00:09:59,000 --> 00:10:02,350 No, uvidíte ešte viac z toho s problémom set sedem, ak ste 215 00:10:02,350 --> 00:10:04,060 tak ešte neurobili, s oprávneniami. 216 00:10:04,060 --> 00:10:06,510 Ukazuje sa, že musím na vykonanie tohto príkazu 217 00:10:06,510 --> 00:10:10,779 s názvom [? chamod?] pre zmenu mode-- A plus x hello.php. 218 00:10:10,779 --> 00:10:13,820 Tento dodatočný musím [nepočuteľných] krok, ktorý hovorí môj počítač, 219 00:10:13,820 --> 00:10:16,400 aby hello.php spustiteľný súbor. 220 00:10:16,400 --> 00:10:21,310 A teraz sledujte, čo happens-- bodku lomítko hello.php, to jednoducho beží. 221 00:10:21,310 --> 00:10:23,310 Nepotrebujem špecifikovať tlmočník ešte. 222 00:10:23,310 --> 00:10:26,680 A môžem si to ešte krajšie, napriek tomu, keď som premenovať túto vec. 223 00:10:26,680 --> 00:10:30,570 Keby som presunúť hello.php len Hello-- takže oznámenia v ľavom hornom rohu, 224 00:10:30,570 --> 00:10:32,860 názov programu je naozaj už len Ahoj. 225 00:10:32,860 --> 00:10:37,300 Teraz som si, aby to vyzeralo ako program C, aj keď je to napísané v PHP-- 226 00:10:37,300 --> 00:10:39,210 alebo úprimne povedané akékoľvek číslo iných jazykov. 227 00:10:39,210 --> 00:10:41,480 >> Takže marginálne vylepšenia, žiadna funkčná rozdiel. 228 00:10:41,480 --> 00:10:44,460 Ale je to len trochu kuriozita teraz, takže môžete písať programy 229 00:10:44,460 --> 00:10:48,989 v akomkoľvek jazyku, a užívateľ nie je musí vedieť, alebo jedno, čo to sú. 230 00:10:48,989 --> 00:10:51,030 Dobre, poďme sa pozrieť na viac presvedčivý príklad teraz 231 00:10:51,030 --> 00:10:52,850 že som rozdúchala s predstihom. 232 00:10:52,850 --> 00:10:54,955 A to sa nazýva quote.php. 233 00:10:54,955 --> 00:10:56,740 A je k dispozícii on-line. 234 00:10:56,740 --> 00:11:00,299 A všimnite si, že je to celkom short-- ale je to program pre príkazový riadok, ktorý je 235 00:11:00,299 --> 00:11:02,840 bude vyzerať hore ceny akcií pre mňa, ktorý je v skutočnosti deje 236 00:11:02,840 --> 00:11:04,230 byť relevantné k problém nastaviť sedem. 237 00:11:04,230 --> 00:11:05,396 >> Takže poďme sa pozrieť, čo robím. 238 00:11:05,396 --> 00:11:08,640 Na samom vrchole som dostal otvorený držiak otáznik PHP. 239 00:11:08,640 --> 00:11:13,372 Potom mám túto líniu, čím som vyžadujúce súbor nazvaný functions.php-- 240 00:11:13,372 --> 00:11:15,080 budeme vidieť viac o tom za chvíľu, 241 00:11:15,080 --> 00:11:17,340 ale to je ako C je ostrej verzie patrí, 242 00:11:17,340 --> 00:11:19,090 kam chcete ísť zahŕňať ďalší súbor. 243 00:11:19,090 --> 00:11:23,720 PHP volá to vyžadujú, aj keď to tiež má obsahovať funkciu. 244 00:11:23,720 --> 00:11:26,861 A ukázalo sa, že je function.php Len niečo, čo som napísal pred triedou. 245 00:11:26,861 --> 00:11:29,860 Dal som ho do rovnakého adresára, pretože Chcel som vytknúť nejaký kód 246 00:11:29,860 --> 00:11:31,800 že by sme mohli chcieť použiť inde. 247 00:11:31,800 --> 00:11:34,560 >> Medzitým, budete pravdepodobne odvodiť, čo sa tu deje. 248 00:11:34,560 --> 00:11:39,200 To je trochu odlišný od C-, ale Čo mám na mysli tým zabezpečiť riadne používanie? 249 00:11:39,200 --> 00:11:41,180 Preložiť tento technicky. 250 00:11:41,180 --> 00:11:45,950 Za akých okolností som ja ukončenie programu, alebo ukončenie? 251 00:11:45,950 --> 00:11:47,074 Jo? 252 00:11:47,074 --> 00:11:47,990 >> Divákov: Ak nemáte dva argumenty príkazového riadka. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Malan: Keď nemám na argumenty príkazového riadku. 254 00:11:49,480 --> 00:11:52,396 A nezabudnite, že jeden z týchto argumenty je meno programu sám. 255 00:11:52,396 --> 00:11:55,340 A druhá bude ďalšie slovo, ktoré som písať po riadku. 256 00:11:55,340 --> 00:11:57,460 Takže rovnako ako C, toto je môj spôsob kontroly, 257 00:11:57,460 --> 00:12:00,022 sa užívateľ spolupracovať a spustiť program, ako som zamýšľal? 258 00:12:00,022 --> 00:12:01,730 A teraz, je tu niečo trochu inak 259 00:12:01,730 --> 00:12:04,020 s C- prvom rade sme majú tento znak dolára, 260 00:12:04,020 --> 00:12:07,710 a čo dolár prihlásiť označujú v PHP? 261 00:12:07,710 --> 00:12:08,440 Len variabilné. 262 00:12:08,440 --> 00:12:11,731 To je all-- len premenná nasledovaná čo chcete skutočne hovoria. 263 00:12:11,731 --> 00:12:14,000 Všimnite si, že je niečo chýba z môjho programu PHP, 264 00:12:14,000 --> 00:12:18,210 rovnako ako to chýbalo posledná týždeň, proti C, čo je to, čo? 265 00:12:18,210 --> 00:12:21,620 >> A typy, ale aj niečo iné. 266 00:12:21,620 --> 00:12:26,409 Neexistuje žiadny niečo function-- hlavnú funkciu. 267 00:12:26,409 --> 00:12:27,450 Neexistuje žiadna hlavné funkcie. 268 00:12:27,450 --> 00:12:29,680 Práve ste začať písať Váš kód, bez toho aby museli 269 00:12:29,680 --> 00:12:32,790 sa starať o pomerne ľubovoľný konvencie pomenovanie niektoré východiskové 270 00:12:32,790 --> 00:12:33,880 Funkcie main. 271 00:12:33,880 --> 00:12:36,720 Takže arg C je naozaj len globálne premennú 272 00:12:36,720 --> 00:12:39,049 že tlmočníka dáva k dispozícii ku mne. 273 00:12:39,049 --> 00:12:40,090 Teraz, to je zaujímavé. 274 00:12:40,090 --> 00:12:41,140 Tak sa pozrite na veci. 275 00:12:41,140 --> 00:12:43,370 Znak dolára stock je na odišiel, to je môj variabilný. 276 00:12:43,370 --> 00:12:45,120 Na pravej strane, tam je vraj 277 00:12:45,120 --> 00:12:50,270 funkcie v PHP volal, že vyhľadávanie Ja som okolo svojej poslednej príkazový riadok 278 00:12:50,270 --> 00:12:51,902 Argument to-- bez ohľadu na slovo. 279 00:12:51,902 --> 00:12:53,610 A uvidíme, ako to pracuje v okamihu. 280 00:12:53,610 --> 00:12:55,380 >> A potom nakoniec Hlásim cenu. 281 00:12:55,380 --> 00:12:58,650 Som vytlačenie jedného Podiel také a také. 282 00:12:58,650 --> 00:13:02,082 A pamätajte si, to je Spôsob, PHP-- spôsobom v PHP-- 283 00:13:02,082 --> 00:13:04,290 kde nemusíte robiť znak dolára S ešte. 284 00:13:04,290 --> 00:13:06,782 Stačí použiť zložené zátvorky a zapojte v nejakej premennej. 285 00:13:06,782 --> 00:13:09,240 Nemusíte sa starať o použitie printf rovnakým spôsobom. 286 00:13:09,240 --> 00:13:13,530 >> A ako stranou, keď dáte premenné vnútri dvojitých úvodzoviek, ako je tento, 287 00:13:13,530 --> 00:13:17,370 používate ozdobný techniky volal variabilný interpolácie. 288 00:13:17,370 --> 00:13:20,380 Znamená to len pripojiť premennú tu. 289 00:13:20,380 --> 00:13:23,760 A ako stranou, niektorí z vás, ktorí prišli z iných programovacích prostredí, 290 00:13:23,760 --> 00:13:26,960 nesmiete používať apostrofy okolo reťazca to urobiť. 291 00:13:26,960 --> 00:13:30,290 Je nutné použiť úvodzovky pre variabilný interpolácie do práce. 292 00:13:30,290 --> 00:13:32,740 Inak budete doslova vidieť tie zložené zátvorky. 293 00:13:32,740 --> 00:13:34,500 >> Tak konečne, poďme do toho a spustiť to. 294 00:13:34,500 --> 00:13:36,690 Dovoľte mi, aby môj terminál trochu väčšie. 295 00:13:36,690 --> 00:13:41,940 Nechaj ma ísť dopredu a spustite vnútri mojej citácie adresára. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? citát?] PHP quote bodka PHP, 297 00:13:46,950 --> 00:13:50,290 a budem hľadať niečo, ako GOOG, ktorá je jej burzový symbol, 298 00:13:50,290 --> 00:13:55,510 a jedna akcia novým názvom, Abeceda Inc, stojí $ 717 k dnešnému dňu. 299 00:13:55,510 --> 00:13:58,680 Dobre, ak chceme spustiť tento znova, niekto 300 00:13:58,680 --> 00:14:02,600 majú ďalšie burzové chcú vzhliadať? 301 00:14:02,600 --> 00:14:06,770 >> Myslím si, že je Microsoft tento, MSFT-- $. 53 302 00:14:06,770 --> 00:14:09,720 Myslím si, že Yahoo je možno 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, čo je tento program robí? 305 00:14:13,740 --> 00:14:16,306 Mágia sa zdá byť zakotvené v tejto funkcii vyhľadávania. 306 00:14:16,306 --> 00:14:17,430 Takže poďme sa rýchlo pozrieť. 307 00:14:17,430 --> 00:14:21,815 >> Ukazuje sa, že nepríde s PHP, je to vo functions.php. 308 00:14:21,815 --> 00:14:23,690 A nebudeme prechádzať Tento veľmi podrobne, 309 00:14:23,690 --> 00:14:28,040 nevšimnúť operatívne slovo je tu že na riadku šiesteho functions.php-- 310 00:14:28,040 --> 00:14:29,440 Doslova som povedať funkciu. 311 00:14:29,440 --> 00:14:31,050 Aj uveďte názov svojej funkcie. 312 00:14:31,050 --> 00:14:34,330 Potom som určiť akýkoľvek parametre, alebo parametre, 313 00:14:34,330 --> 00:14:36,480 Chcem, že funkcia take-- žiadny typ. 314 00:14:36,480 --> 00:14:37,580 A potom som ju realizovať. 315 00:14:37,580 --> 00:14:39,240 >> A ja budem mávať moju ruku na implementáciu, 316 00:14:39,240 --> 00:14:42,115 pretože je to celkom moderný pravdu teraz, ale budeme ho vidieť znova vlastne 317 00:14:42,115 --> 00:14:44,700 v týždni v probléme nastavení sedem. 318 00:14:44,700 --> 00:14:47,490 Ale môžem vyčistiť toto hore, taky. 319 00:14:47,490 --> 00:14:49,590 Tiež som súčasťou dnešné kód verzia 320 00:14:49,590 --> 00:14:52,340 citátu, ktorý nemá súbor bodka PHP. 321 00:14:52,340 --> 00:14:57,270 Pretože to, čo je pravdepodobne u Horná časť relácie len citovať? 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 hovorí, že nájsť PHP a potom spustiť na môj kód tu. 324 00:15:04,590 --> 00:15:07,360 >> Dobre, takže prináša nás, kde sme skončili 325 00:15:07,360 --> 00:15:09,560 Posledná time-- aj keď s niektoré pokročilejšie príklady. 326 00:15:09,560 --> 00:15:13,980 Akékoľvek otázky doteraz o PHP alebo čo robíme? 327 00:15:13,980 --> 00:15:15,570 No-- v poriadku. 328 00:15:15,570 --> 00:15:16,180 Jo? 329 00:15:16,180 --> 00:15:19,610 >> Publikum: Vnútri HTML súbory, robiť vás-- 330 00:15:19,610 --> 00:15:22,226 [? áno?] [? stačí zavolať to?] a [nepočuteľný] PHP súbor? 331 00:15:22,226 --> 00:15:23,350 DAVID Malan: Dobrá otázka. 332 00:15:23,350 --> 00:15:26,070 Vo webovom súvislostiach, ktoré sme doslova o prechode na, 333 00:15:26,070 --> 00:15:28,028 nechcete použiť tzv shebang v hornej časti, 334 00:15:28,028 --> 00:15:31,980 pretože web server-- často program s názvom Apache alebo Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, alebo ľubovoľný počet ďalších web server softvér, 336 00:15:37,470 --> 00:15:40,636 vie, že keď vidí, súbor bodka PHP, že to 337 00:15:40,636 --> 00:15:42,010 by mal bežať tlmočníka na to. 338 00:15:42,010 --> 00:15:43,468 Nevyzerá to v tej prvej línii. 339 00:15:43,468 --> 00:15:45,580 Takže tento prvý línie trik je len, keď ste 340 00:15:45,580 --> 00:15:48,330 písanie príkazového riadku programs-- ktoré nebudeme robiť výborný často, 341 00:15:48,330 --> 00:15:52,510 ale je to náš spôsob premostenia Náš príklad C až teraz našej PHP. 342 00:15:52,510 --> 00:16:00,680 >> Takže poďme skutočne preklenúť tento svet z príkazového riadku svete, na web 343 00:16:00,680 --> 00:16:02,230 pomocou nasledujúceho postupu. 344 00:16:02,230 --> 00:16:05,090 Nechaj ma ísť dopredu a kresliť cez na chvíľku tu. 345 00:16:05,090 --> 00:16:09,940 Takže ak budeme mať webový server, alebo skôr ak máme svoj laptop tu, 346 00:16:09,940 --> 00:16:11,280 ktoré budem čerpať takhle. 347 00:16:11,280 --> 00:16:14,250 A tu máme internet v nejakej forme. 348 00:16:14,250 --> 00:16:18,210 A potom tu máme server v building-- 349 00:16:18,210 --> 00:16:20,760 to je, ako internet works-- a tu 350 00:16:20,760 --> 00:16:23,120 je server s niektorými svetla možná. 351 00:16:23,120 --> 00:16:27,530 Čo sa to vlastne deje medzi týmito dvoma prípojkami? 352 00:16:27,530 --> 00:16:29,240 >> Takže v tejto budove je webový server. 353 00:16:29,240 --> 00:16:31,420 To je len počítač že to beh niektorých operačných 354 00:16:31,420 --> 00:16:34,561 system-- možná zadarmo softvér nazvaný Apache, ktorý CS50 IDE beží. 355 00:16:34,561 --> 00:16:36,310 Takže sa môžete skutočne myslíte o tejto budovy 356 00:16:36,310 --> 00:16:38,579 ako budova v ktorý CSt0 IDE je uložený. 357 00:16:38,579 --> 00:16:40,870 To je miesto, kde všetky z vás má účty, kde sú všetky z vás, 358 00:16:40,870 --> 00:16:43,130 mať svoj vlastný webový server beh, všetky z vás, 359 00:16:43,130 --> 00:16:45,730 majú svoje vlastné jedinečné adresy URL, ako sme začali diskutovať, 360 00:16:45,730 --> 00:16:47,280 a uvidíte viac P. set šesť. 361 00:16:47,280 --> 00:16:49,450 >> Tu je môj notebook niekde inde na internete. 362 00:16:49,450 --> 00:16:54,550 A tak, keď som navštíviť URL, ktoré patria sa mi, že internetový prevádzka sa deje 363 00:16:54,550 --> 00:16:58,360 sa k serveru, na serveri Príjem HTTP request-- 364 00:16:58,360 --> 00:17:02,900 ako keď si index.html a to je odpoveď na túto webovú stránku. 365 00:17:02,900 --> 00:17:04,280 Tak to je všeobecný vzor. 366 00:17:04,280 --> 00:17:07,089 Vzhľadom k tomu, všetko hore Až do teraz, dnes všetko 367 00:17:07,089 --> 00:17:09,660 sa deje len v hranice tejto budovy. 368 00:17:09,660 --> 00:17:12,910 Bol som pomocou môjho notebooku, ale Bol som pripojený k CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 takže všetky z týchto programov som išiel bola vo vnútri tohto servera, sám. 370 00:17:17,369 --> 00:17:22,660 >> Ale teraz, začnime opätovné využitie PHP napísať nejaké skutočné programy, ktoré 371 00:17:22,660 --> 00:17:24,230 sú podávané prostredníctvom webového servera. 372 00:17:24,230 --> 00:17:30,320 A ako to urobiť, ja idem do veľa príkladov 373 00:17:30,320 --> 00:17:33,710 že predstaví túto myšlienku tu. 374 00:17:33,710 --> 00:17:38,500 Takže to je tak trochu fantázie spôsob, ako popisujúci programovací paradigma. 375 00:17:38,500 --> 00:17:41,540 >> A v skutočnosti, ako ukončiť CS50 alebo pracovať na záverečných prác, 376 00:17:41,540 --> 00:17:43,520 alebo sa niektorí nasledujú na triede, začnete 377 00:17:43,520 --> 00:17:45,740 vidieť, že world-- najmä vyrastal 378 00:17:45,740 --> 00:17:48,300 s jazykmi ako C že sú super nízke level-- 379 00:17:48,300 --> 00:17:51,290 Uvedomujem si, že tam je lepšie spôsoby písania softvéru. 380 00:17:51,290 --> 00:17:53,290 Existujú určité vzory môžete sledovať, 381 00:17:53,290 --> 00:17:57,640 niektoré spôsoby organizácie súborov a spôsoby, ako pomenovanie svoje funkcie, 382 00:17:57,640 --> 00:18:00,300 takže dlhý príbeh krátky, svet má prísť 383 00:18:00,300 --> 00:18:04,340 s celou partiou skratiek a mená pre spôsoby programovania. 384 00:18:04,340 --> 00:18:06,260 To sú len techniky, môžete použiť. 385 00:18:06,260 --> 00:18:09,660 >> A jeden z nich sa volá MVC, Pre Model View Controller. 386 00:18:09,660 --> 00:18:12,270 A to je len pre , Teraz príliš komplikované 387 00:18:12,270 --> 00:18:18,960 spôsob, ako povedať, ako by ste mali rozvrhnúť webové stránky PHP báze, v našom prípade. 388 00:18:18,960 --> 00:18:22,140 Ako organizovať súbory, ako si zorganizovať svoju logiku, 389 00:18:22,140 --> 00:18:26,220 spôsobom, ktorý uľahčuje napísať zložitejšie webové stránky? 390 00:18:26,220 --> 00:18:28,550 A skutočne, budeme rýchlo tam si s p-set sedem. 391 00:18:28,550 --> 00:18:32,020 >> Takže vo svete MVC, budete vidieť, že náš kód možno všeobecne 392 00:18:32,020 --> 00:18:38,290 charakterizovať ako buď kódu modelu, alebo kód radič, alebo zobrazenie kódu. 393 00:18:38,290 --> 00:18:40,200 A ja idem na zjednodušovať ju ako follows-- 394 00:18:40,200 --> 00:18:42,074 regulátor je mozog vášho programu, 395 00:18:42,074 --> 00:18:44,100 to je miesto, kde všetky zaujímavá logika sa stane. 396 00:18:44,100 --> 00:18:46,110 Takže všetko, čo sme boli písanie tak ďaleko v triede, 397 00:18:46,110 --> 00:18:48,210 je niečo ako radiče code-- to ovládanie 398 00:18:48,210 --> 00:18:50,585 váš program, vaše slučky, vaše podmienky, vaša funkcia 399 00:18:50,585 --> 00:18:52,100 a premenné a všetko. 400 00:18:52,100 --> 00:18:56,160 >> Pohľady, teraz, sa bude trochu jasnejšie vo svete webu. 401 00:18:56,160 --> 00:18:59,360 Pohľad je estetika na vašich webových stránkach. 402 00:18:59,360 --> 00:19:04,080 To je to, čo používateľ sees-- obrazy, tabuľky HTML, HTML tagy, a všetky 403 00:19:04,080 --> 00:19:08,220 z toho, všetky našuchorený estetický veci, ktoré nie je tak ťažké písať, 404 00:19:08,220 --> 00:19:11,380 ale je len to, čo ste generovanie, je tzv pohľad, estetike. 405 00:19:11,380 --> 00:19:13,880 A model nakoniec sa deje byť databázy, ktoré stuff-- 406 00:19:13,880 --> 00:19:16,510 začneme potápanie do všetkých Čím viac sa túto stredu. 407 00:19:16,510 --> 00:19:19,740 Takže regulátor je logika, pohľad je estetická veci, 408 00:19:19,740 --> 00:19:23,500 a model bude, kde ukladáme naše aktuálne dáta. 409 00:19:23,500 --> 00:19:26,410 >> Takže poďme sa pozrieť na to konkrétnejšie s nasledujúcom príklade. 410 00:19:26,410 --> 00:19:34,700 Chystám sa ísť do môjho adresára tu dnešné zdroje code--, z ktorých všetky 411 00:19:34,700 --> 00:19:35,770 je k dispozícii on-line. 412 00:19:35,770 --> 00:19:37,800 A ja idem do verzie nula. 413 00:19:37,800 --> 00:19:41,500 A tu je-- nazvime to na verzia stránok CS50 je nula. 414 00:19:41,500 --> 00:19:43,010 Nie je toho veľa, tu vôbec. 415 00:19:43,010 --> 00:19:46,810 Je to veľmi jednoduché webové stránky, ktorá je Pravdepodobne používate, čo HTML tags-- práve 416 00:19:46,810 --> 00:19:48,970 Asi z minulých príkladov? 417 00:19:48,970 --> 00:19:49,890 >> Čo je to? 418 00:19:49,890 --> 00:19:53,920 H1-- pravdepodobne za to veľký tučný názov, že logo hore vrchol, CS50. 419 00:19:53,920 --> 00:19:55,080 A čo je ešte v hre? 420 00:19:55,080 --> 00:19:55,799 Jo? 421 00:19:55,799 --> 00:19:56,840 Divákov: Nečíslovaný zoznam. 422 00:19:56,840 --> 00:19:59,990 DAVID Malan: Nečíslovaný list-- tak UL tag a možno pár LI tagy. 423 00:19:59,990 --> 00:20:01,840 A ak si nepamätáte nich, to úprimne nezáleží. 424 00:20:01,840 --> 00:20:04,170 Jedná sa o akési našuchorený implementačné podrobnosti HTML 425 00:20:04,170 --> 00:20:06,378 že ste sa rýchlo vyhľadať a ste späť na vašej ceste. 426 00:20:06,378 --> 00:20:10,040 Budeme sa viac zamerať na programovanie myšlienky, ktoré sú šťavnatejšie kúsky. 427 00:20:10,040 --> 00:20:12,890 >> Tak nech to len vziať rýchly pozrite sa na HTML-- a naozaj 428 00:20:12,890 --> 00:20:16,880 keď som otvoriť zdroj zobrazenie tu, Jo, to je presne to, čo sa tu deje. 429 00:20:16,880 --> 00:20:18,440 Je tu značku UL. 430 00:20:18,440 --> 00:20:20,630 Vnorené vo vnútri, ktorý je Li tagy. 431 00:20:20,630 --> 00:20:24,470 A potom som si vypožičal URL skutočného osnov tu. 432 00:20:24,470 --> 00:20:27,570 >> A potom v lectures.php je zrejme 433 00:20:27,570 --> 00:20:31,640 ďalšie dynamicky generované stránky že to bude mať, poďme see-- ah, 434 00:20:31,640 --> 00:20:33,170 Prvé dva týždne prednášky. 435 00:20:33,170 --> 00:20:36,600 Tak týždeň nula a týždeň jednu, poďme pozrite sa na tohle-- keby som zobraziť zdrojový kód stránky, 436 00:20:36,600 --> 00:20:38,120 tiež super jednoduché. 437 00:20:38,120 --> 00:20:42,430 Tie vedú na dve stránky volal week0.php, a week1.php. 438 00:20:42,430 --> 00:20:44,040 Takže zvážte teraz, čo sa deje. 439 00:20:44,040 --> 00:20:50,630 >> Keď kliknem na week0.php, môj notebook je podanie žiadosti o week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Webový server, tiež známy ako, CS50 IDE, prijíma, že virtuálne obálku. 442 00:20:58,110 --> 00:21:01,040 Je to vidieť správu ako, dostať week0.php. 443 00:21:01,040 --> 00:21:05,060 To je potom interpretácii súboru, top nadol, doľava right-- súboru 444 00:21:05,060 --> 00:21:07,720 volal week0.php-- a pľuvať výsledky. 445 00:21:07,720 --> 00:21:10,510 Takže vnútri tohto súboru, week0.php, musí byť 446 00:21:10,510 --> 00:21:15,410 riadiace logika, ktorá je generovanie tento HTML, a budeme čoskoro vidieť, že. 447 00:21:15,410 --> 00:21:19,340 >> Ale teraz mi dovoľte, aby som kliknite na týždeň nula, a teraz máme stredu a piatok, 448 00:21:19,340 --> 00:21:25,260 a teraz máme sklíčka pomaly týždni nula. 449 00:21:25,260 --> 00:21:27,400 A možno pamätáte toto od pri ceste späť. 450 00:21:27,400 --> 00:21:29,340 Tak to je všetko, tento web je robí. 451 00:21:29,340 --> 00:21:31,120 >> Takže poďme zvážiť, ako sa to robí. 452 00:21:31,120 --> 00:21:34,290 Chystám sa vrátiť do zdrojový kód tu, v CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 a ja idem otvoriť index.php. 454 00:21:36,660 --> 00:21:38,910 V hornej časti tohto súboru je banda komentárov. 455 00:21:38,910 --> 00:21:43,000 A potom sa v polovici tohto súboru ju, Ukázalo sa, že nie je žiadny PHP kód vôbec. 456 00:21:43,000 --> 00:21:47,380 Pretože ak nemáte niektorý z otvorený držiak otáznik PHP tagy, 457 00:21:47,380 --> 00:21:49,180 ste zatiaľ len dať HTML. 458 00:21:49,180 --> 00:21:51,480 >> Vzhľadom k tomu, čo PHP interpret má robiť, 459 00:21:51,480 --> 00:21:53,938 je, keď to číta tento file-- zhora nadol, zľava right-- 460 00:21:53,938 --> 00:21:59,100 to len interpretuje kód to vidí medzi tieto lomené zátvorky otáznik. 461 00:21:59,100 --> 00:22:02,380 A niečo iné, že to tak nie je uznať ako PHP, to proste vypľuje. 462 00:22:02,380 --> 00:22:05,080 A HTML patrí medzi veci to bude len vypľuť. 463 00:22:05,080 --> 00:22:09,090 >> Takže tento súbor mohol mať boli povolaní index.html, 464 00:22:09,090 --> 00:22:11,690 ale ja som vymenovať všetko dot PHP ako odrazový mostík. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- podobne nezaujatý, je to len nejaký HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, podobne len niektoré HTML. 467 00:22:19,840 --> 00:22:22,300 >> Ale teraz poďme dať na príslovečný inžinierstva klobúk, 468 00:22:22,300 --> 00:22:24,400 a zvážiť, ako môžeme vylepšiť to. 469 00:22:24,400 --> 00:22:28,541 Nie je ťažké to urobiť, ale som tak trochu prenesené do kopírovanie a vkladanie. 470 00:22:28,541 --> 00:22:31,540 A v skutočnosti, keď som vytvoriť dvojstĺpcový týždeň ste viem, čo som asi robiť? 471 00:22:31,540 --> 00:22:34,940 Chystám sa ísť do week1.php, ja som zameriam na všetko. 472 00:22:34,940 --> 00:22:39,110 Chystám sa ho kopírovať, vložiť ho do nového súboru s názvom week2.php, 473 00:22:39,110 --> 00:22:42,440 vyladiť niektoré adresy URL, a je na ceste. 474 00:22:42,440 --> 00:22:45,240 >> Takže na základe toho, čo máme Videl v C už, 475 00:22:45,240 --> 00:22:46,860 to nie je ono, dúfajme. 476 00:22:46,860 --> 00:22:49,610 Kopírovať, vložiť zriedka správnym riešením. 477 00:22:49,610 --> 00:22:51,429 Takže to, čo môžeme začať urobiť pre zlepšenie to? 478 00:22:51,429 --> 00:22:53,345 Tam, kde sú príležitosti pre lepší dizajn? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> V čase, keď som sa dostať do týždeň osem, to ide 481 00:22:58,760 --> 00:23:00,910 byť naozaj otravné ak chcem zmeniť 482 00:23:00,910 --> 00:23:03,930 písmo každého jedného z mojej stránky, alebo keď budem chcieť 483 00:23:03,930 --> 00:23:06,522 zmeniť štruktúru rozvrhnutie. 484 00:23:06,522 --> 00:23:08,396 Tak kde je príležitosť pre lepší dizajn? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Dobre, poďme zvážiť, čo je zdieľané všetky tieto súbory. 487 00:23:15,160 --> 00:23:21,696 >> Tu je týždeň jednu, tu týždeň nula, tu je lectures.php, 488 00:23:21,696 --> 00:23:25,790 tu je to, čo index.php-- je rovnaký a Aký je rozdiel, zhruba povedané, 489 00:23:25,790 --> 00:23:26,760 v každom z týchto súborov? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Jo? 492 00:23:32,060 --> 00:23:34,560 >> Divákov: [Nepočuteľné] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Malan: OK, dobre. 495 00:23:42,160 --> 00:23:46,115 Takže tam je vzor, ​​iste, pričom zakaždým, keď som sa vybrať prednáška I, 496 00:23:46,115 --> 00:23:48,250 Mal by som byť generovanie veľmi podobné vyzerajúce stránky. 497 00:23:48,250 --> 00:23:50,375 A tak snáď môžem využiť skutočnosť, že v skutočnosti, 498 00:23:50,375 --> 00:23:53,060 vedome numericky indexované našu lectures-- 499 00:23:53,060 --> 00:23:55,290 či môžem dať ešte viac slov vašej odpovede. 500 00:23:55,290 --> 00:23:59,984 A čo je jediná vec, naozaj, že to mení medzi týždňa one-- 501 00:23:59,984 --> 00:24:02,400 a dovoľte mi prejdite nadol, takže je to zhruba v rovnakej place-- 502 00:24:02,400 --> 00:24:05,480 tak tu je týždeň nula, zhruba v hornej časti. 503 00:24:05,480 --> 00:24:12,370 Tu je týždeň raz, týždeň nula, týždeň jedným, týždeň nula. 504 00:24:12,370 --> 00:24:14,370 OK, doslova ak viete, žiadny program vôbec, 505 00:24:14,370 --> 00:24:16,286 toto je teraz len ako keď vzor zodpovedajúce hru. 506 00:24:16,286 --> 00:24:17,200 Takže to, čo je? 507 00:24:17,200 --> 00:24:18,765 Jo? 508 00:24:18,765 --> 00:24:19,777 >> Divákov: [Nepočuteľné] 509 00:24:19,777 --> 00:24:22,360 DAVID Malan: Dobrý, tak titul sa mení, niekedy tak trochu. 510 00:24:22,360 --> 00:24:24,010 Zero bude, samozrejme, na jednu. 511 00:24:24,010 --> 00:24:25,570 To isté sa deje v tagu H1. 512 00:24:25,570 --> 00:24:28,790 A nemáme dosť vidieť, ako ľahko, pretože URL sú trochu dlhšia. 513 00:24:28,790 --> 00:24:30,670 Ale tie adresy URL sa mení len nepatrne. 514 00:24:30,670 --> 00:24:34,490 >> Ale to, čo sa nemení je, trúfam si povedať, väčšina obsahu page-- 515 00:24:34,490 --> 00:24:38,530 značka HTML je rovnaký, hlava je rovnaké, titul je takmer rovnaký, 516 00:24:38,530 --> 00:24:40,659 telo je rovnaký, a skoro všetko ostatné 517 00:24:40,659 --> 00:24:42,450 je rovnaké, okrem tie malé vylepšenia. 518 00:24:42,450 --> 00:24:45,310 Tak ako môžeme ísť o factoring niečo z toho von? 519 00:24:45,310 --> 00:24:48,740 >> No dovoľte mi navrhnúť presne že v ďalšej verzii. 520 00:24:48,740 --> 00:24:53,890 Tak tu vo verzii jedna, mám presný rovnaké súbory, plus pár ďalších. 521 00:24:53,890 --> 00:24:59,730 Tu je index.php-- a to aj v prípade ste nikdy nevideli PHP predtým, 522 00:24:59,730 --> 00:25:05,511 čo mám asi robiť to vyriešiť problem-- základe toho, čo vidíte tu? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Jo, je to mierny záväzku? 525 00:25:12,760 --> 00:25:13,450 Nie? 526 00:25:13,450 --> 00:25:16,020 Áno, ísť ďalej. 527 00:25:16,020 --> 00:25:17,380 >> Divákov: [Nepočuteľné] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Malan: Jo. 529 00:25:18,380 --> 00:25:20,380 >> Divákov: [Nepočuteľné] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Malan: Potrebujem, aby ste hovorí len trochu hlasnejšie. 532 00:25:28,669 --> 00:25:31,084 >> Divákov: [Nepočuteľné] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Malan: OK, dobre. 535 00:25:36,660 --> 00:25:38,620 A think-- som, že ťažké vás-- ale počujem 536 00:25:38,620 --> 00:25:42,690 že to, čo ste sa dostal na je, že tagy, ktoré boli bežné až hore, 537 00:25:42,690 --> 00:25:47,710 a značky, ktoré boli bežné na dno, boli teraz vytknúť, 538 00:25:47,710 --> 00:25:51,140 alebo zaradený k aké súbory? 539 00:25:51,140 --> 00:25:53,476 Header.php a footer.php-- a ideme 540 00:25:53,476 --> 00:25:55,600 aby sa niektoré vylepšenia na riešiť obavy ste práve 541 00:25:55,600 --> 00:25:59,370 zvýšil o počte striedanie, pre Napríklad, keď som ťa počul správne. 542 00:25:59,370 --> 00:26:02,060 >> Ale to sa zdá byť podstata toho. 543 00:26:02,060 --> 00:26:04,820 Pokiaľ došlo k obrovské množstvo redundancia v hornej časti stránky, 544 00:26:04,820 --> 00:26:06,736 a obrovské množstvo redundancia v dolnej časti, 545 00:26:06,736 --> 00:26:09,280 poďme doslova highlight a znížiť, že obsah out, 546 00:26:09,280 --> 00:26:13,270 dať do samostatnej file--, rovnako ako myšlienka CSS, kde sme vytknúť 547 00:26:13,270 --> 00:26:16,710 veľmi podobné estetika, dal že v oddelenom dot PHP súboru 548 00:26:16,710 --> 00:26:20,340 použite vyžadujú mechanism-- ktorý je ako C ostrý include-- ktorý 549 00:26:20,340 --> 00:26:23,570 je v podstate ako hovoriť ísť chytiť obsah header.php, 550 00:26:23,570 --> 00:26:25,370 a kopírovať a vložiť tu. 551 00:26:25,370 --> 00:26:29,490 >> Ale čo to znamená je, že teraz v index.php, mám tie dva riadky. 552 00:26:29,490 --> 00:26:32,130 V lectures.php som tiež majú tieto dva riadky. 553 00:26:32,130 --> 00:26:35,230 V week0.php som tiež majú tieto dva riadky. 554 00:26:35,230 --> 00:26:38,380 >> Takže teraz, keď chcem zmeniť názov zo všetkých mojich stránkach, 555 00:26:38,380 --> 00:26:40,530 alebo chcem zmeniť základná štruktúra, 556 00:26:40,530 --> 00:26:44,380 Ja ju teraz môže zmeniť len v jednom mieste, alebo dva places-- hlavičky a päty, 557 00:26:44,380 --> 00:26:45,429 v tomto poradí. 558 00:26:45,429 --> 00:26:47,970 Teraz začína Kódexu sa pozrieť trochu záhadný, že jo? 559 00:26:47,970 --> 00:26:53,590 Ale či si myslíte, že o tom, čo na stránke je doing-- či som požadujúcich week0.php, 560 00:26:53,590 --> 00:26:59,880 rovnako ako na kreslenie cez here-- pri požiadavke week0.php, 561 00:26:59,880 --> 00:27:00,960 čo to znamená? 562 00:27:00,960 --> 00:27:04,410 >> Doslova je tento súbor požaduje prehliadači. 563 00:27:04,410 --> 00:27:06,240 Na webovú server-- tiež známy ako 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- chytí to Súbor, week0.php, a číta 565 00:27:09,250 --> 00:27:10,780 to zhora nadol, zľava doprava. 566 00:27:10,780 --> 00:27:15,400 Na prvom riadku, okamžite narazí otvorený držiak otáznik PHP, vyžadujú 567 00:27:15,400 --> 00:27:17,872 header bodka PHP, a tak čo interpret PHP 568 00:27:17,872 --> 00:27:20,580 does--, ktorý je vstavaný do webu Server, pretože sme vopred konfigurované 569 00:27:20,580 --> 00:27:24,580 to pre vás-- prepne sa automaticky do header.php, skopíruje obsah, 570 00:27:24,580 --> 00:27:25,640 vloží je tu. 571 00:27:25,640 --> 00:27:28,790 >> Ale potom tlmočnícke stretnutie otáznik blízko držiak, 572 00:27:28,790 --> 00:27:30,320 takže je to všetko urobil myslí. 573 00:27:30,320 --> 00:27:33,400 Teraz to len slepo vypľuje out riadkov dva až sedem, 574 00:27:33,400 --> 00:27:35,240 pretože je to len surové HTML. 575 00:27:35,240 --> 00:27:38,470 Dostane na riadok osem, a to robí Rovnaký mágia again-- otvorenie súboru, 576 00:27:38,470 --> 00:27:41,460 popada obsah, a vyžadovať, aby oni alebo ich vkladanie 577 00:27:41,460 --> 00:27:42,480 vpravo potom ani tam. 578 00:27:42,480 --> 00:27:44,210 >> Ale ja som len zmieňoval sa o chybu. 579 00:27:44,210 --> 00:27:48,610 Toto je čiastočný krok späť, pretože keď sa pozrieme na header.php, 580 00:27:48,610 --> 00:27:50,850 Ja som trochu znížiť roh. 581 00:27:50,850 --> 00:27:56,250 Aké funkcie som sa vzdať, aby k získaniu tohto arguable lepší dizajn? 582 00:27:56,250 --> 00:27:57,305 Jo? 583 00:27:57,305 --> 00:27:58,180 Divákov: [Nepočuteľné] 584 00:27:58,180 --> 00:28:00,570 DAVID Malan: Jo, som tak trochu kosenia netriviálne roh. 585 00:28:00,570 --> 00:28:04,489 Ste poukázal na to, že to, čo sa mení bol názov, číslo v názve, 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 riešenie bolo, OK, nech to len premenovať stránku, 588 00:28:08,170 --> 00:28:10,080 a nezaoberá, že problém vôbec. 589 00:28:10,080 --> 00:28:12,130 Takže to je čiastočný krok späť pre istotu. 590 00:28:12,130 --> 00:28:14,300 >> Ale čo je pozoruhodné tu je, že to, čo som urobil 591 00:28:14,300 --> 00:28:17,200 inak je factored out všetky bežné veci. 592 00:28:17,200 --> 00:28:21,520 A v footer.php, Všimol som si, factored mimo to všetko, aj keď menšie, 593 00:28:21,520 --> 00:28:22,790 spoločnej veci. 594 00:28:22,790 --> 00:28:26,070 Tak som potrebné nejako teraz bude môcť ďalší krok vpred, a opraviť 595 00:28:26,070 --> 00:28:27,160 že právny nárok na otázky. 596 00:28:27,160 --> 00:28:28,180 Takže poďme to urobiť. 597 00:28:28,180 --> 00:28:35,060 >> Nechaj ma ísť do mojej druhej verzii tu, čo opäť má rovnaké súbory 598 00:28:35,060 --> 00:28:36,825 s výnimkou jedného nový prírastok. 599 00:28:36,825 --> 00:28:38,950 A je to trochu viac verbose, ale uvidíme, či budeme 600 00:28:38,950 --> 00:28:40,550 môže dráždiť od seba to, čo sa tu deje. 601 00:28:40,550 --> 00:28:45,370 Takže namiesto toho, vyžadujúce header.php, a footer.php, 602 00:28:45,370 --> 00:28:50,180 Pripadá mi, že sa vyžaduje iba jeden file-- zavolal, samozrejme, helpers.php. 603 00:28:50,180 --> 00:28:52,560 A dovoľte mi, aby som teraz stanoviť, to, čo je vo vnútri helpers.php 604 00:28:52,560 --> 00:28:55,330 je len banda funkciou že som napísal, rovnako ako predtým. 605 00:28:55,330 --> 00:28:57,550 Ale volal som to helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Teraz sa zdá, v riadok tri a 10, ja som 607 00:29:00,370 --> 00:29:02,840 volá dve functions-- vykreslenie záhlavia, päty render. 608 00:29:02,840 --> 00:29:05,040 Tí, ktorí neprídu s PHP, som napísal ty sám. 609 00:29:05,040 --> 00:29:07,880 A dal som ich do helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Teraz sme len videli túto syntax raz, a bolo to výborný krátky. 611 00:29:11,210 --> 00:29:15,330 Ale to je zrejme argument k tomu, aby záhlavie, funkcie. 612 00:29:15,330 --> 00:29:16,450 Prečo mám vedieť, že? 613 00:29:16,450 --> 00:29:18,522 Tak tu je blízky dvorenia, tu je otvorená párenia. 614 00:29:18,522 --> 00:29:21,230 A samozrejme, rovnako ako v C, niečo medzi týmito zátvorkami 615 00:29:21,230 --> 00:29:23,350 je input-- alebo argument funkcie. 616 00:29:23,350 --> 00:29:26,710 >> Aký je dátový typ tohto argumentu, na základe toho, čo som zvýraznené? 617 00:29:26,710 --> 00:29:30,820 Čo tie hranaté zátvorky ukazujú, na základe posledného týždňa? 618 00:29:30,820 --> 00:29:33,390 Jo, to je array-- konkrétne asociatívne pole. 619 00:29:33,390 --> 00:29:35,700 A to síce syntax je trochu funky, 620 00:29:35,700 --> 00:29:38,860 ale to je len okolo v jednom páre kľúčov hodnoty. 621 00:29:38,860 --> 00:29:43,530 Kľúčom k úspechu je, citujem koniec citátu titul, a je hodnota CS50. 622 00:29:43,530 --> 00:29:46,220 >> Ak by sme to urobil v C, to by mohlo namiesto toho 623 00:29:46,220 --> 00:29:49,400 vyzerajú skôr ako to, len citovať koniec citátu CS50-- 624 00:29:49,400 --> 00:29:52,460 alebo v skutočnosti by to bolo kučeravé traky, alebo niečo podobné, že v C, 625 00:29:52,460 --> 00:29:55,580 kde kľúč je nula, a hodnota CS50. 626 00:29:55,580 --> 00:29:59,840 Ale opäť, v PHP, hoci syntax je opäť trochu divný, 627 00:29:59,840 --> 00:30:02,860 to vám umožní odovzdať slová namiesto čísla 628 00:30:02,860 --> 00:30:05,120 spájať kľúčov s hodnotami. 629 00:30:05,120 --> 00:30:06,390 >> Takže čo to všetko znamená? 630 00:30:06,390 --> 00:30:09,750 Ak by som ísť do helpers.php, Pozrime sa na túto funkciu. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, skôr renderHeader je môj funkcie, 632 00:30:13,620 --> 00:30:16,220 a viem, že preto, že vidím, Funkcia kľúčové slovo tu. 633 00:30:16,220 --> 00:30:19,450 To je nová z C- to zjavne berie argument s názvom data-- 634 00:30:19,450 --> 00:30:22,400 ale ja som mohol nazval nič, ale volal som to údaje, 635 00:30:22,400 --> 00:30:25,090 stačí, aby sa trochu clean-- a stačí sa hádať, a to najmä 636 00:30:25,090 --> 00:30:28,173 ak ste naprogramovaný v niektorých iných vyššiu úroveň jazyka predtým, niečo 637 00:30:28,173 --> 00:30:29,820 nad C, koncepčne. 638 00:30:29,820 --> 00:30:33,820 >> Čo rovné otvorený držiak hranatou zátvorku pravdepodobne znamená? 639 00:30:33,820 --> 00:30:35,540 Alebo čo to môže znamenať? 640 00:30:35,540 --> 00:30:39,660 Už sme nevideli to v C. Jo? 641 00:30:39,660 --> 00:30:40,480 >> Prázdne pole. 642 00:30:40,480 --> 00:30:45,440 Konkrétne to znamená, že v prípade, Užívateľ nevolá renderHeader 643 00:30:45,440 --> 00:30:49,340 s argumentom, ja som stále bude mať argument s názvom dát, 644 00:30:49,340 --> 00:30:52,327 ale jeho predvolená hodnota bude prázdne pole. 645 00:30:52,327 --> 00:30:53,660 Takže je to len pekné pohodlie. 646 00:30:53,660 --> 00:30:56,493 Ja nemusím kričať na užívateľov, alebo hovoriť ste použili môj funkcie zle. 647 00:30:56,493 --> 00:30:59,849 Ja si len dať užívateľovi východzí hodnota, pokiaľ je mi nijako zvlášť nezaujíma. 648 00:30:59,849 --> 00:31:01,890 Teraz je táto funkcia, ja som bude mávať svoje ruky na. 649 00:31:01,890 --> 00:31:07,620 Ale táto funkcia umožňuje extrakt nám odovzdať tieto premenné v dátach 650 00:31:07,620 --> 00:31:10,360 do header.php nasledujúcim spôsobom. 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 Tu je môj nový verzia z header.php-- to 653 00:31:15,860 --> 00:31:20,140 hovorieval, a to doslova, otvorený držiak titul CS50, a že to bolo. 654 00:31:20,140 --> 00:31:21,766 A to isté pre H1. 655 00:31:21,766 --> 00:31:24,310 >> Teraz to vraj hovorí, že niečo celkom funky. 656 00:31:24,310 --> 00:31:28,030 A dovoľte mi, aby som toto zjednodušenie na chvíľu takto. 657 00:31:28,030 --> 00:31:31,020 To je to, čo som zmenil svoj názov, aby bol. 658 00:31:31,020 --> 00:31:35,140 Avšak, je to už trochu škaredý neustále otvorené zátvorky s PHP, 659 00:31:35,140 --> 00:31:36,610 a potom použite funkciu tlače. 660 00:31:36,610 --> 00:31:40,810 Ukazuje sa, že PHP má skratku zápis pre to, ktoré je len 661 00:31:40,810 --> 00:31:45,050 znamienko rovnosti, čo je technicky Funkcia tzv echo miesto tlače, 662 00:31:45,050 --> 00:31:46,800 ale je to to isté, efektívne. 663 00:31:46,800 --> 00:31:48,440 >> To len vyzerá lepšie. 664 00:31:48,440 --> 00:31:50,510 Je to len syntaktickou cukor, ak chcete, 665 00:31:50,510 --> 00:31:52,260 že robí môj kód vyzerať trochu lepšie. 666 00:31:52,260 --> 00:31:54,010 Ale ukazuje sa, a uvidíme to znova 667 00:31:54,010 --> 00:31:57,420 netrvalo dlho, musíme nazývať protivne dlho volanie funkcie 668 00:31:57,420 --> 00:32:00,582 Špeciálne znaky v HTML PHP, pretože sa ukázalo, 669 00:32:00,582 --> 00:32:02,790 tam sú niektoré vstupy že užívateľ by mohla poskytnúť nám, 670 00:32:02,790 --> 00:32:05,160 alebo že používatelia môžu dať nám, ktoré sa chystáte zlomiť naše stránky. 671 00:32:05,160 --> 00:32:07,035 Ale uvidíme, že budúci týždeň s JavaScript. 672 00:32:07,035 --> 00:32:10,740 Ale teraz, len viem, že tento súbor, headers.php, jednoducho 673 00:32:10,740 --> 00:32:13,040 má titul, ktorý Aj prešiel v roku, to robiť 674 00:32:13,040 --> 00:32:17,380 istý, že je bezpečné pre vstrekovanie do pásu strana, a to vypľuje ako môj titul 675 00:32:17,380 --> 00:32:18,640 a ako môj H1. 676 00:32:18,640 --> 00:32:24,440 Takže keď som sa ísť do tejto verzie teraz, Všimnite si, že prednášky má jeho titul späť, 677 00:32:24,440 --> 00:32:28,630 týždeň zero má svoj názov späť, a naozaj, HTML som generovanie 678 00:32:28,630 --> 00:32:32,110 je zhodný s čo môj prvý verziu was-- s výnimkou pre moje bielymi znakmi, 679 00:32:32,110 --> 00:32:35,150 pretože som začal formátovanie môj kód trochu inak. 680 00:32:35,150 --> 00:32:38,082 Ale ja som generované všetky kód mi záleží. 681 00:32:38,082 --> 00:32:39,790 Dovoľte mi teda pozastaviť len na chvíľu a vidieť 682 00:32:39,790 --> 00:32:42,200 ak tam je nejaké otázky alebo zmätenosťou som vytvoril. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Dobre, tak sa poďme otočiť trochu ťažšie tu 685 00:32:48,150 --> 00:32:51,500 aby zistil, či tam je príležitosť pre zlepšenie. 686 00:32:51,500 --> 00:32:56,130 Helpers.php tiež mal toto funkcie, tzv renderFooter. 687 00:32:56,130 --> 00:32:59,652 A čo je pozoruhodné, o renderHeader, a renderFooter? 688 00:32:59,652 --> 00:33:02,610 A opäť, pre dnešné účely, know že funkcia extrakt je len 689 00:33:02,610 --> 00:33:08,280 môj spôsob odovzdávania argumentov do header.php a footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Prosím? 692 00:33:11,780 --> 00:33:13,056 >> Divákov: [Nepočuteľné] 693 00:33:13,056 --> 00:33:15,180 DAVID Malan: Jo, len som zmene vyžadujú riadok. 694 00:33:15,180 --> 00:33:19,410 Takže doslova, ja som spáchal hriech kopírovanie a vkladanie, napriek tomu znova. 695 00:33:19,410 --> 00:33:21,920 Nie je to obrovské množstvo liniek, ale keď príde on-- 696 00:33:21,920 --> 00:33:25,220 keď som kopírovanie a vkladanie všetko stačí zmeniť jednu malú slovo, 697 00:33:25,220 --> 00:33:28,610 a jedna malá slovo, ktoré Alan body von je päta tu oproti hlavičky tu. 698 00:33:28,610 --> 00:33:30,670 Inak je všetko totožné, s výnimkou, 699 00:33:30,670 --> 00:33:32,180 Samozrejme, mená funkciu má. 700 00:33:32,180 --> 00:33:33,690 Takže to, čo by sme mohli robiť lepšie? 701 00:33:33,690 --> 00:33:39,810 >> No dovoľte mi, aby som otvoriť túto verziu tu, pričom v helpers.php, 702 00:33:39,810 --> 00:33:42,300 prečo nie ja len získať málo múdrejší o tom? 703 00:33:42,300 --> 00:33:46,410 Napíšte trochu zložitejšie kód, ale hovoria to robí? 704 00:33:46,410 --> 00:33:48,470 Tak čo som to zásadne zmenilo? 705 00:33:48,470 --> 00:33:51,770 >> To trvá argument now-- dva argumenty, dáta stále. 706 00:33:51,770 --> 00:33:54,444 A čo potom je prvý názov pravdepodobne sa používa pre, 707 00:33:54,444 --> 00:33:55,860 na základe toho, čo čítate tu? 708 00:33:55,860 --> 00:33:58,452 Aj keď niektoré z syntaxe je stále ešte nový. 709 00:33:58,452 --> 00:33:59,660 Čo je znak dolára šablóna? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Prosím? 712 00:34:03,016 --> 00:34:03,710 >> Divákov: hlavičky alebo päty. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Malan: hlavičky alebo päty. 714 00:34:04,510 --> 00:34:07,134 Takže sa zdá, som sa rozhodol, že v prípade, jediná vec, ktorá sa mení 715 00:34:07,134 --> 00:34:10,159 je to, čo chcem, šablóna na print-- a šablóny 716 00:34:10,159 --> 00:34:13,100 Mám na mysli to je plán pre kód, ktorý chcem výstup, 717 00:34:13,100 --> 00:34:16,350 ale chcem sa pripojiť v niektorých values-- takže keď je to len hlavičky 718 00:34:16,350 --> 00:34:20,440 alebo päty, prečo nie ja parametrizácii to a zavolajte znak argumentom dolára 719 00:34:20,440 --> 00:34:21,409 šablóna? 720 00:34:21,409 --> 00:34:26,250 A potom sa to funky syntaxe mi umožňuje pre vytvorenie cesty v premennej sem. 721 00:34:26,250 --> 00:34:28,030 >> Takže znak dolára cesta je variabilný. 722 00:34:28,030 --> 00:34:31,120 To, čo robí túto syntax áno, ak ste oboznámení? 723 00:34:31,120 --> 00:34:32,512 Jo? 724 00:34:32,512 --> 00:34:34,065 >> Divákov: [Nepočuteľné] 725 00:34:34,065 --> 00:34:34,940 DAVID Malan: Presne tak. 726 00:34:34,940 --> 00:34:37,600 Ak je šablóna je, citujem koniec citátu, hlavičky, alebo ak šablóna je, 727 00:34:37,600 --> 00:34:41,170 quote koniec citátu, päty, že linka že som sa zvýrazní, linka osem, 728 00:34:41,170 --> 00:34:46,330 je jednoducho pričom toto meno, ako je záhlavie, a zreťazenie ho bodovým PHP. 729 00:34:46,330 --> 00:34:49,750 Takže sme nemali tento operátor v C. Tento operátor bodka je 730 00:34:49,750 --> 00:34:54,520 úžasná vec v PHP--, ak ste oboznámení s JavaScript alebo Java, 731 00:34:54,520 --> 00:34:56,949 môžete použiť tlačidla plus prihlásiť robiť zreťazenie. 732 00:34:56,949 --> 00:34:59,974 >> V jazyku C, je to bolesť v neck-- a ja som moc ľúto, v p-set šesť, 733 00:34:59,974 --> 00:35:02,390 budete musieť urobiť tohle-- to je bolesť v krku 734 00:35:02,390 --> 00:35:03,930 zřetězit reťazca. 735 00:35:03,930 --> 00:35:04,670 Prečo? 736 00:35:04,670 --> 00:35:06,580 No, pretože ak máte reťazec, ktorý je tak dlho, 737 00:35:06,580 --> 00:35:09,538 a iný reťazec, ktorý je tak dlho, môžete nielen pripojiť dohromady. 738 00:35:09,538 --> 00:35:11,070 Čo namiesto toho musieť urobiť v C? 739 00:35:11,070 --> 00:35:11,680 Jo? 740 00:35:11,680 --> 00:35:12,380 >> Divákov: [Nepočuteľné] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Malan: Musíte malloc pamäť, alebo použiť pole v zásobníku. 742 00:35:15,090 --> 00:35:17,214 A skutočne sa aby to pole dostatočne veľká 743 00:35:17,214 --> 00:35:20,940 aby sa zmestili to a to, plus spätné lomítko nula. 744 00:35:20,940 --> 00:35:24,994 Potom zřetězit dohromady s použitím miešať mačku alebo ručne pomocou slučky for, 745 00:35:24,994 --> 00:35:26,160 alebo ľubovoľný počet techník. 746 00:35:26,160 --> 00:35:27,760 A my vám ukázať pár v p-set šesť. 747 00:35:27,760 --> 00:35:29,080 >> Je to bolesť v krku. 748 00:35:29,080 --> 00:35:34,190 A to je skutočne to, čo mám na mysli o to proti tohle-- ako je C v porovnaní s PHP. 749 00:35:34,190 --> 00:35:36,870 Môžete len získať tak oveľa viac funkcionalita zdarma, 750 00:35:36,870 --> 00:35:39,030 takže sa môžete sústrediť, v ideálnom prípade, na zábavu 751 00:35:39,030 --> 00:35:41,190 časť kódovanie sa projekt, ktorý chcete vyriešiť, 752 00:35:41,190 --> 00:35:43,190 skôr než nízka úroveň detailov. 753 00:35:43,190 --> 00:35:49,840 >> Takže to len vytvára header.php alebo footer.php založená na ktorý z nich mám nazvať. 754 00:35:49,840 --> 00:35:52,280 A skutočne, keď idem do index.php, oznámenie 755 00:35:52,280 --> 00:35:56,230 všetko, čo sa changed-- Miesto volanie vykreslenie hlavičky alebo päty render, 756 00:35:56,230 --> 00:36:00,230 Volám činí, prípadne s využitím názov šablóny, ktorú chcem robiť. 757 00:36:00,230 --> 00:36:02,370 A uvidíte aj to, v probléme set sedem, 758 00:36:02,370 --> 00:36:05,530 v ktorom by sme vám umožní použiť rovnaká funkcia, aby sa zväzky 759 00:36:05,530 --> 00:36:07,550 a zväzky rôznych webových stránkach. 760 00:36:07,550 --> 00:36:10,570 >> Takže skôr ako býva príliš viac na tie details-- 761 00:36:10,570 --> 00:36:13,210 ktorý uvidíte opäť v Problém set siedmej poďme sa pozrieť 762 00:36:13,210 --> 00:36:16,850 na teraz začiatku roztoku k viac zaujímavý problém. 763 00:36:16,850 --> 00:36:19,310 Doteraz nič máme urobil má uložených dát. 764 00:36:19,310 --> 00:36:22,920 V skutočnosti, jediný čas, ktorý sme kedy uložili niečo, čo sme urobili v tejto triede 765 00:36:22,920 --> 00:36:31,030 je, keď sme mali veľmi jednoduchú ukážku chvíľu späť, pričom sme použili vstupno-výstupný súbor v jazyku C, 766 00:36:31,030 --> 00:36:34,520 a myslím, že som napísal v mojom mene, a Hannah meno, a Máriinho meno, 767 00:36:34,520 --> 00:36:37,610 alebo možno Andyho meno, a potom sme uložili vo formáte CSV file-- 768 00:36:37,610 --> 00:36:39,430 oddelené čiarkou hodnoty súboru. 769 00:36:39,430 --> 00:36:43,530 >> A sme fopen-- myslím, sme použili fprintf ak si spomínam, 770 00:36:43,530 --> 00:36:44,910 a uložili sme súbor. 771 00:36:44,910 --> 00:36:46,920 Teraz, že je najjednoduchšie forma databázy. 772 00:36:46,920 --> 00:36:50,230 Ak chcete vytvoriť webové stránky pre Program frosh IM, pričom prváci 773 00:36:50,230 --> 00:36:53,390 môžete zaregistrovať na šport, v ideálnom prípade vás chcete urobiť niečo s týmito dátami. 774 00:36:53,390 --> 00:36:55,370 Minulý týždeň sme neurobili nič s data-- sme práve povedali, 775 00:36:55,370 --> 00:36:56,661 ste registrovaní, naozaj nie. 776 00:36:56,661 --> 00:36:58,950 Alebo možno som e-mailom Proctor, a bolo to. 777 00:36:58,950 --> 00:37:02,110 >> Ale bolo by pekné, keby to šlo dať, že Proctor súboru vo formáte CSV, 778 00:37:02,110 --> 00:37:03,340 ako súboru programu Excel. 779 00:37:03,340 --> 00:37:05,090 Alebo ešte lepšie, bolo by to bolo pekné, keby som mohol 780 00:37:05,090 --> 00:37:08,830 dal mená týchto užívateľov a koľaji mená a všetky, ktoré 781 00:37:08,830 --> 00:37:11,740 do databázy, ktorá len žije na veky, 782 00:37:11,740 --> 00:37:13,530 kým vybrať zmazať dáta. 783 00:37:13,530 --> 00:37:15,645 Databázy, ktorá umožňuje mi na dotaz informácie. 784 00:37:15,645 --> 00:37:18,070 A naozaj, že to, čo je databáza. 785 00:37:18,070 --> 00:37:20,470 >> Predstavujeme dnes, a Budúci týždeň tiež technológia 786 00:37:20,470 --> 00:37:25,020 volal SQL-- štruktúrovaného dotazu Jazyk, ktorý je iný jazyk. 787 00:37:25,020 --> 00:37:28,750 Je to v podstate programovaní jazyka, ale pre databázy. 788 00:37:28,750 --> 00:37:31,760 A databázy pre túto chvíľu, len myslieť ako super efektné verziu 789 00:37:31,760 --> 00:37:35,710 Microsoft Excel alebo Google Tabuľkami alebo čísla Apple. 790 00:37:35,710 --> 00:37:39,950 Je to všeobecne program, ktorý umožňuje ukladať veľa dát 791 00:37:39,950 --> 00:37:43,960 v radoch a stĺpcoch, úplne ako by ste mohli v programe Excel. 792 00:37:43,960 --> 00:37:47,100 >> Ale čo je pekné, najmä v prípade, nie sme výborný oboznámení s aplikáciou Excel, 793 00:37:47,100 --> 00:37:52,040 čo SQL vám umožní urobiť, je to otázka Informácie o písaní riadkov kódu 794 00:37:52,040 --> 00:37:55,220 kde je to možné, aj keď vaše Databáza má milión riadkov v ňom, 795 00:37:55,220 --> 00:37:57,190 môžete nájsť veci, super rýchly. 796 00:37:57,190 --> 00:37:59,950 V skutočnosti, Excel je obzvlášť zlé veľkých dátových súborov. 797 00:37:59,950 --> 00:38:02,460 A v skutočnosti, až na pár Pred rokmi, ukázalo sa, 798 00:38:02,460 --> 00:38:08,890 Excel by umožnila iba ukladať až 65535 radu data--, ktoré 799 00:38:08,890 --> 00:38:12,020 znie ako veľa, ale u čas som bol postgraduálny študent, 800 00:38:12,020 --> 00:38:14,920 a Pamätám si zakopol to preto, že som bol generovanie 801 00:38:14,920 --> 00:38:17,900 CSV súbory pre svojho výskumu a ja Chcel, aby ich rýchlo analyzovať 802 00:38:17,900 --> 00:38:19,530 jednoduchým otvorením v programe Excel. 803 00:38:19,530 --> 00:38:23,730 Samozrejme, môj počítač práve havaroval, preto, že som mal viac ako 65.000 riadkov. 804 00:38:23,730 --> 00:38:27,210 >> Ale kdeže asi 65.535 pochádza? 805 00:38:27,210 --> 00:38:29,670 Čo to robí Microsoft, podľa všetkého? 806 00:38:29,670 --> 00:38:32,430 Ak ste dobrý so svojimi právomocami dvoch? 807 00:38:32,430 --> 00:38:37,160 Jo, oni boli za použitia 16-bit hodnota reprezentovať číslo riadka. 808 00:38:37,160 --> 00:38:41,310 A za druhé až 16 je 65,536-- mínus jedna, pretože ak budete 809 00:38:41,310 --> 00:38:45,414 nulový index znamená, že bol väčšina počet riadkov som mohol mať. 810 00:38:45,414 --> 00:38:46,830 A to bol len rozhodnutie o dizajne. 811 00:38:46,830 --> 00:38:52,760 Uložením 16 bitov, oni ma obmedzený na 16.000 riadkov namiesto 4 miliardy, 812 00:38:52,760 --> 00:38:54,322 ktoré som mohol mať v ideálnom prípade. 813 00:38:54,322 --> 00:38:57,030 Ale teraz, budeme zaviesť to viac v internetovom kontexte. 814 00:38:57,030 --> 00:39:00,390 A čo je pekné o SQL je, že aj aj keď je to dosť silný a dosť 815 00:39:00,390 --> 00:39:04,050 sofistikovaný, je to naozaj varí až na štyri kľúčové operácie, štyri 816 00:39:04,050 --> 00:39:08,060 kľúčové funkcie, pokiaľ will-- Select, pre získavanie dát, vyhľadávanie 817 00:39:08,060 --> 00:39:12,510 pre dáta; odstrániť alebo mazanie dát; vložka pre pridávanie riadkov do databázy; 818 00:39:12,510 --> 00:39:13,410 a aktualizácie. 819 00:39:13,410 --> 00:39:17,010 Takže ak ste niekedy používali Google Tabuľky, Apple, Microsoft Numbers 820 00:39:17,010 --> 00:39:19,310 Excel, ste popravený, s najväčšou pravdepodobnosťou, všetko 821 00:39:19,310 --> 00:39:22,530 z týchto operácií ako ľudské strany len pomocou klávesnice a mouse-- 822 00:39:22,530 --> 00:39:26,050 vkladanie dát, vočima zvoľte alebo vyhľadávať dáta, 823 00:39:26,050 --> 00:39:28,360 alebo aktualizovať údaje či odstraňovať dáta. 824 00:39:28,360 --> 00:39:29,870 >> Takže čo to znamená? 825 00:39:29,870 --> 00:39:34,300 Dobre, predinštalované v CS50 IDE je program s názvom MySQL. 826 00:39:34,300 --> 00:39:37,050 Je to zadarmo, open-source databázy, ktorá je super populárne. 827 00:39:37,050 --> 00:39:40,590 Facebook, napríklad, používa to, aby to deň, okrem iného nástroje, ktoré používajú. 828 00:39:40,590 --> 00:39:44,300 A kopa veľmi obľúbené webové stránky používať to z veľkej časti preto, že je to rýchle, 829 00:39:44,300 --> 00:39:45,230 a pretože je to zadarmo. 830 00:39:45,230 --> 00:39:46,820 Aj keď určite existujú alternatívy. 831 00:39:46,820 --> 00:39:49,580 A niektorí z vás možno fušovať s alternatívy pre záverečných prác. 832 00:39:49,580 --> 00:39:55,330 >> Jedná sa o snímku obrazovky, zatiaľ, z webový nástroj s názvom phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Je to náhoda, že Tento webový nástroj je tiež 834 00:39:58,260 --> 00:40:01,720 napísaný v jazyku, PHP, ale čo to znamená robiť 835 00:40:01,720 --> 00:40:04,620 Je nám webová interface do databázy. 836 00:40:04,620 --> 00:40:07,180 Vzhľadom k tomu, MySQL je zvyčajne niečo, vás historicky, 837 00:40:07,180 --> 00:40:08,770 by v interakcii s iba s príkazového riadku. 838 00:40:08,770 --> 00:40:10,811 A to by bolo super nepríjemné a Arcane mať 839 00:40:10,811 --> 00:40:14,487 zadajte príkazy textové vyberte Údaje, vložiť dáta, a mazať dáta. 840 00:40:14,487 --> 00:40:16,820 Takže niektorí ľudia na internete napísal program, internetový 841 00:40:16,820 --> 00:40:18,900 že dajte nám zvládnuť dáta v našej databáze. 842 00:40:18,900 --> 00:40:23,040 Je to ako dvojitým kliknutím na Excel, a beží jej webovej verzie a. 843 00:40:23,040 --> 00:40:26,370 >> A čo budete používať to pre nakoniec budúci týždeň, a to v p-set šesť, 844 00:40:26,370 --> 00:40:28,680 ale je vybudovať niečo, čo volal CS50 Financie, ktorý 845 00:40:28,680 --> 00:40:32,630 bude mať databázu Užívatelia, s užívateľských mien a hesiel, 846 00:40:32,630 --> 00:40:34,860 Dolár sumy, ktoré majú vo svojich bankových účtoch. 847 00:40:34,860 --> 00:40:37,280 Je to bude niečo, čo použiť na uloženie 848 00:40:37,280 --> 00:40:39,910 symboly a množstvo populácií, ktoré užívatelia 849 00:40:39,910 --> 00:40:42,567 si kúpil za použitia virtuálnej dolárov, ktoré vám dám im. 850 00:40:42,567 --> 00:40:44,900 A to bude umožniť užívateľom registrovať pre vaše stránky, 851 00:40:44,900 --> 00:40:47,190 takže aj vašich priateľov môžu naladiť na vašich webových stránkach 852 00:40:47,190 --> 00:40:49,360 a vlastne registrovať, prihlásenie a pohrajte 853 00:40:49,360 --> 00:40:52,807 a pokúsiť sa nájsť chybu v kóde, a pokúsiť sa nájsť chyby na svoje webové stránky. 854 00:40:52,807 --> 00:40:55,390 A oni si jednoducho zaregistrovať pridávanie sa, účinne, 855 00:40:55,390 --> 00:40:58,120 pomocou kódu, píšete do databázy. 856 00:40:58,120 --> 00:41:02,470 >> Napríklad, to je rýchly obrazovky z toho, čo je databáza by mohla vyzerať. 857 00:41:02,470 --> 00:41:05,190 To bolo od jedného z minuloročnej solutions-- 858 00:41:05,190 --> 00:41:07,760 to je ako mini Excel súboru, uložené v našej databáze, 859 00:41:07,760 --> 00:41:09,950 uložené v tomto softvér nazvaný MySQL. 860 00:41:09,950 --> 00:41:13,260 Na ľavej strane, som zjavne keďže, každému užívateľovi jedinečné číslo. 861 00:41:13,260 --> 00:41:16,200 V druhom stĺpci, som dal každý užívateľ name-- môj vlastný 862 00:41:16,200 --> 00:41:16,880 medzi nimi. 863 00:41:16,880 --> 00:41:21,430 A na pravej strane, Dal som im hash. 864 00:41:21,430 --> 00:41:26,760 >> Teraz je to vlastne heslo, ale to nie je obyčajný text hesla. 865 00:41:26,760 --> 00:41:30,160 Je to šifrované heslo, ak budete, alebo hash hesla. 866 00:41:30,160 --> 00:41:32,000 Čo sa vrátime do onedlho. 867 00:41:32,000 --> 00:41:34,340 >> Ale ak ste niekedy čítal článok o tom, ako 868 00:41:34,340 --> 00:41:37,950 Vaše heslo na nejaké banke alebo niektoré webová stránka mohla byť ohrozená, 869 00:41:37,950 --> 00:41:39,630 to môže všeobecne znamenať jednu z dvoch vecí. 870 00:41:39,630 --> 00:41:42,780 Tak to je len výňatok zo šiestich užívateľov. 871 00:41:42,780 --> 00:41:45,460 Všetci z vás teraz môže prísť out cez hacking alebo praskliny 872 00:41:45,460 --> 00:41:47,690 čo hesla našich šesť ľudí sú. 873 00:41:47,690 --> 00:41:49,720 Ale ak ste niekedy dostali výstraha alebo ospravedlnenie 874 00:41:49,720 --> 00:41:52,803 od spoločnosti alebo webové stránky reči, Ospravedlňujem sa, hacker vlámal do našej databázy, 875 00:41:52,803 --> 00:41:56,360 asi by ste mali zmeniť svoj heslo, čo by to znamenalo? 876 00:41:56,360 --> 00:41:59,670 >> No, jeden mohol znamenať, že spoločnosť bola viac hlúpy, 877 00:41:59,670 --> 00:42:03,630 a bol uložením hesla v stĺpci, ako je tento, nezašifrované. 878 00:42:03,630 --> 00:42:05,840 Čo znamená, že protivníka, ktorý ukradol databázy, 879 00:42:05,840 --> 00:42:07,440 doslova pozná vaše Užívateľské meno a heslo. 880 00:42:07,440 --> 00:42:08,960 To je ten najhorší možný scenár. 881 00:42:08,960 --> 00:42:11,710 A ako uvidíte v p-set sedem, tak ľahko, aby sa zabránilo. 882 00:42:11,710 --> 00:42:15,624 Neexistuje absolútne žiadne ospravedlnenie pre to forma hlúposti v dnešnom Internete. 883 00:42:15,624 --> 00:42:18,540 Two-- a nájdeme nejaké články svedčiť skutočnosť, že táto stále 884 00:42:18,540 --> 00:42:21,710 sa stane, nonetheless-- dva, možno protivník 885 00:42:21,710 --> 00:42:23,840 ukradol túto verziu databázy. 886 00:42:23,840 --> 00:42:27,110 Čo je stále ešte trochu zle, pretože teraz vedia, že mám šesť zákazníkov, 887 00:42:27,110 --> 00:42:29,270 Viem, že používateľské mená z týchto šiestich zákazníkov, 888 00:42:29,270 --> 00:42:32,910 a ja viem, že šifrované verzia alebo Hashed verzie, 889 00:42:32,910 --> 00:42:34,340 hesiel týchto šiestich zákazníkov. 890 00:42:34,340 --> 00:42:37,010 Ale každý z vás, ktorí by mohlo urobil [? Hacker 2?] 891 00:42:37,010 --> 00:42:41,150 kde ste popraskané hesiel, alebo vzal Pozrite sa na tejto verzie problému 892 00:42:41,150 --> 00:42:46,280 set, prečo je to ešte trochu znepokojujúce v prípade, že protivník pozná vaše hash 893 00:42:46,280 --> 00:42:47,435 heslá? 894 00:42:47,435 --> 00:42:49,732 >> Divákov: Vzhľadom k tomu, čo mohli zadajte celý slovník 895 00:42:49,732 --> 00:42:50,690 do hash funkcie. 896 00:42:50,690 --> 00:42:54,520 A ak vaše heslo je slovník Slovo, [? oni môžu len match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Malan: Presne tak, protivník môžete len písať kód, ako niektorí z vás 898 00:42:57,640 --> 00:43:00,526 urobil pre [? Hacker?] 2, kedy ste iterácii 899 00:43:00,526 --> 00:43:03,400 všetky slová v slovníku, alebo všetky možné kombinácie A 900 00:43:03,400 --> 00:43:06,610 až Z a jedna až nine-- ktorý znie ako veľa, a to je. 901 00:43:06,610 --> 00:43:08,361 Ale pre počítač, je to sakramentsky rýchlo. 902 00:43:08,361 --> 00:43:10,610 A v skutočnosti, že bolo bod [? Hacker 2 ,?] Bol 903 00:43:10,610 --> 00:43:12,540 aby sa veci, ktoré doslova vyzerá to, 904 00:43:12,540 --> 00:43:14,900 a spätne analyzovať čo to vlastne bolo. 905 00:43:14,900 --> 00:43:17,270 >> Takže sa pozrieme na to, ako môžeme uložiť tento efektívnejšie. 906 00:43:17,270 --> 00:43:20,210 Ukázalo sa, našťastie v MySQL, tam sú bude dátové typy. 907 00:43:20,210 --> 00:43:22,800 A jeden z legrace častí o navrhovanie databáz, aby som bol úprimný, 908 00:43:22,800 --> 00:43:25,810 je vlastne rozhodovanie pre seba Ako by ste mali reprezentovať dáta? 909 00:43:25,810 --> 00:43:29,630 Ak by ste predstavujú telefónne číslo as int, ako veľký číslo alebo dlhé? 910 00:43:29,630 --> 00:43:31,630 Alebo si skutočne urobiť ako sled znakov? 911 00:43:31,630 --> 00:43:33,780 A tam môže byť veľmi netriviálne dôsledky tohto. 912 00:43:33,780 --> 00:43:36,714 >> V skutočnosti jeden z Najskôr, zábava German príbehy 913 00:43:36,714 --> 00:43:39,880 je, keď Mark Zuckerberg budoval Facebook, to bolo pôvodne napísané v, 914 00:43:39,880 --> 00:43:42,300 a napriek tomu je z veľkej časti napísaný v PHP. 915 00:43:42,300 --> 00:43:45,400 A jeden z najväčších problémov oni stáli na počiatku bola merítka. 916 00:43:45,400 --> 00:43:48,820 Keď sa pridával do školy po tom, čo Škola po škole, pokiaľ je mi známe, 917 00:43:48,820 --> 00:43:51,639 jeden z originálnych riešení bol v podstate kopírovať a vložiť 918 00:43:51,639 --> 00:43:53,430 niektoré z databáz a niektoré z kódu, 919 00:43:53,430 --> 00:43:55,346 takže Harvard bol bežiaci na vlastný server 920 00:43:55,346 --> 00:43:56,995 a MIT bežal na vlastnom serveri. 921 00:43:56,995 --> 00:43:59,120 A to bol dôvod, prečo, pre niektoré z vás, kto by mohol pripomenúť, 922 00:43:59,120 --> 00:44:01,510 ste nemohli mať priateľov v iných sieťach. 923 00:44:01,510 --> 00:44:05,050 >> Vy asi nemáte priateľom MIT alebo Harvard pred 10 rokov alebo tak, 924 00:44:05,050 --> 00:44:07,467 ale vy ste nemohli span siete pre čiastočne z tohto dôvodu. 925 00:44:07,467 --> 00:44:10,550 A jeden z najväčších výziev pre Mark a pre firmy, ako je Facebook 926 00:44:10,550 --> 00:44:13,460 je vlastne manipuláciu stovky a tisíce a milióny 927 00:44:13,460 --> 00:44:14,460 žiadostí za sekundu. 928 00:44:14,460 --> 00:44:16,501 Takže veci, začneme hovorí o tento týždeň 929 00:44:16,501 --> 00:44:19,860 sú naozaj bude relevantné k písanie dobrý softvér, a populárno 930 00:44:19,860 --> 00:44:23,040 úspešné nástroje, ktoré zvládne veľa užívateľov. 931 00:44:23,040 --> 00:44:25,460 >> Takže budeme hovoriť o veciach, ako je indexovanie a vyhľadávanie, 932 00:44:25,460 --> 00:44:26,910 ale že to je pre dnešok všetko. 933 00:44:26,910 --> 00:44:28,780 Uvidíme sa za viac v strede. 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, aby ste to, a odpočítať od nej. 937 00:44:35,943 --> 00:44:38,859 A nemusíte držať sa niektoré vopred stanovené množstvo pamäte. 938 00:44:38,859 --> 00:44:40,580 No, čo sa, že bude volať? 939 00:44:40,580 --> 00:44:42,369 >> Reproduktor 1: No, čo sa deje? 940 00:44:42,369 --> 00:44:43,535 SPEAKER 2: Čo tým myslíš? 941 00:44:43,535 --> 00:44:44,451 Dáva prednášku. 942 00:44:44,451 --> 00:44:47,650 DAVID Malan: A môžeme použiť funkcia volaná malloc k memory-- 943 00:44:47,650 --> 00:44:50,050 >> Reproduktor 1: Prečo sa jeho paže v pohybe? 944 00:44:50,050 --> 00:44:52,450 >> SPEAKER 2: Dobre that's-- viete, že je to normálne. 945 00:44:52,450 --> 00:44:57,162 Je to ako, že má len veľké klobásy visí tam. 946 00:44:57,162 --> 00:44:59,040 >> Reproduktor 1: To je normálne? 947 00:44:59,040 --> 00:45:03,096 >> SPEAKER 2: Jo, myslím, že sme len predpokladať, on náhodne 948 00:45:03,096 --> 00:45:06,840 nahradil jeho dezodorant s sekundovým lepidlom. 949 00:45:06,840 --> 00:45:07,608