1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Predvaja glasba] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID Malan: To je CS50, in to je začetek osmih teden. 5 00:00:13,350 --> 00:00:17,510 In mi smo tako veseli, da so dobrodošli nazaj, veliko presenečenje, CS50 lastne Ramon 6 00:00:17,510 --> 00:00:22,160 Galvan, narašča senior, ki je bil porabe v zadnjih nekaj mesecev 7 00:00:22,160 --> 00:00:26,190 od julija v Los Angelesu, v Hollywoodu, dobesedno delajo na povsem novo televizijo 8 00:00:26,190 --> 00:00:31,930 predstava se imenuje kolonija, ustvarjalec, ki je pravzaprav Harvard alum sam. 9 00:00:31,930 --> 00:00:36,610 In zato smo zelo veseli, da vidim to prvenec na ZDA omrežja januarja letos. 10 00:00:36,610 --> 00:00:40,370 Torej, ostanite z nami za to, in za več Ramon za prihodnjih tednih. 11 00:00:40,370 --> 00:00:42,550 >> Zdaj vem, da je konec blizu. 12 00:00:42,550 --> 00:00:47,400 In kaj to pomeni, da tam ni vsi, da je veliko ostalo od CS50, žalostno, da povem. 13 00:00:47,400 --> 00:00:49,400 Imamo samo tri težave kompleti left-- obstaja 14 00:00:49,400 --> 00:00:52,510 problem nastaviti six--, ki je v vaše roke bodo zdaj ali kmalu, 15 00:00:52,510 --> 00:00:56,080 zaradi kasneje ta week-- je mišljeno za premostitev naši svetovi ukazni vrstici, kjer 16 00:00:56,080 --> 00:00:59,450 smo preživeli večino našega časa s pomočjo C, in svet spletnega programiranja. 17 00:00:59,450 --> 00:01:02,350 No, boste videli veliko idej izposojen iz dela v ukazni vrstici, 18 00:01:02,350 --> 00:01:04,560 ampak tudi veliko novih in zanimive ideje 19 00:01:04,560 --> 00:01:07,929 da se tudi bo germane za mobilne aplikacije in za tehnologijo, 20 00:01:07,929 --> 00:01:10,470 bolj na splošno, s katero Fantje so vsi seznanjeni danes 21 00:01:10,470 --> 00:01:12,090 na prenosnih računalnikih in telefonih in podobno. 22 00:01:12,090 --> 00:01:15,220 >> Tako boste ne izvajajo spletna stran ali spletna stran 23 00:01:15,220 --> 00:01:17,620 per se, ampak dejanski spletni strežnik. 24 00:01:17,620 --> 00:01:21,590 Boste napisali ostali spletni strežnik napisana v C, katerih namen v življenju 25 00:01:21,590 --> 00:01:25,410 je za sprejem zahteve HTTP, tiste virtualne ovojnice hranimo govorimo 26 00:01:25,410 --> 00:01:29,780 o, in dejansko odzove bodisi z nekatere statične content-- kot dot HTML 27 00:01:29,780 --> 00:01:32,310 datoteke ali pika JPEG ali katera koli druga število datotek, 28 00:01:32,310 --> 00:01:37,070 ali celo PHP datoteka s katerim vašo spletno Strežnik se dogaja, da razloži to PHP 29 00:01:37,070 --> 00:01:38,332 kodo in pljunil ven rezultate. 30 00:01:38,332 --> 00:01:40,540 Zdaj smo vam z zelo malo okvira 31 00:01:40,540 --> 00:01:43,100 za it-- dejansko distribucija koda za problem 32 00:01:43,100 --> 00:01:47,496 nastavite šest je več kot 1000 vrstic, A Veliko, ki je komentar, ki bo fair-- 33 00:01:47,496 --> 00:01:49,370 vendar je to res mišljeno da priložnost 34 00:01:49,370 --> 00:01:52,570 da bi dobili svoje roke umazane potapljanje v dokaj velikem projektu 35 00:01:52,570 --> 00:01:55,570 ki smo jih zelo specifično izrezljani iz kosov za vas, 36 00:01:55,570 --> 00:01:59,046 tako da res, ko zapustite CS50 in vstop v resnični svet programiranja 37 00:01:59,046 --> 00:02:00,920 in želite Praćakati v poljubno število projektov, 38 00:02:00,920 --> 00:02:03,253 boste imeli veliko večji Udobje downloading nekaj vir 39 00:02:03,253 --> 00:02:05,020 kode, nekaj open source projekt na spletu, 40 00:02:05,020 --> 00:02:08,174 in potapljanje in izdelavo Spremembe, ki jih vidite fit. 41 00:02:08,174 --> 00:02:11,340 Problem nastavite sedem se bo o izdelavo lastne spletne aplikacije 42 00:02:11,340 --> 00:02:14,140 da je sprotno in proizvaja dinamičen izhod v obliki 43 00:02:14,140 --> 00:02:16,920 iz-etrade.com kot spletno stran. 44 00:02:16,920 --> 00:02:20,800 In problem je določeno osem se bo osredotočil na še drug jezik, znan kot JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Medtem, končna Projekt je na obzorju. 46 00:02:24,170 --> 00:02:26,800 Tako imenovani pre-predlog je zaradi enega tedna od danes. 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- po specifikaciji, ki je na CS50 je website-- 48 00:02:29,930 --> 00:02:33,260 je precej priložnostno priložnost za lahko pošljete precej skope email 49 00:02:33,260 --> 00:02:35,170 na vaš asistent samo, da ga seznani 50 00:02:35,170 --> 00:02:38,250 ali ji kaj si mislil, da ga ali jo uporabite kot sondirnih krovu. 51 00:02:38,250 --> 00:02:40,980 In imajo prisebnost check-- ali razmišljate 52 00:02:40,980 --> 00:02:43,210 o odgriznjenjem preveč veliko ali morda premalo, 53 00:02:43,210 --> 00:02:46,480 ali morda nimaš pojma whatsoever in želite sodelovati v pogovoru. 54 00:02:46,480 --> 00:02:48,480 >> Nato je predlog in poročilo o stanju, 55 00:02:48,480 --> 00:02:51,860 ti CS50 hackathon tukaj Cambridge za Harvard in Yale študentov 56 00:02:51,860 --> 00:02:52,362 enako. 57 00:02:52,362 --> 00:02:54,320 Končni projekt je izvajanje je potem naravnost. 58 00:02:54,320 --> 00:02:59,290 In potem CS50 pošten tukaj, v Cambridgeu, kakor tudi drugi v New Haven. 59 00:02:59,290 --> 00:03:02,500 Torej predloga, si oglejte spletna stran za teh podatkov. 60 00:03:02,500 --> 00:03:06,530 >> Toda še bolj vznemirljivo, preveč, je Priložnost, da bi dobili svoje roke umazane, 61 00:03:06,530 --> 00:03:09,350 in vaš um odprt do celote kup teme in orodja 62 00:03:09,350 --> 00:03:12,920 in tehnike, ki so pomožna da jedro učnega načrta predmeta je, 63 00:03:12,920 --> 00:03:14,810 vendar vseeno povezani. 64 00:03:14,810 --> 00:03:18,400 In tudi čudovit kamniti do početje res kul končne projekte, ki 65 00:03:18,400 --> 00:03:22,020 krepko presegajo material, ki smo jih pokriva formalno problem nastavi ali v predavanju. 66 00:03:22,020 --> 00:03:24,446 Torej, pojdite na spletno stran CS50 za celoten roster seminarjev. 67 00:03:24,446 --> 00:03:26,070 Če se ne registrirate še, da je v redu. 68 00:03:26,070 --> 00:03:29,860 Pojdi naprej in se prijavite še in bomo nadaljevanje s povezavo za pretakanje žive, 69 00:03:29,860 --> 00:03:31,844 dan in čas, je na spletni strani. 70 00:03:31,844 --> 00:03:33,760 In bo vse evidentirajo in na spletu 71 00:03:33,760 --> 00:03:35,800 če ne morete da posebne dneve in ure. 72 00:03:35,800 --> 00:03:39,380 >> Glede tega, kaj je pred nami thereafter-- dobro, Seveda, tam je CS50 hackathon. 73 00:03:39,380 --> 00:03:43,560 Ta fotografija, odpoklic, od nič teden sprejeti okrog 04:00 en večer v preteklih letih. 74 00:03:43,560 --> 00:03:46,900 Sejem CS50, kar spet bo potekala v obeh mestih. 75 00:03:46,900 --> 00:03:49,760 In potem, samo da obrat za seme, čeprav smo še vedno 76 00:03:49,760 --> 00:03:54,080 imajo na mesec plus ostalo semestra, če vi bi radi, da se pridružijo lastnega poučevanja CS50 je 77 00:03:54,080 --> 00:03:56,770 osebje in želite začeti razmišljanje o postaja CA, 78 00:03:56,770 --> 00:03:59,550 ali poučevanje kolega, vem, da je bomo začeli govoriti več o tem 79 00:03:59,550 --> 00:04:00,630 kasneje ta semester. 80 00:04:00,630 --> 00:04:03,470 Vendar je na sliki, se Najbolj letošnje ekipe. 81 00:04:03,470 --> 00:04:06,950 >> In tako je bilo PHP-- in sem tako žalostna prejšnji teden, da [? Allyse?] Vljudno 82 00:04:06,950 --> 00:04:09,370 šel k prizadevanjem za pridobivanje nas te čudovite rekviziti 83 00:04:09,370 --> 00:04:11,720 da nisem na koncu z uporabo, tako da je res samo pogledal nekako neumno 84 00:04:11,720 --> 00:04:15,160 da smo imeli lopato sedel tukaj vse dan prejšnjo sredo, in malo žlico. 85 00:04:15,160 --> 00:04:17,709 Toda to je bil moj metaforična način poskuša naslikati 86 00:04:17,709 --> 00:04:21,600 slika, zakaj smo prehajamo od C do jezika, kot je PHP. 87 00:04:21,600 --> 00:04:25,480 In bi bila lahko enaka omenjeni katerem koli Število languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 ali grozde others-- ker pa v C, na primer, pisanje program v C 89 00:04:31,270 --> 00:04:34,050 Morda običajno kot ob žlico, kot je ta 90 00:04:34,050 --> 00:04:36,770 in kopati luknjo v tla, v pesku ali umazaniji. 91 00:04:36,770 --> 00:04:39,770 PHP vam omogoča, da veliko Večje ugrizi od problema, 92 00:04:39,770 --> 00:04:42,842 pisanje veliko manj kode uporabi bistveno manjše orodje, 93 00:04:42,842 --> 00:04:45,050 zato, ker je toliko bolj funkcionalnost pieced v. 94 00:04:45,050 --> 00:04:47,633 >> Zdaj, če smo bili res dramatično, bi imeli kaj za lopata 95 00:04:47,633 --> 00:04:48,760 tukaj, ampak naj bo tako. 96 00:04:48,760 --> 00:04:51,370 Medtem, drugi Metafora smo prišli do 97 00:04:51,370 --> 00:04:53,770 je, seveda, lahko uporabite nekaj podobnega ključem 98 00:04:53,770 --> 00:04:56,610 kladivo v nekaj podobnega žebelj. 99 00:04:56,610 --> 00:04:58,980 Seveda se je zgodilo orodje za uporabo se dogaja 100 00:04:58,980 --> 00:05:01,360 da ne sme biti toliko jezik imenuje C- 101 00:05:01,360 --> 00:05:03,590 in zdaj sem jezen [? Sanders?] Verjetno, 102 00:05:03,590 --> 00:05:07,890 bomo popraviti later-- tako pravo orodje za pogosto uporabo 103 00:05:07,890 --> 00:05:09,640 se ne bo ta najnižja orodje raven. 104 00:05:09,640 --> 00:05:13,720 In res, C, ni jezik, ki večina od vas kdaj uporabiti, 105 00:05:13,720 --> 00:05:15,590 ali je treba nujno ponovno uporabiti. 106 00:05:15,590 --> 00:05:18,350 >> In dejansko malo secret-- edino čas 107 00:05:18,350 --> 00:05:23,160 Uporabljam C sam je precej med Septembra in decembra vsakega padca 108 00:05:23,160 --> 00:05:23,870 semester. 109 00:05:23,870 --> 00:05:25,790 In to zato, ker mi jo uporabite kot priložnost 110 00:05:25,790 --> 00:05:27,852 naučiti osnov programiranja, 111 00:05:27,852 --> 00:05:29,810 in z njo računalniško znanstvene osnove, podatki 112 00:05:29,810 --> 00:05:32,435 strukture, algoritmi in like-- vendar zelo hitro boš 113 00:05:32,435 --> 00:05:35,010 zdaj vidim, da sintakso in ideje, ki je podlaga C 114 00:05:35,010 --> 00:05:37,530 so tako čudovito prenosljive na bolj moderno 115 00:05:37,530 --> 00:05:41,130 višje jeziki ravni, kot PHP in Python in Perl in Java 116 00:05:41,130 --> 00:05:46,750 in Objective-C- dejansko, ne toliko Cilj-C- vendar Swift, ti novejši 117 00:05:46,750 --> 00:05:50,010 jeziki, da mnogi od vas bo nato umazali s tabo končni projekt. 118 00:05:50,010 --> 00:05:55,070 >> Torej, brez odlašanja, kaj je dejansko uporabljati PHP za reševanje problemov. 119 00:05:55,070 --> 00:06:00,230 Spomnimo se, da je že na začetku, je bila nazadnje teden smo pravkar uporabljali CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 smo napisal Dinky malo programa da je pravkar rekel, "Hello world". 121 00:06:02,990 --> 00:06:05,680 In potem sem jo shranili v datoteka z imenom hello.php. 122 00:06:05,680 --> 00:06:07,280 In potem sem tekel ta ukaz. 123 00:06:07,280 --> 00:06:08,080 >> In zakaj? 124 00:06:08,080 --> 00:06:09,900 V angleščini, kaj se dogaja tukaj? 125 00:06:09,900 --> 00:06:12,760 Kaj sem delal, ko Stekel sem ta ukaz? 126 00:06:12,760 --> 00:06:13,405 >> Ja? 127 00:06:13,405 --> 00:06:16,572 >> OBČINSTVO: Tukaj je nekaj funkcija PHP ki se glasi, kaj je in-- razume. 128 00:06:16,572 --> 00:06:19,696 DAVID Malan: Dobro, tam je nekaj funkcija PHP-- in mi bi bili bolj specifični, 129 00:06:19,696 --> 00:06:21,810 tam je program, imenovan PHP, alias 130 00:06:21,810 --> 00:06:25,872 Tolmač, da razume vsebina hello.php, 131 00:06:25,872 --> 00:06:27,830 in jo interpretira na vrh spodaj, z leve proti desni, 132 00:06:27,830 --> 00:06:29,590 in ne, kaj ti ukazi pravijo. 133 00:06:29,590 --> 00:06:33,320 Ukazi v hello.php seveda je samo vir code-- funkcije 134 00:06:33,320 --> 00:06:35,750 in spremenljivke in zanke in podobno, da smo sami 135 00:06:35,750 --> 00:06:37,460 so začeli pisati v PHP. 136 00:06:37,460 --> 00:06:40,240 >> Toda za razliko od C, ki je preveden jezik, 137 00:06:40,240 --> 00:06:42,810 PHP si ga napisal, in ga zaženite. 138 00:06:42,810 --> 00:06:46,420 Vi preskočite ta posrednik korak pretvorbe v ničel in enic, 139 00:06:46,420 --> 00:06:47,790 in ga nato teče. 140 00:06:47,790 --> 00:06:50,510 In kaj je narobe s tem? 141 00:06:50,510 --> 00:06:52,690 Zakaj smo preskoči korak? 142 00:06:52,690 --> 00:06:55,238 Zakaj več modernih jezikov nagibajo k preskočite ta korak? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Kakšne so koristi? 145 00:07:01,220 --> 00:07:02,080 >> Ali pa samo intuitivno? 146 00:07:02,080 --> 00:07:04,200 Tudi če smo jih ne Pred napisal veliko PHP, 147 00:07:04,200 --> 00:07:07,210 kaj je koristno pa ne pripravo kodo misliš? 148 00:07:07,210 --> 00:07:08,520 Ne? 149 00:07:08,520 --> 00:07:09,610 Ne stori? 150 00:07:09,610 --> 00:07:11,350 Praskanje svojo glavo? 151 00:07:11,350 --> 00:07:12,614 Ja. 152 00:07:12,614 --> 00:07:13,600 >> OBČINSTVO: Bolj dinamično. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Malan: Bolj dinamično? 154 00:07:14,683 --> 00:07:16,032 Kaj misliš? 155 00:07:16,032 --> 00:07:17,000 >> OBČINSTVO: [neslišno] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID Malan: OK, dobro, zato odvisno od vhoda, 158 00:07:22,390 --> 00:07:23,470 nimate, naj mu pripravijo vsakič. 159 00:07:23,470 --> 00:07:24,990 In res je, kot je enostavno, kot that-- kaj 160 00:07:24,990 --> 00:07:26,990 je točka nadaljevanja sestaviti kodo? 161 00:07:26,990 --> 00:07:29,480 To je le korak, ki je making-- se to zahteva, 162 00:07:29,480 --> 00:07:31,900 V zadnjih nekaj tednov, dvakrat toliko korakov 163 00:07:31,900 --> 00:07:33,820 kot samo tekmovanje v teku svoj program. 164 00:07:33,820 --> 00:07:36,940 To je bilo koristno, da vidimo, da vas vidim nekaj sporočil o napakah in tako naprej, 165 00:07:36,940 --> 00:07:38,720 vendar je še vedno samo nadležno korak. 166 00:07:38,720 --> 00:07:41,810 >> In tako spoznal programerji čez čas, zakaj ne bomo 167 00:07:41,810 --> 00:07:45,327 začnite pisati jezike, ki ne Potrebujemo precej mehansko korak, 168 00:07:45,327 --> 00:07:47,160 tako da lahko samo napisati svojo kodo in ga zaženite. 169 00:07:47,160 --> 00:07:48,920 Ampak kakšna je bila cena da smo videli smo plačali 170 00:07:48,920 --> 00:07:50,910 prejšnji teden, z eno posebno primer? 171 00:07:50,910 --> 00:07:51,650 Ja? 172 00:07:51,650 --> 00:07:52,370 >> Hitrost. 173 00:07:52,370 --> 00:07:54,690 Torej [? kaj je?] tolmači malo počasneje, 174 00:07:54,690 --> 00:07:57,330 s tem, da so ničel in enic lepo in hitro za računalnik 175 00:07:57,330 --> 00:08:00,070 razumeti, saj Intel CPU, ali karkoli že je, 176 00:08:00,070 --> 00:08:03,070 samo razume, kaj se dogaja na teh vzorcih bitov. 177 00:08:03,070 --> 00:08:05,370 Ker tolmača je program, ki res 178 00:08:05,370 --> 00:08:07,980 mora prebrati vir ASCII kodo, ki ste napisali, 179 00:08:07,980 --> 00:08:12,700 in ga spremeniti, če se tako izrazim, ali ugotovimo, kako se pretvori v končni fazi 180 00:08:12,700 --> 00:08:13,525 do ničel in enic. 181 00:08:13,525 --> 00:08:15,650 Torej, to traja le malo malo hit uspešnosti. 182 00:08:15,650 --> 00:08:16,858 Torej, to je malo kompromisu. 183 00:08:16,858 --> 00:08:21,570 Zdaj, če to počnemo tukaj, pusti me iti naprej in narediti zgled, kot sledi. 184 00:08:21,570 --> 00:08:26,610 Če grem noter, nova datoteka, jaz grem ponovno shranite to hello.php. 185 00:08:26,610 --> 00:08:31,450 In zdaj bom, da gredo naprej in reči, "print zdravo svet" - 186 00:08:31,450 --> 00:08:35,130 in opozarjajo, da lahko uporabljam print, jaz ne morali uporabiti tiskalno-F. In zdaj tukaj, 187 00:08:35,130 --> 00:08:42,039 če naredim PHP hello.php, huh-- I ne zdi, da so jo razlagajo. 188 00:08:42,039 --> 00:08:43,412 Kaj sem naredila narobe? 189 00:08:43,412 --> 00:08:44,710 >> OBČINSTVO: Za kotne zapestnice. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Malan: Ja, morate da kot nosilec up top. 191 00:08:47,015 --> 00:08:49,390 Torej, to je nekako siten, ampak se navadiš na to hitro. 192 00:08:49,390 --> 00:08:53,500 Če moram pisati PHP kodo, sem na splošno morali povedati programu, 193 00:08:53,500 --> 00:08:56,950 ali povej tolmača, hej PHP, tukaj prihaja nekaj PHP kodo. 194 00:08:56,950 --> 00:09:00,440 In potem za dober ukrep, jaz bi zapre to ne s tem, ampak 195 00:09:00,440 --> 00:09:03,740 s samo vprašaj kotom nosilec, tako da je zdaj tu, 196 00:09:03,740 --> 00:09:06,840 če sem to spet teči, sedaj Dobim želenega rezultata. 197 00:09:06,840 --> 00:09:09,820 >> Sedaj naredimo rahlo optimizacijo, samo zato, da ste ga videli prej. 198 00:09:09,820 --> 00:09:14,040 To je vrsta siten, da I teči PHP prostora hello.php, 199 00:09:14,040 --> 00:09:16,060 ker je v zadnjem I lahko samo napisati dot poševnica 200 00:09:16,060 --> 00:09:17,560 ime programa, ki je nekako lepo. 201 00:09:17,560 --> 00:09:19,420 To je nekako boljšo uporabniško izkušnjo. 202 00:09:19,420 --> 00:09:24,160 >> Tako se izkaže, da lahko to storite v PHP z following-- I 203 00:09:24,160 --> 00:09:28,780 Lahko uporabite to precej Grobni zaklinjanje na vrhu tukaj, 204 00:09:28,780 --> 00:09:31,740 kar se na splošno imenuje shebang, pri čemer je ta oster simbol, 205 00:09:31,740 --> 00:09:34,270 tako rekoč, da je to pok ali klicaj. 206 00:09:34,270 --> 00:09:38,490 In to je zdaj pot do programa na tipičnem sistemu Linux, ki 207 00:09:38,490 --> 00:09:41,500 se imenuje okolje, ali env. 208 00:09:41,500 --> 00:09:43,920 In to line-- dolgo zgodbo short-- linija eno samo 209 00:09:43,920 --> 00:09:48,710 pravi, hej računalnik, našli PHP tolmač za mene v okolju, 210 00:09:48,710 --> 00:09:50,610 ga našli v vašem spominu, tako rekoč. 211 00:09:50,610 --> 00:09:54,130 >> In tisto, kar je lepo zdaj, je da če grem dol, 212 00:09:54,130 --> 00:09:57,750 Jaz lahko naredim dot poševnica Pozdravljeni dot php, or-- hmm. 213 00:09:57,750 --> 00:09:59,000 Dovoljenje zavrnjeno. 214 00:09:59,000 --> 00:10:02,350 No, boste videli še več o tem s problemom nastavite sedem, če vas 215 00:10:02,350 --> 00:10:04,060 tega še niste storili, z dovoljenji. 216 00:10:04,060 --> 00:10:06,510 Izkazalo se je, da moram za izvedbo tega ukaza 217 00:10:06,510 --> 00:10:10,779 imenovanega [? chamod?] za spremembo mode-- na plus x hello.php. 218 00:10:10,779 --> 00:10:13,820 To ena dodatna rabim [neslišno] korak, ki je povedal moj računalnik, 219 00:10:13,820 --> 00:10:16,400 da hello.php izvedljivo. 220 00:10:16,400 --> 00:10:21,310 In zdaj gledam kaj happens-- dot poševnica hello.php, samo teče. 221 00:10:21,310 --> 00:10:23,310 Ne rabim, da določite tolmač več. 222 00:10:23,310 --> 00:10:26,680 In lahko bi bilo še lepše, Še vedno, če je to stvar, ki sem preimenovati. 223 00:10:26,680 --> 00:10:30,570 Če se preselim hello.php samo Hello-- tako opazili v zgornjem levem kotu, 224 00:10:30,570 --> 00:10:32,860 ime programa je res zdaj samo Pozdravljeni. 225 00:10:32,860 --> 00:10:37,300 Zdaj lahko bi bilo videti, kot programa C, čeprav je to napisano v PHP-- 226 00:10:37,300 --> 00:10:39,210 ali odkrito poljubno število drugih jezikov. 227 00:10:39,210 --> 00:10:41,480 >> Torej obrobna izboljšava, ni funkcionalne razlike. 228 00:10:41,480 --> 00:10:44,460 Ampak to je samo malo radovednost zdaj, tako da lahko pišete programe 229 00:10:44,460 --> 00:10:48,989 v katerem koli jeziku, in uporabnik ne morali vedeti, ali je vseeno, kaj to so. 230 00:10:48,989 --> 00:10:51,030 No, pa si poglejmo bolj prepričljiv primer zdaj 231 00:10:51,030 --> 00:10:52,850 da sem podžigal vnaprej. 232 00:10:52,850 --> 00:10:54,955 In to se imenuje quote.php. 233 00:10:54,955 --> 00:10:56,740 In je na voljo na spletu. 234 00:10:56,740 --> 00:11:00,299 In opazil, da je to precej short-- ampak to je program za ukazno vrstico, ki je 235 00:11:00,299 --> 00:11:02,840 bo videti gor cen delnic za mene, kar se dejansko dogaja 236 00:11:02,840 --> 00:11:04,230 da je soroden problem nastaviti sedem. 237 00:11:04,230 --> 00:11:05,396 >> Torej, poglejmo, kaj delam. 238 00:11:05,396 --> 00:11:08,640 Na samem vrhu sem z igro odprti oklepaj vprašaj PHP. 239 00:11:08,640 --> 00:11:13,372 Potem pa sem dobil to linijo, pri čemer sem zahteva datoteko z imenom functions.php-- 240 00:11:13,372 --> 00:11:15,080 bomo videli več o tem v nekaj, 241 00:11:15,080 --> 00:11:17,340 ampak to je kot C-jih različica oster vključujejo, 242 00:11:17,340 --> 00:11:19,090 kamor želite iti vključujejo drugo datoteko. 243 00:11:19,090 --> 00:11:23,720 PHP poziva zahteva, čeprav to Ima tudi vključi funkcijo. 244 00:11:23,720 --> 00:11:26,861 In se izkaže, da je function.php samo nekaj, kar sem napisal pred razredom. 245 00:11:26,861 --> 00:11:29,860 Sem ga dal v isto mapo, ker Želel sem, da dejavnik ven nekaj kode 246 00:11:29,860 --> 00:11:31,800 da bomo morda želeli uporabiti drugje. 247 00:11:31,800 --> 00:11:34,560 >> Medtem, lahko verjetno sklepati, kaj se dogaja tukaj. 248 00:11:34,560 --> 00:11:39,200 Ta je malo drugačen od C- a Kaj mislim s zagotovili pravilno uporabo? 249 00:11:39,200 --> 00:11:41,180 Prevedi to bolj tehnično. 250 00:11:41,180 --> 00:11:45,950 V kakšnih okoliščinah sem jaz opustili program, ali izstopa? 251 00:11:45,950 --> 00:11:47,074 Ja? 252 00:11:47,074 --> 00:11:47,990 >> OBČINSTVO: Če nimate dva argumenta ukazne vrstice. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Malan: Ko nimam ukaz argumente vrstice. 254 00:11:49,480 --> 00:11:52,396 In ne pozabite, da je eden od tistih, ki argumenti sama ime programa. 255 00:11:52,396 --> 00:11:55,340 In drugi se bo druga beseda sem tip po pozivu. 256 00:11:55,340 --> 00:11:57,460 Torej tako kot C, kar je moj način preverjanja, 257 00:11:57,460 --> 00:12:00,022 je uporabnik sodeluje in zagon programa, kot sem nameraval? 258 00:12:00,022 --> 00:12:01,730 Zdaj pa, da je nekaj malo drugačna 259 00:12:01,730 --> 00:12:04,020 s C- najprej smo imajo to znak za dolar, 260 00:12:04,020 --> 00:12:07,710 in kaj počne dolar prijavite označuje v PHP? 261 00:12:07,710 --> 00:12:08,440 Samo spremenljiva. 262 00:12:08,440 --> 00:12:11,731 To je all-- le spremenljivka sledi karkoli hočeš, da ga dejansko poklicati. 263 00:12:11,731 --> 00:12:14,000 Opazili, da je nekaj manjka iz mojega program PHP, 264 00:12:14,000 --> 00:12:18,210 tako kot je bilo manjka zadnji teden, v primerjavi s C, kar je za kaj? 265 00:12:18,210 --> 00:12:21,620 >> Vrste A, ampak tudi nekaj drugega. 266 00:12:21,620 --> 00:12:26,409 Ni nekaj function-- glavno funkcijo. 267 00:12:26,409 --> 00:12:27,450 Ni glavna funkcija. 268 00:12:27,450 --> 00:12:29,680 Pravkar ste začeli pisati kodo brez 269 00:12:29,680 --> 00:12:32,790 skrbeti dokaj arbitrarna Konvencija poimenovanja nekaj privzeto 270 00:12:32,790 --> 00:12:33,880 Funkcija glavni. 271 00:12:33,880 --> 00:12:36,720 Torej arg C Res globalna spremenljivka 272 00:12:36,720 --> 00:12:39,049 da tolmača naredi mi na voljo. 273 00:12:39,049 --> 00:12:40,090 Zdaj, to je zanimiva. 274 00:12:40,090 --> 00:12:41,140 Torej, poglej gor stvari. 275 00:12:41,140 --> 00:12:43,370 Znak za dolar zalog je na levo, da je moja spremenljivka. 276 00:12:43,370 --> 00:12:45,120 Na desni strani, tam je očitno 277 00:12:45,120 --> 00:12:50,270 funkcija v PHP pozval lookup da Jaz sem mimo moj zadnji ukazno vrstico 278 00:12:50,270 --> 00:12:51,902 argument to-- karkoli je beseda. 279 00:12:51,902 --> 00:12:53,610 In bomo videli, kako se je to deluje v trenutku. 280 00:12:53,610 --> 00:12:55,380 >> In potem na koncu sem poročanje ceno. 281 00:12:55,380 --> 00:12:58,650 Jaz tiskanje enega Delež tak in tak. 282 00:12:58,650 --> 00:13:02,082 In ne pozabite, to je Način, na PHP-- način v PHP-- 283 00:13:02,082 --> 00:13:04,290 kjer vam ni treba storiti znak za dolar S anymore. 284 00:13:04,290 --> 00:13:06,782 Saj lahko uporabiš zavite oklepaje in plug v neki spremenljivki. 285 00:13:06,782 --> 00:13:09,240 Vam ni treba skrbeti za uporabi printf na enak način. 286 00:13:09,240 --> 00:13:13,530 >> In kot prahi, ko si dal spremenljivko znotraj dvojnih narekovajev, kot je ta, 287 00:13:13,530 --> 00:13:17,370 uporabljate fancy tehniko imenujemo spremenljivka interpolacija. 288 00:13:17,370 --> 00:13:20,380 To samo pomeni, da priključite spremenljivko tukaj. 289 00:13:20,380 --> 00:13:23,760 In kot prahi, nekateri od vas, ki prihajajo od drugih programskih okolij, 290 00:13:23,760 --> 00:13:26,960 ne smete uporabljati enojne narekovaje okoli strune, da to storijo. 291 00:13:26,960 --> 00:13:30,290 Morate uporabiti dvojne narekovaje za spremenljivka interpolacija delati. 292 00:13:30,290 --> 00:13:32,740 V nasprotnem primeru boste dobesedno videli tiste zavite oklepaje. 293 00:13:32,740 --> 00:13:34,500 >> Torej nazadnje, pojdimo naprej in vodijo to. 294 00:13:34,500 --> 00:13:36,690 Dovolite mi, da moja terminal malo večji. 295 00:13:36,690 --> 00:13:41,940 Naj gredo naprej in zagon znotraj mojega citatom imenik. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? quote?] PHP quote pika PHP, 297 00:13:46,950 --> 00:13:50,290 in grem iskati nekaj kot GOOG, ki je njen simbol ticker, 298 00:13:50,290 --> 00:13:55,510 in ena delnica svojega novega imena, Abeceda Inc, stane 717 $, kot je danes. 299 00:13:55,510 --> 00:13:58,680 Vse je v redu, če želimo spet teči to, kdo 300 00:13:58,680 --> 00:14:02,600 še en zaloge Ticker hočejo poglej gor? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft mislim, da je tale, MSFT-- 53 $. 302 00:14:06,770 --> 00:14:09,720 Mislim, da Yahoo je morda to. 303 00:14:09,720 --> 00:14:12,130 In Facebook je to. 304 00:14:12,130 --> 00:14:13,740 >> Torej, kaj je ta program počne? 305 00:14:13,740 --> 00:14:16,306 Zdi se, magija se vgrajeni v tej funkciji lookup. 306 00:14:16,306 --> 00:14:17,430 Torej, kaj je na hitro pogledamo. 307 00:14:17,430 --> 00:14:21,815 >> Izkazalo se je, da ne pride s PHP, je v functions.php. 308 00:14:21,815 --> 00:14:23,690 In ne bomo šli skozi to zelo podrobno, 309 00:14:23,690 --> 00:14:28,040 ampak obvestilo operativni beseda tukaj je da je na liniji šestega functions.php-- 310 00:14:28,040 --> 00:14:29,440 Dobesedno sem reči funkcijo. 311 00:14:29,440 --> 00:14:31,050 Jaz določite ime mojega delovanja. 312 00:14:31,050 --> 00:14:34,330 Nato sem podajte argumenti, ali parametri, 313 00:14:34,330 --> 00:14:36,480 Rad bi, da je funkcija take-- nobenih vrst. 314 00:14:36,480 --> 00:14:37,580 In potem sem jo izvajati. 315 00:14:37,580 --> 00:14:39,240 >> In bom val roko pri izvajanju, 316 00:14:39,240 --> 00:14:42,115 saj je dokaj napredna desno zdaj, ampak ga bomo spet videli dejansko 317 00:14:42,115 --> 00:14:44,700 v enem tednu v problem nastaviti sedem. 318 00:14:44,700 --> 00:14:47,490 Ampak jaz lahko to počistiti, preveč. 319 00:14:47,490 --> 00:14:49,590 Jaz tudi v današnja koda različica 320 00:14:49,590 --> 00:14:52,340 citata, ki nima dot datoteko PHP. 321 00:14:52,340 --> 00:14:57,270 Ker tisto, kar je verjetno Na top programa imenovanega samo citiram? 322 00:14:57,270 --> 00:15:00,140 To je tako imenovano shebang-- precej Grobni incantation 323 00:15:00,140 --> 00:15:04,590 ki pravi, da ugotovite, PHP in nato jih predvajajo na mojo kodo tukaj. 324 00:15:04,590 --> 00:15:07,360 >> Vse je v redu, tako da prinaša nas, kjer smo končali 325 00:15:07,360 --> 00:15:09,560 zadnji time-- čeprav z nekatere bolj napredne primeri. 326 00:15:09,560 --> 00:15:13,980 Vsa vprašanja doslej o PHP in kaj delamo? 327 00:15:13,980 --> 00:15:15,570 No-- vse v redu. 328 00:15:15,570 --> 00:15:16,180 Ja? 329 00:15:16,180 --> 00:15:19,610 >> OBČINSTVO: Znotraj HTML datoteke, naredite you-- 330 00:15:19,610 --> 00:15:22,226 [? ali ti ?] [? Pravkar je poklical?] A [neslišno] PHP datoteke? 331 00:15:22,226 --> 00:15:23,350 DAVID Malan: Dobro vprašanje. 332 00:15:23,350 --> 00:15:26,070 V spletnem kontekstu, ki sva dobesedno približno za prehod, 333 00:15:26,070 --> 00:15:28,028 ne boste uporabljali tako imenovane shebang na vrhu, 334 00:15:28,028 --> 00:15:31,980 ker je web server-- pogosto Program se imenuje Apache ali Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, ali poljubno število druge programske opreme, spletni strežnik, 336 00:15:37,470 --> 00:15:40,636 ve, da ko vidi pika PHP datoteko, ki ji 337 00:15:40,636 --> 00:15:42,010 mora teči tolmača na njem. 338 00:15:42,010 --> 00:15:43,468 To ne gleda na to prvo linijo. 339 00:15:43,468 --> 00:15:45,580 Torej to prvo linijo trik je samo, če ste 340 00:15:45,580 --> 00:15:48,330 pisanje ukazni vrstici programs-- ki nam ne bo naredil super pogosto, 341 00:15:48,330 --> 00:15:52,510 ampak to je naš način premostitve naši primeri C do zdaj naši PHP. 342 00:15:52,510 --> 00:16:00,680 >> Torej, kaj je res premostiti ta svet iz sveta v ukazni vrstici na spletu 343 00:16:00,680 --> 00:16:02,230 s tem naslednje. 344 00:16:02,230 --> 00:16:05,090 Naj gredo naprej in pripraviti sem za trenutek. 345 00:16:05,090 --> 00:16:09,940 Torej, če imamo spletni strežnik, ali bolje če imamo svoj laptop tukaj, 346 00:16:09,940 --> 00:16:11,280 ki bom sestaviti takole. 347 00:16:11,280 --> 00:16:14,250 In tukaj imamo internet v neki obliki. 348 00:16:14,250 --> 00:16:18,210 In potem je tukaj, imamo strežnik v building-- 349 00:16:18,210 --> 00:16:20,760 to je, kako internet works-- in tukaj 350 00:16:20,760 --> 00:16:23,120 je strežnik z nekaj luči morda. 351 00:16:23,120 --> 00:16:27,530 Kaj se pravzaprav dogaja med tema dvema povezav? 352 00:16:27,530 --> 00:16:29,240 >> Torej, v tej stavbi je spletni strežnik. 353 00:16:29,240 --> 00:16:31,420 To je samo računalnik da je tekmovanje v teku nekaterih operacijskih 354 00:16:31,420 --> 00:16:34,561 system-- morda imenuje brezplačna programska oprema Apache, ki CS50 IDE teče. 355 00:16:34,561 --> 00:16:36,310 Torej si lahko dejansko mislim te stavbe 356 00:16:36,310 --> 00:16:38,579 kot stavba v ki je shranjen CSt0 IDE. 357 00:16:38,579 --> 00:16:40,870 To je, če imate vse vas računi, kjer vas vse 358 00:16:40,870 --> 00:16:43,130 imeti svoj spletni strežnik teče, vse vas 359 00:16:43,130 --> 00:16:45,730 imajo svoje lastne edinstvene URL-jev, kot smo začeli razpravljati, 360 00:16:45,730 --> 00:16:47,280 in videli boste več v P. nastavite šest. 361 00:16:47,280 --> 00:16:49,450 >> Tu je moj laptop nekje drugje na spletu. 362 00:16:49,450 --> 00:16:54,550 In tako, ko sem obiskal URL, ki pripada se mi, da je internet je promet tekoč 363 00:16:54,550 --> 00:16:58,360 več na strežniku, strežnik je prejemanje HTTP request-- 364 00:16:58,360 --> 00:17:02,900 kot GET index.html in je odgovarjanje na tej spletni strani. 365 00:17:02,900 --> 00:17:04,280 Tako da je splošna paradigma. 366 00:17:04,280 --> 00:17:07,089 Ker je vse gor do zdaj danes, vsega 367 00:17:07,089 --> 00:17:09,660 se dogaja samo v omejuje te stavbe. 368 00:17:09,660 --> 00:17:12,910 Sem bil using svoj laptop, ampak Sem bil povezan z CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 tako da vse tiste programe, sem bil teče je znotraj tega strežnika, sama. 370 00:17:17,369 --> 00:17:22,660 >> Toda zdaj, začnimo ponovno uporabo PHP napisati nekaj konkretnih programov, ki 371 00:17:22,660 --> 00:17:24,230 so postregli s spletnega strežnika. 372 00:17:24,230 --> 00:17:30,320 In za to, sem šel v cel kup primerov 373 00:17:30,320 --> 00:17:33,710 da uvedejo to idejo tukaj. 374 00:17:33,710 --> 00:17:38,500 Torej je to neke vrste fancy način opisuje programsko paradigmo. 375 00:17:38,500 --> 00:17:41,540 >> In v resnici, ko končate CS50 ali delo na končnih projektov, 376 00:17:41,540 --> 00:17:43,520 ali traja nekaj sledite na razred, boste začeli 377 00:17:43,520 --> 00:17:45,740 videti, da je world-- še posebej, ko je odrasel 378 00:17:45,740 --> 00:17:48,300 pri jezikih, kot so C da so zelo nizke level-- 379 00:17:48,300 --> 00:17:51,290 Zavedam se, da se je bolje načini pisanja programske opreme. 380 00:17:51,290 --> 00:17:53,290 Obstajajo nekatere vzorci lahko sledite, 381 00:17:53,290 --> 00:17:57,640 nekateri načini organiziranja datotek in načini za poimenovanje svoje funkcije, 382 00:17:57,640 --> 00:18:00,300 da skrajšam zgodbo, svet je prišel gor 383 00:18:00,300 --> 00:18:04,340 z cel kup kratic in imena za načine programiranja. 384 00:18:04,340 --> 00:18:06,260 To so le tehnike, ki jih lahko uporabite. 385 00:18:06,260 --> 00:18:09,660 >> In eden od njih se imenuje MVC, za model View Controller. 386 00:18:09,660 --> 00:18:12,270 In to je samo za Zdaj, pretirano zapleten 387 00:18:12,270 --> 00:18:18,960 besedami, kako naj si začrtate spletna stran, ki temelji na PHP, v našem primeru. 388 00:18:18,960 --> 00:18:22,140 Kako organizirati svoje datoteke, kako si organizirati logiko, 389 00:18:22,140 --> 00:18:26,220 na način, ki omogoča lažje napisati bolj zapletene spletne strani? 390 00:18:26,220 --> 00:18:28,550 In res, bomo hitro tja s p-set sedem. 391 00:18:28,550 --> 00:18:32,020 >> Tako v svetu MVC, boste videti, da lahko naša koda na splošno 392 00:18:32,020 --> 00:18:38,290 je treba opredeliti bodisi kot vzorčni kodi, ali koda krmilnik, ali pogled na kodo. 393 00:18:38,290 --> 00:18:40,200 In bom ga poenostavljam kot follows-- 394 00:18:40,200 --> 00:18:42,074 krmilnik je možgani vašega programa, 395 00:18:42,074 --> 00:18:44,100 to je, če vse Zanimiva logika zgodi. 396 00:18:44,100 --> 00:18:46,110 Torej vse, kar smo bili pisanje doslej v razredu, 397 00:18:46,110 --> 00:18:48,210 je nekako kot krmilnik code-- to je obvladujoča 398 00:18:48,210 --> 00:18:50,585 vaš program, svoje zanke, vaš pogoji, vaše funkcije 399 00:18:50,585 --> 00:18:52,100 in spremenljivke in vse to. 400 00:18:52,100 --> 00:18:56,160 >> Ogledi, sedaj se dogaja, da se malo bolj očitno v svetu spleta. 401 00:18:56,160 --> 00:18:59,360 Pogled je estetika vaše spletne strani. 402 00:18:59,360 --> 00:19:04,080 To je tisto, kar uporabnik sees-- slike, HTML mize, oznake HTML, in vse 403 00:19:04,080 --> 00:19:08,220 od tega, vsi puhastimi estetskega stvari, da ni tako težko pisati, 404 00:19:08,220 --> 00:19:11,380 ampak je samo tisto, kar ste ustvarjajo, je tako imenovani pogled, estetika. 405 00:19:11,380 --> 00:19:13,880 In model, na koncu, se bo da so podatkovne baze, ki stuff-- 406 00:19:13,880 --> 00:19:16,510 bomo začeli potapljati v vse bolj to sredo. 407 00:19:16,510 --> 00:19:19,740 Torej regulator je logika, Pogled je estetska stvari, 408 00:19:19,740 --> 00:19:23,500 in model se bo, kadar hranimo naše dejanske podatke. 409 00:19:23,500 --> 00:19:26,410 >> Torej, si oglejmo to bolj konkretno z naslednjim primerom. 410 00:19:26,410 --> 00:19:34,700 Jaz bom šel v mojem imeniku tukaj današnjega vira code-- vse, ki 411 00:19:34,700 --> 00:19:35,770 je na voljo na spletu. 412 00:19:35,770 --> 00:19:37,800 In jaz bom šel v različici ničlo. 413 00:19:37,800 --> 00:19:41,500 In tukaj is-- kaj je to, da pokličete Različica nič spletne strani CS50 je. 414 00:19:41,500 --> 00:19:43,010 Ni veliko tukaj sploh. 415 00:19:43,010 --> 00:19:46,810 To je zelo preprosta spletna stran, ki je Verjetno uporabljate kaj HTML tags-- pravkar 416 00:19:46,810 --> 00:19:48,970 Verjetno iz preteklih primerov? 417 00:19:48,970 --> 00:19:49,890 >> Kaj je to? 418 00:19:49,890 --> 00:19:53,920 H1-- verjetno za tako velik krepko Naslov, ki logo do vrha, CS50. 419 00:19:53,920 --> 00:19:55,080 In kaj je v igri? 420 00:19:55,080 --> 00:19:55,799 Ja? 421 00:19:55,799 --> 00:19:56,840 OBČINSTVO: Neurejen seznam. 422 00:19:56,840 --> 00:19:59,990 DAVID Malan: Neurejen list-- tako UL tag in morda nekaj LI oznak. 423 00:19:59,990 --> 00:20:01,840 In če se ne spomnite teh, je pošteno ni važno. 424 00:20:01,840 --> 00:20:04,170 To so puhasto vrste Podrobnosti izboljšava HTML 425 00:20:04,170 --> 00:20:06,378 da boste hitro pogledaš gor in ste nazaj na svoj način. 426 00:20:06,378 --> 00:20:10,040 Bomo bolj osredotočili na programiranje Ideje, ki so juicier kosov. 427 00:20:10,040 --> 00:20:12,890 >> Torej, kaj je samo na hitro poglej HTML-- in dejansko 428 00:20:12,890 --> 00:20:16,880 če sem odprla vir pogled tu, Ja, to je točno to, kar se dogaja tukaj. 429 00:20:16,880 --> 00:20:18,440 Tam je UL tag. 430 00:20:18,440 --> 00:20:20,630 Ugnezdena znotraj, ki je LI oznak. 431 00:20:20,630 --> 00:20:24,470 In potem sem si sposodil URL dejanskega predmetnika tukaj. 432 00:20:24,470 --> 00:20:27,570 >> In potem v lectures.php je očitno 433 00:20:27,570 --> 00:20:31,640 drugo dinamično ustvarjena stran da se dogaja, da imajo, kaj je see-- ah, 434 00:20:31,640 --> 00:20:33,170 v prvih dveh tednih predavanje. 435 00:20:33,170 --> 00:20:36,600 Torej nič teden in en teden, kaj je poglej this-- če sem Ogled vira, 436 00:20:36,600 --> 00:20:38,120 tudi super enostavna. 437 00:20:38,120 --> 00:20:42,430 Te vodijo k dvema stranema imenuje week0.php in week1.php. 438 00:20:42,430 --> 00:20:44,040 Tako menijo sedaj, kaj se dogaja. 439 00:20:44,040 --> 00:20:50,630 >> Ko sem kliknite na week0.php, moj laptop je vložitev zahteve za week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Spletni strežnik, alias, CS50 IDE, prejema te virtualne kuverto. 442 00:20:58,110 --> 00:21:01,040 To je videnje sporočilo všeč, dobili week0.php. 443 00:21:01,040 --> 00:21:05,060 Nato je tolmačenje datoteko, top navzdol, levo right-- datoteko 444 00:21:05,060 --> 00:21:07,720 imenuje week0.php-- in izpljunil rezultate. 445 00:21:07,720 --> 00:21:10,510 Torej znotraj te datoteke, week0.php, mora biti 446 00:21:10,510 --> 00:21:15,410 logika krmilnik, ki ustvarja to HTML, in bomo kmalu videli, da. 447 00:21:15,410 --> 00:21:19,340 >> Ampak za zdaj, mi kliknite na ničelno teden, in sedaj imamo sredo in petek, 448 00:21:19,340 --> 00:21:25,260 in zdaj imamo diapozitive počasi od ničelne teden. 449 00:21:25,260 --> 00:21:27,400 In morda se spomni to je pot nazaj, ko. 450 00:21:27,400 --> 00:21:29,340 Tako, da je vse to spletno počne. 451 00:21:29,340 --> 00:21:31,120 >> Torej, kaj menijo, kako se to počne. 452 00:21:31,120 --> 00:21:34,290 Jaz bom šel nazaj v izvorna koda tu, v CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 in bom odprla index.php. 454 00:21:36,660 --> 00:21:38,910 Na vrhu te datoteke je kup pripomb. 455 00:21:38,910 --> 00:21:43,000 In potem v sredini te datoteke, jo Izkazalo se je, ni PHP koda whatsoever. 456 00:21:43,000 --> 00:21:47,380 Ker če ne boste imeli kaj od open nosilec vprašaj PHP oznake, 457 00:21:47,380 --> 00:21:49,180 ste prosto samo dal HTML. 458 00:21:49,180 --> 00:21:51,480 >> Ker kaj je PHP Tolmač je moral storiti, 459 00:21:51,480 --> 00:21:53,938 je, ko prebere to file-- zgoraj navzdol, od leve proti right-- 460 00:21:53,938 --> 00:21:59,100 to razlaga le kodo, da vidi med ti kotni nosilci vprašaj. 461 00:21:59,100 --> 00:22:02,380 In karkoli drugega, ki pa ne prepozna kot PHP, je samo izpljune. 462 00:22:02,380 --> 00:22:05,080 In HTML je med stvarmi to bo samo izpljuni. 463 00:22:05,080 --> 00:22:09,090 >> Torej bi lahko ta datoteka ima bil imenovan index.html, 464 00:22:09,090 --> 00:22:11,690 vendar sem poimenoval vse dot PHP kot odskočna deska. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- podobno underwhelming, to je samo nekaj HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, podobno samo nekatere HTML. 467 00:22:19,840 --> 00:22:22,300 >> Zdaj pa kaj je dal na pregovorna inženiring klobuk, 468 00:22:22,300 --> 00:22:24,400 in razmisli, kako bi lahko to izboljšali. 469 00:22:24,400 --> 00:22:28,541 To ni težko, da to storijo, vendar sem nekako od prenesena v kopiranje in lepljenje. 470 00:22:28,541 --> 00:22:31,540 In v resnici, če naredim dva tedna, si vem, kaj bom verjetno bo, da naredim? 471 00:22:31,540 --> 00:22:34,940 Bom šel na week1.php sem dogaja, da označite vse. 472 00:22:34,940 --> 00:22:39,110 Jaz grem, da ga kopirate, prilepite v novo datoteko imenovano week2.php, 473 00:22:39,110 --> 00:22:42,440 poteg nekaj URL-jev, in na moji poti. 474 00:22:42,440 --> 00:22:45,240 >> Torej, ki temelji na tisto, ki smo jih videla v C že, 475 00:22:45,240 --> 00:22:46,860 to ne zdi prav, upajmo. 476 00:22:46,860 --> 00:22:49,610 Copy, paste redko prava rešitev. 477 00:22:49,610 --> 00:22:51,429 Torej, kaj lahko začnemo storiti, da bi to izboljšali? 478 00:22:51,429 --> 00:22:53,345 Kje so priložnosti za boljše načrtovanje? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Do takrat, ko pridem do osem tednov, da se dogaja 481 00:22:58,760 --> 00:23:00,910 biti zelo nadležno če želim spremeniti 482 00:23:00,910 --> 00:23:03,930 pisave za vsakega izmed moji strani, ali pa, če želim 483 00:23:03,930 --> 00:23:06,522 spremeniti strukturo postavitve. 484 00:23:06,522 --> 00:23:08,396 Torej, kje je priložnost za boljše načrtovanje? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 No, pa razmisli, kaj je delijo po vseh teh datotek. 487 00:23:15,160 --> 00:23:21,696 >> Tukaj je en teden, tukaj je teden nič, tukaj je lectures.php, 488 00:23:21,696 --> 00:23:25,790 tukaj je index.php-- kar je enako in Kaj je drugače, grobo rečeno, 489 00:23:25,790 --> 00:23:26,760 V vsaki od teh datotek? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Ja? 492 00:23:32,060 --> 00:23:34,560 >> OBČINSTVO: [neslišno] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Malan: OK, dobro. 495 00:23:42,160 --> 00:23:46,115 Tako da je vzorec, zagotovo, pri čemer vsakič, ko sem se odločil, predavanje I, 496 00:23:46,115 --> 00:23:48,250 I je treba tvorjenje Zelo podobno je videti stran. 497 00:23:48,250 --> 00:23:50,375 In tako morda lahko vzvod dejstvo, da je res, 498 00:23:50,375 --> 00:23:53,060 smo namenoma številčno indeksirane našo lectures-- 499 00:23:53,060 --> 00:23:55,290 če bom lahko dal še več besede v svojem odgovoru. 500 00:23:55,290 --> 00:23:59,984 In kaj je edina stvar, res, ki se spreminja med tednom one-- 501 00:23:59,984 --> 00:24:02,400 in mi se pomaknite navzdol, tako da je približno v istem place-- 502 00:24:02,400 --> 00:24:05,480 tako da tukaj je nič teden, približno na vrhu. 503 00:24:05,480 --> 00:24:12,370 Tukaj je en teden, teden nič, en teden, nič teden. 504 00:24:12,370 --> 00:24:14,370 OK, dobesedno, če veš noben program sploh, 505 00:24:14,370 --> 00:24:16,286 to je zdaj tako kot Vzorec ujemanje igro. 506 00:24:16,286 --> 00:24:17,200 Torej, kaj je drugače? 507 00:24:17,200 --> 00:24:18,765 Ja? 508 00:24:18,765 --> 00:24:19,777 >> OBČINSTVO: [neslišno] 509 00:24:19,777 --> 00:24:22,360 DAVID Malan: Dobro, da je naslov se spreminja, vedno tako malo. 510 00:24:22,360 --> 00:24:24,010 Zero se bo, seveda, na enega. 511 00:24:24,010 --> 00:24:25,570 Enako se dogaja v H1 tag. 512 00:24:25,570 --> 00:24:28,790 In ne bomo povsem videti tako preprosto, ker so URL-ji malo dolgo. 513 00:24:28,790 --> 00:24:30,670 Toda ti URL-ji se nekoliko spreminjajo. 514 00:24:30,670 --> 00:24:34,490 >> Ampak, kaj se ne spreminja je, si drznem reči, večina vsebine page-- 515 00:24:34,490 --> 00:24:38,530 HTML tag je isto, glava je enako, naslov je skoraj enak, 516 00:24:38,530 --> 00:24:40,659 telo je isti, in skoraj vse ostalo 517 00:24:40,659 --> 00:24:42,450 je enaka, razen ti malo poteg. 518 00:24:42,450 --> 00:24:45,310 Torej, kako lahko greste o faktoring nekaj tega ven? 519 00:24:45,310 --> 00:24:48,740 >> No povej mi predlagamo natančno da v naslednji različici. 520 00:24:48,740 --> 00:24:53,890 Torej, tukaj v različici eni, imam točen Iste datoteke, plus nekaj drugih. 521 00:24:53,890 --> 00:24:59,730 Tukaj je index.php-- in četudi še nikoli niste videli PHP prej, 522 00:24:59,730 --> 00:25:05,511 kaj bom verjetno delal za reševanje tega problem-- temelji na tisto, kar vidite tu? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Ja, je, da je rahlo zavezo? 525 00:25:12,760 --> 00:25:13,450 Ne? 526 00:25:13,450 --> 00:25:16,020 Ja, pojdi naprej. 527 00:25:16,020 --> 00:25:17,380 >> OBČINSTVO: [neslišno] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Malan: Yep. 529 00:25:18,380 --> 00:25:20,380 >> OBČINSTVO: [neslišno] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Malan: ti morajo govorijo le malo glasneje. 532 00:25:28,669 --> 00:25:31,084 >> OBČINSTVO: [neslišno] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Malan: OK, dobro. 535 00:25:36,660 --> 00:25:38,620 In sem think-- je bilo težko you-- ampak slišim 536 00:25:38,620 --> 00:25:42,690 pomislite, kaj ste dobili na je, da oznake, ki so pogosti do vrha, 537 00:25:42,690 --> 00:25:47,710 in oznake, ki so skupni na spodnji, so bili vključeno ven, 538 00:25:47,710 --> 00:25:51,140 ali potisnjeni na katere datoteke? 539 00:25:51,140 --> 00:25:53,476 Header.php in footer.php-- in greva 540 00:25:53,476 --> 00:25:55,600 narediti nekaj Tweaks Odgovor na pomislek, ki ste jo pravkar 541 00:25:55,600 --> 00:25:59,370 postavljeno o številkah spreminjanja, za primer, če sem dobro slišal. 542 00:25:59,370 --> 00:26:02,060 >> Vendar se zdi, da je bistvo tega. 543 00:26:02,060 --> 00:26:04,820 Če je bilo ogromno redundance na vrhu strani, 544 00:26:04,820 --> 00:26:06,736 in ogromno redundance na dnu, 545 00:26:06,736 --> 00:26:09,280 kaj je dobesedno le vrhunec in cut, da je vsebina ven, 546 00:26:09,280 --> 00:26:13,270 ga dal v ločenem file-- tako kot ideja CSS, kjer smo vključeno ven 547 00:26:13,270 --> 00:26:16,710 Zelo podobne estetika, dani je v ločenem dot PHP datoteke, 548 00:26:16,710 --> 00:26:20,340 uporabite zahtevajo mechanism-- ki je kot C oster include-- ki 549 00:26:20,340 --> 00:26:23,570 je v bistvu kot pravi iti zgrabi vsebino header.php, 550 00:26:23,570 --> 00:26:25,370 in jih kopirajte in prilepite tukaj. 551 00:26:25,370 --> 00:26:29,490 >> Toda kaj to pomeni, da je zdaj v index.php, imam ti dve vrstici. 552 00:26:29,490 --> 00:26:32,130 V lectures.php, tudi jaz imajo ti dve liniji. 553 00:26:32,130 --> 00:26:35,230 V week0.php, tudi jaz imajo ti dve liniji. 554 00:26:35,230 --> 00:26:38,380 >> Torej, zdaj, če želim spremeniti naslov vse moje strani, 555 00:26:38,380 --> 00:26:40,530 ali želim spremeniti temeljna struktura, 556 00:26:40,530 --> 00:26:44,380 Lahko ga spremenite zdaj v samo enem mestu, ali dva places-- glave in noge, 557 00:26:44,380 --> 00:26:45,429 oz. 558 00:26:45,429 --> 00:26:47,970 Zdaj kodo izhodiščna pogledati malo bolj skrivnosten, kajne? 559 00:26:47,970 --> 00:26:53,590 Ampak, če mislite, da o tem, kaj stran je doing-- če sem zahteval week0.php, 560 00:26:53,590 --> 00:26:59,880 tako kot na pripravo več here-- ko se zahteva week0.php, 561 00:26:59,880 --> 00:27:00,960 kaj to pomeni? 562 00:27:00,960 --> 00:27:04,410 >> Dobesedno, je ta datoteka brskalnik zahteval. 563 00:27:04,410 --> 00:27:06,240 Spletnem server-- alias 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- zgrabi to Datoteka, week0.php, in se glasi 565 00:27:09,250 --> 00:27:10,780 je od zgoraj navzdol, od leve proti desni. 566 00:27:10,780 --> 00:27:15,400 Na liniji, takoj naleti odprti oklepaj vprašaj PHP, zahtevajo 567 00:27:15,400 --> 00:27:17,872 Glava dot PHP, in tako kaj je PHP interpreter 568 00:27:17,872 --> 00:27:20,580 does--, ki je vgrajen v spletu Strežnik, ker smo že tovarniško 569 00:27:20,580 --> 00:27:24,580 je za you-- samodejno gre v header.php, kopira vsebina, 570 00:27:24,580 --> 00:27:25,640 jih prilepi tukaj. 571 00:27:25,640 --> 00:27:28,790 >> Potem pa naleti tolmači Vprašanje znamka blizu nosilec, 572 00:27:28,790 --> 00:27:30,320 tako da je vse narejeno razmišljanje. 573 00:27:30,320 --> 00:27:33,400 Zdaj je le slepo pljuva out linijami dva skozi sedem, 574 00:27:33,400 --> 00:27:35,240 saj to je samo surovo HTML. 575 00:27:35,240 --> 00:27:38,470 Pride do črte osem, in ne da Enako magic again-- odprtju datoteke, 576 00:27:38,470 --> 00:27:41,460 oprijemalne vsebine, in jih zahteva ali jih prilepite 577 00:27:41,460 --> 00:27:42,480 prav takrat ali tam. 578 00:27:42,480 --> 00:27:44,210 >> Ampak sem namiguje na hrošča. 579 00:27:44,210 --> 00:27:48,610 To je delni korak nazaj, ker če pogledamo v header.php, 580 00:27:48,610 --> 00:27:50,850 Sem nekako zmanjšati kotiček. 581 00:27:50,850 --> 00:27:56,250 Kaj je značilnost sem dal gor, da bi da pridobijo to obtožbo boljši design? 582 00:27:56,250 --> 00:27:57,305 Ja? 583 00:27:57,305 --> 00:27:58,180 OBČINSTVO: [neslišno] 584 00:27:58,180 --> 00:28:00,570 DAVID Malan: Ja, sem nekako od cut netrivialni kotiček. 585 00:28:00,570 --> 00:28:04,489 Ste poudarili, da je kaj se je spreminjal je bil naslov, številko v naslovu, 586 00:28:04,489 --> 00:28:05,530 in številka v H1. 587 00:28:05,530 --> 00:28:08,170 Torej, moja rešitev je bila, OK, kaj je samo preimenovanje strani, 588 00:28:08,170 --> 00:28:10,080 in se ne ukvarjajo s tem problem whatsoever. 589 00:28:10,080 --> 00:28:12,130 Tako, da je delna korak nazaj za prepričani. 590 00:28:12,130 --> 00:28:14,300 >> Toda kaj je omeniti tukaj je, da tisto, kar sem storil 591 00:28:14,300 --> 00:28:17,200 je sicer vključeno vse skupne stvari. 592 00:28:17,200 --> 00:28:21,520 In v footer.php, opazila sem vključeno ven vse to, čeprav manj, 593 00:28:21,520 --> 00:28:22,790 skupni stvari. 594 00:28:22,790 --> 00:28:26,070 Tako da moram nekako sedaj lahko narediti še korak naprej, in določi 595 00:28:26,070 --> 00:28:27,160 so vprašanja naslov. 596 00:28:27,160 --> 00:28:28,180 Torej, kaj je to. 597 00:28:28,180 --> 00:28:35,060 >> Naj gredo v mojo drugo različico tod ki spet ima iste datoteke 598 00:28:35,060 --> 00:28:36,825 razen ene novi dodatek. 599 00:28:36,825 --> 00:28:38,950 In to je malo več verbose, ampak poglejmo, če bomo 600 00:28:38,950 --> 00:28:40,550 Lahko draži narazen, kaj se dogaja tukaj. 601 00:28:40,550 --> 00:28:45,370 Torej, namesto da zahtevajo header.php in footer.php, 602 00:28:45,370 --> 00:28:50,180 Zdi se mi, da je treba le, da se enemu file-- pozval, seveda, helpers.php. 603 00:28:50,180 --> 00:28:52,560 In mi določajo zdaj, kaj je znotraj helpers.php 604 00:28:52,560 --> 00:28:55,330 je samo kup funkcij da sem napisal, tako kot prej. 605 00:28:55,330 --> 00:28:57,550 Vendar sem ga poimenoval helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Zdaj je očitno, v tretja vrstica in 10, sem 607 00:29:00,370 --> 00:29:02,840 kliče dve functions-- render glavo, render nogo. 608 00:29:02,840 --> 00:29:05,040 Tisti, ki ne prihajajo z PHP, sem napisal tiste sam. 609 00:29:05,040 --> 00:29:07,880 In sem jih dal v helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Zdaj smo videli samo to sintakso enkrat, in bilo je super kratek. 611 00:29:11,210 --> 00:29:15,330 Ampak to je očitno argument nuditi glavo, funkcijo. 612 00:29:15,330 --> 00:29:16,450 Zakaj vem, da je? 613 00:29:16,450 --> 00:29:18,522 No tu je tesno paren, tukaj je odprta paren. 614 00:29:18,522 --> 00:29:21,230 In seveda, tako kot v C, kaj med temi oklepaji 615 00:29:21,230 --> 00:29:23,350 je input-- ali argument funkcije. 616 00:29:23,350 --> 00:29:26,710 >> Kaj je podatkovni tip tega argumenta, ki temelji na tisto, kar sem poudaril? 617 00:29:26,710 --> 00:29:30,820 Kaj ti oglati oklepaj kažejo, temelji na prejšnji teden? 618 00:29:30,820 --> 00:29:33,390 Ja, to je array-- posebej asociativno paleto. 619 00:29:33,390 --> 00:29:35,700 In ta sintaksa sicer je malo funky, 620 00:29:35,700 --> 00:29:38,860 vendar je to pravkar poteka v eni para ključev vrednosti. 621 00:29:38,860 --> 00:29:43,530 Ključno je, citiram konec citata Naslov, in je vrednost CS50. 622 00:29:43,530 --> 00:29:46,220 >> Če bi to storili v C, bi bilo namesto 623 00:29:46,220 --> 00:29:49,400 videti bolj kot to, Samo quote citata CS50-- 624 00:29:49,400 --> 00:29:52,460 ali dejansko bi bilo kodrasti naramnice, ali kaj podobnega, v C, 625 00:29:52,460 --> 00:29:55,580 kjer je ključni nič, in je vrednost CS50. 626 00:29:55,580 --> 00:29:59,840 Ampak še enkrat, v PHP, čeprav sintaksa je, še enkrat, malo čudno, 627 00:29:59,840 --> 00:30:02,860 to vam omogoča, da prenese v Besede namesto številke 628 00:30:02,860 --> 00:30:05,120 povezati ključe z vrednostmi. 629 00:30:05,120 --> 00:30:06,390 >> Torej, kaj vse to pomeni? 630 00:30:06,390 --> 00:30:09,750 Če grem v helpers.php, Oglejmo si te funkcije. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, ne renderHeader je moja funkcija, 632 00:30:13,620 --> 00:30:16,220 in vem, da zato, ker vidim, funkcija ključna beseda tukaj. 633 00:30:16,220 --> 00:30:19,450 To je nova od njega C- očitno Traja argument imenovano data-- 634 00:30:19,450 --> 00:30:22,400 ampak jaz bi to imenuje karkoli, vendar sem ga poimenoval podatkov, 635 00:30:22,400 --> 00:30:25,090 samo, da se malo clean-- in vzemite ugibati, še posebej, 636 00:30:25,090 --> 00:30:28,173 če ste programirani v nekaterih drugih višji ravni jezika pred nekaj 637 00:30:28,173 --> 00:30:29,820 nad C, konceptualno. 638 00:30:29,820 --> 00:30:33,820 >> Kaj počne enako odprto konzolo peto nosilec verjetno pomenilo? 639 00:30:33,820 --> 00:30:35,540 Ali pa, kaj bi to pomenilo? 640 00:30:35,540 --> 00:30:39,660 Mi smo ne videl to v C. Ja? 641 00:30:39,660 --> 00:30:40,480 >> Prazen niz. 642 00:30:40,480 --> 00:30:45,440 Konkretno to pomeni, da če uporabnik ne pokliče renderHeader 643 00:30:45,440 --> 00:30:49,340 z argumentom, da sem še vedno tekoč da ima argument imenovano podatkov 644 00:30:49,340 --> 00:30:52,327 vendar je njegova privzeta vrednost je bo prazna matrika. 645 00:30:52,327 --> 00:30:53,660 Torej, to je samo lepo priročno. 646 00:30:53,660 --> 00:30:56,493 Nimam kričati na uporabnika, ali da ste uporabili mojo funkcijo narobe. 647 00:30:56,493 --> 00:30:59,849 Jaz lahko samo dati uporabniku privzeto vrednost, če ne bom posebej skrbi. 648 00:30:59,849 --> 00:31:01,890 Zdaj to funkcijo, sem bo val moje roke na. 649 00:31:01,890 --> 00:31:07,620 Toda ta funkcija izvleček omogoča nam, da prenese te spremenljivke v podatkih 650 00:31:07,620 --> 00:31:10,360 v header.php na naslednji način. 651 00:31:10,360 --> 00:31:13,100 In to je zadnji kos, Mislim, funky sintakse. 652 00:31:13,100 --> 00:31:15,860 Tukaj je moja nova različica , da header.php-- 653 00:31:15,860 --> 00:31:20,140 uporabljajo za povedati, dobesedno, odprt nosilec naslov CS50, in to je bilo to. 654 00:31:20,140 --> 00:31:21,766 In ista stvar za H1. 655 00:31:21,766 --> 00:31:24,310 >> Zdaj je očitno pravi nekaj precej funky. 656 00:31:24,310 --> 00:31:28,030 In mi poenostaviti to za trenutek, kot sledi. 657 00:31:28,030 --> 00:31:31,020 To je tisto, kar sem imel spremenila svoj naslov za to. 658 00:31:31,020 --> 00:31:35,140 Vendar pa je že malo grdo stalno odprtih razredih z PHP, 659 00:31:35,140 --> 00:31:36,610 in nato uporabite funkcijo tiskanja. 660 00:31:36,610 --> 00:31:40,810 Izkazalo se je, da ima PHP okrajšavo zapis za to, kar je le 661 00:31:40,810 --> 00:31:45,050 enako znamenje, ki je tehnično Funkcija se imenuje echo namesto tiska, 662 00:31:45,050 --> 00:31:46,800 ampak to je ista stvar, učinkovito. 663 00:31:46,800 --> 00:31:48,440 >> Da samo izgleda bolje. 664 00:31:48,440 --> 00:31:50,510 To je samo skladenjska sladkor, če hočete, 665 00:31:50,510 --> 00:31:52,260 da si moja koda videti malo bolje. 666 00:31:52,260 --> 00:31:54,010 Ampak se je izkazalo, in bomo to še enkrat videti 667 00:31:54,010 --> 00:31:57,420 Pred dolgo, moramo to imenujemo Dolgčas dolg funkcija imenuje 668 00:31:57,420 --> 00:32:00,582 HTML posebnih znakov v PHP, saj se je izkazalo, 669 00:32:00,582 --> 00:32:02,790 obstajajo nekateri vnosi da uporabnik lahko nam dal, 670 00:32:02,790 --> 00:32:05,160 ali da bi nas uporabnikom izročiti, da se bo prekinil našo spletno stran. 671 00:32:05,160 --> 00:32:07,035 Ampak bomo videli, da je zraven teden JavaScript. 672 00:32:07,035 --> 00:32:10,740 Ampak za zdaj, samo vem, da ta datoteka, headers.php, preprosto 673 00:32:10,740 --> 00:32:13,040 je naziv, ki Sem opravil leta, da bi 674 00:32:13,040 --> 00:32:17,380 prepričajte, da je varno, ki se vbrizga v spletu stran, in jo izpljune kot moj naslov 675 00:32:17,380 --> 00:32:18,640 in kot moj H1. 676 00:32:18,640 --> 00:32:24,440 Torej, če sem šel v tej različici zdaj, opazili, da ima predavanja njen naslov nazaj, 677 00:32:24,440 --> 00:32:28,630 nič teden ima svoj naslov nazaj, in res, HTML sem generiranje 678 00:32:28,630 --> 00:32:32,110 je enaka, kaj je moj prvi različici was-- razen za mojo belini, 679 00:32:32,110 --> 00:32:35,150 ker sem začel oblikovanje moja koda malo drugače. 680 00:32:35,150 --> 00:32:38,082 Ampak sem ustvarila vse koda mi je mar. 681 00:32:38,082 --> 00:32:39,790 Zato mi dovolite, premor samo trenutek in poglejte 682 00:32:39,790 --> 00:32:42,200 Če obstaja kakršna koli vprašanja ali zmedenostjo sem ustvaril. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Vse je v redu, tako da je zasuk malo težje tukaj 685 00:32:48,150 --> 00:32:51,500 da vidim, če tam je priložnost za izboljšanje. 686 00:32:51,500 --> 00:32:56,130 Helpers.php imeli tudi to funkcija, ki se imenuje renderFooter. 687 00:32:56,130 --> 00:32:59,652 In kaj je treba omeniti, o renderHeader in renderFooter? 688 00:32:59,652 --> 00:33:02,610 In še enkrat, za današnje namene, veš, da je funkcija ekstrakt je le 689 00:33:02,610 --> 00:33:08,280 moj način kratki argumentov v header.php in footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Žal? 692 00:33:11,780 --> 00:33:13,056 >> OBČINSTVO: [neslišno] 693 00:33:13,056 --> 00:33:15,180 DAVID Malan: Ja, samo spremenila zahtevajo črta. 694 00:33:15,180 --> 00:33:19,410 Torej dobesedno sem storila greh kopiranja in lepljenja, še enkrat. 695 00:33:19,410 --> 00:33:21,920 To ni ogromno število linij, ampak pridejo on-- 696 00:33:21,920 --> 00:33:25,220 če sem kopiranjem in lepljenjem vse samo spremeniti eno malo besedo, 697 00:33:25,220 --> 00:33:28,610 in tisti malo beseda, ki Alan točke jasno je nogo tukaj, v primerjavi header tukaj. 698 00:33:28,610 --> 00:33:30,670 Sicer pa je vse identična, razen, 699 00:33:30,670 --> 00:33:32,180 Seveda, imena funkcija je. 700 00:33:32,180 --> 00:33:33,690 Torej, kaj lahko storimo bolje? 701 00:33:33,690 --> 00:33:39,810 >> No povej mi odprla to različico tukaj, pri čemer v helpers.php, 702 00:33:39,810 --> 00:33:42,300 zakaj ne sem dobil malo pametnejši o tem? 703 00:33:42,300 --> 00:33:46,410 Napišite nekoliko bolj zapleteno kodo, ampak poklicati to postane? 704 00:33:46,410 --> 00:33:48,470 Torej, kaj sem se korenito spremenile? 705 00:33:48,470 --> 00:33:51,770 >> To traja argument now-- dva argumenta, podatki še vedno. 706 00:33:51,770 --> 00:33:54,444 In kaj potem je prvi Ime verjetno uporabljajo za, 707 00:33:54,444 --> 00:33:55,860 ki temelji na tisto, kar berete tukaj? 708 00:33:55,860 --> 00:33:58,452 Tudi če nekaj sintakse še novo. 709 00:33:58,452 --> 00:33:59,660 Kaj je dolar predlogo znamenje? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Žal? 712 00:34:03,016 --> 00:34:03,710 >> OBČINSTVO: Glava ali Noga. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Malan: glavo ali nogo. 714 00:34:04,510 --> 00:34:07,134 Torej je očitno, sem se odločil, da če edina stvar, ki se spreminja 715 00:34:07,134 --> 00:34:10,159 je tisto predlogo želim da print-- in predlogi 716 00:34:10,159 --> 00:34:13,100 Mislim, da je to načrt za koda, da želim, da izhod, 717 00:34:13,100 --> 00:34:16,350 ampak želim, da priključite v nekaterih values-- tako da, če je le glava 718 00:34:16,350 --> 00:34:20,440 ali nogo, zakaj ne bom parameterize da in pokličite argument znak za dolar 719 00:34:20,440 --> 00:34:21,409 predlogo? 720 00:34:21,409 --> 00:34:26,250 In potem je to funky sintaksa mi omogoča ustvariti pot v spremenljivko tukaj. 721 00:34:26,250 --> 00:34:28,030 >> Torej znak za dolar Pot je spremenljivka. 722 00:34:28,030 --> 00:34:31,120 Kaj to sintakso storiti, če ste seznanjeni? 723 00:34:31,120 --> 00:34:32,512 Ja? 724 00:34:32,512 --> 00:34:34,065 >> OBČINSTVO: [neslišno] 725 00:34:34,065 --> 00:34:34,940 DAVID Malan: Točno tako. 726 00:34:34,940 --> 00:34:37,600 Če predloga je, citiram konec citata, Glava, ali če predloga je, 727 00:34:37,600 --> 00:34:41,170 quote citata, footer, da linija ni da sem poudaril, linija osem, 728 00:34:41,170 --> 00:34:46,330 je preprosto pokazal, da je ime, kot so glave, in ga združite z dot PHP. 729 00:34:46,330 --> 00:34:49,750 Tako nismo imeli tega operaterja v C. Ta operator pika 730 00:34:49,750 --> 00:34:54,520 neverjetno stvar v PHP-- če ste seznanjeni z JavaScript ali Java, 731 00:34:54,520 --> 00:34:56,949 lahko uporabite plus prijavite narediti spoj. 732 00:34:56,949 --> 00:34:59,974 >> V C, je bolečina v neck-- in sem tako žal, v p-set šest, 733 00:34:59,974 --> 00:35:02,390 boste morali storiti this-- je bolečina v vratu 734 00:35:02,390 --> 00:35:03,930 za združevanje nizov. 735 00:35:03,930 --> 00:35:04,670 Zakaj? 736 00:35:04,670 --> 00:35:06,580 No, saj če imaš niz, ki je tako dolgo, 737 00:35:06,580 --> 00:35:09,538 in drugi niz, ki je tako dolgo, si ne more jih priključite skupaj. 738 00:35:09,538 --> 00:35:11,070 Kaj namesto tega morali narediti v C? 739 00:35:11,070 --> 00:35:11,680 Ja? 740 00:35:11,680 --> 00:35:12,380 >> OBČINSTVO: [neslišno] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Malan: Moraš malloc spomin, ali pa uporabite paleto na kupu. 742 00:35:15,090 --> 00:35:17,214 In ti dejansko morali narediti, da je matrika dovolj velika 743 00:35:17,214 --> 00:35:20,940 da se prilega to plus to, plus poševnica nazaj nič. 744 00:35:20,940 --> 00:35:24,994 Nato pa jih združite skupaj s pomočjo premešamo mačko ali ročno z zanko, 745 00:35:24,994 --> 00:35:26,160 ali katerokoli izmed številnih tehnik. 746 00:35:26,160 --> 00:35:27,760 In mi vam pokažem nekaj v-p nastavite šest. 747 00:35:27,760 --> 00:35:29,080 >> To je bolečina v vratu. 748 00:35:29,080 --> 00:35:34,190 In to je res tisto, kar sem mislil s tem, To v primerjavi this-- kot C v primerjavi s PHP. 749 00:35:34,190 --> 00:35:36,870 Moraš dobiti toliko bolj funkcionalnost brezplačno, 750 00:35:36,870 --> 00:35:39,030 tako da se lahko osredotočite, idealno, na zabavo 751 00:35:39,030 --> 00:35:41,190 del kodiranje je Projekt želite rešiti, 752 00:35:41,190 --> 00:35:43,190 namesto ravni minucij nizke. 753 00:35:43,190 --> 00:35:49,840 >> Torej, to samo ustvarja header.php ali footer.php na podlagi katerih tisti, ki sem se ustavil. 754 00:35:49,840 --> 00:35:52,280 In res, če grem v index.php, obvestilo 755 00:35:52,280 --> 00:35:56,230 vse, kar je changed-- Namesto kliče render glave ali onemogočijo noge, 756 00:35:56,230 --> 00:36:00,230 Kličem render, čemur sledi ime predloge, da želim storiti. 757 00:36:00,230 --> 00:36:02,370 In boste videli, preveč, v problem nastaviti sedem, 758 00:36:02,370 --> 00:36:05,530 pri čemer smo vam omogočajo, da uporabite ista funkcija da bi grozde 759 00:36:05,530 --> 00:36:07,550 in grozde različnih spletnih straneh. 760 00:36:07,550 --> 00:36:10,570 >> Torej, namesto da živijo preveč veliko več o teh details-- 761 00:36:10,570 --> 00:36:13,210 ki jih boste spet videli v Problem set seven-- oglejmo 762 00:36:13,210 --> 00:36:16,850 Na sedaj začetku raztopini k bolj zanimivo problem. 763 00:36:16,850 --> 00:36:19,310 Tako daleč, nič smo jih storjeno ima shranjene podatke. 764 00:36:19,310 --> 00:36:22,920 Dejstvo je, edini čas, ki smo jih kdaj shranili nekaj, kar smo naredili v tem razredu 765 00:36:22,920 --> 00:36:31,030 je, ko smo imeli zelo preprost demo nekaj časa nazaj, pri čemer smo uporabili datoteke IO v C, 766 00:36:31,030 --> 00:36:34,520 in mislim, da sem tipkal v mojem imenu, in Ime Hannah je, in ime Marijina, 767 00:36:34,520 --> 00:36:37,610 ali morda ime Andy, in potem bomo shranili CSV file-- 768 00:36:37,610 --> 00:36:39,430 comma separated values ​​datoteko. 769 00:36:39,430 --> 00:36:43,530 >> In smo uporabili fopen-- mislim smo uporabili fprintf kot se spomnim, 770 00:36:43,530 --> 00:36:44,910 in smo shranili datoteko. 771 00:36:44,910 --> 00:36:46,920 Zdaj, da je najpreprostejši oblika baze podatkov. 772 00:36:46,920 --> 00:36:50,230 Če želite spletno stran za Program Frosh UI, pri čemer novincev 773 00:36:50,230 --> 00:36:53,390 se lahko prijavijo za šport, vas idealno želijo nekaj narediti s temi podatki. 774 00:36:53,390 --> 00:36:55,370 Prejšnji teden smo naredili ničesar z data-- smo pravkar rekel, 775 00:36:55,370 --> 00:36:56,661 ste registrirani, ni res. 776 00:36:56,661 --> 00:36:58,950 Ali morda jaz emailed proctor, in to je bilo to. 777 00:36:58,950 --> 00:37:02,110 >> Vendar bi bilo lepo, če bi lahko dati, da Proctor datoteko CSV, 778 00:37:02,110 --> 00:37:03,340 kot Excelove datoteke. 779 00:37:03,340 --> 00:37:05,090 Ali še bolje, bi bilo bilo lepo, če bi lahko 780 00:37:05,090 --> 00:37:08,830 dal imena teh uporabnikov, in Dorm imena in vse to 781 00:37:08,830 --> 00:37:11,740 v bazo podatkov, ki Samo živi večno, 782 00:37:11,740 --> 00:37:13,530 dokler sem se odločil, da izbriše podatke. 783 00:37:13,530 --> 00:37:15,645 Podatkovna baza, ki omogoča me, da se pozanima informacij. 784 00:37:15,645 --> 00:37:18,070 In res, da je tisto, kar je podatkovna baza. 785 00:37:18,070 --> 00:37:20,470 >> Uvajamo danes, in Naslednji teden, preveč, tehnologija 786 00:37:20,470 --> 00:37:25,020 imenuje SQL-- strukturiran Query Jezik, ki je še en jezik. 787 00:37:25,020 --> 00:37:28,750 To je v bistvu programiranje jezika, ampak za podatkovne baze. 788 00:37:28,750 --> 00:37:31,760 In baze podatkov za zdaj, samo misliti kot super fancy različico 789 00:37:31,760 --> 00:37:35,710 Microsoft Excel, ali Google Preglednic ali Apple Numbers. 790 00:37:35,710 --> 00:37:39,950 To je splošno program, ki omogoča , da shranite cel kup podatkov 791 00:37:39,950 --> 00:37:43,960 v vrsticah in stolpcih, precej kot ste morda v Excelu. 792 00:37:43,960 --> 00:37:47,100 >> Toda kaj je lepo, še posebej, če nismo super seznanjeni z Excel, 793 00:37:47,100 --> 00:37:52,040 kaj SQL vam omogoča, da je izraz tega Informacije, ki jih pisanje vrstic kode 794 00:37:52,040 --> 00:37:55,220 kjer si lahko, tudi če je vaš Podatkovna baza ima milijon vrstic v njej, 795 00:37:55,220 --> 00:37:57,190 lahko najdete stvari, super hitro. 796 00:37:57,190 --> 00:37:59,950 Dejstvo je, Excel je zlasti slabo na velikih zbirk podatkov. 797 00:37:59,950 --> 00:38:02,460 In dejansko do nekaj Pred leti, izkazalo 798 00:38:02,460 --> 00:38:08,890 Excel bi samo vam omogočajo, da shranite do 65.535 vrstic data-- ki 799 00:38:08,890 --> 00:38:12,020 Sliši se veliko, vendar pa Tokrat sem bil grad študent, 800 00:38:12,020 --> 00:38:14,920 in Spomnim se spotaknete to zato, ker sem bil ustvarjanje 801 00:38:14,920 --> 00:38:17,900 CSV datoteke za moje raziskave in I želel, da jih hitro analizirati 802 00:38:17,900 --> 00:38:19,530 s samo odpiranje v Excelu. 803 00:38:19,530 --> 00:38:23,730 Seveda, moj računalnik samo strmoglavilo, ker sem imela več kot 65.000 vrstic. 804 00:38:23,730 --> 00:38:27,210 >> Ampak kje Ali je 65.535 prišel? 805 00:38:27,210 --> 00:38:29,670 Kaj je Microsoft počne, verjetno? 806 00:38:29,670 --> 00:38:32,430 Če ste dobri s svojimi pooblastili dva? 807 00:38:32,430 --> 00:38:37,160 Ja, so bili z uporabo 16-bit Vrednost za zastopanje številko vrstice. 808 00:38:37,160 --> 00:38:41,310 In dva do 16 je 65,536-- minus ena, ker če vas 809 00:38:41,310 --> 00:38:45,414 nič indeks pomeni, da je bila Najbolj število vrstic, da bi lahko imel. 810 00:38:45,414 --> 00:38:46,830 In to je samo odločitev design. 811 00:38:46,830 --> 00:38:52,760 Z varčevanjem 16 bitov, so me omejena 16.000 vrstic, namesto 4 milijarde, 812 00:38:52,760 --> 00:38:54,322 ki bi sem imel idealno. 813 00:38:54,322 --> 00:38:57,030 Ampak za zdaj, gremo na uvesti to bolj v spletnem okolju. 814 00:38:57,030 --> 00:39:00,390 In kaj je lepo o SQL je, da tudi čeprav je zelo močna in lepa 815 00:39:00,390 --> 00:39:04,050 prefinjena, je res izvira navzdol, da štiri ključne dejavnosti, štiri 816 00:39:04,050 --> 00:39:08,060 ključne funkcije, če will-- izberite za pridobivanje podatkov, iskanje 817 00:39:08,060 --> 00:39:12,510 za podatke; izbrisati ali brisanje podatkov; vložek za dodajanje vrstic v zbirki podatkov; 818 00:39:12,510 --> 00:39:13,410 in posodabljanje. 819 00:39:13,410 --> 00:39:17,010 Torej, če ste že kdaj uporabili Google Preglednice, Apple Numbers, Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, ste izvedli, najverjetneje vse 821 00:39:19,310 --> 00:39:22,530 teh operacij, kot človek s samo z uporabo tipkovnice in mouse-- 822 00:39:22,530 --> 00:39:26,050 vstavljanje podatkov, s pomočjo vaše oči Izberite ali iskanje podatkov, 823 00:39:26,050 --> 00:39:28,360 ali posodabljanje podatkov ali brisanje podatkov. 824 00:39:28,360 --> 00:39:29,870 >> Torej, kaj to pomeni? 825 00:39:29,870 --> 00:39:34,300 No, vnaprej nameščen v CS50 IDE je program, imenovan MySQL. 826 00:39:34,300 --> 00:39:37,050 Je brezplačna, open-source baza podatkov, ki je super priljubljena. 827 00:39:37,050 --> 00:39:40,590 Facebook, na primer, ga uporablja za to dan, med drugimi orodji, ki jih uporabljajo. 828 00:39:40,590 --> 00:39:44,300 In veliko zelo priljubljenih spletnih strani, uporabite je v veliki meri zato, ker je hiter, 829 00:39:44,300 --> 00:39:45,230 in zato, ker je zastonj. 830 00:39:45,230 --> 00:39:46,820 Čeprav seveda obstajajo alternative. 831 00:39:46,820 --> 00:39:49,580 In nekateri od vas morda umazali s alternative za končnih projektov. 832 00:39:49,580 --> 00:39:55,330 >> To je screenshot, medtem, od spletno orodje, imenovano phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Je naključje, da To spletno orodje je tudi 834 00:39:58,260 --> 00:40:01,720 napisana v jeziku, PHP, ampak kaj je bilo mišljeno, da storijo 835 00:40:01,720 --> 00:40:04,620 se nam spletna temelji na vmesnik z bazo podatkov. 836 00:40:04,620 --> 00:40:07,180 Ker MySQL je običajno nekaj, zgodovinsko vas, 837 00:40:07,180 --> 00:40:08,770 bi interakcijo z le z ukazno vrstico. 838 00:40:08,770 --> 00:40:10,811 In da bi bilo super nadležno in Skrivnosten, da imajo 839 00:40:10,811 --> 00:40:14,487 vtipkati tekstovnih ukazov za izbiro Podatki, vstaviti podatke in brisanje podatkov. 840 00:40:14,487 --> 00:40:16,820 So nekateri ljudje na internetu napisal spletni program, 841 00:40:16,820 --> 00:40:18,900 da samo nam upravljanje podatki v naši bazi podatkov. 842 00:40:18,900 --> 00:40:23,040 To je kot dvojnim klikom na Excel in teče njegov spletno različico. 843 00:40:23,040 --> 00:40:26,370 >> In kaj boš s tem uporabiti za na koncu naslednji teden, ne-p nastavite šest, 844 00:40:26,370 --> 00:40:28,680 vendar je zgraditi nekaj imenuje CS50 Finance, ki 845 00:40:28,680 --> 00:40:32,630 se dogaja, da imajo bazo Uporabniki, z uporabniškimi imeni in gesli, 846 00:40:32,630 --> 00:40:34,860 Dolar zneske, ki jih imajo v svojih bančnih računov. 847 00:40:34,860 --> 00:40:37,280 To se dogaja, da nekaj, kar lahko uporabite za shranjevanje 848 00:40:37,280 --> 00:40:39,910 simboli in količine staležev, ki jih uporabniki 849 00:40:39,910 --> 00:40:42,567 so kupili s pomočjo virtualnega dolarjev, ki ga bom dal na njih. 850 00:40:42,567 --> 00:40:44,900 In to se dogaja, da se omogoči uporabnikom da se registrirajo za vašo spletno stran, 851 00:40:44,900 --> 00:40:47,190 tako da tudi svojim prijateljem lahko prisluhnete na vašo spletno stran 852 00:40:47,190 --> 00:40:49,360 in dejansko register, se prijavite, in igral 853 00:40:49,360 --> 00:40:52,807 in poskusite najti napake v kodi, in poskusite najti napake v vašo spletno stran. 854 00:40:52,807 --> 00:40:55,390 In jih bomo preprosto register, ki ga sami dodal, učinkovito, 855 00:40:55,390 --> 00:40:58,120 preko kode pišete na vašo bazo podatkov. 856 00:40:58,120 --> 00:41:02,470 >> Na primer, to je hiter zaslona o tem, kaj bi lahko baza podatkov izgledal. 857 00:41:02,470 --> 00:41:05,190 To je bilo iz ene lanskoletne solutions-- 858 00:41:05,190 --> 00:41:07,760 to je kot mini Excel datoteke, shranjene v naši bazi podatkov, 859 00:41:07,760 --> 00:41:09,950 shranjene v to programsko opremo, imenovano MySQL. 860 00:41:09,950 --> 00:41:13,260 Na levi strani, kjer sem imel očitno dati vsakemu uporabniku edinstveno številko. 861 00:41:13,260 --> 00:41:16,200 V drugem stolpcu, sem dal vsak uporabnik name-- moja 862 00:41:16,200 --> 00:41:16,880 med njimi. 863 00:41:16,880 --> 00:41:21,430 In na desni strani, Sem jim dal hašiš. 864 00:41:21,430 --> 00:41:26,760 >> Zdaj je to pravzaprav geslo vendar to ni besedilo geslo navaden. 865 00:41:26,760 --> 00:41:30,160 To je šifrirano geslo, če boste, ali geslo hash. 866 00:41:30,160 --> 00:41:32,000 Kateri se bomo vrnili na že dolgo. 867 00:41:32,000 --> 00:41:34,340 >> Ampak, če ste jih kdaj prebral članek o tem, kako 868 00:41:34,340 --> 00:41:37,950 geslo na neki banki ali nekatere Spletna stran je bila morda ogrožena, 869 00:41:37,950 --> 00:41:39,630 lahko na splošno pomeni eno od dveh stvari. 870 00:41:39,630 --> 00:41:42,780 Torej je to samo odlomek iz šestih uporabnikov. 871 00:41:42,780 --> 00:41:45,460 Vse vas zdaj lahko ugotovimo ven prek taksist ali razpokane 872 00:41:45,460 --> 00:41:47,690 kaj gesla Naših šest ljudi so. 873 00:41:47,690 --> 00:41:49,720 Ampak, če ste kdaj gotten opozorilo ali opravičilo 874 00:41:49,720 --> 00:41:52,803 od podjetja ali spletnega pregovor, Žal mi je, heker vdrl v naši podatkovni bazi, 875 00:41:52,803 --> 00:41:56,360 bi verjetno morali spremeniti vaš geslo, kaj bi to pomenilo? 876 00:41:56,360 --> 00:41:59,670 >> No, ena, lahko pomeni Družba je bila bolj moronic, 877 00:41:59,670 --> 00:42:03,630 in je bil shranjevanje geslo v koloni, kot je ta, nekodirano. 878 00:42:03,630 --> 00:42:05,840 Kar pomeni nasprotnika, kdo je ukradel bazo podatkov, 879 00:42:05,840 --> 00:42:07,440 dobesedno pozna vaše uporabniško ime in geslo. 880 00:42:07,440 --> 00:42:08,960 To je najslabši možni scenarij. 881 00:42:08,960 --> 00:42:11,710 In kot boste videli v p-set sedem, tako enostavno izogniti. 882 00:42:11,710 --> 00:42:15,624 Ni nobenega opravičila za to oblika neumnosti v današnjem internetu. 883 00:42:15,624 --> 00:42:18,540 Dvo in našli bomo nekaj člankov pričati, da je to še vedno 884 00:42:18,540 --> 00:42:21,710 zgodi, nonetheless-- dva, morda nasprotnik 885 00:42:21,710 --> 00:42:23,840 Ukradel te različice baze podatkov. 886 00:42:23,840 --> 00:42:27,110 Ki je še vedno nekako slabo, ker zdaj vedo, da imam šest strank, 887 00:42:27,110 --> 00:42:29,270 Poznam imena uporabnikov od teh šestih strank, 888 00:42:29,270 --> 00:42:32,910 in vem, da je šifrirano različice, ali zgoščene različice, 889 00:42:32,910 --> 00:42:34,340 gesel teh šestih strank. 890 00:42:34,340 --> 00:42:37,010 Ampak kdo od vas, ki bi lahko naredil [? Hacker 2?] 891 00:42:37,010 --> 00:42:41,150 kje ste razpokan gesla, ali je poglej na to različico problema 892 00:42:41,150 --> 00:42:46,280 set, zakaj je še vedno malo zaskrbljujoče če nasprotnik pozna svoje hash 893 00:42:46,280 --> 00:42:47,435 gesla? 894 00:42:47,435 --> 00:42:49,732 >> OBČINSTVO: Ker so lahko vnesti celotno slovar 895 00:42:49,732 --> 00:42:50,690 v funkcije razpršitve. 896 00:42:50,690 --> 00:42:54,520 In če je vaše geslo je slovar beseda [? so lahko samo match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Malan: Točno, nasprotnik Lahko samo pisanje kode, kot nekateri od vas 898 00:42:57,640 --> 00:43:00,526 storil za [? Hacker?] 2 pri čemer si Ponovil več 899 00:43:00,526 --> 00:43:03,400 vse besede v slovarju, ali vse možne kombinacije A 900 00:43:03,400 --> 00:43:06,610 do Z in eno skoznjo nine-- ki zveni kot veliko, in je. 901 00:43:06,610 --> 00:43:08,361 Toda za računalnik, je precej darn hitro. 902 00:43:08,361 --> 00:43:10,610 In z dejstvom, da je točka [? Hacker 2?] Je bila 903 00:43:10,610 --> 00:43:12,540 vzeti stvari, ki dobesedno videti takole, 904 00:43:12,540 --> 00:43:14,900 in obratno inženir kaj je dejansko bilo. 905 00:43:14,900 --> 00:43:17,270 >> Tako si bomo pogledali, kako lahko učinkoviteje shranite to. 906 00:43:17,270 --> 00:43:20,210 Izkazalo se je, na srečo v MySQL, tam se bodo tipi podatkov. 907 00:43:20,210 --> 00:43:22,800 In ena izmed zabavnih delov približno načrtovanje podatkovne baze, če sem iskren, 908 00:43:22,800 --> 00:43:25,810 se dejansko odloča za sebe kako naj si predstavljajo podatke? 909 00:43:25,810 --> 00:43:29,630 Če predstavljajo telefonsko številko, kot je int, kot veliko število, ali dolg? 910 00:43:29,630 --> 00:43:31,630 Ali pa dejansko narediti kot zaporedje znakov? 911 00:43:31,630 --> 00:43:33,780 In ne more biti zelo netrivialne posledice tega. 912 00:43:33,780 --> 00:43:36,714 >> Pravzaprav je eden izmed Prvi, zabava Germane zgodbe 913 00:43:36,714 --> 00:43:39,880 je, ko Mark Zuckerberg je gradnjo Facebook, je bila prvotno napisana v, 914 00:43:39,880 --> 00:43:42,300 in je še vedno v veliki meri napisana v PHP. 915 00:43:42,300 --> 00:43:45,400 In eden od največjih izzivov se soočajo že na začetku je bilo luščenje. 916 00:43:45,400 --> 00:43:48,820 Ko se hranijo dodajanje šolo po Šola po šoli, da se mi je znano, 917 00:43:48,820 --> 00:43:51,639 eden od prvotnih rešitev je bil v bistvu kopiraj in prilepi 918 00:43:51,639 --> 00:43:53,430 nekatere od podatkovnih baz in nekatere kode, 919 00:43:53,430 --> 00:43:55,346 tako da je Harvard teče na svojem strežniku, 920 00:43:55,346 --> 00:43:56,995 in MIT je tekmovanje v teku na svojem strežniku. 921 00:43:56,995 --> 00:43:59,120 In to je bil razlog, za nekatere med vami, ki bi se spomni, 922 00:43:59,120 --> 00:44:01,510 si ne bi mogla imeti prijatelje v drugih omrežjih. 923 00:44:01,510 --> 00:44:05,050 >> Saj verjetno na nima prijateljev MIT in Harvard pred 10 let ali tako, 924 00:44:05,050 --> 00:44:07,467 vendar niste mogli span omrežij za delno zaradi tega razloga. 925 00:44:07,467 --> 00:44:10,550 In eden izmed največjih izzivov za Mark in za podjetja, kot so Facebook 926 00:44:10,550 --> 00:44:13,460 je dejansko ravnanje stotine in na tisoče in milijone 927 00:44:13,460 --> 00:44:14,460 zahtevkov na sekundo. 928 00:44:14,460 --> 00:44:16,501 Torej, stvari bomo začeli govorimo o tem tednu 929 00:44:16,501 --> 00:44:19,860 se v resnici dogaja, da se germane za pisanje dobre programske opreme, in popularno 930 00:44:19,860 --> 00:44:23,040 uspešna orodja, ki zmorem veliko uporabnikov. 931 00:44:23,040 --> 00:44:25,460 >> Torej bomo govorili o stvareh, kot indeksiranje in iskanje, 932 00:44:25,460 --> 00:44:26,910 ampak to je to za danes. 933 00:44:26,910 --> 00:44:28,780 Vam bomo videli več v sredo. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [MUSIC - "Seinfeld" TEMA] 936 00:44:33,902 --> 00:44:35,943 DAVID Malan: Lahko, da to, in odštejemo od njega. 937 00:44:35,943 --> 00:44:38,859 In ne boste imeli, da se držijo z nekatere vnaprej določene količine pomnilnika. 938 00:44:38,859 --> 00:44:40,580 No, kaj da bo, da se imenuje? 939 00:44:40,580 --> 00:44:42,369 >> SPEAKER 1: No, kaj se dogaja? 940 00:44:42,369 --> 00:44:43,535 SPEAKER 2: Kaj misliš s tem? 941 00:44:43,535 --> 00:44:44,451 On predava. 942 00:44:44,451 --> 00:44:47,650 DAVID Malan: In bomo lahko uporabite Funkcija se imenuje malloc za memory-- 943 00:44:47,650 --> 00:44:50,050 >> SPEAKER 1: Zakaj niso njegove roke premika? 944 00:44:50,050 --> 00:44:52,450 >> SPEAKER 2: No that's-- veste, da je to normalno. 945 00:44:52,450 --> 00:44:57,162 To je tako kot da ima samo velike klobase visi tam. 946 00:44:57,162 --> 00:44:59,040 >> SPEAKER 1: To je normalno? 947 00:44:59,040 --> 00:45:03,096 >> SPEAKER 2: Ja, mislim, da smo le domnevati, je po nesreči 948 00:45:03,096 --> 00:45:06,840 zamenjati svoj deodorant z superglue. 949 00:45:06,840 --> 00:45:07,608