1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Glazbom] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID Malan: Ovo je CS50 i ovo je početak tjedna osam. 5 00:00:13,350 --> 00:00:17,510 A mi smo tako uzbuđeni da dobrodošli natrag, veliko iznenađenje, CS50 vlastiti Ramon 6 00:00:17,510 --> 00:00:22,160 Galvan, diže stariji koji je bio proveo posljednjih nekoliko mjeseci 7 00:00:22,160 --> 00:00:26,190 od srpnja u Los Angelesu, u Hollywoodu, doslovno radi na novim TV 8 00:00:26,190 --> 00:00:31,930 Show pod nazivom Kolonija, kreator koji je zapravo i sam Harvarda alum. 9 00:00:31,930 --> 00:00:36,610 I tako smo vrlo uzbuđeni vidjeti debi na SAD mreže u siječnju ove godine. 10 00:00:36,610 --> 00:00:40,370 Tako Stay tuned za to, a za više Ramon za nekoliko tjedana doći. 11 00:00:40,370 --> 00:00:42,550 >> Znajte sada da je kraj blizu. 12 00:00:42,550 --> 00:00:47,400 I što to znači da ne postoji sve što je mnogo ostalo od CS50, tužno je reći. 13 00:00:47,400 --> 00:00:49,400 Imamo samo tri problema setovi left-- postoji 14 00:00:49,400 --> 00:00:52,510 Problem postaviti six-- koji je u Ruke sada ili će uskoro biti, 15 00:00:52,510 --> 00:00:56,080 zbog kasnije ove week-- je značilo da premosti naši svjetovi komandne linije, gdje 16 00:00:56,080 --> 00:00:59,450 smo proveli većinu vremena korištenja C, a svijet web programiranja. 17 00:00:59,450 --> 00:01:02,350 Pa, vidjet ćete puno ideja posuđena iz naredbenog retka rad i, 18 00:01:02,350 --> 00:01:04,560 ali i puno novih i zanimljive ideje 19 00:01:04,560 --> 00:01:07,929 koje su također će biti tijesnoj za mobilne aplikacije i za tehnologiju, 20 00:01:07,929 --> 00:01:10,470 općenitije, s kojim Dečki su svi upoznati danas 21 00:01:10,470 --> 00:01:12,090 na prijenosna računala i telefoni i slično. 22 00:01:12,090 --> 00:01:15,220 >> Tako ćete ne provode web stranice ili web stranice 23 00:01:15,220 --> 00:01:17,620 po sebi, nego stvarna web poslužitelja. 24 00:01:17,620 --> 00:01:21,590 Vi ćete napisati ostatak web poslužitelja napisan u C, čija je svrha u životu 25 00:01:21,590 --> 00:01:25,410 je za primanje HTTP zahtjeva, te Virtualni omotnice smo zadržati u razgovoru 26 00:01:25,410 --> 00:01:29,780 o, i zapravo odgovoriti ili s neki statički content-- poput dot HTML 27 00:01:29,780 --> 00:01:32,310 datoteka, ili točka ili JPEG bilo koji drugi broj datoteka, 28 00:01:32,310 --> 00:01:37,070 ili čak PHP datoteka pri čemu je vaš web poslužitelj će protumačiti taj PHP 29 00:01:37,070 --> 00:01:38,332 broj i ispljunuti rezultate. 30 00:01:38,332 --> 00:01:40,540 Sada smo vas s vrlo malo okvira 31 00:01:40,540 --> 00:01:43,100 za it-- doista Raspodjela kod za problema 32 00:01:43,100 --> 00:01:47,496 postavljen šest je više od 1.000 linija dugi, Puno što je komentara, biti fair-- 33 00:01:47,496 --> 00:01:49,370 ali to je zapravo značilo biti prilika 34 00:01:49,370 --> 00:01:52,570 da biste dobili vaše ruke prljave ronjenje u prilično velikom projektu 35 00:01:52,570 --> 00:01:55,570 da smo vrlo konkretno isklesana komada za vas, 36 00:01:55,570 --> 00:01:59,046 tako da zapravo kada izađete CS50 i unesite stvarni svijet programiranja 37 00:01:59,046 --> 00:02:00,920 i želite brljati u bilo koji broj projekata, 38 00:02:00,920 --> 00:02:03,253 da ćete imati puno veći Udobnost skidanje neki izvor 39 00:02:03,253 --> 00:02:05,020 kod, neki open source projekt na webu, 40 00:02:05,020 --> 00:02:08,174 i ronjenje u i izradu Promjene koje vidite stane. 41 00:02:08,174 --> 00:02:11,340 Problem postaviti sedam će biti o izradu vlastite web-based aplikacija 42 00:02:11,340 --> 00:02:14,140 koji traje dinamički unos i proizvodi dinamičke izlaz u obliku 43 00:02:14,140 --> 00:02:16,920 od etrade.com nalik web stranice. 44 00:02:16,920 --> 00:02:20,800 A problema postaviti osam će se usredotočiti na još drugi jezik poznatije kao JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> U međuvremenu, konačni Projekt je na horizontu. 46 00:02:24,170 --> 00:02:26,800 Takozvani pre-prijedlog je zbog tjedan dana od danas. 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- po specifikaciji, koji je na CS50 je website-- 48 00:02:29,930 --> 00:02:33,260 je lijepa prilika za povremeni slanje prilično kratak e-mail 49 00:02:33,260 --> 00:02:35,170 na svom nastavnom kolegama samo da ga obavijestiti 50 00:02:35,170 --> 00:02:38,250 ili joj ono što misliš, da se njega ili nju koriste kao sondiranje odbora. 51 00:02:38,250 --> 00:02:40,980 I imaju razum check-- da li ste mislili 52 00:02:40,980 --> 00:02:43,210 O rezak off previše puno ili možda premalo, 53 00:02:43,210 --> 00:02:46,480 ili možda nemate pojma što god i žele sudjelovati u razgovoru. 54 00:02:46,480 --> 00:02:48,480 >> Nakon toga je prijedlog i izvješće o stanju, 55 00:02:48,480 --> 00:02:51,860 tzv CS50 hackathon ovdje Cambridge za Harvard i Yale studentima 56 00:02:51,860 --> 00:02:52,362 podjednako. 57 00:02:52,362 --> 00:02:54,320 Završni projekt je provedba je tada zbog. 58 00:02:54,320 --> 00:02:59,290 A onda CS50 sajam ovdje, u Cambridgeu, kao i drugi u New Havenu. 59 00:02:59,290 --> 00:03:02,500 Dakle prijedlog, pogledajte web stranica za one pojedinosti. 60 00:03:02,500 --> 00:03:06,530 >> No, više uzbudljivo, previše, je priliku da biste dobili vaše ruke prljave, 61 00:03:06,530 --> 00:03:09,350 i misli vaše otvorene u cjelini gomila tema i alata 62 00:03:09,350 --> 00:03:12,920 i tehnike koje su pomoćne na tečaj core nastavni plan i program, 63 00:03:12,920 --> 00:03:14,810 ali ipak povezane. 64 00:03:14,810 --> 00:03:18,400 I također prekrasna stepenice u radi stvarno cool završne projekte koji 65 00:03:18,400 --> 00:03:22,020 nadilaze materijala koje smo pokriveni formalno u problemu postavlja ili predavanje. 66 00:03:22,020 --> 00:03:24,446 Dakle, ići na CS50 web stranice za cijeli roster seminara. 67 00:03:24,446 --> 00:03:26,070 Ako još ne registriraju, to je u redu. 68 00:03:26,070 --> 00:03:29,860 Idi naprijed i prijavite se još i mi ćemo slijedite gore sa live streaming vezu, 69 00:03:29,860 --> 00:03:31,844 dan i vrijeme je na web stranici. 70 00:03:31,844 --> 00:03:33,760 I sve će biti zabilježena i staviti online 71 00:03:33,760 --> 00:03:35,800 ako ne može napraviti Posebni dani i vrijeme. 72 00:03:35,800 --> 00:03:39,380 >> Što se tiče onoga što je pred nama thereafter-- dobro, Naravno, tu je CS50 hackathon. 73 00:03:39,380 --> 00:03:43,560 Ova slika, podsjetimo, iz tjedna nula uzeti oko 4:00 jedne večeri u posljednjih godina. 74 00:03:43,560 --> 00:03:46,900 Sajam CS50, što opet održat će se u oba grada. 75 00:03:46,900 --> 00:03:49,760 A onda, samo da se biljka sjeme, iako još uvijek 76 00:03:49,760 --> 00:03:54,080 ima mjesec dana uz ostalo od semestru, ako želite pridružiti CS50 vlastito učenje 77 00:03:54,080 --> 00:03:56,770 osoblje i želite započeti razmišljam o tome kako postati CA, 78 00:03:56,770 --> 00:03:59,550 ili učenje kolega, znam da Počet ćemo govoriti više o tome 79 00:03:59,550 --> 00:04:00,630 kasnije ovaj semestar. 80 00:04:00,630 --> 00:04:03,470 Ali ovdje na slici je većina ovogodišnjeg tima. 81 00:04:03,470 --> 00:04:06,950 >> I tako, PHP-- a ja sam tako tužna prošli tjedan da je [? Allyse?] Ljubazno 82 00:04:06,950 --> 00:04:09,370 otišao u nastojanju dobivanja Američki ove prekrasne rekvizite 83 00:04:09,370 --> 00:04:11,720 da nisam završiti koristite, tako da zapravo samo gledao vrsta glup 84 00:04:11,720 --> 00:04:15,160 da smo imali lopatu sjedi ovdje cijeli dan prošle srijede, i malo žlica. 85 00:04:15,160 --> 00:04:17,709 Ali ovo je bio moj metaforički način pokušava slikati 86 00:04:17,709 --> 00:04:21,600 slika zašto smo Prelaženje od C do jeziku poput PHP. 87 00:04:21,600 --> 00:04:25,480 A isto bi se moglo reći i za bilo Broj languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 ili grozdova others--, ali dok je u C, na primjer, pisanje programa u C 89 00:04:31,270 --> 00:04:34,050 Možda obično biti poput uzimajući žlicu ovako 90 00:04:34,050 --> 00:04:36,770 i kopati rupu u tlo, u pijesak ili blato. 91 00:04:36,770 --> 00:04:39,770 PHP vam omogućuje da se mnogo veći ugriza iz problema, 92 00:04:39,770 --> 00:04:42,842 pisanje daleko manje koda pomoću daleko manji alat, 93 00:04:42,842 --> 00:04:45,050 jer postoji toliko mnogo više Funkcionalnost pieced u. 94 00:04:45,050 --> 00:04:47,633 >> Sada, ako smo bili jako dramatično, ćemo imati nešto za lopatu 95 00:04:47,633 --> 00:04:48,760 ovdje, ali neka bude tako. 96 00:04:48,760 --> 00:04:51,370 U međuvremenu, druga Metafora smo smislili 97 00:04:51,370 --> 00:04:53,770 je, naravno, što bi koristiti nešto poput ključa 98 00:04:53,770 --> 00:04:56,610 čekić u nešto poput noktiju. 99 00:04:56,610 --> 00:04:58,980 Ali, naravno, pravo alat za korištenje ide 100 00:04:58,980 --> 00:05:01,360 da se nije toliko jezik zove C-- 101 00:05:01,360 --> 00:05:03,590 a sada sam samo ljut [? Sanders?] Vjerojatno, 102 00:05:03,590 --> 00:05:07,890 mi ćemo popraviti later-- tako pravi alat za korištenje često 103 00:05:07,890 --> 00:05:09,640 ne će biti to je najniža razina alat. 104 00:05:09,640 --> 00:05:13,720 I doista, C nije jezik koji većina vas ikada idući u iskoristiti, 105 00:05:13,720 --> 00:05:15,590 ili nužno treba ponovno koristiti. 106 00:05:15,590 --> 00:05:18,350 >> A u stvari, malo secret-- jedini put 107 00:05:18,350 --> 00:05:23,160 Koristim C osobno je prilično između Rujan i prosinac svake jeseni 108 00:05:23,160 --> 00:05:23,870 semestar. 109 00:05:23,870 --> 00:05:25,790 A to je zato što smo koristiti ga kao priliku 110 00:05:25,790 --> 00:05:27,852 naučiti osnove programiranja, 111 00:05:27,852 --> 00:05:29,810 a uz to računala znanost osnove, podaci 112 00:05:29,810 --> 00:05:32,435 strukture, algoritmi i volimo-članovima, ali vrlo brzo će vam 113 00:05:32,435 --> 00:05:35,010 sada vidim da je sintaksa i ideje temeljne C 114 00:05:35,010 --> 00:05:37,530 tako čudesno prenijeti na modernije 115 00:05:37,530 --> 00:05:41,130 viši razinu jezika, kao što su PHP i Python i Perl i Java 116 00:05:41,130 --> 00:05:46,750 Cilj i-C-- zapravo, ne toliko Cilj-C-- ali Swift, ovi noviji 117 00:05:46,750 --> 00:05:50,010 jezika koji su mnogi od vas će zatim poprskati sa sobom konačni projekt. 118 00:05:50,010 --> 00:05:55,070 >> Dakle, bez dodatnih teškoća, neka je zapravo koristiti PHP riješiti neke probleme. 119 00:05:55,070 --> 00:06:00,230 Sjetite se da je rano, posljednja tjedan, mi samo koristiti CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 mi je napisao Dinky mali program da je samo rekao: "Pozdrav svijetu". 121 00:06:02,990 --> 00:06:05,680 A onda sam ga spremiti u datoteka zove hello.php. 122 00:06:05,680 --> 00:06:07,280 A onda sam vodio ovu naredbu. 123 00:06:07,280 --> 00:06:08,080 >> I zašto? 124 00:06:08,080 --> 00:06:09,900 U engleskom jeziku, što se ovdje događa? 125 00:06:09,900 --> 00:06:12,760 Što sam radio kad Trčao sam ovu zapovijed? 126 00:06:12,760 --> 00:06:13,405 >> Da? 127 00:06:13,405 --> 00:06:16,572 >> PUBLIKA: Ima nekih funkcija PHP da čita ono in-- se razumije da. 128 00:06:16,572 --> 00:06:19,696 DAVID Malan: Dobro, ima nekih funkcija PHP-- i neka mi bude precizniji, 129 00:06:19,696 --> 00:06:21,810 postoji program koji se zove PHP, a.k.a. 130 00:06:21,810 --> 00:06:25,872 Tumač, koji razumije Sadržaj hello.php, 131 00:06:25,872 --> 00:06:27,830 i interpretira ga na vrh dno, lijeva na desno, 132 00:06:27,830 --> 00:06:29,590 a ne ono što ti kažu naredbe. 133 00:06:29,590 --> 00:06:33,320 Naredbe u hello.php, naravno, je samo izvor code-- funkcije 134 00:06:33,320 --> 00:06:35,750 i varijabli i petlje i slično, da mi sami 135 00:06:35,750 --> 00:06:37,460 su počeli pisati u PHP. 136 00:06:37,460 --> 00:06:40,240 >> No za razliku od C, što je sastavio jezik, 137 00:06:40,240 --> 00:06:42,810 PHP ste upravo ga pisati, i pokrenite ga. 138 00:06:42,810 --> 00:06:46,420 Možete preskočiti posrednika korak pretvaranja u nula i jedinica, 139 00:06:46,420 --> 00:06:47,790 a zatim ga prikazuju. 140 00:06:47,790 --> 00:06:50,510 I tako ono što je naopako ovo? 141 00:06:50,510 --> 00:06:52,690 Zašto smo preskakanje korak? 142 00:06:52,690 --> 00:06:55,238 Zašto više modernih jezika imaju tendenciju preskočiti ovaj korak? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Što je korist? 145 00:07:01,220 --> 00:07:02,080 >> Ili jednostavno intuitivno? 146 00:07:02,080 --> 00:07:04,200 Čak i ako imamo ne napisano mnogo PHP prije, 147 00:07:04,200 --> 00:07:07,210 što je korisno o tome nije sastavljanje kôd misliš? 148 00:07:07,210 --> 00:07:08,520 Ne? 149 00:07:08,520 --> 00:07:09,610 Nije počinio? 150 00:07:09,610 --> 00:07:11,350 Grebanje glavu? 151 00:07:11,350 --> 00:07:12,614 Da. 152 00:07:12,614 --> 00:07:13,600 >> PUBLIKA: dinamičniji. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Malan: dinamičniji? 154 00:07:14,683 --> 00:07:16,032 Što misliš? 155 00:07:16,032 --> 00:07:17,000 >> PUBLIKA: [nečujan] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID Malan: OK, dobro, tako da Ovisno o ulazu, 158 00:07:22,390 --> 00:07:23,470 ne morate ga sastaviti svaki put. 159 00:07:23,470 --> 00:07:24,990 I stvarno je kao jednostavan kao što that-- 160 00:07:24,990 --> 00:07:26,990 je točka nastavlja sastaviti svoj kod? 161 00:07:26,990 --> 00:07:29,480 Ovo je samo korak koji je making-- to zahtijeva, 162 00:07:29,480 --> 00:07:31,900 U posljednjih nekoliko tjedna, dvostruko više koraka 163 00:07:31,900 --> 00:07:33,820 kao samo izvodi svoj program. 164 00:07:33,820 --> 00:07:36,940 Bilo je korisno u vidim da vama vidjeti neke poruke o pogreškama i tako dalje, 165 00:07:36,940 --> 00:07:38,720 ali to je još uvijek samo neugodno korak. 166 00:07:38,720 --> 00:07:41,810 >> I tako programeri shvatio tijekom vremena, zašto ne bismo 167 00:07:41,810 --> 00:07:45,327 početi pisati jezike koji NE potrebno da prilično mehanički korak, 168 00:07:45,327 --> 00:07:47,160 tako da mogu samo napisati Vaš broj i pokrenite ga. 169 00:07:47,160 --> 00:07:48,920 No, ono što je cijena kako smo vidjeli smo platili 170 00:07:48,920 --> 00:07:50,910 prošlog tjedna, s jednom određenom primjeru? 171 00:07:50,910 --> 00:07:51,650 Da? 172 00:07:51,650 --> 00:07:52,370 >> Brzina. 173 00:07:52,370 --> 00:07:54,690 Dakle [? Što je?] tumača malo sporije, 174 00:07:54,690 --> 00:07:57,330 u tome nule i one su lijepo i brzo za računala 175 00:07:57,330 --> 00:08:00,070 razumjeti, jer je Intel CPU, ili što god to je, 176 00:08:00,070 --> 00:08:03,070 Samo razumije što se događa na onim obrascima bitova. 177 00:08:03,070 --> 00:08:05,370 Dok tumača je program koji stvarno 178 00:08:05,370 --> 00:08:07,980 mora pročitati izvor ASCII kod koji ste napisali, 179 00:08:07,980 --> 00:08:12,700 i pretvoriti ga, da tako kažem, ili shvatiti kako se pretvara u konačnici 180 00:08:12,700 --> 00:08:13,525 na nula i jedinica. 181 00:08:13,525 --> 00:08:15,650 Dakle, samo je potrebno malo malo je hit performansi. 182 00:08:15,650 --> 00:08:16,858 Dakle, to je malo trade-off. 183 00:08:16,858 --> 00:08:21,570 Sada, ako ćemo to učiniti ovdje, neka me ići naprijed i učiniti primjer kako slijedi. 184 00:08:21,570 --> 00:08:26,610 Ako odem ovdje, nova datoteka, idem spremiti ovo opet hello.php. 185 00:08:26,610 --> 00:08:31,450 A sada ću ići naprijed i reći: "print Hello World" - 186 00:08:31,450 --> 00:08:35,130 i podsjetiti da ja mogu koristiti print, ja ne moraju koristiti za ispis-F. I sada ovdje, 187 00:08:35,130 --> 00:08:42,039 ako ja PHP o hello.php, huh-- sam ne čini se da su ga tumačiti. 188 00:08:42,039 --> 00:08:43,412 Što sam učinio krivo? 189 00:08:43,412 --> 00:08:44,710 >> PUBLIKA: Kutni narukvice. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Malan: Da, trebate da kut nosača do vrha. 191 00:08:47,015 --> 00:08:49,390 Dakle, to je vrsta neugodno, ali ste naviknuti na to vrlo brzo. 192 00:08:49,390 --> 00:08:53,500 Ako moram napisati PHP kod, ja obično trebaju ispričati program, 193 00:08:53,500 --> 00:08:56,950 ili reći tumača, hej PHP, ovdje dolazi neki PHP kod. 194 00:08:56,950 --> 00:09:00,440 A onda za dobru mjeru, bih zatvoriti to nije to, nego 195 00:09:00,440 --> 00:09:03,740 sa samo pitanje kutom mark nosač, tako da je sada ovdje, 196 00:09:03,740 --> 00:09:06,840 ako sam pokrenuti to opet, sada Ja dobiti željeni rezultat. 197 00:09:06,840 --> 00:09:09,820 >> Sada ćemo napraviti blagi optimizacija, samo da ste ga vidjeli. 198 00:09:09,820 --> 00:09:14,040 To je vrsta neugodno da ja moraju pokrenuti PHP prostor hello.php, 199 00:09:14,040 --> 00:09:16,060 jer je u prošlosti sam mogao samo napisati dot crta 200 00:09:16,060 --> 00:09:17,560 naziv programa, što je vrsta lijepo. 201 00:09:17,560 --> 00:09:19,420 To je vrsta bolje korisničko iskustvo. 202 00:09:19,420 --> 00:09:24,160 >> Tako ispada da možete to učiniti u PHP s following-- I 203 00:09:24,160 --> 00:09:28,780 možete koristiti ovaj prilično zagonetan bajanje na vrhu ovdje, 204 00:09:28,780 --> 00:09:31,740 koji se obično naziva stvar, pri čemu je to oštar simbol, 205 00:09:31,740 --> 00:09:34,270 da tako kažemo, to je prasak ili uskličnik. 206 00:09:34,270 --> 00:09:38,490 A ovo sada je put u programu na tipičnom Linux sustav koji 207 00:09:38,490 --> 00:09:41,500 naziva se okolina ili ENV. 208 00:09:41,500 --> 00:09:43,920 A to line-- dugu priču short-- linije jedna samo 209 00:09:43,920 --> 00:09:48,710 kaže, hej računalo, pronaći PHP tumač za mene u okolišu, 210 00:09:48,710 --> 00:09:50,610 Smatraju ga u sjećanju, da se tako izrazim. 211 00:09:50,610 --> 00:09:54,130 >> A što je lijepo sad je da, ako idem ovdje dolje, 212 00:09:54,130 --> 00:09:57,750 Ja mogu napraviti dot crta Pozdrav dot php, or-- hmm. 213 00:09:57,750 --> 00:09:59,000 Dopuštenje odbijen. 214 00:09:59,000 --> 00:10:02,350 Pa, vidjet ćete još više od toga s problemom postaviti sedam, ako vas 215 00:10:02,350 --> 00:10:04,060 već niste, s dozvolama. 216 00:10:04,060 --> 00:10:06,510 Ispada da mi treba izvršiti ovu naredbu 217 00:10:06,510 --> 00:10:10,779 zove [? chamod?] za promjenu mode-- plus x hello.php. 218 00:10:10,779 --> 00:10:13,820 Trebam [nečujan] to jedan dodatni korak koji govori moje računalo, 219 00:10:13,820 --> 00:10:16,400 bi hello.php izvršnu. 220 00:10:16,400 --> 00:10:21,310 I sada gledati što happens-- točku slash hello.php, to samo radi. 221 00:10:21,310 --> 00:10:23,310 Ne treba odrediti prevoditelj više. 222 00:10:23,310 --> 00:10:26,680 I ja mogu učiniti još ljepše, ipak, ako sam preimenovati ovu stvar. 223 00:10:26,680 --> 00:10:30,570 Ako sam hello.php kretati samo Hello-- tako primijetiti u gornjem lijevom, 224 00:10:30,570 --> 00:10:32,860 Ime programa je Doista sada samo Zdravo. 225 00:10:32,860 --> 00:10:37,300 Sada mogu učiniti da izgleda kao program C, iako je to napisano u PHP-- 226 00:10:37,300 --> 00:10:39,210 ili iskreno bilo koji broj drugih jezika. 227 00:10:39,210 --> 00:10:41,480 >> Dakle marginalna poboljšanja, nije funkcionalna razlika. 228 00:10:41,480 --> 00:10:44,460 Ali to je samo mali kuriozitet sada, tako da možete pisati programe 229 00:10:44,460 --> 00:10:48,989 na bilo kojem jeziku, a korisnik ne znati ili briga što oni jesu. 230 00:10:48,989 --> 00:10:51,030 Pa, pogledajmo više uvjerljiv primjer sada 231 00:10:51,030 --> 00:10:52,850 da sam tučeno se unaprijed. 232 00:10:52,850 --> 00:10:54,955 I to se zove quote.php. 233 00:10:54,955 --> 00:10:56,740 I to je dostupan online. 234 00:10:56,740 --> 00:11:00,299 I obavijest da je prilično short-- ali to je naredbenog retka program A to je 235 00:11:00,299 --> 00:11:02,840 će pogledati cijene dionica za mene, što se zapravo događa 236 00:11:02,840 --> 00:11:04,230 biti tijesnoj do problema postaviti sedam. 237 00:11:04,230 --> 00:11:05,396 >> Tako ćemo vidjeti što radim. 238 00:11:05,396 --> 00:11:08,640 Na samom vrhu sam dobio otvorena zagrada upitnika PHP. 239 00:11:08,640 --> 00:11:13,372 Tada sam dobio ovu liniju, pri čemu sam zahtijeva datoteku pod nazivom functions.php-- 240 00:11:13,372 --> 00:11:15,080 ćemo vidjeti više o tome u malo, 241 00:11:15,080 --> 00:11:17,340 ali to je kao C-a verzija oštro su, 242 00:11:17,340 --> 00:11:19,090 gdje želite ići uključuju drugu datoteku. 243 00:11:19,090 --> 00:11:23,720 PHP naziva to zahtijevaju, iako to Također ima funkciju uključiti. 244 00:11:23,720 --> 00:11:26,861 I ispada da je function.php samo nešto što sam napisao prije nastave. 245 00:11:26,861 --> 00:11:29,860 Stavio sam ga u istom direktoriju, jer Htio sam da faktor neke šifru 246 00:11:29,860 --> 00:11:31,800 da možda želite koristiti negdje drugdje. 247 00:11:31,800 --> 00:11:34,560 >> U međuvremenu, možete vjerojatno zaključiti što se događa ovdje. 248 00:11:34,560 --> 00:11:39,200 Ovaj je malo drugačiji od C-- ali Što mislim pod osiguralo pravilno korištenje? 249 00:11:39,200 --> 00:11:41,180 Prevedi ovu više tehnički. 250 00:11:41,180 --> 00:11:45,950 Pod kojim uvjetima sam ja odvikavanje program ili izlaska? 251 00:11:45,950 --> 00:11:47,074 Da? 252 00:11:47,074 --> 00:11:47,990 >> PUBLIKA: Kad nemate Dva argumente naredbenog retka. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Malan: Kad nemam na argumente naredbenog retka. 254 00:11:49,480 --> 00:11:52,396 I zapamtite da je jedan od onih Argumenti je program ime sama. 255 00:11:52,396 --> 00:11:55,340 I drugi će biti druga riječ pišem nakon redak. 256 00:11:55,340 --> 00:11:57,460 Dakle, baš kao i C, taj je moj način provjere, 257 00:11:57,460 --> 00:12:00,022 je li korisnik suradnju i pokrenuti program kao što sam namjeravao? 258 00:12:00,022 --> 00:12:01,730 Sada, postoji nešto malo drugačiji 259 00:12:01,730 --> 00:12:04,020 s C-- prije svega smo imaju ovaj znak za dolar, 260 00:12:04,020 --> 00:12:07,710 a što se dolar prijaviti označavaju u PHP? 261 00:12:07,710 --> 00:12:08,440 Samo varijabla. 262 00:12:08,440 --> 00:12:11,731 To je all-- samo varijabla slijedi što god želite zapravo zovu. 263 00:12:11,731 --> 00:12:14,000 Obavijest postoji nešto nestalo iz mog PHP programa, 264 00:12:14,000 --> 00:12:18,210 baš kao što je nestalo prošli tjedan, u odnosu na C, što je ono? 265 00:12:18,210 --> 00:12:21,620 >> A vrste, ali i nešto drugo. 266 00:12:21,620 --> 00:12:26,409 Ne postoji nešto function-- glavnu funkciju. 267 00:12:26,409 --> 00:12:27,450 Nema glavna funkcija. 268 00:12:27,450 --> 00:12:29,680 Vi samo početi pisati Vaš broj bez 269 00:12:29,680 --> 00:12:32,790 brinuti o prilično proizvoljna Konvencija imenovanja neki propust 270 00:12:32,790 --> 00:12:33,880 Funkcija glavni. 271 00:12:33,880 --> 00:12:36,720 Dakle arg C je samo jako globalna varijabla 272 00:12:36,720 --> 00:12:39,049 koji tumača čini mi dostupni. 273 00:12:39,049 --> 00:12:40,090 Sada, ovo je zanimljivo. 274 00:12:40,090 --> 00:12:41,140 Pa pogledajte gore stvari. 275 00:12:41,140 --> 00:12:43,370 Dolar znak dionica je na lijevo, to je moj promjenjiva. 276 00:12:43,370 --> 00:12:45,120 Na desnoj strani, tu je očito 277 00:12:45,120 --> 00:12:50,270 funkcija u PHP zove lookup da Ja sam prolazeći moj zadnji komandne linije 278 00:12:50,270 --> 00:12:51,902 Argument to-- god ta riječ. 279 00:12:51,902 --> 00:12:53,610 I vidjet ćemo kako se to radi u ovom trenutku. 280 00:12:53,610 --> 00:12:55,380 >> I onda na kraju sam izvješćivanje cijenu. 281 00:12:55,380 --> 00:12:58,650 Ja sam jedan ispis Udio takav i takav. 282 00:12:58,650 --> 00:13:02,082 I zapamtite, ovo je Način na PHP-- način u PHP-- 283 00:13:02,082 --> 00:13:04,290 gdje ne morate učiniti dolar znak S više. 284 00:13:04,290 --> 00:13:06,782 Vi samo možete koristiti vitičastih zagrada i uključite se u neku varijablu. 285 00:13:06,782 --> 00:13:09,240 Vi ne morate brinuti o koristeći printf na isti način. 286 00:13:09,240 --> 00:13:13,530 >> I usput, kad ste stavili varijablu unutar dvostrukih navodnika kao što je ovaj, 287 00:13:13,530 --> 00:13:17,370 koristite fancy tehniku zove varijabla interpolacija. 288 00:13:17,370 --> 00:13:20,380 To samo znači priključiti varijablu ovdje. 289 00:13:20,380 --> 00:13:23,760 I usput, neki od vas koji dolaze od drugih programskih sredina, 290 00:13:23,760 --> 00:13:26,960 ne smijete koristiti jednostruke navodnike oko žice za to. 291 00:13:26,960 --> 00:13:30,290 Morate koristiti dvostruke navodnike za varijabla interpolacija raditi. 292 00:13:30,290 --> 00:13:32,740 Inače ćete doslovno vidjeti te vitičastih zagrada. 293 00:13:32,740 --> 00:13:34,500 >> Pa konačno, idemo naprijed i pokrenuti to. 294 00:13:34,500 --> 00:13:36,690 Dopustite mi da moj terminala malo veći. 295 00:13:36,690 --> 00:13:41,940 Dopustite mi ići naprijed i pokrenuti u mojoj citat imenik. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? citat?] PHP citat točka PHP, 297 00:13:46,950 --> 00:13:50,290 i ja ću tražiti nešto kao GOOG koji je njegov ticker simbol, 298 00:13:50,290 --> 00:13:55,510 i jedna dionica novim imenom, Abeceda Inc, košta 717 $, od danas. 299 00:13:55,510 --> 00:13:58,680 U redu, ako želimo pokrenuti ovo opet, tko 300 00:13:58,680 --> 00:14:02,600 još jedan burzovni žele gledati? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft je što mislim da je ova, MSFT-- 53 $. 302 00:14:06,770 --> 00:14:09,720 Mislim Yahoo je možda to. 303 00:14:09,720 --> 00:14:12,130 I Facebook je to. 304 00:14:12,130 --> 00:14:13,740 >> Dakle, što je ovaj program radi? 305 00:14:13,740 --> 00:14:16,306 Čarolija čini se da je ugrađen u toj funkciji pregledna. 306 00:14:16,306 --> 00:14:17,430 Tako ćemo uzeti brzo pogledati. 307 00:14:17,430 --> 00:14:21,815 >> Ispada da ne dolazi s PHP, to je u functions.php. 308 00:14:21,815 --> 00:14:23,690 I nećemo proći to vrlo detaljno, 309 00:14:23,690 --> 00:14:28,040 ali primijetiti operativna riječ ovdje da se na liniji šest od functions.php-- 310 00:14:28,040 --> 00:14:29,440 Doslovno sam reći funkciju. 311 00:14:29,440 --> 00:14:31,050 Ja navesti ime moje funkcije. 312 00:14:31,050 --> 00:14:34,330 I onda odrediti bilo argumenata, ili parametre, 313 00:14:34,330 --> 00:14:36,480 Želim da funkcija take-- ne vrste. 314 00:14:36,480 --> 00:14:37,580 A onda sam ga provesti. 315 00:14:37,580 --> 00:14:39,240 >> A ja ću mahati ruku na provedbu, 316 00:14:39,240 --> 00:14:42,115 budući da je prilično napredna pravu sada, ali ćemo ga vidjeti opet zapravo 317 00:14:42,115 --> 00:14:44,700 u tjedan dana u problemu postaviti sedam. 318 00:14:44,700 --> 00:14:47,490 Ali ja mogu očistiti ovo gore, također. 319 00:14:47,490 --> 00:14:49,590 Također sam uključen u današnji broj verzija 320 00:14:49,590 --> 00:14:52,340 citat koji nema točkica PHP datoteke. 321 00:14:52,340 --> 00:14:57,270 Jer ono što je vjerojatno Na Vrh programa pod nazivom samo citirati? 322 00:14:57,270 --> 00:15:00,140 To tzv shebang-- prilično zagonetan bajanje 323 00:15:00,140 --> 00:15:04,590 koja kaže naći PHP, a zatim pokrenuti ga na moj broj ovdje. 324 00:15:04,590 --> 00:15:07,360 >> U redu, tako da donosi nas tamo gdje smo stali 325 00:15:07,360 --> 00:15:09,560 Posljednji time-- iako s neki napredniji primjera. 326 00:15:09,560 --> 00:15:13,980 Bilo kakva pitanja do sada o tome PHP i što radimo? 327 00:15:13,980 --> 00:15:15,570 No-- redu. 328 00:15:15,570 --> 00:15:16,180 Da? 329 00:15:16,180 --> 00:15:19,610 >> PUBLIKA: Unutar HTML datoteke, napraviti you-- 330 00:15:19,610 --> 00:15:22,226 [? što učiniti?] [? samo ga nazvati?] A [nečujan] PHP datoteka? 331 00:15:22,226 --> 00:15:23,350 DAVID Malan: Dobro pitanje. 332 00:15:23,350 --> 00:15:26,070 U web kontekstu, što smo doslovno Prenijet se, 333 00:15:26,070 --> 00:15:28,028 ne koristiti tzv stvar na vrhu, 334 00:15:28,028 --> 00:15:31,980 jer web server-- često Program se zove Apache ili Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server ili bilo koji broj drugih web poslužiteljskog softvera, 336 00:15:37,470 --> 00:15:40,636 zna da kad vidi Točka PHP datoteke, kako to 337 00:15:40,636 --> 00:15:42,010 treba pokrenuti tumača na njemu. 338 00:15:42,010 --> 00:15:43,468 To ne izgleda na toj prvoj crti. 339 00:15:43,468 --> 00:15:45,580 Dakle, ove prve linije trik samo kada ste 340 00:15:45,580 --> 00:15:48,330 pisanje naredbenog retka programs-- što nećemo napraviti super često, 341 00:15:48,330 --> 00:15:52,510 ali to je naš način premošćivanja naši C primjeri sada naše PHP. 342 00:15:52,510 --> 00:16:00,680 >> Tako ćemo doista premostiti ovaj svijet iz naredbenog retka svijeta na webu 343 00:16:00,680 --> 00:16:02,230 na sljedeći način. 344 00:16:02,230 --> 00:16:05,090 Dopustite mi ići naprijed i nacrtati ovdje samo na trenutak. 345 00:16:05,090 --> 00:16:09,940 Dakle, ako imamo web poslužitelja, odnosno ako imamo moj laptop ovdje, 346 00:16:09,940 --> 00:16:11,280 što ću nacrtati ovako. 347 00:16:11,280 --> 00:16:14,250 A ovdje imamo Internet u nekom obliku. 348 00:16:14,250 --> 00:16:18,210 I onda ovdje imamo poslužitelj u building-- 349 00:16:18,210 --> 00:16:20,760 to je kako je internet works-- i ovdje 350 00:16:20,760 --> 00:16:23,120 je poslužitelj s nekim svjetlima možda. 351 00:16:23,120 --> 00:16:27,530 Što se zapravo događa između ove dvije veze? 352 00:16:27,530 --> 00:16:29,240 >> Dakle, u ovoj zgradi je web poslužitelj. 353 00:16:29,240 --> 00:16:31,420 To je samo računalo koji je pokrenut neki operativni 354 00:16:31,420 --> 00:16:34,561 system-- možda slobodan softver pod nazivom Apache, koji je pokrenut CS50 IDE. 355 00:16:34,561 --> 00:16:36,310 Dakle, možete zapravo mislim ove zgrade 356 00:16:36,310 --> 00:16:38,579 kao zgrada u koja je pohranjena CSt0 IDE. 357 00:16:38,579 --> 00:16:40,870 To je mjesto gdje svi imate računi, gdje vas sve 358 00:16:40,870 --> 00:16:43,130 imate vlastiti web poslužitelj trčanje, sve vas 359 00:16:43,130 --> 00:16:45,730 imaju svoje vlastite jedinstvene URL-ove, kao što smo počeli razgovarati, 360 00:16:45,730 --> 00:16:47,280 i vidjet ćete više u P. postaviti šest. 361 00:16:47,280 --> 00:16:49,450 >> Evo moj laptop negdje drugdje na internetu. 362 00:16:49,450 --> 00:16:54,550 I tako kad sam posjetite URL koji pripada mi, da se internetski promet ide 363 00:16:54,550 --> 00:16:58,360 do poslužitelja, poslužitelj je prima HTTP request-- 364 00:16:58,360 --> 00:17:02,900 poput dobili index.html i to je odgovaranje na tu web stranicu. 365 00:17:02,900 --> 00:17:04,280 Tako da je opća paradigma. 366 00:17:04,280 --> 00:17:07,089 Dok sve gore Do sada, danas sve 367 00:17:07,089 --> 00:17:09,660 se događa samo u granica ove zgrade. 368 00:17:09,660 --> 00:17:12,910 Sam bio koristeći moj laptop, ali Bio sam povezan s CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 tako da sve te programe sam bio trčanje je unutar tog poslužitelja, sama. 370 00:17:17,369 --> 00:17:22,660 >> Ali sada, krenimo ponovno korištenje PHP napisati neke stvarne programe koji 371 00:17:22,660 --> 00:17:24,230 poslužuju se u web poslužitelja. 372 00:17:24,230 --> 00:17:30,320 I to učiniti, ja ću otići u cijela hrpa primjera 373 00:17:30,320 --> 00:17:33,710 kako uvesti tu ideju ovdje. 374 00:17:33,710 --> 00:17:38,500 Dakle, ovo je vrsta fancy način opisuje programski paradigmu. 375 00:17:38,500 --> 00:17:41,540 >> A u stvari, kao što ste izašli CS50 ili rade na završnim projektima, 376 00:17:41,540 --> 00:17:43,520 ili uzeti neki prate na klasu, vi ćete početi 377 00:17:43,520 --> 00:17:45,740 vidjeti da je svijet- pogotovo nakon što je odrastao 378 00:17:45,740 --> 00:17:48,300 s jezicima kao što su C da su super niske level-- 379 00:17:48,300 --> 00:17:51,290 shvatiti da postoji i bolje načini pisanje softvera. 380 00:17:51,290 --> 00:17:53,290 Postoje određeni obrasce možete slijediti, 381 00:17:53,290 --> 00:17:57,640 određene načine organiziranja datoteka i načina imenovanja svoje funkcije, 382 00:17:57,640 --> 00:18:00,300 tako da ne duljimo, svijet je došao gore 383 00:18:00,300 --> 00:18:04,340 s cijelom gomilom akronima i nazivi za načinima programiranja. 384 00:18:04,340 --> 00:18:06,260 To su samo tehnike možete koristiti. 385 00:18:06,260 --> 00:18:09,660 >> A jedan od njih se zove MVC, Model View Controller za. 386 00:18:09,660 --> 00:18:12,270 A to je samo za Sada, pretjerano komplicirano 387 00:18:12,270 --> 00:18:18,960 način govoreći kako treba nokautirati PHP-based web stranice, u našem slučaju. 388 00:18:18,960 --> 00:18:22,140 Kako organizirati svoje datoteke, Kako ćete organizirati svoj logiku, 389 00:18:22,140 --> 00:18:26,220 na način koji olakšava pišu složenije web stranice? 390 00:18:26,220 --> 00:18:28,550 I doista, mi brzo ćete doći s p-set sedam. 391 00:18:28,550 --> 00:18:32,020 >> Tako je u svijetu MVC, idete vidjeti da je naš broj može se općenito 392 00:18:32,020 --> 00:18:38,290 okarakterizirati ili kao modela koda, ili kontroler broj, ili prikaz koda. 393 00:18:38,290 --> 00:18:40,200 I ja ću uprostiti ga kao follows-- 394 00:18:40,200 --> 00:18:42,074 kontrolor je mozak vašeg programa, 395 00:18:42,074 --> 00:18:44,100 To je mjesto gdje sve od Zanimljivo logika događa. 396 00:18:44,100 --> 00:18:46,110 Dakle, sve što smo bili pisanje do sada u razredu, 397 00:18:46,110 --> 00:18:48,210 je vrsta kao kontroler code-- to kontrolira 398 00:18:48,210 --> 00:18:50,585 vaš program, vaši petlje, vaš uvjetima, vaša funkcija 399 00:18:50,585 --> 00:18:52,100 i varijable i sve to. 400 00:18:52,100 --> 00:18:56,160 >> Pogledi, sada će biti malo očitiji u svijetu weba. 401 00:18:56,160 --> 00:18:59,360 Pogled je estetika Vaše web stranice. 402 00:18:59,360 --> 00:19:04,080 To je ono što korisnik sees-- slike, HTML tablice, HTML oznake, i svi 403 00:19:04,080 --> 00:19:08,220 toga, sve fluffy estetike stvari koje se ne da je teško pisati, 404 00:19:08,220 --> 00:19:11,380 ali je upravo ono što stvaraju, je tzv pogled, estetika. 405 00:19:11,380 --> 00:19:13,880 I model, u konačnici, ide da se baze podataka koje stuff-- 406 00:19:13,880 --> 00:19:16,510 ćemo početi ronjenje u sve više srijedu. 407 00:19:16,510 --> 00:19:19,740 Dakle kontroler je logika, Pogled je estetski stvari, 408 00:19:19,740 --> 00:19:23,500 i model će biti gdje pohranjujemo naše stvarne podatke. 409 00:19:23,500 --> 00:19:26,410 >> Pa pogledajmo ovo konkretnije slijedećim primjerom. 410 00:19:26,410 --> 00:19:34,700 Ja ću ići u moj direktorij ovdje današnji izvora code-- sve što 411 00:19:34,700 --> 00:19:35,770 je dostupan online. 412 00:19:35,770 --> 00:19:37,800 I ja ću ići u verziji nula. 413 00:19:37,800 --> 00:19:41,500 I ovdje is-- budimo pozivu Verzija nula od CS50 web stranice. 414 00:19:41,500 --> 00:19:43,010 Nema puno ovdje na sve. 415 00:19:43,010 --> 00:19:46,810 To je vrlo jednostavna web stranica koja je Vjerojatno koristeći ono HTML tags-- jednostavno 416 00:19:46,810 --> 00:19:48,970 valjda iz prošlih primjera? 417 00:19:48,970 --> 00:19:49,890 >> Što je to? 418 00:19:49,890 --> 00:19:53,920 H1-- vjerojatno da je velika bold naslov, da se logo vrhu, CS50. 419 00:19:53,920 --> 00:19:55,080 I što je još u igri? 420 00:19:55,080 --> 00:19:55,799 Da? 421 00:19:55,799 --> 00:19:56,840 PUBLIKA: neuređen popis. 422 00:19:56,840 --> 00:19:59,990 DAVID Malan: neuređen list-- tako UL oznaka i možda par LI oznaka. 423 00:19:59,990 --> 00:20:01,840 A ako se ne sjećate tih, to iskreno ne smeta. 424 00:20:01,840 --> 00:20:04,170 To su pahuljasto vrsta detalji provedbe HTML 425 00:20:04,170 --> 00:20:06,378 da se brzo pogledati a vi ste se vratili na putu. 426 00:20:06,378 --> 00:20:10,040 Mi ćemo se više usredotočiti na programiranje ideje koje su sočnije komada. 427 00:20:10,040 --> 00:20:12,890 >> Tako ćemo samo uzeti brzo pogledajte HTML-- i doista 428 00:20:12,890 --> 00:20:16,880 ako sam otvoriti izvor pogled ovdje, yup, To je upravo ono što se ovdje događa. 429 00:20:16,880 --> 00:20:18,440 Postoji UL oznaka. 430 00:20:18,440 --> 00:20:20,630 Ugniježđena unutar koje je LI oznaka. 431 00:20:20,630 --> 00:20:24,470 A onda sam posudio URL stvarne nastavnog plana i programa ovdje. 432 00:20:24,470 --> 00:20:27,570 >> A onda se u lectures.php je očito 433 00:20:27,570 --> 00:20:31,640 drugi dinamički generirane stranice koje će imati, neka je see-- ah, 434 00:20:31,640 --> 00:20:33,170 prva dva tjedna predavanja. 435 00:20:33,170 --> 00:20:36,600 Dakle, tjedan nula i jedan tjedan, neka je pogledajte this-- ako sam vidjeti izvorni kod stranice, 436 00:20:36,600 --> 00:20:38,120 i super jednostavno. 437 00:20:38,120 --> 00:20:42,430 Oni su vodeći na dvije stranice zove week0.php i week1.php. 438 00:20:42,430 --> 00:20:44,040 Dakle, razmislite sada što se događa. 439 00:20:44,040 --> 00:20:50,630 >> Kad sam kliknite na week0.php, moj laptop čini zahtjev za week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Web poslužitelja, a.k.a., CS50 IDE, prima taj virtualni omotnicu. 442 00:20:58,110 --> 00:21:01,040 To je viđenje poruku kao, dobili week0.php. 443 00:21:01,040 --> 00:21:05,060 Zatim je tumačenje datoteku, vrh do dna, s lijeva na redu-datoteku 444 00:21:05,060 --> 00:21:07,720 zove week0.php-- i pljuvanje iz rezultate. 445 00:21:07,720 --> 00:21:10,510 Dakle unutar ove datoteke, week0.php, mora biti 446 00:21:10,510 --> 00:21:15,410 logika kontroler koji se generira to HTML, a mi ćemo uskoro vidjeti. 447 00:21:15,410 --> 00:21:19,340 >> Ali za sada, dopustite mi da kliknite na tjedan nula, a sada imamo srijedom i petkom, 448 00:21:19,340 --> 00:21:25,260 a sada imamo slajdova polako od tjedan nula. 449 00:21:25,260 --> 00:21:27,400 A možda sjetiti ovo od put natrag kada. 450 00:21:27,400 --> 00:21:29,340 Tako da je sve ove web stranice radi. 451 00:21:29,340 --> 00:21:31,120 >> Tako ćemo razmotriti kako se to radi. 452 00:21:31,120 --> 00:21:34,290 Ja ću ići natrag u izvorni kod ovdje, u CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 i ja ću otvoriti index.php. 454 00:21:36,660 --> 00:21:38,910 Na vrhu ove datoteke je hrpa komentara. 455 00:21:38,910 --> 00:21:43,000 A onda je u sredini ove datoteke ga, Ispada, ne PHP kod god. 456 00:21:43,000 --> 00:21:47,380 Jer ako ne imati bilo koji od otvorena zagrada upitnik PHP oznake, 457 00:21:47,380 --> 00:21:49,180 slobodno možete samo staviti HTML. 458 00:21:49,180 --> 00:21:51,480 >> Jer ono što je PHP Tumač je trebao učiniti, 459 00:21:51,480 --> 00:21:53,938 kada se čita ovaj file-- od vrha do dna, s lijeva na redu- 460 00:21:53,938 --> 00:21:59,100 samo interpretira kôd to vidi između one kutne zagrade upitnik. 461 00:21:59,100 --> 00:22:02,380 I još nešto da ne prepoznaju kao PHP, to samo pljuje. 462 00:22:02,380 --> 00:22:05,080 I HTML je među stvarima to će samo ispljunuti. 463 00:22:05,080 --> 00:22:09,090 >> Dakle, ova datoteka može imati pozvani index.html, 464 00:22:09,090 --> 00:22:11,690 ali ja sam imenovanja sve točka PHP kao koračni kamena. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- slično underwhelming, to je samo neki HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, sličan samo su neke HTML. 467 00:22:19,840 --> 00:22:22,300 >> No, sada ćemo staviti na poslovična inženjering šešir, 468 00:22:22,300 --> 00:22:24,400 i razmotriti kako možemo poboljšati ovo. 469 00:22:24,400 --> 00:22:28,541 To nije teško učiniti, ali ja vrsta od devolved u kopirati i zalijepiti. 470 00:22:28,541 --> 00:22:31,540 A u stvari, ako bi dva tjedna, što Znaš što ja vjerojatno ću učiniti? 471 00:22:31,540 --> 00:22:34,940 Ja ću ići na week1.php, ja sam će istaknuti sve. 472 00:22:34,940 --> 00:22:39,110 Idem ga kopirati, zalijepiti u novu datoteku pod nazivom week2.php, 473 00:22:39,110 --> 00:22:42,440 ugađanje neke URL-ove, i biti na putu. 474 00:22:42,440 --> 00:22:45,240 >> Dakle, na temelju onoga što smo vidjeti u C već, 475 00:22:45,240 --> 00:22:46,860 to ne čini u redu, nadam se. 476 00:22:46,860 --> 00:22:49,610 Kopiraj, Zalijepi rijetko pravo rješenje. 477 00:22:49,610 --> 00:22:51,429 Dakle, što možemo početi učiniti kako bi poboljšali ovo? 478 00:22:51,429 --> 00:22:53,345 Gdje su prilike za bolji dizajn? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Kad sam doći do tjedan osam, što se događa 481 00:22:58,760 --> 00:23:00,910 biti jako neugodno ako želim promijeniti 482 00:23:00,910 --> 00:23:03,930 font svakog od moja stranica, ili ako želim 483 00:23:03,930 --> 00:23:06,522 mijenjati strukturu izgleda. 484 00:23:06,522 --> 00:23:08,396 Dakle, gdje je prilika za bolji dizajn? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Pa, neka je uzeti u obzir što je zajednička u svim tim datotekama. 487 00:23:15,160 --> 00:23:21,696 >> Evo jedan tjedan, evo tjedan nula, evo lectures.php, 488 00:23:21,696 --> 00:23:25,790 evo index.php-- što je isti i Ono što je drugačije, grubo rečeno, 489 00:23:25,790 --> 00:23:26,760 u svakoj od tih datoteka? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Da? 492 00:23:32,060 --> 00:23:34,560 >> PUBLIKA: [nečujan] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Malan: U redu, dobro. 495 00:23:42,160 --> 00:23:46,115 Dakle, postoji uzorak, sigurno, pri čemu svaki put biram predavanje I, 496 00:23:46,115 --> 00:23:48,250 Trebao bih biti generiranje vrlo slično izgleda stranica. 497 00:23:48,250 --> 00:23:50,375 I tako možda mogu utjecati činjenica da zapravo, 498 00:23:50,375 --> 00:23:53,060 namjerno smo brojčano indeksiraju našu lectures-- 499 00:23:53,060 --> 00:23:55,290 ako ja mogu staviti još riječi u svoj odgovor. 500 00:23:55,290 --> 00:23:59,984 I što je jedina stvar, zapravo, što se mijenja između tjednu one-- 501 00:23:59,984 --> 00:24:02,400 i neka mi se pomaknite prema dolje, tako da je otprilike u istom mjesto-- 502 00:24:02,400 --> 00:24:05,480 pa ovdje je tjedan nula, otprilike na vrhu. 503 00:24:05,480 --> 00:24:12,370 Ovdje je tjedan jedan, tjedan nula, jedan tjedan, tjedan nula. 504 00:24:12,370 --> 00:24:14,370 U redu, doslovno ako znate nema programa god, 505 00:24:14,370 --> 00:24:16,286 to je sada baš kao i uzorak podudaranje igra. 506 00:24:16,286 --> 00:24:17,200 Dakle, što je drugačije? 507 00:24:17,200 --> 00:24:18,765 Da? 508 00:24:18,765 --> 00:24:19,777 >> PUBLIKA: [nečujan] 509 00:24:19,777 --> 00:24:22,360 DAVID Malan: Dobro, tako da naslov mijenja, uvijek je tako malo. 510 00:24:22,360 --> 00:24:24,010 Nula će, naravno, na jedan. 511 00:24:24,010 --> 00:24:25,570 Ista stvar se događa u H1 tag. 512 00:24:25,570 --> 00:24:28,790 A mi ne sasvim vidjeti kako se lako, jer su URL-ovi su malo dugo. 513 00:24:28,790 --> 00:24:30,670 No, one su URL-ovi malo mijenja. 514 00:24:30,670 --> 00:24:34,490 >> No, ono što se ne mijenja je, usudio bih kažu, većina sadržaja page-- 515 00:24:34,490 --> 00:24:38,530 HTML tag je isti, je glava isti, naslov je gotovo isti, 516 00:24:38,530 --> 00:24:40,659 tijelo je isti, i gotovo sve ostalo 517 00:24:40,659 --> 00:24:42,450 je isti, osim za one malo ugađanje. 518 00:24:42,450 --> 00:24:45,310 Pa kako možemo ići o faktoring neke ovo? 519 00:24:45,310 --> 00:24:48,740 >> Pa neka mi predloži točno da se u sljedećoj verziji. 520 00:24:48,740 --> 00:24:53,890 Dakle, ovdje u verziji jednom, imam točan Ista slika, plus nekoliko drugih. 521 00:24:53,890 --> 00:24:59,730 Evo index.php-- pa čak i ako nikada nisam vidio PHP prije, 522 00:24:59,730 --> 00:25:05,511 ono što sam ja vjerojatno radi riješiti ovaj problem-- na temelju onoga što vidite ovdje? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Da, da blagi opredjeljenje? 525 00:25:12,760 --> 00:25:13,450 Ne? 526 00:25:13,450 --> 00:25:16,020 Da, ići dalje. 527 00:25:16,020 --> 00:25:17,380 >> PUBLIKA: [nečujan] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Malan: Aha. 529 00:25:18,380 --> 00:25:20,380 >> PUBLIKA: [nečujan] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Malan: trebam se govorim samo malo glasnije. 532 00:25:28,669 --> 00:25:31,084 >> PUBLIKA: [nečujan] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Malan: U redu, dobro. 535 00:25:36,660 --> 00:25:38,620 I ja think-- bilo je teško you-- ali čujem 536 00:25:38,620 --> 00:25:42,690 mislim što ste uzimajući u da oznake koje su bile uobičajene do vrha, 537 00:25:42,690 --> 00:25:47,710 i oznake koje su bile uobičajene na Dno, sada su factored out, 538 00:25:47,710 --> 00:25:51,140 ili degradirani što datoteke? 539 00:25:51,140 --> 00:25:53,476 Header.php i footer.php-- i idemo 540 00:25:53,476 --> 00:25:55,600 napraviti neke tweaks na obratiti vam brigu samo 541 00:25:55,600 --> 00:25:59,370 podigao o brojevima zamjene, Primjerice, ako sam te dobro čula. 542 00:25:59,370 --> 00:26:02,060 >> Ali to čini se da je suština. 543 00:26:02,060 --> 00:26:04,820 Ako postoji ogromna količina zalihost na vrhu stranice, 544 00:26:04,820 --> 00:26:06,736 i ogromna količina redundancije na dnu, 545 00:26:06,736 --> 00:26:09,280 neka je doslovno samo vrhunac i izrezati taj sadržaj van, 546 00:26:09,280 --> 00:26:13,270 stavite ga u zasebnu file-- baš kao ideja CSS, gdje smo factored out 547 00:26:13,270 --> 00:26:16,710 vrlo slične estetike, staviti je u odvojenom dot PHP datoteku, 548 00:26:16,710 --> 00:26:20,340 koristiti zahtijevaju mechanism-- koji je kao cis include-- koji 549 00:26:20,340 --> 00:26:23,570 je u biti kao što je rekao ide zgrabite sadržaj header.php, 550 00:26:23,570 --> 00:26:25,370 i kopirajte i zalijepite ih ovdje. 551 00:26:25,370 --> 00:26:29,490 >> Ali što to znači da je sada u index.php, imam te dvije linije. 552 00:26:29,490 --> 00:26:32,130 U lectures.php, ja također ima te dvije linije. 553 00:26:32,130 --> 00:26:35,230 U week0.php, ja također ima te dvije linije. 554 00:26:35,230 --> 00:26:38,380 >> Pa sad, ako želim promijeniti naslov sve moje stranice, 555 00:26:38,380 --> 00:26:40,530 ili želim promjenu Temeljna struktura, 556 00:26:40,530 --> 00:26:44,380 Mogu ga promijeniti sada u samo jednom mjestu, ili dva places-- zaglavlja i podnožja, 557 00:26:44,380 --> 00:26:45,429 respektivno. 558 00:26:45,429 --> 00:26:47,970 Sada koda je polazna gledati malo više zagonetan, zar ne? 559 00:26:47,970 --> 00:26:53,590 Ali ako mislite o tome što je stranica je doing-- ako sam traži week0.php, 560 00:26:53,590 --> 00:26:59,880 kao i na izradi više here-- kada se traži week0.php, 561 00:26:59,880 --> 00:27:00,960 što to znači? 562 00:27:00,960 --> 00:27:04,410 >> Doslovno, ova datoteka je zatraži pregledniku. 563 00:27:04,410 --> 00:27:06,240 Webu server-- a.k.a. 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- zgrabi to datoteka, week0.php i čita 565 00:27:09,250 --> 00:27:10,780 je od vrha do dna, s lijeva na desno. 566 00:27:10,780 --> 00:27:15,400 On line jednom, odmah nailazi otvorena zagrada upitnik PHP, zahtijevaju 567 00:27:15,400 --> 00:27:17,872 zaglavlje točka PHP, i tako što je PHP tumač 568 00:27:17,872 --> 00:27:20,580 does-- koji je izgrađen u web poslužitelja, jer smo unaprijed konfiguriran 569 00:27:20,580 --> 00:27:24,580 je za you-- automatski ide u header.php, kopira sadržaj, 570 00:27:24,580 --> 00:27:25,640 ih lijepi ovdje. 571 00:27:25,640 --> 00:27:28,790 >> Ali onda tumač susreti upitnik blizu zagrada, 572 00:27:28,790 --> 00:27:30,320 tako da je sve to radi razmišljanja. 573 00:27:30,320 --> 00:27:33,400 Sada je samo slijepo pljuje iz linije dvije do sedam godina, 574 00:27:33,400 --> 00:27:35,240 jer to je samo sirovi HTML. 575 00:27:35,240 --> 00:27:38,470 Dobiva se postroje osam, a ne da Isto magija again-- otvaranja datoteke, 576 00:27:38,470 --> 00:27:41,460 grabbing sadržaj i ih zahtijevaju ili ih zalijepiti 577 00:27:41,460 --> 00:27:42,480 pravo zatim i tamo. 578 00:27:42,480 --> 00:27:44,210 >> Ali ja sam samo aludirao na bug. 579 00:27:44,210 --> 00:27:48,610 Ovo je djelomičan korak unatrag, jer ako ćemo gledati u header.php, 580 00:27:48,610 --> 00:27:50,850 Ja sam vrsta izrezati ugla. 581 00:27:50,850 --> 00:27:56,250 Ono što je značajka sam odustati kako da dobije ovu uvjerljivu bolji dizajn? 582 00:27:56,250 --> 00:27:57,305 Da? 583 00:27:57,305 --> 00:27:58,180 PUBLIKA: [nečujan] 584 00:27:58,180 --> 00:28:00,570 DAVID Malan: Da, ja vrsta od izrezati Netrivijalno kutak. 585 00:28:00,570 --> 00:28:04,489 Vi istaknuo da ono što se mijenja bio je naslov, broj u naslovu, 586 00:28:04,489 --> 00:28:05,530 a broj u H1. 587 00:28:05,530 --> 00:28:08,170 Dakle, moje rješenje je, u redu, neka je samo preimenovati stranicu, 588 00:28:08,170 --> 00:28:10,080 a ne nositi s tim Problem god. 589 00:28:10,080 --> 00:28:12,130 Dakle, to je djelomična korak unatrag za sigurno. 590 00:28:12,130 --> 00:28:14,300 >> No, ono što je napomenuti ovdje je da je ono što sam učinio 591 00:28:14,300 --> 00:28:17,200 je inače factored sve zajedničke stvari. 592 00:28:17,200 --> 00:28:21,520 A u footer.php, primijetiti sam factored iz svega toga, premda manje, 593 00:28:21,520 --> 00:28:22,790 uobičajena stvar. 594 00:28:22,790 --> 00:28:26,070 Dakle, moram nekako sada moći uzeti još jedan korak naprijed, i popraviti 595 00:28:26,070 --> 00:28:27,160 tu titulu pitanja. 596 00:28:27,160 --> 00:28:28,180 Tako ćemo učiniti. 597 00:28:28,180 --> 00:28:35,060 >> Pusti me u mojoj drugoj verziji ovdje, što, opet, ima iste datoteke 598 00:28:35,060 --> 00:28:36,825 osim jednog novog toga. 599 00:28:36,825 --> 00:28:38,950 I to je malo više preopširan, ali neka je vidjeti ako mi 600 00:28:38,950 --> 00:28:40,550 može zafrkavati osim što se ovdje događa. 601 00:28:40,550 --> 00:28:45,370 Dakle, umjesto da zahtijevaju header.php i footer.php, 602 00:28:45,370 --> 00:28:50,180 Čini mi se da se samo zahtijevaju jednu file-- zove, naravno, helpers.php. 603 00:28:50,180 --> 00:28:52,560 I neka mi propisuje sada, ono što je unutar helpers.php 604 00:28:52,560 --> 00:28:55,330 je samo hrpa funkcija to sam napisao, baš kao i prije. 605 00:28:55,330 --> 00:28:57,550 Ali ja to nazvao helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Sada je očito, u crta tri i 10, ja sam 607 00:29:00,370 --> 00:29:02,840 nazivajući dva functions-- uzvratiti udarac glavom donijeti podnožje. 608 00:29:02,840 --> 00:29:05,040 Oni ne dolaze s PHP, napisao sam one sebe. 609 00:29:05,040 --> 00:29:07,880 I ja sam ih stavio u helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Sada, možemo samo vidio ovu sintaksu jednom, i to je super kratak. 611 00:29:11,210 --> 00:29:15,330 Ali to je očito argument pružiti zaglavlje, funkciju. 612 00:29:15,330 --> 00:29:16,450 Zašto znam da? 613 00:29:16,450 --> 00:29:18,522 Pa ovdje je blizak zagrada, Ovdje je otvorena zagrada. 614 00:29:18,522 --> 00:29:21,230 I naravno, baš kao u C, nešto između tih zagrada 615 00:29:21,230 --> 00:29:23,350 je input-- ili Argument u funkciji. 616 00:29:23,350 --> 00:29:26,710 >> Koji je tip podataka ovog argumenta, na temelju onoga što sam istaknuo? 617 00:29:26,710 --> 00:29:30,820 Što ti četvornih zagrade pokazuju, na temelju prošlog tjedna? 618 00:29:30,820 --> 00:29:33,390 Da, to je array-- posebno asocijativne niz. 619 00:29:33,390 --> 00:29:35,700 I to sintaksa doduše je malo funky, 620 00:29:35,700 --> 00:29:38,860 ali to je samo prolazi u jednom ključnom vrijednosti par. 621 00:29:38,860 --> 00:29:43,530 Ključ je, citiram citat naslov, a vrijednost je CS50. 622 00:29:43,530 --> 00:29:46,220 >> Ako je to učinio u C, to bi moglo umjesto 623 00:29:46,220 --> 00:29:49,400 izgledaju ovako, Samo citat citat CS50-- 624 00:29:49,400 --> 00:29:52,460 ili zapravo bilo bi kovrčava aparatić, ili nešto slično u C, 625 00:29:52,460 --> 00:29:55,580 gdje je ključ je nula, a vrijednost je CS50. 626 00:29:55,580 --> 00:29:59,840 Ali opet, u PHP-u, iako je sintaksa je, opet, malo čudno, 627 00:29:59,840 --> 00:30:02,860 što vam omogućuje da prođe u Riječi umjesto brojeva 628 00:30:02,860 --> 00:30:05,120 povezati tipke sa vrijednostima. 629 00:30:05,120 --> 00:30:06,390 >> Pa što to sve znači? 630 00:30:06,390 --> 00:30:09,750 Ako odem u helpers.php, Pogledajmo ove funkcije. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, a renderHeader je moja funkcija, 632 00:30:13,620 --> 00:30:16,220 i znam da je, jer vidim funkcija ključna riječ ovdje. 633 00:30:16,220 --> 00:30:19,450 Ovo je nova da ga C-- očito Potrebno argument zove data-- 634 00:30:19,450 --> 00:30:22,400 ali mogao sam nazvao ništa, ali sam nazvao ga podataka, 635 00:30:22,400 --> 00:30:25,090 samo da se malo clean-- i samo uzeti pogodak, pogotovo 636 00:30:25,090 --> 00:30:28,173 Ako ste programirali u nekom drugom viša razina jezika prije, nešto 637 00:30:28,173 --> 00:30:29,820 iznad C, konceptualno. 638 00:30:29,820 --> 00:30:33,820 >> Što jednak otvoren nosač uglata zagrada vjerojatno znači? 639 00:30:33,820 --> 00:30:35,540 Ili što bi to značilo? 640 00:30:35,540 --> 00:30:39,660 Nismo vidjeli u C. Da? 641 00:30:39,660 --> 00:30:40,480 >> Prazan niz. 642 00:30:40,480 --> 00:30:45,440 Konkretno, to znači da ako korisnik ne zovu renderHeader 643 00:30:45,440 --> 00:30:49,340 s argumentom, ja još uvijek idem da imaju argument zove podataka, 644 00:30:49,340 --> 00:30:52,327 ali njegova Zadana vrijednost je će biti prazan niz. 645 00:30:52,327 --> 00:30:53,660 Dakle, to je samo lijepo praktičnost. 646 00:30:53,660 --> 00:30:56,493 Ja ne moram vikati na korisnika, ili reći da koriste moje djelovanje u krivu. 647 00:30:56,493 --> 00:30:59,849 Ja samo mogu dati korisniku propust vrijednost, ako sam ne osobito stalo. 648 00:30:59,849 --> 00:31:01,890 Sada je ova funkcija, ja sam će val ruke na. 649 00:31:01,890 --> 00:31:07,620 Ali to ekstrakt funkcija omogućuje nas da prođe tih varijabli u podacima 650 00:31:07,620 --> 00:31:10,360 u header.php na sljedeći način. 651 00:31:10,360 --> 00:31:13,100 I ovo je zadnji komad, Mislim, funky sintakse. 652 00:31:13,100 --> 00:31:15,860 Ovdje je moja nova verzija ga header.php-- 653 00:31:15,860 --> 00:31:20,140 koristi za reći, doslovno, otvorena Naslov nosač CS50, i to je bilo to. 654 00:31:20,140 --> 00:31:21,766 I ista stvar za H1. 655 00:31:21,766 --> 00:31:24,310 >> Sada je očito govori nešto lijepo funky. 656 00:31:24,310 --> 00:31:28,030 I neka mi pojednostaviti ovaj na trenutak kako slijedi. 657 00:31:28,030 --> 00:31:31,020 To je ono što sam promijenila moj naslov da bude. 658 00:31:31,020 --> 00:31:35,140 Međutim, to je sve malo ružno stalno otvorene zagrade s PHP, 659 00:31:35,140 --> 00:31:36,610 a zatim koristite funkciju ispisa. 660 00:31:36,610 --> 00:31:40,810 Ispada da PHP ima stenogram zapis za to, što je samo 661 00:31:40,810 --> 00:31:45,050 znak jednakosti, što je tehnički funkcija zove odjek umjesto ispisa, 662 00:31:45,050 --> 00:31:46,800 ali to je ista stvar, učinkovito. 663 00:31:46,800 --> 00:31:48,440 >> To samo izgleda bolje. 664 00:31:48,440 --> 00:31:50,510 To je samo sintaktička šećera, ako će, 665 00:31:50,510 --> 00:31:52,260 što čini moj broj izgleda malo bolje. 666 00:31:52,260 --> 00:31:54,010 No, ispostavilo se, i vidjet ćemo ovo opet 667 00:31:54,010 --> 00:31:57,420 prije dugo, moramo zvati dosadno dugo funkcija zove 668 00:31:57,420 --> 00:32:00,582 HTML posebnih znakova u PHP, jer ispada 669 00:32:00,582 --> 00:32:02,790 postoje određene ulazi da korisnik može nam dati, 670 00:32:02,790 --> 00:32:05,160 ili da korisnici mogu nam dati, koji će slomiti našu stranicu. 671 00:32:05,160 --> 00:32:07,035 No, vidjet ćemo da je sljedeća tjedan JavaScript. 672 00:32:07,035 --> 00:32:10,740 No, za sada, samo znam da Ova datoteka, headers.php, jednostavno 673 00:32:10,740 --> 00:32:13,040 uzima naslov koji Prošao sam u, to bi 674 00:32:13,040 --> 00:32:17,380 Sigurno je sigurno da se ubrizgava u mrežu stranica, a to ga ispljune kao moj naslov 675 00:32:17,380 --> 00:32:18,640 i kao moj H1. 676 00:32:18,640 --> 00:32:24,440 Dakle, ako idem u ovu verziju sada, obavijest da predavanja ima svoj naslov natrag, 677 00:32:24,440 --> 00:32:28,630 tjedan nula ima svoj naslov natrag, i Doista, HTML sam generira 678 00:32:28,630 --> 00:32:32,110 identičan je ono što je moj prvi verziji was-- osim moje razmakom, 679 00:32:32,110 --> 00:32:35,150 jer sam počeo formatiranja moj broj je malo drugačije. 680 00:32:35,150 --> 00:32:38,082 Ali sam ostvarila sve kod mi je stalo. 681 00:32:38,082 --> 00:32:39,790 Pa neka mi pauzu za samo trenutak i vidjeti 682 00:32:39,790 --> 00:32:42,200 ako postoji bilo kakva pitanja ili zbunjenost sam stvorio. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 U redu, pa neka je twist malo teže ovdje 685 00:32:48,150 --> 00:32:51,500 da li postoji prilika za poboljšanje. 686 00:32:51,500 --> 00:32:56,130 Helpers.php također imao ovo funkcija, nazvao renderFooter. 687 00:32:56,130 --> 00:32:59,652 A što je značajan o renderHeader i renderFooter? 688 00:32:59,652 --> 00:33:02,610 I opet, za današnje potrebe, znaju da ekstrakt funkcija je samo 689 00:33:02,610 --> 00:33:08,280 moj način donošenja argumenata u header.php i footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Žao nam je? 692 00:33:11,780 --> 00:33:13,056 >> PUBLIKA: [nečujan] 693 00:33:13,056 --> 00:33:15,180 DAVID Malan: Da, samo ja promijeni zahtijevaju linija. 694 00:33:15,180 --> 00:33:19,410 Dakle doslovno, ja sam počinio grijeh od kopiranja i lijepljenja, opet. 695 00:33:19,410 --> 00:33:21,920 To nije veliki broj linija, ali dolaze on-- 696 00:33:21,920 --> 00:33:25,220 ako sam kopirati i zalijepiti sve Samo mijenjati jednu malu riječ, 697 00:33:25,220 --> 00:33:28,610 i jedna mala riječ koja ističe Alan out je podnožje ovdje, u usporedbi zaglavlja ovdje. 698 00:33:28,610 --> 00:33:30,670 Inače, sve je identična, osim, 699 00:33:30,670 --> 00:33:32,180 Naravno, imena funkcija je. 700 00:33:32,180 --> 00:33:33,690 Dakle, ono što možemo učiniti bolje? 701 00:33:33,690 --> 00:33:39,810 >> Pa neka mi otvoriti ovu verziju Ovdje, pri čemu je u helpers.php, 702 00:33:39,810 --> 00:33:42,300 zašto ne bih jednostavno dobiti malo pametnije o tome? 703 00:33:42,300 --> 00:33:46,410 Napišite nešto složeniji broj, ali ga zovu donijeti? 704 00:33:46,410 --> 00:33:48,470 Pa što sam iz temelja promijenio? 705 00:33:48,470 --> 00:33:51,770 >> Potrebno argument now-- dva argumenta, podaci i dalje. 706 00:33:51,770 --> 00:33:54,444 I što onda je prvi Ime vjerojatno se koristi za, 707 00:33:54,444 --> 00:33:55,860 na temelju onoga što čitate ovdje? 708 00:33:55,860 --> 00:33:58,452 Čak i ako neki od sintakse je još uvijek novi. 709 00:33:58,452 --> 00:33:59,660 Što je dolar znak predložak? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Žao nam je? 712 00:34:03,016 --> 00:34:03,710 >> PUBLIKA: zaglavlje ili podnožje. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Malan: zaglavlje ili podnožje. 714 00:34:04,510 --> 00:34:07,134 Dakle očito, odlučio sam da ako jedina stvar koja se mijenja 715 00:34:07,134 --> 00:34:10,159 je ono što ja želim predložak da print-- i predloška 716 00:34:10,159 --> 00:34:13,100 Mislim ovo je nacrt za kod koje želim izlaz, 717 00:34:13,100 --> 00:34:16,350 ali želim da se spojite na neki values-- pa ako je samo zaglavlje 718 00:34:16,350 --> 00:34:20,440 ili podnožja, zašto ne bih parametriranje to i nazvati argument znak za dolar 719 00:34:20,440 --> 00:34:21,409 predložak? 720 00:34:21,409 --> 00:34:26,250 A onda je to funky sintaksa mi omogućuje stvoriti put u varijablu ovdje. 721 00:34:26,250 --> 00:34:28,030 >> Dakle, dolar znak put je varijabla. 722 00:34:28,030 --> 00:34:31,120 Što to sintaksu ne, ako ste upoznati? 723 00:34:31,120 --> 00:34:32,512 Da? 724 00:34:32,512 --> 00:34:34,065 >> PUBLIKA: [nečujan] 725 00:34:34,065 --> 00:34:34,940 DAVID Malan: Točno. 726 00:34:34,940 --> 00:34:37,600 Ako predložak, citat citat, zaglavlja, ili ako je predložak, 727 00:34:37,600 --> 00:34:41,170 citat citat, fusnote, koja crta postoji koje sam istaknuo, linija osam, 728 00:34:41,170 --> 00:34:46,330 jednostavno uzimajući to ime, kao što su zaglavlja, i nadovezivanjem s dot PHP. 729 00:34:46,330 --> 00:34:49,750 Dakle, mi nismo imali taj operator u C. Ova točka je operator 730 00:34:49,750 --> 00:34:54,520 nevjerojatna stvar u PHP-- ako ste upoznati s JavaScript ili Java, 731 00:34:54,520 --> 00:34:56,949 možete koristiti plus potpisati učiniti ulančavanje. 732 00:34:56,949 --> 00:34:59,974 >> U C, to je bol u neck-- i ja sam tako žao, u p-set šest, 733 00:34:59,974 --> 00:35:02,390 ti si idući u morati učiniti this-- to je bol u vratu 734 00:35:02,390 --> 00:35:03,930 da spojite žice. 735 00:35:03,930 --> 00:35:04,670 Zašto? 736 00:35:04,670 --> 00:35:06,580 Pa, jer ako imaš niz koji je ovo dugo, 737 00:35:06,580 --> 00:35:09,538 i još niz koji je ovo dugo, ne možete samo ih uključite zajedno. 738 00:35:09,538 --> 00:35:11,070 Što umjesto toga morate učiniti u C? 739 00:35:11,070 --> 00:35:11,680 Da? 740 00:35:11,680 --> 00:35:12,380 >> PUBLIKA: [nečujan] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Malan: Morate malloc memorije, ili koristiti niz na stog. 742 00:35:15,090 --> 00:35:17,214 A ti zapravo morati učiniti da niz dovoljno velik 743 00:35:17,214 --> 00:35:20,940 da stane to plus to, plus backslash nula. 744 00:35:20,940 --> 00:35:24,994 Zatim ih spojite zajedno pomoću promiješati mačku ili ručno for petlje, 745 00:35:24,994 --> 00:35:26,160 ili bilo koji broj tehnika. 746 00:35:26,160 --> 00:35:27,760 A mi vam pokazati par u p-set šest. 747 00:35:27,760 --> 00:35:29,080 >> To je bol u vratu. 748 00:35:29,080 --> 00:35:34,190 I to je uistinu ono što mislim o tome ovaj odnosu this-- poput C u odnosu na PHP. 749 00:35:34,190 --> 00:35:36,870 Vi samo dobiti puno više funkcionalnost besplatno, 750 00:35:36,870 --> 00:35:39,030 tako da se možete usredotočiti, idealno, na zabavu 751 00:35:39,030 --> 00:35:41,190 dio kodiranje je Projekt želite riješiti, 752 00:35:41,190 --> 00:35:43,190 nego niske razine detalji. 753 00:35:43,190 --> 00:35:49,840 >> Dakle, to samo stvara header.php ili footer.php na temelju kojih je jedan zovem. 754 00:35:49,840 --> 00:35:52,280 I doista, ako odem u index.php, obavijest 755 00:35:52,280 --> 00:35:56,230 sve što je changed-- Umjesto nazivajući uzvratiti udarac glavom ili donijeti podnožje, 756 00:35:56,230 --> 00:36:00,230 Zovem uzvratiti, nakon čega slijedi naziv predloška da želim učiniti. 757 00:36:00,230 --> 00:36:02,370 I vidjet ćete to, također, u problemu postaviti sedam, 758 00:36:02,370 --> 00:36:05,530 pri čemu smo vam omogućiti da koristite Isto funkciju kako bi grozdovi 759 00:36:05,530 --> 00:36:07,550 i grozdovima različitih web stranica. 760 00:36:07,550 --> 00:36:10,570 >> Dakle, umjesto da žive previše mnogo više na one details-- 761 00:36:10,570 --> 00:36:13,210 što ćete vidjeti u Problem skup seven-- pogledajmo 762 00:36:13,210 --> 00:36:16,850 na sada početkom otopine na više zanimljiv problem. 763 00:36:16,850 --> 00:36:19,310 Do sada, ništa mi smo učinio je spasio podatke. 764 00:36:19,310 --> 00:36:22,920 U stvari, jedini put smo ikada spašeni nešto što smo učinili u ovoj klasi 765 00:36:22,920 --> 00:36:31,030 se kada smo imali vrlo jednostavan demo neko vrijeme natrag, gdje smo se datoteke IO u C, 766 00:36:31,030 --> 00:36:34,520 i mislim da sam upisali u moje ime, i Hannah ime, i Maria ime, 767 00:36:34,520 --> 00:36:37,610 ili možda Andy ime, i onda smo spašeni CSV file-- 768 00:36:37,610 --> 00:36:39,430 vrijednosti odvojenih zarezom datoteku. 769 00:36:39,430 --> 00:36:43,530 >> I koristili smo fopen-- mislim koristili smo fprintf se sjećam, 770 00:36:43,530 --> 00:36:44,910 a mi spasio datoteku. 771 00:36:44,910 --> 00:36:46,920 Sada, to je najjednostavniji oblik baze. 772 00:36:46,920 --> 00:36:50,230 Ako želite napraviti web stranicu za Frosh IM programa, pri čemu brucoši 773 00:36:50,230 --> 00:36:53,390 mogu se prijaviti za sport, te je idealno želite učiniti nešto s tim podacima. 774 00:36:53,390 --> 00:36:55,370 Prošli tjedan, nismo ništa s data-- smo upravo rekao, 775 00:36:55,370 --> 00:36:56,661 ste registrirani, zapravo i nije. 776 00:36:56,661 --> 00:36:58,950 Ili možda sam e-poštom Proctor, i to je bilo to. 777 00:36:58,950 --> 00:37:02,110 >> Ali bilo bi lijepo da sam mogao dati da Proctor CSV datoteku, 778 00:37:02,110 --> 00:37:03,340 kao Excel datoteke. 779 00:37:03,340 --> 00:37:05,090 Ili još bolje, to bi lijepo ako sam mogao 780 00:37:05,090 --> 00:37:08,830 stavio imena tih korisnika i spavaonica imena i sve to 781 00:37:08,830 --> 00:37:11,740 u bazu podataka koja Samo živi vječno, 782 00:37:11,740 --> 00:37:13,530 dok sam se odlučio za brisanje podataka. 783 00:37:13,530 --> 00:37:15,645 Baza podataka koja omogućuje me upita informacije. 784 00:37:15,645 --> 00:37:18,070 I doista, to je ono što je baza podataka. 785 00:37:18,070 --> 00:37:20,470 >> Mi smo predstaviti danas, a sljedeći tjedan, također, tehnologija 786 00:37:20,470 --> 00:37:25,020 zove SQL-- strukturirani upita Jezik, koji je drugi jezik. 787 00:37:25,020 --> 00:37:28,750 To je u biti programski jezik, ali za baze podataka. 788 00:37:28,750 --> 00:37:31,760 A baza podataka za sada, samo misliti kao super fantazija verziji 789 00:37:31,760 --> 00:37:35,710 Microsoft Excel ili Google Proračunske tablice ili Apple Numbers. 790 00:37:35,710 --> 00:37:39,950 To je općenito program koji omogućuje da pohraniti hrpu podataka 791 00:37:39,950 --> 00:37:43,960 u retke i stupce, sasvim kao što ste možda u Excelu. 792 00:37:43,960 --> 00:37:47,100 >> No, ono što je lijepo, pogotovo ako nismo super upoznati s programom Excel, 793 00:37:47,100 --> 00:37:52,040 ono SQL vam omogućuje da učinite je upita ovaj Informacije pisanjem linija koda 794 00:37:52,040 --> 00:37:55,220 gdje možete, čak i ako je vaš baza podataka ima milijun redaka u njoj, 795 00:37:55,220 --> 00:37:57,190 možete naći ono super brzo. 796 00:37:57,190 --> 00:37:59,950 U stvari, posebno Excel loše na velikim skupovima podataka. 797 00:37:59,950 --> 00:38:02,460 A u stvari, do neke godina, ispostavilo se 798 00:38:02,460 --> 00:38:08,890 Excel samo će vam omogućiti da pohraniti do 65,535 redovi data-- koji 799 00:38:08,890 --> 00:38:12,020 zvuči kao mnogo, ali u Vrijeme Bio sam grad student, 800 00:38:12,020 --> 00:38:14,920 i sjećam se spotaknula to jer sam generira 801 00:38:14,920 --> 00:38:17,900 CSV datoteke za mog istraživanja i ja htjela analizirati ih brzo 802 00:38:17,900 --> 00:38:19,530 po samo otvaranje u Excelu. 803 00:38:19,530 --> 00:38:23,730 Naravno, moje računalo samo srušio, jer sam imao više od 65.000 redaka. 804 00:38:23,730 --> 00:38:27,210 >> Ali gdje li je 65.535 dolaze iz? 805 00:38:27,210 --> 00:38:29,670 Što je Microsoft radi, valjda? 806 00:38:29,670 --> 00:38:32,430 Ako ste dobri sa svojim ovlastima dvoje? 807 00:38:32,430 --> 00:38:37,160 Da, oni su pomoću 16-bitni vrijednost predstavlja broj retka. 808 00:38:37,160 --> 00:38:41,310 I dva do 16 je 65,536-- minus jedan, jer ako vas 809 00:38:41,310 --> 00:38:45,414 nula indeks znači da je najveći broj redaka bih mogao imati. 810 00:38:45,414 --> 00:38:46,830 I to je bio samo dizajn odluke. 811 00:38:46,830 --> 00:38:52,760 Do štedi 16 bita, oni su mi ograničene do 16.000 redaka, umjesto 4 milijarde, 812 00:38:52,760 --> 00:38:54,322 što sam mogao imati savršeno. 813 00:38:54,322 --> 00:38:57,030 No, za sada, idemo uvesti to više u web kontekstu. 814 00:38:57,030 --> 00:39:00,390 A što je lijepo o SQL je da čak i iako je prilično snažan i prilično 815 00:39:00,390 --> 00:39:04,050 sofisticiran, to stvarno svodi do četiri ključna operacija, četiri 816 00:39:04,050 --> 00:39:08,060 ključne funkcije, ako will-- odabrali, za dohvaćanje podataka, traži 817 00:39:08,060 --> 00:39:12,510 za podatke; brisanje ili brisanje podataka; umetnite za dodavanje redaka u bazi podataka; 818 00:39:12,510 --> 00:39:13,410 i ažuriranje. 819 00:39:13,410 --> 00:39:17,010 Dakle, ako ste ikada koristili Google Proračunske tablice, Apple, Microsoft Brojevi 820 00:39:17,010 --> 00:39:19,310 Excel, koje ste pogubili, najvjerojatnije, sve 821 00:39:19,310 --> 00:39:22,530 ovih operacija kao čovjeka po Samo pomoću tipkovnice i mouse-- 822 00:39:22,530 --> 00:39:26,050 umetanje podataka, koristeći svoje oči za odabir ili tražiti podatke, 823 00:39:26,050 --> 00:39:28,360 ili ažuriranje podataka, ili brisanje podataka. 824 00:39:28,360 --> 00:39:29,870 >> Dakle, što to znači? 825 00:39:29,870 --> 00:39:34,300 Pa, pre-instaliran u CS50 IRO je program pod nazivom MySQL. 826 00:39:34,300 --> 00:39:37,050 To je besplatan, open-source baza podataka koja je super popularan. 827 00:39:37,050 --> 00:39:40,590 Prijava, na primjer, koristi se to dan, među ostalim alatima koje koriste. 828 00:39:40,590 --> 00:39:44,300 I puno vrlo popularne web stranice koriste to velikim dijelom zato što je brzo, 829 00:39:44,300 --> 00:39:45,230 i zato što je besplatno. 830 00:39:45,230 --> 00:39:46,820 Iako sigurno postoje alternative. 831 00:39:46,820 --> 00:39:49,580 A neki od vas možda brljati s alternative za završne projekte. 832 00:39:49,580 --> 00:39:55,330 >> Ovo je screenshot, u međuvremenu, od web-based alat zove phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 To je slučajnost da Ova web-based alat je također 834 00:39:58,260 --> 00:40:01,720 napisana na jeziku, PHP, ali ono što je značilo da 835 00:40:01,720 --> 00:40:04,620 se daju nam web-based Sučelje prema bazi podataka. 836 00:40:04,620 --> 00:40:07,180 Zbog MySQL obično je nešto povijesno vas, 837 00:40:07,180 --> 00:40:08,770 će komunicirati samo s s komandne linije. 838 00:40:08,770 --> 00:40:10,811 I to bi bilo super neugodno i arcane imati 839 00:40:10,811 --> 00:40:14,487 upisati tekstualne naredbe za odabir podataka, umetanje podataka i brisanje podataka. 840 00:40:14,487 --> 00:40:16,820 Tako da neki ljudi na internetu napisao program web-based 841 00:40:16,820 --> 00:40:18,900 da je samo neka nam upravljaju podaci u našoj bazi podataka. 842 00:40:18,900 --> 00:40:23,040 To je kao dvostrukim klikom na Excel, i pokretanje web-based verziju istih. 843 00:40:23,040 --> 00:40:26,370 >> A što ćeš koristiti ovu za konačnici sljedeći tjedan, a ne u p-set i šest, 844 00:40:26,370 --> 00:40:28,680 ali je izgraditi nešto zove CS50 financija, koji je 845 00:40:28,680 --> 00:40:32,630 će imati bazu podataka Korisnici, s korisnička imena i lozinke, 846 00:40:32,630 --> 00:40:34,860 Dolar iznosi da su imaju u svojim bankovnim računima. 847 00:40:34,860 --> 00:40:37,280 To će biti nešto što koristite za pohranu 848 00:40:37,280 --> 00:40:39,910 simboli i količine dionica koje korisnik 849 00:40:39,910 --> 00:40:42,567 kupio pomoću virtualne dolara da ćete dati. 850 00:40:42,567 --> 00:40:44,900 I to će omogućiti korisnicima registrirati za svoje stranice, 851 00:40:44,900 --> 00:40:47,190 tako da čak i svoje prijatelje može naštimati na vaše web stranice 852 00:40:47,190 --> 00:40:49,360 i zapravo se registrirate, prijavite se i poigrati 853 00:40:49,360 --> 00:40:52,807 i pokušati pronaći grešku u kodu, i pokušati pronaći greške u vaše web stranice. 854 00:40:52,807 --> 00:40:55,390 I oni će jednostavno registrirati tako se dodaje, učinkovito, 855 00:40:55,390 --> 00:40:58,120 putem koda pišete na vašoj bazi podataka. 856 00:40:58,120 --> 00:41:02,470 >> Na primjer, to je brz screenshot onoga što je baza podataka može izgledati. 857 00:41:02,470 --> 00:41:05,190 Ovo je iz jedne od prošlogodišnji solutions-- 858 00:41:05,190 --> 00:41:07,760 To je kao mini Excel podnijeti, pohranjeni u našoj bazi podataka, 859 00:41:07,760 --> 00:41:09,950 pohranjena u ovaj program pod nazivom MySQL. 860 00:41:09,950 --> 00:41:13,260 Na lijevoj strani, sam očito dao svaki korisnik ima jedinstveni broj. 861 00:41:13,260 --> 00:41:16,200 U drugom stupcu, ja sam dao Svatko korisnik name-- moja 862 00:41:16,200 --> 00:41:16,880 među njima. 863 00:41:16,880 --> 00:41:21,430 A na desnoj strani, Ja sam im dao mljeveno meso. 864 00:41:21,430 --> 00:41:26,760 >> Sada je to zapravo lozinke, ali to nije običan lozinke tekst. 865 00:41:26,760 --> 00:41:30,160 To je šifrirana zaporka, ako hoćete, ili mljeveno meso lozinku. 866 00:41:30,160 --> 00:41:32,000 Koje ćemo se vratiti prije dugo. 867 00:41:32,000 --> 00:41:34,340 >> Ali, ako ste ikada pročitali članak o tome kako 868 00:41:34,340 --> 00:41:37,950 ste lozinku na nekoj banci ili neki Web stranica možda ugrožena, 869 00:41:37,950 --> 00:41:39,630 općenito može značiti jednu od dvije stvari. 870 00:41:39,630 --> 00:41:42,780 Dakle, ovo je samo izvadak iz šest korisnika. 871 00:41:42,780 --> 00:41:45,460 Sve vas sada mogu shvatiti se putem sjeckanje ili pucanja 872 00:41:45,460 --> 00:41:47,690 što naših šest ljudi lozinke. 873 00:41:47,690 --> 00:41:49,720 Ali, ako ste ikada stečen upozorenje ili ispriku 874 00:41:49,720 --> 00:41:52,803 od tvrtke ili web stranice govoreći, Žao nam je, haker provalio u našoj bazi, 875 00:41:52,803 --> 00:41:56,360 vjerojatno treba mijenjati lozinku, što bi to moglo značiti? 876 00:41:56,360 --> 00:41:59,670 >> Pa, jedan, moglo značiti Tvrtka je više kretenski, 877 00:41:59,670 --> 00:42:03,630 te je spremanje lozinku u stupcu kao što je ovaj, nesigurna. 878 00:42:03,630 --> 00:42:05,840 Što znači protivnika, tko je ukrao baze podataka, 879 00:42:05,840 --> 00:42:07,440 doslovno zna vaš ime i zaporku. 880 00:42:07,440 --> 00:42:08,960 To je najgori mogući scenarij. 881 00:42:08,960 --> 00:42:11,710 I kao što ćete vidjeti u p-set sedam, tako lako izbjeći. 882 00:42:11,710 --> 00:42:15,624 Nema apsolutno nema opravdanja za to oblik gluposti u današnjem internetu. 883 00:42:15,624 --> 00:42:18,540 Two-- i mi ćemo pronaći neke članke svjedočiti činjenicu da je to još uvijek 884 00:42:18,540 --> 00:42:21,710 dogodi, nonetheless-- dva, možda protivnik 885 00:42:21,710 --> 00:42:23,840 Ukrao ovu verziju baze podataka. 886 00:42:23,840 --> 00:42:27,110 Koji je još uvijek vrsta loša, jer sada oni znaju da ja imam šest kupaca, 887 00:42:27,110 --> 00:42:29,270 Znam korisničkih imena tih šest kupaca, 888 00:42:29,270 --> 00:42:32,910 i znam da je kodiran verzije, ili raspršene inačice, 889 00:42:32,910 --> 00:42:34,340 lozinke tih šest kupaca. 890 00:42:34,340 --> 00:42:37,010 No, bilo koji od vas koji bi mogli napraviti [? Hacker 2?] 891 00:42:37,010 --> 00:42:41,150 gdje puknut lozinke, ili je Pogled na toj verziji problema 892 00:42:41,150 --> 00:42:46,280 Skup, zašto je to ipak malo zabrinjavajuće ako je protivnik zna svoj hash 893 00:42:46,280 --> 00:42:47,435 lozinke? 894 00:42:47,435 --> 00:42:49,732 >> PUBLIKA: Zato što su mogli unesite cijeli rječnik 895 00:42:49,732 --> 00:42:50,690 u hash funkcije. 896 00:42:50,690 --> 00:42:54,520 A ako ste lozinku je rječnik Riječ, [? oni samo mogu match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Malan: Točno, protivnik može samo pisati kod, kao što neki od vas 898 00:42:57,640 --> 00:43:00,526 učinio za [? Haker?] 2, gdje li ponoviti više 899 00:43:00,526 --> 00:43:03,400 sve riječi u rječniku, ili sve moguće kombinacije A 900 00:43:03,400 --> 00:43:06,610 do Z i jedan kroz nine-- koja zvuči kao mnogo, a to je. 901 00:43:06,610 --> 00:43:08,361 No, za računalo, to je prilično darn brzo. 902 00:43:08,361 --> 00:43:10,610 A u stvari, to je bio točka [? Hacker 2,?] Bio 903 00:43:10,610 --> 00:43:12,540 uzeti stvari koje doslovno izgleda ovako, 904 00:43:12,540 --> 00:43:14,900 i obrnuti inženjering što je zapravo bio. 905 00:43:14,900 --> 00:43:17,270 >> Tako ćemo pogledati kako možemo spremiti ovaj učinkovitije. 906 00:43:17,270 --> 00:43:20,210 Ispada, srećom u MySQL, tu su idući u biti vrsta podataka. 907 00:43:20,210 --> 00:43:22,800 A jedan od zabavnih dijelova o dizajn baze podataka, da budem iskren, 908 00:43:22,800 --> 00:43:25,810 zapravo odlučuje za sebe kako bi vam predstavlja podatke? 909 00:43:25,810 --> 00:43:29,630 Ukoliko predstavljaju broj telefona kao int, poput velikog broja, ili dugo? 910 00:43:29,630 --> 00:43:31,630 Ili ti zapravo to učiniti kao niz znakova? 911 00:43:31,630 --> 00:43:33,780 I tu može biti vrlo ne-trivijalne utjecaji na to. 912 00:43:33,780 --> 00:43:36,714 >> Naime, jedna od Najraniji, zabava zameci priče 913 00:43:36,714 --> 00:43:39,880 kada je Mark Zuckerberg je izgradnja Facebook, je izvorno napisan na, 914 00:43:39,880 --> 00:43:42,300 i dalje u velikoj mjeri je napisan u PHP. 915 00:43:42,300 --> 00:43:45,400 A jedan od najvećih izazova oni suočavaju rano je skaliranje. 916 00:43:45,400 --> 00:43:48,820 Kad su držali dodavanja školu nakon Škola poslije škole, prema mojim saznanjima, 917 00:43:48,820 --> 00:43:51,639 jedan od originalnih rješenja je bitno kopirati i zalijepiti 918 00:43:51,639 --> 00:43:53,430 neke baze i neke koda, 919 00:43:53,430 --> 00:43:55,346 tako da je Harvard bio radi na vlastitom poslužitelju, 920 00:43:55,346 --> 00:43:56,995 i MIT je trčanje na vlastitom poslužitelju. 921 00:43:56,995 --> 00:43:59,120 I to je razlog zašto, za neke od vas koji bi mogli podsjetiti, 922 00:43:59,120 --> 00:44:01,510 ne može imati prijatelje u drugim mrežama. 923 00:44:01,510 --> 00:44:05,050 >> Vi vjerojatno ne imati prijatelje MIT ili Harvardu prije 10-ak godina, 924 00:44:05,050 --> 00:44:07,467 ali nije mogao obuhvatiti mreže za djelomično toga. 925 00:44:07,467 --> 00:44:10,550 A jedan od najvećih izazova za Mark i za tvrtke kao što su Facebook 926 00:44:10,550 --> 00:44:13,460 zapravo rukovanje stotine i tisuće i milijuni 927 00:44:13,460 --> 00:44:14,460 zahtjeva u sekundi. 928 00:44:14,460 --> 00:44:16,501 Dakle, stvari ćemo početi govori o ovom tjednu 929 00:44:16,501 --> 00:44:19,860 su stvarno će biti tijesnoj se pisanje dobar softver, a popularno 930 00:44:19,860 --> 00:44:23,040 uspješni alati koji može nositi puno korisnika. 931 00:44:23,040 --> 00:44:25,460 >> Tako ćemo govoriti o stvarima kao indeksiranje i pretraživanje, 932 00:44:25,460 --> 00:44:26,910 ali to je to za danas. 933 00:44:26,910 --> 00:44:28,780 Mi ćemo vas vidjeti više srijedu. 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: možete da da, i oduzimati od njega. 937 00:44:35,943 --> 00:44:38,859 I ne morate se držati s neke unaprijed određena količina memorije. 938 00:44:38,859 --> 00:44:40,580 Pa, što se to događa da se zove? 939 00:44:40,580 --> 00:44:42,369 >> SPEAKER 1: Pa, što se događa? 940 00:44:42,369 --> 00:44:43,535 ZVUČNIK 2: Što mislite? 941 00:44:43,535 --> 00:44:44,451 On je predavanje. 942 00:44:44,451 --> 00:44:47,650 DAVID Malan: I mi možemo koristiti funkcija zove malloc na memory-- 943 00:44:47,650 --> 00:44:50,050 >> SPEAKER 1: Zašto se ne kreće ruke? 944 00:44:50,050 --> 00:44:52,450 >> ZVUČNIK 2: Pa that's-- znate, to je normalno. 945 00:44:52,450 --> 00:44:57,162 To je kao da je upravo velike kobasice visi tamo. 946 00:44:57,162 --> 00:44:59,040 >> SPEAKER 1: To je normalno? 947 00:44:59,040 --> 00:45:03,096 >> ZVUČNIK 2: Da, mislim da samo pretpostaviti je slučajno 948 00:45:03,096 --> 00:45:06,840 zamijenio njegov dezodorans s ljepila. 949 00:45:06,840 --> 00:45:07,608