1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Muusika mängib] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID Humala: See on CS50 ja see on algus nädalas kaheksa. 5 00:00:13,350 --> 00:00:17,510 Ja me oleme nii põnevil, et tervitada tagasi, suur üllatus, CS50 enda Ramon 6 00:00:17,510 --> 00:00:22,160 Galvan, tõusev vanem, kes on olnud kulutusi juba mitmendat kuud 7 00:00:22,160 --> 00:00:26,190 Alates juulist LA, Hollywood, sõna otseses mõttes töötavad uhiuue TV 8 00:00:26,190 --> 00:00:31,930 Näita nimetatakse Colony, looja, kes on tegelikult Harvard alum ise. 9 00:00:31,930 --> 00:00:36,610 Ja nii me oleme väga põnevil, et näha seda debüüdi USA võrgus tänavu jaanuaris. 10 00:00:36,610 --> 00:00:40,370 Nii et stay tuned, et ja rohkem Ramon eest lähinädalatel. 11 00:00:40,370 --> 00:00:42,550 >> Tea nüüd, et lõpuks on lähedal. 12 00:00:42,550 --> 00:00:47,400 Ja mida see tähendab, et seal ei ole kõik, et palju järel CS50, kurb öelda. 13 00:00:47,400 --> 00:00:49,400 Meil on vaid kolm probleemi komplekti left-- seal 14 00:00:49,400 --> 00:00:52,510 Probleem seatud six-- mis on käed nüüd või varsti, 15 00:00:52,510 --> 00:00:56,080 lõpupoole see week-- on mõeldud ületada Meie maailmad käsurealt, kus 16 00:00:56,080 --> 00:00:59,450 Veetsime suurema osa oma ajast abil C ja maailma veebi programmeerimine. 17 00:00:59,450 --> 00:01:02,350 Noh, näete palju ideid laenatud käsurea töö 18 00:01:02,350 --> 00:01:04,560 aga ka palju uusi ja huvitavaid ideid 19 00:01:04,560 --> 00:01:07,929 mis on ka kavatse olla Sobiv eest mobiilsete rakenduste ja tehnoloogia 20 00:01:07,929 --> 00:01:10,470 üldisemalt, kellega poisid on kõik tuttavad tänapäeval 21 00:01:10,470 --> 00:01:12,090 sülearvutid ja telefonid jms. 22 00:01:12,090 --> 00:01:15,220 >> Nii saate rakendada ei veebilehe või veebilehel 23 00:01:15,220 --> 00:01:17,620 per se, kuid tegelik veebiserver. 24 00:01:17,620 --> 00:01:21,590 Sa kirjutad ülejäänud veebiserver kirjutatud C, kelle elu mõte 25 00:01:21,590 --> 00:01:25,410 on saada HTTP päringuid, neid virtuaalne ümbrikud me edasi rääkida 26 00:01:25,410 --> 00:01:29,780 umbes, ja tegelikult vastata kas mõned staatilised content-- nagu dot HTML 27 00:01:29,780 --> 00:01:32,310 fail või dot JPEG või muu failide arv, 28 00:01:32,310 --> 00:01:37,070 või isegi PHP fail, mille veebi server läheb üles tõlgendama PHP 29 00:01:37,070 --> 00:01:38,332 kood ja sülitama tulemusi. 30 00:01:38,332 --> 00:01:40,540 Nüüd oleme andnud Teile üsna natuke raames 31 00:01:40,540 --> 00:01:43,100 jaoks see-- tõepoolest jaotus kood probleem 32 00:01:43,100 --> 00:01:47,496 seatud kuus üle 1000 rida pikk, et palju, mis on kommentaarid, et fair-- 33 00:01:47,496 --> 00:01:49,370 kuid see on tegelikult tähendas üheks võimaluseks 34 00:01:49,370 --> 00:01:52,570 saada oma käed määrdunud sukeldumine arvesse suhteliselt suurt projekti 35 00:01:52,570 --> 00:01:55,570 et me oleme väga konkreetselt nikerdatud tükki teile, 36 00:01:55,570 --> 00:01:59,046 nii et tõesti, kui väljute CS50 ja sisestage reaalses maailmas programmeerimine 37 00:01:59,046 --> 00:02:00,920 ja tahan võõpama mis tahes mitmeid projekte, 38 00:02:00,920 --> 00:02:03,253 sul on palju suurem Comfort allalaadimist mõned allikas 39 00:02:03,253 --> 00:02:05,020 kood, mõned avatud lähtekoodiga projekti veebis 40 00:02:05,020 --> 00:02:08,174 ja sukeldumine ja muutes muutusi, et näed. 41 00:02:08,174 --> 00:02:11,340 Ülesanded seitse saab olema umbes muutes oma veebipõhine rakendus 42 00:02:11,340 --> 00:02:14,140 mis võtab dünaamiline sisend ja toodab dünaamilist väij 43 00:02:14,140 --> 00:02:16,920 on etrade.com-like kodulehel. 44 00:02:16,920 --> 00:02:20,800 Ja probleem seatud kaheksa keskendub veel teises keeles tuntakse JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Vahepeal lõpliku Projekti on silmapiiril. 46 00:02:24,170 --> 00:02:26,800 Niinimetatud eelpakkumist on tingitud nädalas alates tänasest. 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- täpsustamine kohta, mis on CS50 on website-- 48 00:02:29,930 --> 00:02:33,260 on päris juhuslik võimalus Teil saata päris sisutihe e-posti 49 00:02:33,260 --> 00:02:35,170 oma õpetuse mehe lihtsalt teavitama teda 50 00:02:35,170 --> 00:02:38,250 või tema mis sa mõtled, et kasuta teda Kaikukoppa. 51 00:02:38,250 --> 00:02:40,980 Ja on meelerahu kontroll-- kas sa mõtled 52 00:02:40,980 --> 00:02:43,210 umbes hammustab liiga palju või hoopis liiga vähe, 53 00:02:43,210 --> 00:02:46,480 või äkki sa ei tea üldse ja tahavad vestelda. 54 00:02:46,480 --> 00:02:48,480 >> Seejärel on ettepanek ja status report, 55 00:02:48,480 --> 00:02:51,860 nn CS50 hackathon siin Cambridge'i Harvard ja Yale õpilased 56 00:02:51,860 --> 00:02:52,362 samasugused. 57 00:02:52,362 --> 00:02:54,320 Lõpliku projekti rakendamine on sealt otse. 58 00:02:54,320 --> 00:02:59,290 Ja siis CS50 õiglane siin, Cambridge, samuti teise New Haven. 59 00:02:59,290 --> 00:03:02,500 Nii ettepanekut, kui heita pilk Veebilehe need andmed. 60 00:03:02,500 --> 00:03:06,530 >> Aga rohkem põnevalt, ka see on võimalust saada oma käed määrdunud, 61 00:03:06,530 --> 00:03:09,350 ja oma mõtetes avatud kogu hunnik teemasid ja tööriistad 62 00:03:09,350 --> 00:03:12,920 ja tehnikaid, mis lähtuvad kursuse tuum õppekava, 63 00:03:12,920 --> 00:03:14,810 kuid siiski seotud. 64 00:03:14,810 --> 00:03:18,400 Ja ka imeline nurgakiviks teeme lahedaid lõplik projekte, mis 65 00:03:18,400 --> 00:03:22,020 minna kaugemale materjali oleme kaetud ametlikult probleem seab või loeng. 66 00:03:22,020 --> 00:03:24,446 Nii lähevad CS50 kodulehel kogu nimekirja seminare. 67 00:03:24,446 --> 00:03:26,070 Kui te ei registreeri veel, et trahvi. 68 00:03:26,070 --> 00:03:29,860 Lase käia ja registreeruda ikka ja me jälgida live streaming link, 69 00:03:29,860 --> 00:03:31,844 päev ja kellaaeg on veebilehel. 70 00:03:31,844 --> 00:03:33,760 Ja kõik saab registreerida ja panna Internetis 71 00:03:33,760 --> 00:03:35,800 Kui te ei saa teha Eelkõige päevadel ja kellaaegadel. 72 00:03:35,800 --> 00:03:39,380 >> Mis, mis ees ootab thereafter-- hästi, Muidugi, seal on CS50 hackathon. 73 00:03:39,380 --> 00:03:43,560 See foto, mäletate, nädalast null võtta umbes 4 olen üks õhtu aastat varem. 74 00:03:43,560 --> 00:03:46,900 CS50 õiglane, mis omakorda toimub mõlemas linnas. 75 00:03:46,900 --> 00:03:49,760 Ja siis, just istutada seeme, kuigi me veel 76 00:03:49,760 --> 00:03:54,080 on kuus pluss vasakul poolel, kui soovid liituda CS50 enda õpetamine 77 00:03:54,080 --> 00:03:56,770 personal ja soovite alustada mõelnud muutumas CA, 78 00:03:56,770 --> 00:03:59,550 või õpetamise mehe, tean, et Hakkame rääkima rohkem sellest 79 00:03:59,550 --> 00:04:00,630 sel semestril. 80 00:04:00,630 --> 00:04:03,470 Aga pildil on Kõige selle aasta meeskond. 81 00:04:03,470 --> 00:04:06,950 >> Ja nii, PHP-- ja ma olin nii kurb eelmisel nädalal, et [? Allyse?] Lahkelt 82 00:04:06,950 --> 00:04:09,370 läks pingutust saada meil neid suurepäraseid rekvisiidid 83 00:04:09,370 --> 00:04:11,720 et ma ei jõua abil, nii et see tõesti lihtsalt vaatas tobe 84 00:04:11,720 --> 00:04:15,160 et meil oli labidas istun siin kõik päeval eelmisel kolmapäeval ja natuke lusikaga. 85 00:04:15,160 --> 00:04:17,709 Aga see oli minu metafoorne kuidas püüda maalida 86 00:04:17,709 --> 00:04:21,600 pilt, miks me üleminekul alates C keeles nagu PHP. 87 00:04:21,600 --> 00:04:25,480 Ja sama võib öelda ükskõik arvu languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 või kimpu others-- kuid samas C, näiteks kirjutades programmi C 89 00:04:31,270 --> 00:04:34,050 võib tavaliselt olla nagu võttes lusikaga niimoodi 90 00:04:34,050 --> 00:04:36,770 ja kaevamine auk maa, liiva või mustust. 91 00:04:36,770 --> 00:04:39,770 PHP võimaldab teha palju suurem hammustab välja probleemi, 92 00:04:39,770 --> 00:04:42,842 kirjutamise palju vähem koodi kasutades palju väiksem näitaja, 93 00:04:42,842 --> 00:04:45,050 sest seal on nii palju funktsionaalsus pieced aastal. 94 00:04:45,050 --> 00:04:47,633 >> Nüüd, kui me tõesti dramaatiline, oleks meil midagi kühveldada 95 00:04:47,633 --> 00:04:48,760 siin, aga olgu nii. 96 00:04:48,760 --> 00:04:51,370 Vahepeal muud metafoor meil tulid 97 00:04:51,370 --> 00:04:53,770 Loomulikult on, siis võiks kasuta midagi mutrivõti 98 00:04:53,770 --> 00:04:56,610 haamriga midagi nagu nael. 99 00:04:56,610 --> 00:04:58,980 Aga muidugi õigus tööriista kasutamine toimub 100 00:04:58,980 --> 00:05:01,360 olla mitte niivõrd keeles nimetatakse C- 101 00:05:01,360 --> 00:05:03,590 ja nüüd ma lihtsalt pahane [? Sanders,?] Ilmselt, 102 00:05:03,590 --> 00:05:07,890 me fikseerida, et later-- nii õige vahend kasutada sageli 103 00:05:07,890 --> 00:05:09,640 ei kavatse olla Selle madalaima taseme näitaja. 104 00:05:09,640 --> 00:05:13,720 Ja tõepoolest, C keelt ei ole olemas, et enamik teist on kunagi kasutada, 105 00:05:13,720 --> 00:05:15,590 või peaks tingimata kasutada uuesti. 106 00:05:15,590 --> 00:05:18,350 >> Ja tegelikult, natuke secret-- ainus kord 107 00:05:18,350 --> 00:05:23,160 Ma kasutan C ise on päris palju vahel Septembris ja detsembris ning igal sügisel 108 00:05:23,160 --> 00:05:23,870 semestri. 109 00:05:23,870 --> 00:05:25,790 Ja see on, sest me kasuta seda võimalust 110 00:05:25,790 --> 00:05:27,852 õpetada põhitõdesid programmeerimine, 111 00:05:27,852 --> 00:05:29,810 ja koos sellega arvuti teaduse põhialuseid, andmete 112 00:05:29,810 --> 00:05:32,435 struktuure, algoritmide ja like-- kuid väga kiiresti eks 113 00:05:32,435 --> 00:05:35,010 vaata nüüd, süntaks ja ideid aluseks C 114 00:05:35,010 --> 00:05:37,530 on nii imeliselt üleantav moodsam 115 00:05:37,530 --> 00:05:41,130 kõrgema taseme keelte, nagu PHP ja Python ja Perl ja Java 116 00:05:41,130 --> 00:05:46,750 ja Objective-C- tegelikult, mitte niivõrd Eesmärk-C- kuid Swift, need uuemad 117 00:05:46,750 --> 00:05:50,010 keeled, mida paljud teist siis võõpama teiega lõplik projekt. 118 00:05:50,010 --> 00:05:55,070 >> Nii ilma pikema jututa, olgem tegelikult kasutada PHP lahendada mõningaid probleeme. 119 00:05:55,070 --> 00:06:00,230 Tuletame meelde, et juba varakult, viimase nädalal, me lihtsalt kasutada CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 me kirjutas tilluke väike programm et lihtsalt ütles: "Tere maailm." 121 00:06:02,990 --> 00:06:05,680 Ja siis ma päästsin ta fail nimega hello.php. 122 00:06:05,680 --> 00:06:07,280 Ja siis ma jooksin seda käsku. 123 00:06:07,280 --> 00:06:08,080 >> Ja miks? 124 00:06:08,080 --> 00:06:09,900 Inglise keeles, mis toimub siin? 125 00:06:09,900 --> 00:06:12,760 Mida ma teen, kui Jooksin selle käsu? 126 00:06:12,760 --> 00:06:13,405 >> Jah? 127 00:06:13,405 --> 00:06:16,572 >> Sihtrühm: Seal on mõned funktsiooni PHP mis loeb, mida on in-- mõistab seda. 128 00:06:16,572 --> 00:06:19,696 DAVID Humala: Hea, seal on mõned funktsiooni PHP-- ja lase mul olla täpsem, 129 00:06:19,696 --> 00:06:21,810 seal on programm nimega PHP teise nimega 130 00:06:21,810 --> 00:06:25,872 Tõlk, et mõistab sisu hello.php, 131 00:06:25,872 --> 00:06:27,830 ja tõlgendab seda ülevalt alt, vasakult paremale, 132 00:06:27,830 --> 00:06:29,590 ja teeb seda, mida need käsud öelda. 133 00:06:29,590 --> 00:06:33,320 Käsud hello.php muidugi on lihtsalt hankida code-- funktsioonid 134 00:06:33,320 --> 00:06:35,750 ja muutujate ja silmad ja jms, et me ise 135 00:06:35,750 --> 00:06:37,460 hakanud kirjalikult PHP. 136 00:06:37,460 --> 00:06:40,240 >> Kuid erinevalt C, mis on kompileeritud keeles 137 00:06:40,240 --> 00:06:42,810 PHP sa lihtsalt kirjutada ja käivitada. 138 00:06:42,810 --> 00:06:46,420 Sa vahele, et käsi samm konverteerides selle ühtede ja nullide, 139 00:06:46,420 --> 00:06:47,790 ja siis töötab see. 140 00:06:47,790 --> 00:06:50,510 Ja mis on peapeale seda? 141 00:06:50,510 --> 00:06:52,690 Miks me vahele samm? 142 00:06:52,690 --> 00:06:55,238 Miks rohkem kaasaegsete keelte kipuvad selle sammu vahele jätta? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Mis oli kasu? 145 00:07:01,220 --> 00:07:02,080 >> Või lihtsalt intuitiivselt? 146 00:07:02,080 --> 00:07:04,200 Isegi kui me oleme mitte kirjutatud palju PHP enne, 147 00:07:04,200 --> 00:07:07,210 Mis kasulik kohta pole koostamisel koodi sa arvad? 148 00:07:07,210 --> 00:07:08,520 No? 149 00:07:08,520 --> 00:07:09,610 Ei toime? 150 00:07:09,610 --> 00:07:11,350 Kriimustada oma peaga? 151 00:07:11,350 --> 00:07:12,614 Jah. 152 00:07:12,614 --> 00:07:13,600 >> Sihtrühm: dünaamilisemaks. 153 00:07:13,600 --> 00:07:14,683 >> DAVID Humala: Rohkem dünaamiline? 154 00:07:14,683 --> 00:07:16,032 Mida sa mõtled? 155 00:07:16,032 --> 00:07:17,000 >> Sihtrühm: [kuuldamatu] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID Humala: OK, hea, et Sõltuvalt sisend, 158 00:07:22,390 --> 00:07:23,470 sa ei pea koostama iga kord. 159 00:07:23,470 --> 00:07:24,990 Ja see on tõesti nii lihtne selle-- mida 160 00:07:24,990 --> 00:07:26,990 on mõtet jätkata kompileerida koodi? 161 00:07:26,990 --> 00:07:29,480 See on lihtsalt samm, mis on making-- seda nõuavad, 162 00:07:29,480 --> 00:07:31,900 mitmendat nädalat, kaks korda nii palju etappe 163 00:07:31,900 --> 00:07:33,820 lihtsalt töötab oma programmi. 164 00:07:33,820 --> 00:07:36,940 See on olnud kasulik nähes, et sa vaata mõned veateated jne, 165 00:07:36,940 --> 00:07:38,720 kuid see on ikka lihtsalt tüütu samm. 166 00:07:38,720 --> 00:07:41,810 >> Ja nii programmeerijad mõistis aja jooksul, miks me ei 167 00:07:41,810 --> 00:07:45,327 hakake keeles, mis ei ole vaja, et üsna mehaaniline samm, 168 00:07:45,327 --> 00:07:47,160 nii et võid kirjutada koodi ja käivitada. 169 00:07:47,160 --> 00:07:48,920 Aga milline oli hind me nägime pöörasime 170 00:07:48,920 --> 00:07:50,910 eelmisel nädalal ühe konkreetse näitena? 171 00:07:50,910 --> 00:07:51,650 Jah? 172 00:07:51,650 --> 00:07:52,370 >> Speed. 173 00:07:52,370 --> 00:07:54,690 Nii [? Mis?] tõlkide veidi aeglasem, 174 00:07:54,690 --> 00:07:57,330 et ühtede ja nullide on kena ja kiire arvutit 175 00:07:57,330 --> 00:08:00,070 mõista, sest Intel CPU, või mis iganes see on, 176 00:08:00,070 --> 00:08:03,070 lihtsalt aru, mis toimub kohta nende mustrid bitti. 177 00:08:03,070 --> 00:08:05,370 Arvestades tõlgi on programm, mis tõesti 178 00:08:05,370 --> 00:08:07,980 on lugeda Ascii allikas kood, mis olete kirjutanud, 179 00:08:07,980 --> 00:08:12,700 ja muuta, nii et rääkida, või nuputada, kuidas see muudab lõppkokkuvõttes 180 00:08:12,700 --> 00:08:13,525 to ühtede ja nullide. 181 00:08:13,525 --> 00:08:15,650 Nii see lihtsalt võtab vähe natuke jõudlust hitt. 182 00:08:15,650 --> 00:08:16,858 Nii et see on natuke kompromiss. 183 00:08:16,858 --> 00:08:21,570 Nüüd, kui me seda siin, las ma minna ja teha näiteks järgmiselt. 184 00:08:21,570 --> 00:08:26,610 Kui ma lähen siin, uue faili, ma lähen päästa seda jällegi hello.php. 185 00:08:26,610 --> 00:08:31,450 Ja nüüd ma lähen edasi minna ja öelda, "print hello world" - 186 00:08:31,450 --> 00:08:35,130 ja meelde tuletama, et ma saan kasutada print, ma ei on kasutada print-F. Ja nüüd siin, 187 00:08:35,130 --> 00:08:42,039 kui ma PHP of hello.php, huh-- ma ei tundu on seda tõlgendanud. 188 00:08:42,039 --> 00:08:43,412 Mida ma valesti tegin? 189 00:08:43,412 --> 00:08:44,710 >> Sihtrühm: nurgelised käevõrud. 190 00:08:44,710 --> 00:08:47,015 >> DAVID Humala: Jah, teil on vaja et nurksulu up top. 191 00:08:47,015 --> 00:08:49,390 Nii et see on selline tüütu, kuid sa harjud sellega kiiresti. 192 00:08:49,390 --> 00:08:53,500 Kui ma pean kirjutama PHP koodi, ma üldiselt vaja öelda programmi, 193 00:08:53,500 --> 00:08:56,950 või öelda tõlk, hey PHP, siin on mõned PHP koodi. 194 00:08:56,950 --> 00:09:00,440 Ja siis hea meede, oleksin sulgeda see siiski mitte selle, vaid pigem 195 00:09:00,440 --> 00:09:03,740 vaid küsimärk nurk sulg, nii et nüüd siin, 196 00:09:03,740 --> 00:09:06,840 kui ma saan seda uuesti, nüüd Ma saan soovitud tulemuse. 197 00:09:06,840 --> 00:09:09,820 >> Teeme nüüd kerge optimeerimisega, just nii, et sa oled näinud seda varem. 198 00:09:09,820 --> 00:09:14,040 See on selline tüütu, et ma on joosta PHP ruumi hello.php, 199 00:09:14,040 --> 00:09:16,060 sest varem ma võiks lihtsalt kirjutada dot kaldkriipsuga 200 00:09:16,060 --> 00:09:17,560 programmi nimi, mis on omamoodi tore. 201 00:09:17,560 --> 00:09:19,420 See on selline parem kasutaja kogemus. 202 00:09:19,420 --> 00:09:24,160 >> Nii selgub saate seda teha PHP koos following-- ma 203 00:09:24,160 --> 00:09:28,780 võivad kasutada seda üsna segasena loits ülaosas siin 204 00:09:28,780 --> 00:09:31,740 mida üldiselt nimetatakse Jutt, kusjuures see on terav sümbol, 205 00:09:31,740 --> 00:09:34,270 niiöelda, see on bang või hüüumärk. 206 00:09:34,270 --> 00:09:38,490 Ja see nüüd on tee programmi tüüpiline Linux süsteem, mis 207 00:09:38,490 --> 00:09:41,500 nimetatakse keskkonda, inimese tervisele või keskkonnale. 208 00:09:41,500 --> 00:09:43,920 Ja see LINE pikk lugu short-- line üks lihtsalt 209 00:09:43,920 --> 00:09:48,710 ütleb, hey arvuti, leida PHP tõlgi mulle keskkonnas, 210 00:09:48,710 --> 00:09:50,610 leida see oma mälu, kui nii võib öelda. 211 00:09:50,610 --> 00:09:54,130 >> Ja mis on tore nüüd on et kui ma lähen siia alla, 212 00:09:54,130 --> 00:09:57,750 Ma suudan dot kaldkriipsuga hello dot php, või-- hmm. 213 00:09:57,750 --> 00:09:59,000 Keelati. 214 00:09:59,000 --> 00:10:02,350 Noh, näete isegi rohkem seda probleemsete pani seitse, kui te 215 00:10:02,350 --> 00:10:04,060 pole juba koos õigused. 216 00:10:04,060 --> 00:10:06,510 Tuleb välja, et mul on vaja seda käsku käivitada 217 00:10:06,510 --> 00:10:10,779 nimetatakse [? chamod?] muutusteks mode-- pluss x hello.php. 218 00:10:10,779 --> 00:10:13,820 Mul on vaja [kuuldamatu] see üks täiendav samm, mis räägib minu arvuti, 219 00:10:13,820 --> 00:10:16,400 teha hello.php käivitatav. 220 00:10:16,400 --> 00:10:21,310 Ja nüüd vaata, mis happens-- dot kaldkriips hello.php, see lihtsalt jookseb. 221 00:10:21,310 --> 00:10:23,310 Ma ei vaja täpsustada tõlgi enam. 222 00:10:23,310 --> 00:10:26,680 Ja ma ei tee seda isegi ilusam, ikka, kui ma ümber see asi. 223 00:10:26,680 --> 00:10:30,570 Kui ma liigun hello.php lihtsalt Hello-- nii teate ülaosas vasakul, 224 00:10:30,570 --> 00:10:32,860 Programmi nimi on tõepoolest nüüd vaid Tere. 225 00:10:32,860 --> 00:10:37,300 Nüüd ma saan teha seda välja nagu C programmi kuigi see on kirjutatud PHP-- 226 00:10:37,300 --> 00:10:39,210 või ausalt tahes number kohta teistes keeltes. 227 00:10:39,210 --> 00:10:41,480 >> Nii marginaalne lisaseadme no funktsionaalne erinevus. 228 00:10:41,480 --> 00:10:44,460 Aga see on lihtsalt natuke uudishimu Nüüd, et saate kirjutada programme 229 00:10:44,460 --> 00:10:48,989 mis tahes keeles, ja kasutaja ei on teada, või huvita, mida need on. 230 00:10:48,989 --> 00:10:51,030 Noh, vaatame veel kaalukaid Näiteks nüüd 231 00:10:51,030 --> 00:10:52,850 et ma vahustatud ette. 232 00:10:52,850 --> 00:10:54,955 Ja seda nimetatakse quote.php. 233 00:10:54,955 --> 00:10:56,740 Ja see on kättesaadavad Internetis. 234 00:10:56,740 --> 00:11:00,299 Ja märkad, et see on päris short-- aga see on käsurea programm, mis on 235 00:11:00,299 --> 00:11:02,840 läheb otsima üles aktsiate hinnad minu jaoks, mis tegelikult toimub 236 00:11:02,840 --> 00:11:04,230 olema Sobiv probleemi pani seitse. 237 00:11:04,230 --> 00:11:05,396 >> Vaatame, mida ma teen. 238 00:11:05,396 --> 00:11:08,640 Tipus Olen saanud Avatud sulg küsimärk PHP. 239 00:11:08,640 --> 00:11:13,372 Siis ma sain seda joont, kusjuures ma olen nõuab fail nimega functions.php-- 240 00:11:13,372 --> 00:11:15,080 me näeme rohkem seda natuke, 241 00:11:15,080 --> 00:11:17,340 kuid see on nagu C on versioon terav hulka, 242 00:11:17,340 --> 00:11:19,090 kuhu sa tahad minna lisada teise faili. 243 00:11:19,090 --> 00:11:23,720 PHP nimetab seda nõuavad, kuigi see Samuti on hulka funktsiooni. 244 00:11:23,720 --> 00:11:26,861 Ja selgub, et function.php on lihtsalt midagi, mida ma kirjutasin enne klassi. 245 00:11:26,861 --> 00:11:29,860 Ma panin selle sama kataloog, sest Tahtsin tegur mõned koodi 246 00:11:29,860 --> 00:11:31,800 et me võiksite kasutada mujal. 247 00:11:31,800 --> 00:11:34,560 >> Vahepeal saab ilmselt järeldan, mis toimub siin. 248 00:11:34,560 --> 00:11:39,200 See on natuke erinev C- kuid mida ma mõtlen tagada nõuetekohane kasutamine? 249 00:11:39,200 --> 00:11:41,180 Tõlgi see tehniliselt. 250 00:11:41,180 --> 00:11:45,950 Millistel asjaoludel olen ma suitsetamisest programmi või lõpetavad? 251 00:11:45,950 --> 00:11:47,074 Jah? 252 00:11:47,074 --> 00:11:47,990 >> Sihtrühm: Kui sul ei ole kaks käsurea argumente. 253 00:11:47,990 --> 00:11:49,480 >> DAVID Humala: Kui mul ei ole käsurea argumente. 254 00:11:49,480 --> 00:11:52,396 Ja pidage meeles, et üks neist argumendid on programmi nimi ise. 255 00:11:52,396 --> 00:11:55,340 Ja teine ​​läheb teise sõna writing pärast kiiret. 256 00:11:55,340 --> 00:11:57,460 Nii nagu C, seda on minu viis kontrollida, 257 00:11:57,460 --> 00:12:00,022 ei kasutajale koostööd ja käivitada programmi, kui ma mõeldud? 258 00:12:00,022 --> 00:12:01,730 Nüüd, seal on midagi natuke erinev 259 00:12:01,730 --> 00:12:04,020 koos C- meil esmalt on see dollari märk, 260 00:12:04,020 --> 00:12:07,710 ja mis dollari kirjutama tähistavad PHP? 261 00:12:07,710 --> 00:12:08,440 Just muutuv. 262 00:12:08,440 --> 00:12:11,731 See on all-- vaid muutuv järgneb mida iganes sa tahad, et tegelikult seda nimetada. 263 00:12:11,731 --> 00:12:14,000 Pange tähele, et midagi on puudu minu PHP programm, 264 00:12:14,000 --> 00:12:18,210 nagu see oli puudu viimase nädalas, versus C, mis on mis? 265 00:12:18,210 --> 00:12:21,620 >> Tüüpi, vaid ka midagi muud. 266 00:12:21,620 --> 00:12:26,409 Ei ole midagi funktsioon-- põhiülesanne. 267 00:12:26,409 --> 00:12:27,450 Ei ole peamine funktsioon. 268 00:12:27,450 --> 00:12:29,680 Sa lihtsalt hakake koodi ilma 269 00:12:29,680 --> 00:12:32,790 muretsema üsna meelevaldne Konventsioon nimetades mõningaid vaikimisi 270 00:12:32,790 --> 00:12:33,880 funktsiooni peamine. 271 00:12:33,880 --> 00:12:36,720 Nii arg C on lihtsalt väga globaalne muutuja 272 00:12:36,720 --> 00:12:39,049 et tõlk teeb minule. 273 00:12:39,049 --> 00:12:40,090 Nüüd on see huvitav. 274 00:12:40,090 --> 00:12:41,140 Nii otsida kraami. 275 00:12:41,140 --> 00:12:43,370 Dollar märk laos asub jäänud, see on mu muutuja. 276 00:12:43,370 --> 00:12:45,120 Paremal pool, seal on ilmselt 277 00:12:45,120 --> 00:12:50,270 funktsiooni PHP nimetatakse lookup, et Ma kulgeb minu viimane käsurea 278 00:12:50,270 --> 00:12:51,902 argument mina-- iganes sõna. 279 00:12:51,902 --> 00:12:53,610 Ja me näeme, kuidas see töötab hetkel. 280 00:12:53,610 --> 00:12:55,380 >> Ja siis lõpuks ma aru hinda. 281 00:12:55,380 --> 00:12:58,650 Ma väljatrükk üks osakaal selline ja selline. 282 00:12:58,650 --> 00:13:02,082 Ja pidage meeles, see on kuidas PHP-- nii in PHP-- 283 00:13:02,082 --> 00:13:04,290 kus sa ei pea tegema dollari märk S enam. 284 00:13:04,290 --> 00:13:06,782 Sa võid kasutada looksulg ja ühendage mõne muutuja. 285 00:13:06,782 --> 00:13:09,240 Sa ei pea muretsema kasutades printf samamoodi. 286 00:13:09,240 --> 00:13:13,530 >> Ja kui kõrvale, kui paned muutuja sees jutumärgid niimoodi, 287 00:13:13,530 --> 00:13:17,370 kasutate väljamõeldud tehnikat nimetatakse muutuva interpolatsiooni. 288 00:13:17,370 --> 00:13:20,380 See tähendab lihtsalt ühendage muutuja siin. 289 00:13:20,380 --> 00:13:23,760 Ja kui kõrvale, mõned teist, kes tulevad teistest programmeerimine taustaga, 290 00:13:23,760 --> 00:13:26,960 sa ei tohi kasutada ülakoma ümber stringid seda teha. 291 00:13:26,960 --> 00:13:30,290 Sa pead kasutama jutumärkide jaoks muutuva interpolatsiooni tööle. 292 00:13:30,290 --> 00:13:32,740 Muidu pead sõna otseses mõttes vaata need looksulg. 293 00:13:32,740 --> 00:13:34,500 >> Nii lõpuks lähme edasi ja käivitada. 294 00:13:34,500 --> 00:13:36,690 Lubage mul teha minu terminal veidi suurem. 295 00:13:36,690 --> 00:13:41,940 Lubage mul minna ja joosta sees minu quote kataloogi. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? tsitaat?] PHP quote dot PHP, 297 00:13:46,950 --> 00:13:50,290 ja ma lähen otsida midagi nagu GOOG, mis on tema sümbolit, 298 00:13:50,290 --> 00:13:55,510 ja üks osa tema uus nimi Tähestiku Inc, hind $ 717 alates tänasest. 299 00:13:55,510 --> 00:13:58,680 Hea küll, kui me tahame käivitada uuesti, keegi 300 00:13:58,680 --> 00:14:02,600 on teine ​​börsisümbol nad tahavad otsida? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft on minu arvates see, MSFT-- $ 53. 302 00:14:06,770 --> 00:14:09,720 Ma arvan, et Yahoo on äkki see. 303 00:14:09,720 --> 00:14:12,130 Ja Facebook on nii. 304 00:14:12,130 --> 00:14:13,740 >> Mis on selle programmi teeme? 305 00:14:13,740 --> 00:14:16,306 Magic tundub olevat varjatud et lookup funktsioon. 306 00:14:16,306 --> 00:14:17,430 Võtame pilgu. 307 00:14:17,430 --> 00:14:21,815 >> Tuleb välja, et ei tule PHP, see on functions.php. 308 00:14:21,815 --> 00:14:23,690 Ja me ei lähe läbi see väga täpselt, 309 00:14:23,690 --> 00:14:28,040 aga märgata Keskne sõna siin mis on line kuus functions.php-- 310 00:14:28,040 --> 00:14:29,440 Ma sõna otseses mõttes öelda funktsioon. 311 00:14:29,440 --> 00:14:31,050 Ma nimetage oma funktsiooni. 312 00:14:31,050 --> 00:14:34,330 Ma siis täpsusta ühtegi argumente, või parameetrid, 313 00:14:34,330 --> 00:14:36,480 Ma tahan, et funktsiooni Vőta ei tüübid. 314 00:14:36,480 --> 00:14:37,580 Ja siis ma seda rakendada. 315 00:14:37,580 --> 00:14:39,240 >> Ja ma siputan poolt kell rakendamist, 316 00:14:39,240 --> 00:14:42,115 sest see on üsna arenenud õigus nüüd, aga me näeme seda uuesti tegelikult 317 00:14:42,115 --> 00:14:44,700 nädalas probleemide pani seitse. 318 00:14:44,700 --> 00:14:47,490 Aga ma ei saa puhastada see üles ka. 319 00:14:47,490 --> 00:14:49,590 Olen ka lisatud Tänapäeva kood versioon 320 00:14:49,590 --> 00:14:52,340 Tsitaadi, mis ei ole dot PHP fail. 321 00:14:52,340 --> 00:14:57,270 Sest see, mis on oletatavasti peal programmi nimega lihtsalt tsiteerida? 322 00:14:57,270 --> 00:15:00,140 See nn shebang-- üsna segasena loits 323 00:15:00,140 --> 00:15:04,590 mis ütleb, et leida PHP ja seejärel kasutada seda oma koodi siin. 324 00:15:04,590 --> 00:15:07,360 >> Kõik õige, et toob meid sinna, kus pooleli jäime 325 00:15:07,360 --> 00:15:09,560 viimase AEG_ kuigi mõned täpsemad näited. 326 00:15:09,560 --> 00:15:13,980 Kõik küsimused siiani umbes PHP või mida me teeme? 327 00:15:13,980 --> 00:15:15,570 Ei-- kõik korras. 328 00:15:15,570 --> 00:15:16,180 Jah? 329 00:15:16,180 --> 00:15:19,610 >> Sihtrühm: Toas HTML-faile, teha sina-- 330 00:15:19,610 --> 00:15:22,226 [? Kas sa ?] [? lihtsalt nimetame seda?] [kuuldamatu] PHP faili? 331 00:15:22,226 --> 00:15:23,350 DAVID Humala: Hea küsimus. 332 00:15:23,350 --> 00:15:26,070 In web kontekstis, kus me oleme sõna otseses mõttes umbes üleminek, 333 00:15:26,070 --> 00:15:28,028 sa ei kasuta nn Jutt tipus, 334 00:15:28,028 --> 00:15:31,980 sest web server-- sageli programmi nimega Apache või Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, või mõnel teisel veebiserveri tarkvara, 336 00:15:37,470 --> 00:15:40,636 teab, et kui ta näeb dot PHP faili, et see 337 00:15:40,636 --> 00:15:42,010 peaks kulgema tõlk ta. 338 00:15:42,010 --> 00:15:43,468 See ei vaadata, et esimene rida. 339 00:15:43,468 --> 00:15:45,580 Nii see esimene rida trikk just siis, kui sa oled 340 00:15:45,580 --> 00:15:48,330 kirjalikult käsurea programs-- mida me ei tee super sageli 341 00:15:48,330 --> 00:15:52,510 aga see on meie viis ulatuda Meie C näiteid nüüd meie PHP. 342 00:15:52,510 --> 00:16:00,680 >> Nii saab tõepoolest ületada selle maailma käsurealt maailma veebis 343 00:16:00,680 --> 00:16:02,230 tehes järgmist. 344 00:16:02,230 --> 00:16:05,090 Lubage mul minna ja teha siin hetkeks. 345 00:16:05,090 --> 00:16:09,940 Nii et kui meil on veebiserver, või pigem Kui meil on oma sülearvuti siin, 346 00:16:09,940 --> 00:16:11,280 mis ma joonistan niimoodi. 347 00:16:11,280 --> 00:16:14,250 Ja siin on meil Interneti mingis vormis. 348 00:16:14,250 --> 00:16:18,210 Ja siis siin on meil server on building-- 349 00:16:18,210 --> 00:16:20,760 see on, kuidas internet works-- ja siin 350 00:16:20,760 --> 00:16:23,120 on server mõned tuled äkki. 351 00:16:23,120 --> 00:16:27,530 Mis tegelikult toimub Nende kahe ühendused? 352 00:16:27,530 --> 00:16:29,240 >> Nii selles hoones on veebiserver. 353 00:16:29,240 --> 00:16:31,420 See on lihtsalt arvuti mis jookseb mõned operatsioonisüsteemi 354 00:16:31,420 --> 00:16:34,561 süsteemis endale võibolla vaba tarkvara nimega Apache, mis CS50 IDE töötab. 355 00:16:34,561 --> 00:16:36,310 Nii saab tegelikult mõtle selle hoone 356 00:16:36,310 --> 00:16:38,579 nagu oleks hoone mis CSt0 IDE on salvestatud. 357 00:16:38,579 --> 00:16:40,870 See on koht, kus kõik on teil raamatupidamise, kus teil kõigil 358 00:16:40,870 --> 00:16:43,130 on oma veebiserver töötab, kõik sul 359 00:16:43,130 --> 00:16:45,730 on oma unikaalne URL, kui hakkasime arutama, 360 00:16:45,730 --> 00:16:47,280 ja sa näed rohkem P. seatud kuus. 361 00:16:47,280 --> 00:16:49,450 >> Siin on minu sülearvuti kusagil mujal internetis. 362 00:16:49,450 --> 00:16:54,550 Ja nii kui ma külastada URL, mis kuulub mulle, et internet liiklus läheb 363 00:16:54,550 --> 00:16:58,360 üle server, serveri Saanud HTTP request-- 364 00:16:58,360 --> 00:17:02,900 nagu saan index.html ja see on vastates, et veebilehel. 365 00:17:02,900 --> 00:17:04,280 Nii et üldine paradigma. 366 00:17:04,280 --> 00:17:07,089 Arvestades kõike üles Siiani täna kõike 367 00:17:07,089 --> 00:17:09,660 juhtub ainult piiridest selles hoones. 368 00:17:09,660 --> 00:17:12,910 Ma kasutan oma sülearvuti, kuid Olin ühendatud CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 nii et kõik need programmid Ma jooksin oli sees, et server ise. 370 00:17:17,369 --> 00:17:22,660 >> Aga nüüd, alustame uuesti kasutamist PHP kirjutada mõned tegelik programmid 371 00:17:22,660 --> 00:17:24,230 serveeritakse poolt veebiserver. 372 00:17:24,230 --> 00:17:30,320 Ja seda teha, ma lähen arvesse terve hulk näiteid 373 00:17:30,320 --> 00:17:33,710 et tutvustada seda ideed siin. 374 00:17:33,710 --> 00:17:38,500 Nii et see on omamoodi fancy viis kirjeldab programmeerimine paradigma. 375 00:17:38,500 --> 00:17:41,540 >> Ja tegelikult, kui te väljute CS50 või töö lõplik projekte, 376 00:17:41,540 --> 00:17:43,520 või võtta mõned järgida klassi, hakkate 377 00:17:43,520 --> 00:17:45,740 näha, et world-- eriti üles kasvanud 378 00:17:45,740 --> 00:17:48,300 keeltega, nagu C mis on super madal level-- 379 00:17:48,300 --> 00:17:51,290 aru, et seal on parem viise kirjutamise tarkvara. 380 00:17:51,290 --> 00:17:53,290 On teatud mustrid saab jälgida, 381 00:17:53,290 --> 00:17:57,640 teatud viisil korraldada oma faile ja viisid pange oma funktsioone, 382 00:17:57,640 --> 00:18:00,300 nii et pikk lugu lühike, maailma on tulnud välja 383 00:18:00,300 --> 00:18:04,340 terve hunnik lühendid ja nimed võimalusi programmeerimine. 384 00:18:04,340 --> 00:18:06,260 Need on vaid tehnikat võite kasutada. 385 00:18:06,260 --> 00:18:09,660 >> Ja üks neist on nn MVC, mudeli Vaata Controller. 386 00:18:09,660 --> 00:18:12,270 Ja see on lihtsalt, et Nüüd, liiga keeruline 387 00:18:12,270 --> 00:18:18,960 viis öelda, kuidas sa peaksid panema PHP-põhine veebisait, meie puhul. 388 00:18:18,960 --> 00:18:22,140 Kuidas korraldada oma faile, kuidas teil korraldada oma loogika, 389 00:18:22,140 --> 00:18:26,220 viisil, mis muudab lihtsamaks kirjuta keerulisem veebilehtedel? 390 00:18:26,220 --> 00:18:28,550 Ja tõepoolest, siis me kiiresti sinna p-set seitse. 391 00:18:28,550 --> 00:18:32,020 >> Nii maailmas MVC, sa lähed näha, et meie koodi saab üldiselt 392 00:18:32,020 --> 00:18:38,290 iseloomustada kas mudel koodi või kontroller koodi või vaadata koodi. 393 00:18:38,290 --> 00:18:40,200 Ja ma lähen lihtsustavad seda follows-- 394 00:18:40,200 --> 00:18:42,074 töötleja on aju oma programmi, 395 00:18:42,074 --> 00:18:44,100 see on juhul, kui kõik huvitav loogika juhtub. 396 00:18:44,100 --> 00:18:46,110 Nii et kõik me oleme kirjalikult seni klassis, 397 00:18:46,110 --> 00:18:48,210 on selline nagu kontroller code-- see kontrolliv 398 00:18:48,210 --> 00:18:50,585 oma programmi, teie silmad, oma tingimused, oma funktsioone 399 00:18:50,585 --> 00:18:52,100 ja muutujad ja kõik. 400 00:18:52,100 --> 00:18:56,160 >> Views, nüüd saab olema natuke ilmsem maailma veebis. 401 00:18:56,160 --> 00:18:59,360 Vaade on esteetika oma kodulehel. 402 00:18:59,360 --> 00:19:04,080 See, mida kasutaja sees-- pilte, HTML tabelid, HTML sildid ja kõik 403 00:19:04,080 --> 00:19:08,220 Selle, kõik koheva esteetilise asju, mis ei ole nii raske kirjutada, 404 00:19:08,220 --> 00:19:11,380 kuid on just see, mida sa tekitama, on nn arvates esteetika. 405 00:19:11,380 --> 00:19:13,880 Ja mudel, lõpuks läheb olema andmebaasi stuff-- mis 406 00:19:13,880 --> 00:19:16,510 hakkame sukeldudes kõik rohkem sel kolmapäeval. 407 00:19:16,510 --> 00:19:19,740 Nii kontroller on loogika, vaade on esteetiline värk, 408 00:19:19,740 --> 00:19:23,500 ja mudel saab olema, kui meil hoida meie tegelikke andmeid. 409 00:19:23,500 --> 00:19:26,410 >> Nii vaatame seda konkreetsemalt järgmise näitega. 410 00:19:26,410 --> 00:19:34,700 Ma lähen minu kataloog siin tänapäeva allikas code-- mis kõik 411 00:19:34,700 --> 00:19:35,770 on kättesaadavad Internetis. 412 00:19:35,770 --> 00:19:37,800 Ja ma lähen minema versioon null. 413 00:19:37,800 --> 00:19:41,500 Ja siin on-- olgem nimetame seda versioon nulli CS50 veebisaidil. 414 00:19:41,500 --> 00:19:43,010 Seal ei ole palju siin üldse. 415 00:19:43,010 --> 00:19:46,810 See on väga lihtne veebileht, mis on Tõenäoliselt kasutades, mida HTML tags-- lihtsalt 416 00:19:46,810 --> 00:19:48,970 arvan varasemast näiteid? 417 00:19:48,970 --> 00:19:49,890 >> Mis see on? 418 00:19:49,890 --> 00:19:53,920 H1-- ilmselt nii suur julgeid pealkiri, et logo up top, CS50. 419 00:19:53,920 --> 00:19:55,080 Ja mis veel on mängida? 420 00:19:55,080 --> 00:19:55,799 Jah? 421 00:19:55,799 --> 00:19:56,840 Sihtrühm: Tavalise nimekirja. 422 00:19:56,840 --> 00:19:59,990 DAVID Humala: Tavalise list-- nii UL tag ja võibolla paar LI sildid. 423 00:19:59,990 --> 00:20:01,840 Ja kui te ei mäleta neid, see ausalt ei ole oluline. 424 00:20:01,840 --> 00:20:04,170 Need on kohev omamoodi rakendamise üksikasju HTML 425 00:20:04,170 --> 00:20:06,378 et teil kiiresti otsida ja sa oled tagasi oma tee. 426 00:20:06,378 --> 00:20:10,040 Me keskendume rohkem programmeerimine ideid, mis on mahlasem tükki. 427 00:20:10,040 --> 00:20:12,890 >> Nii võtame lihtsalt kiire vaadata HTML-- ja tõepoolest 428 00:20:12,890 --> 00:20:16,880 kui ma avada vaade allikas siin, yup, See on täpselt, mis toimub siin. 429 00:20:16,880 --> 00:20:18,440 Seal on UL tag. 430 00:20:18,440 --> 00:20:20,630 Pesastatud sees see LI sildid. 431 00:20:20,630 --> 00:20:24,470 Ja siis ma laenatud URL tegeliku ainekava siin. 432 00:20:24,470 --> 00:20:27,570 >> Ja siis lectures.php on ilmselt 433 00:20:27,570 --> 00:20:31,640 teise dünaamiliselt loodud lehele et läheb on, olgem see-- ah, 434 00:20:31,640 --> 00:20:33,170 Esimese kahe nädala loengu. 435 00:20:33,170 --> 00:20:36,600 Nii nädala null ja nädalas ühe, olgem vaata see-- kui ma vaatan lehele allikas, 436 00:20:36,600 --> 00:20:38,120 Samuti super lihtne. 437 00:20:38,120 --> 00:20:42,430 Need viivad kaks lehekülge nimetatakse week0.php ja week1.php. 438 00:20:42,430 --> 00:20:44,040 Nii leiavad nüüd, mis toimub. 439 00:20:44,040 --> 00:20:50,630 >> Kui ma vajutan week0.php, minu arvuti teeb taotluse week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Veebiserver, teise nimega CS50 IDE, võtab, et virtuaalne ümbrikus. 442 00:20:58,110 --> 00:21:01,040 See on näha sõnum nagu, saada week0.php. 443 00:21:01,040 --> 00:21:05,060 Seejärel tõlgendamisel faili, top alla, vasakule right-- faili 444 00:21:05,060 --> 00:21:07,720 nimetatakse week0.php-- ja sülitab välja tulemusi. 445 00:21:07,720 --> 00:21:10,510 Nii seest seda faili week0.php, peab olema 446 00:21:10,510 --> 00:21:15,410 kontrolleri loogikast, et tekitab Selle HTML, ja me varsti näha. 447 00:21:15,410 --> 00:21:19,340 >> Aga nüüd, las ma klõpsake nädalal null, ja nüüd on meil kolmapäeval ja reedel, 448 00:21:19,340 --> 00:21:25,260 ja nüüd on meil slaidid aeglaselt nädalal null. 449 00:21:25,260 --> 00:21:27,400 Ja siis võiks meenutada see on tee tagasi millal. 450 00:21:27,400 --> 00:21:29,340 Nii et kõik see veebileht teeb. 451 00:21:29,340 --> 00:21:31,120 >> Nii Vaatleme, kuidas ta teeb seda. 452 00:21:31,120 --> 00:21:34,290 Ma lähen tagasi lähtekoodi siin, CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 ja ma lähen avada index.php. 454 00:21:36,660 --> 00:21:38,910 Ülaosas seda pilti on kamp kommentaarid. 455 00:21:38,910 --> 00:21:43,000 Ja siis keset seda pilti, et Selgub, ei PHP kood üldse. 456 00:21:43,000 --> 00:21:47,380 Sest kui sa ei ole ühegi Avatud sulg küsimärk PHP silte 457 00:21:47,380 --> 00:21:49,180 sa oled vaba lihtsalt panna HTML. 458 00:21:49,180 --> 00:21:51,480 >> Sest see, mida PHP tõlk peaks tegema, 459 00:21:51,480 --> 00:21:53,938 on, kui ta loeb seda file-- ülevalt alla, vasakule right-- 460 00:21:53,938 --> 00:21:59,100 vaid tõlgendab kood näeb ta vahel need nurksulud küsimärk. 461 00:21:59,100 --> 00:22:02,380 Ja kõike muud, mis seda ei ole tunnustavad PHP, see lihtsalt sülitab välja. 462 00:22:02,380 --> 00:22:05,080 Ja HTML on üks värk see lihtsalt sülitama. 463 00:22:05,080 --> 00:22:09,090 >> Nii et see fail võib olla kutsutud index.html, 464 00:22:09,090 --> 00:22:11,690 aga ma nimetades kõike dot PHP hüppelaud. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- sarnaselt underwhelming, see on lihtsalt mõned HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php sarnaselt vaid mõned HTML. 467 00:22:19,840 --> 00:22:22,300 >> Aga nüüd paneme kohta lõpmatuseni inseneri mütsi, 468 00:22:22,300 --> 00:22:24,400 ja mõelda, kuidas me suudame parandada selle. 469 00:22:24,400 --> 00:22:28,541 See ei ole raske teha, kuid ma selline hajutatud arvesse kopeeri ja kleebi. 470 00:22:28,541 --> 00:22:31,540 Ja tegelikult, kui ma teen nädalas kaks, siis tean, mida ma ilmselt tegema hakkad? 471 00:22:31,540 --> 00:22:34,940 Ma lähen minema week1.php, ma olen läheb esile kõike. 472 00:22:34,940 --> 00:22:39,110 Ma lähen kopeerida, kleepida uude faili nimega week2.php, 473 00:22:39,110 --> 00:22:42,440 näpistama mõned URL, ja mu teel. 474 00:22:42,440 --> 00:22:45,240 >> Nii selle põhjal, mida me oleme näinud C juba, 475 00:22:45,240 --> 00:22:46,860 see ei tundu õige, loodetavasti. 476 00:22:46,860 --> 00:22:49,610 Copy, paste harva õige lahendus. 477 00:22:49,610 --> 00:22:51,429 Mida me saame alustada teha, et parandada see on? 478 00:22:51,429 --> 00:22:53,345 Kus on võimalused parema disaini? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Selleks ajaks, kui ma saan nädalas kaheksa, see läheb 481 00:22:58,760 --> 00:23:00,910 olla tõesti tüütu kui ma tahan muuta 482 00:23:00,910 --> 00:23:03,930 fondi iga üks minu lehekülge, või kui ma tahan 483 00:23:03,930 --> 00:23:06,522 struktuuri muuta skeemi. 484 00:23:06,522 --> 00:23:08,396 Nii et kui on võimalus parema disaini? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Noh, olgem kaaluma, mida on jagada kõigi nende faile. 487 00:23:15,160 --> 00:23:21,696 >> Siin nädalal üks, siin on nädal null, siin on lectures.php, 488 00:23:21,696 --> 00:23:25,790 siin on index.php-- mis on sama ja Mis on erinev, jämedalt öeldes, 489 00:23:25,790 --> 00:23:26,760 kõigis nendes faile? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Jah? 492 00:23:32,060 --> 00:23:34,560 >> Sihtrühm: [kuuldamatu] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID Humala: OK, hea. 495 00:23:42,160 --> 00:23:46,115 Nii et muster, kindlasti, kusjuures Iga kord, kui ma valida loeng, 496 00:23:46,115 --> 00:23:48,250 Oleksin tekitama väga sarnane otsin lehel. 497 00:23:48,250 --> 00:23:50,375 Ja nii ma võibolla võimendada asjaolu, et tõesti, 498 00:23:50,375 --> 00:23:53,060 me teadlikult numbriliselt indekseeritud meie lectures-- 499 00:23:53,060 --> 00:23:55,290 kui ma ei pane isegi rohkem sõnad oma vastuse. 500 00:23:55,290 --> 00:23:59,984 Ja mis on ainus asi, tõesti, mis on muutumas vahel nädalal one-- 501 00:23:59,984 --> 00:24:02,400 ja andke mulle keri nii et see on enam-vähem sama place-- 502 00:24:02,400 --> 00:24:05,480 Nii et siin on nädala null, umbes tipus. 503 00:24:05,480 --> 00:24:12,370 Siin on nädalas üks, nädal null, nädalas üks, nädal null. 504 00:24:12,370 --> 00:24:14,370 OK, sõna otseses mõttes, kui sa tead, no programm üldse, 505 00:24:14,370 --> 00:24:16,286 see on nüüd just nagu mustrite mängu. 506 00:24:16,286 --> 00:24:17,200 Mis siis erinevad? 507 00:24:17,200 --> 00:24:18,765 Jah? 508 00:24:18,765 --> 00:24:19,777 >> Sihtrühm: [kuuldamatu] 509 00:24:19,777 --> 00:24:22,360 DAVID Humala: Hea, et tiitli muutub, õige pisut. 510 00:24:22,360 --> 00:24:24,010 Zero läheb muidugi ühele. 511 00:24:24,010 --> 00:24:25,570 Sama asi toimub ka H1 tag. 512 00:24:25,570 --> 00:24:28,790 Ja me ei ole päris näha seda nii lihtsalt, sest URL on veidi pikk. 513 00:24:28,790 --> 00:24:30,670 Aga need URL on pisut muutunud. 514 00:24:30,670 --> 00:24:34,490 >> Aga mis ei muutu tähendab, julgen st enamik sisu page-- 515 00:24:34,490 --> 00:24:38,530 HTML tag on sama, juht on sama pealkiri on peaaegu sama, 516 00:24:38,530 --> 00:24:40,659 keha on sama, ja peaaegu kõik muu 517 00:24:40,659 --> 00:24:42,450 on sama va neid vähe tweaks. 518 00:24:42,450 --> 00:24:45,310 Niisiis, kuidas me saame minna faktooring osa sellest välja? 519 00:24:45,310 --> 00:24:48,740 >> Noh andke mulle ettepaneku täpselt et järgmise versiooni. 520 00:24:48,740 --> 00:24:53,890 Nii et siin on versioon ühest, mul on täpselt Sama faile, pluss paar teistega. 521 00:24:53,890 --> 00:24:59,730 Siin index.php-- ja isegi kui olete kunagi näinud PHP enne, 522 00:24:59,730 --> 00:25:05,511 mida ma ilmselt teeme seda probleemi lahendada problem-- selle põhjal, mida te näete siin? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Jah, on see, et kerge kohustus? 525 00:25:12,760 --> 00:25:13,450 No? 526 00:25:13,450 --> 00:25:16,020 Jah, minna. 527 00:25:16,020 --> 00:25:17,380 >> Sihtrühm: [kuuldamatu] 528 00:25:17,380 --> 00:25:18,380 >> DAVID Humala: Yep. 529 00:25:18,380 --> 00:25:20,380 >> Sihtrühm: [kuuldamatu] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID Humala: Ma vajan sind rääkida natuke kõvemini. 532 00:25:28,669 --> 00:25:31,084 >> Sihtrühm: [kuuldamatu] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID Humala: OK, hea. 535 00:25:36,660 --> 00:25:38,620 Ja ma think-- see oli raske kuulda sina-- kuid ma 536 00:25:38,620 --> 00:25:42,690 mõelda, mida te saate juures on see, et sildid, mis olid ühised up top, 537 00:25:42,690 --> 00:25:47,710 ja silte, mis olid ühised kohta alt, on nüüdseks arvutatud välja, 538 00:25:47,710 --> 00:25:51,140 või alandati millised failid? 539 00:25:51,140 --> 00:25:53,476 Header.php ja footer.php-- ja me läheme 540 00:25:53,476 --> 00:25:55,600 teha mõned tweaks pöörata tähelepanu just 541 00:25:55,600 --> 00:25:59,370 tõstatatud numbrid muutuvad, sest Näiteks, kui ma kuulsin, et sa õigesti. 542 00:25:59,370 --> 00:26:02,060 >> Aga see tundub olevat põhisisu ta. 543 00:26:02,060 --> 00:26:04,820 Kui seal oli suur hulk koondamise ülaosas lehel 544 00:26:04,820 --> 00:26:06,736 ja suur hulk koondamise allosas, 545 00:26:06,736 --> 00:26:09,280 olgem sõna otseses mõttes lihtsalt esile ja lõigatud, et sisu välja, 546 00:26:09,280 --> 00:26:13,270 pane see eraldi file-- nagu idee CSS, kus me võtsime välja 547 00:26:13,270 --> 00:26:16,710 väga sarnane esteetika, panna see eraldi dot PHP faili 548 00:26:16,710 --> 00:26:20,340 kasuta nõuavad mechanism-- mis on nagu C teravad include-- mis 549 00:26:20,340 --> 00:26:23,570 on sisuliselt nagu öelda minna Haara sisu header.php, 550 00:26:23,570 --> 00:26:25,370 ja kopeeri ja kleebi need siin. 551 00:26:25,370 --> 00:26:29,490 >> Aga mida see tähendab, et nüüd index.php, mul on need kaks rida. 552 00:26:29,490 --> 00:26:32,130 In lectures.php, ma ka on need kaks rida. 553 00:26:32,130 --> 00:26:35,230 In week0.php, ma ka on need kaks rida. 554 00:26:35,230 --> 00:26:38,380 >> Nüüd, kui ma tahan muuta pealkiri kõik mu lehti, 555 00:26:38,380 --> 00:26:40,530 või ma tahan muuta põhistruktuuri, 556 00:26:40,530 --> 00:26:44,380 Ma ei muuda see nüüd vaid üks koht, või kaks places-- päis ja jalus, 557 00:26:44,380 --> 00:26:45,429 võrra. 558 00:26:45,429 --> 00:26:47,970 Nüüd kood on hakanud otsima veidi segasena, eks? 559 00:26:47,970 --> 00:26:53,590 Aga kui sa arvad, milline leht on doing-- kui ma taotleva week0.php, 560 00:26:53,590 --> 00:26:59,880 nagu oleval joonisel üle siin-- kui week0.php taotletakse, 561 00:26:59,880 --> 00:27:00,960 Mida see tähendab? 562 00:27:00,960 --> 00:27:04,410 >> Sõna otseses mõttes, see fail on taotleb brauserit. 563 00:27:04,410 --> 00:27:06,240 Veebist server-- a.k.a. 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- haarab see faili, week0.php ja loeb 565 00:27:09,250 --> 00:27:10,780 see ülevalt alla, vasakult paremale. 566 00:27:10,780 --> 00:27:15,400 On line üks, siis kohe tekib Avatud sulg küsimärk PHP, nõuavad 567 00:27:15,400 --> 00:27:17,872 päise kaudu dot PHP, ja nii mida PHP tõlk 568 00:27:17,872 --> 00:27:20,580 does--, mis on ehitatud web server, sest me eelseadistatud 569 00:27:20,580 --> 00:27:24,580 seda sina-- see läheb automaatselt arvesse header.php, koopiad sisu, 570 00:27:24,580 --> 00:27:25,640 kleebib need siia. 571 00:27:25,640 --> 00:27:28,790 >> Aga siis tõlgi kohtumisi küsimärk lähedal sulg, 572 00:27:28,790 --> 00:27:30,320 nii et kõik on tehtud mõelnud. 573 00:27:30,320 --> 00:27:33,400 Nüüd lihtsalt pimesi sülitab välja rida kaks kuni seitse, 574 00:27:33,400 --> 00:27:35,240 sest see on lihtsalt toores HTML. 575 00:27:35,240 --> 00:27:38,470 Gets liinile kaheksa, ja teeb seda sama magic again-- failide avamisega, 576 00:27:38,470 --> 00:27:41,460 haarates sisu ja nõudes neilt või kleepimine 577 00:27:41,460 --> 00:27:42,480 Olgu siis või ei. 578 00:27:42,480 --> 00:27:44,210 >> Aga ma lihtsalt vihjas viga. 579 00:27:44,210 --> 00:27:48,610 See on osaline samm tagasi, sest kui me vaatame header.php, 580 00:27:48,610 --> 00:27:50,850 Olen selline lõigatud nurgas. 581 00:27:50,850 --> 00:27:56,250 Mis funktsioon ma loobuma, et saada see vaieldav parem kujundus? 582 00:27:56,250 --> 00:27:57,305 Jah? 583 00:27:57,305 --> 00:27:58,180 Sihtrühm: [kuuldamatu] 584 00:27:58,180 --> 00:28:00,570 DAVID Humala: Jah, ma selline Lõigatud mittetriviaalne nurgas. 585 00:28:00,570 --> 00:28:04,489 Sa märkis, et see, mida oli muutumas oli pealkiri, number pealkiri, 586 00:28:04,489 --> 00:28:05,530 ja number H1. 587 00:28:05,530 --> 00:28:08,170 Nii et minu lahendus oli OK, olgem lihtsalt ümber lehel 588 00:28:08,170 --> 00:28:10,080 ja mitte tegeleda, et probleem üldse. 589 00:28:10,080 --> 00:28:12,130 Nii et osalise samm tagasi kindlasti. 590 00:28:12,130 --> 00:28:14,300 >> Aga mis on tähelepanuväärne siin Kas see, mida ma olen teinud 591 00:28:14,300 --> 00:28:17,200 on muidu tegureid kõik ühise kraami. 592 00:28:17,200 --> 00:28:21,520 Ja footer.php, märkate Ma tegureid kõik selle, ehkki vähemal, 593 00:28:21,520 --> 00:28:22,790 ühise kraami. 594 00:28:22,790 --> 00:28:26,070 Nii et ma pean kuidagi nüüd võimalik astuda samm edasi ning määrata 595 00:28:26,070 --> 00:28:27,160 et pealkiri küsimusi. 596 00:28:27,160 --> 00:28:28,180 Nii teeme seda. 597 00:28:28,180 --> 00:28:35,060 >> Lubage mul minna minu teine ​​versioon Siit võivad mis jällegi on sama faile 598 00:28:35,060 --> 00:28:36,825 välja arvatud üks uus täiendus. 599 00:28:36,825 --> 00:28:38,950 Ja see on natuke rohkem paljusõnaline, kuid vaatame, kas me 600 00:28:38,950 --> 00:28:40,550 ei kiusa peale, mis toimub siin. 601 00:28:40,550 --> 00:28:45,370 Nii et selle asemel, et nõuda header.php ja footer.php, 602 00:28:45,370 --> 00:28:50,180 Mulle tundub, et saab ainult nõuda, et üks file-- nimetatakse muidugi helpers.php. 603 00:28:50,180 --> 00:28:52,560 Ja andke mulle ette näha nüüd, mis sees on helpers.php 604 00:28:52,560 --> 00:28:55,330 on lihtsalt hunnik funktsioone mis ma kirjutasin, just nagu enne. 605 00:28:55,330 --> 00:28:57,550 Aga ma kutsusin ta helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Nüüd ilmselt ka line kolm ja 10, ma olen 607 00:29:00,370 --> 00:29:02,840 kutsudes kaks functions-- muuda päise kaudu, muudab jalust. 608 00:29:02,840 --> 00:29:05,040 Need ei tule PHP, ma kirjutasin need endale. 609 00:29:05,040 --> 00:29:07,880 Ja ma panen neile helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Nüüd oleme näinud ainult selle süntaksit kord, ja see oli super lühike. 611 00:29:11,210 --> 00:29:15,330 Aga see on ilmselt argument muuta päise kaudu, funktsioon. 612 00:29:15,330 --> 00:29:16,450 Miks ma seda tean? 613 00:29:16,450 --> 00:29:18,522 Noh siin on tihe paren, siin on avatud paren. 614 00:29:18,522 --> 00:29:21,230 Ja muidugi just nagu C, midagi nende vahel, sulgudes 615 00:29:21,230 --> 00:29:23,350 on input-- või argument, et funktsioon. 616 00:29:23,350 --> 00:29:26,710 >> Milline on andmete tüüpi see argument, põhjal, mida ma olen esile? 617 00:29:26,710 --> 00:29:30,820 Mida need nurksulud näitavad, põhineb eelmisel nädalal? 618 00:29:30,820 --> 00:29:33,390 Jah, see on array-- spetsiaalselt assotsiatiivne massiiv. 619 00:29:33,390 --> 00:29:35,700 Ja seda süntaksit küll on veidi funky, 620 00:29:35,700 --> 00:29:38,860 aga see on lihtsalt möödaminnes ühes põhiväärtus paari. 621 00:29:38,860 --> 00:29:43,530 Oluline on, tsitaat lõppeb Pealkiri ja väärtus on CS50. 622 00:29:43,530 --> 00:29:46,220 >> Kui me oleksime seda teinud C, siis võiks selle asemel 623 00:29:46,220 --> 00:29:49,400 vaadata pigem seda, lihtsalt quote lõppeb CS50-- 624 00:29:49,400 --> 00:29:52,460 või tegelikult oleks lokkis traksid, või midagi sellist, et C, 625 00:29:52,460 --> 00:29:55,580 kus võti on null, ja väärtus on CS50. 626 00:29:55,580 --> 00:29:59,840 Aga jälle, PHP, kuigi süntaks on jälle natuke imelik, 627 00:29:59,840 --> 00:30:02,860 see võimaldab teil läbida sõnad numbrite asemel 628 00:30:02,860 --> 00:30:05,120 siduda võtmed väärtustega. 629 00:30:05,120 --> 00:30:06,390 >> Mida see kõik tähendab? 630 00:30:06,390 --> 00:30:09,750 Kui ma minema helpers.php, Vaatame seda funktsiooni. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, pigem renderHeader on minu funktsioon, 632 00:30:13,620 --> 00:30:16,220 ja ma tean, et kuna ma näen funktsiooni märksõna siin. 633 00:30:16,220 --> 00:30:19,450 See on uue, C- see ilmselt võtab argumendiks nimetatakse data-- 634 00:30:19,450 --> 00:30:22,400 aga ma oleks võinud nimetada seda midagi, kuid ma helistasin ta andmed, 635 00:30:22,400 --> 00:30:25,090 lihtsalt olla natuke clean-- ja lihtsalt võtta vist, eriti 636 00:30:25,090 --> 00:30:28,173 Kui te olete programmeeritud muul kõrgema taseme keele enne, midagi 637 00:30:28,173 --> 00:30:29,820 Ülaltoodud C, kontseptuaalselt. 638 00:30:29,820 --> 00:30:33,820 >> Mida tähendab võrdse avatud sulg nurksulg ilmselt tähendab? 639 00:30:33,820 --> 00:30:35,540 Või milline võiks see tähendab? 640 00:30:35,540 --> 00:30:39,660 Meil ei ole seda näinud C. Jah? 641 00:30:39,660 --> 00:30:40,480 >> Tühja rea. 642 00:30:40,480 --> 00:30:45,440 Täpsemalt, see tähendab, et kui kasutaja ei helista renderHeader 643 00:30:45,440 --> 00:30:49,340 koos argument, ma olen ikka läheb on argument nimetatakse andmed, 644 00:30:49,340 --> 00:30:52,327 kuid selle default väärtus on läheb tühja rida. 645 00:30:52,327 --> 00:30:53,660 Nii et see on lihtsalt kena mugavuse. 646 00:30:53,660 --> 00:30:56,493 Ma ei pea kisa kasutaja, või ütled kasutada oma funktsiooni valesti. 647 00:30:56,493 --> 00:30:59,849 Ma lihtsalt anda kasutajale vaikimisi väärtust, kui ma ei huvita. 648 00:30:59,849 --> 00:31:01,890 Nüüd on see funktsioon, ma olen läheb siputan käed. 649 00:31:01,890 --> 00:31:07,620 Aga see väljavõte funktsioon võimaldab meil läbivad need muutujad andmeid 650 00:31:07,620 --> 00:31:10,360 arvesse header.php järgmisel viisil. 651 00:31:10,360 --> 00:31:13,100 Ja see on viimane tükk, Ma arvan, funky süntaks. 652 00:31:13,100 --> 00:31:15,860 Siin on minu uus versioon of header.php-- see 653 00:31:15,860 --> 00:31:20,140 tavatses öelda, sõna otseses mõttes, avatud sulg pealkiri CS50, ja see oli see. 654 00:31:20,140 --> 00:31:21,766 Ja sama asi H1. 655 00:31:21,766 --> 00:31:24,310 >> Nüüd ilmselt ütleb midagi päris funky. 656 00:31:24,310 --> 00:31:28,030 Ja las ma seda lihtsustada hetkeks järgmiselt. 657 00:31:28,030 --> 00:31:31,020 See on see, mida ma olen muutsin pealkirja olema. 658 00:31:31,020 --> 00:31:35,140 Kuid see muutub veidi kole pidevalt avatud sulgudes PHP, 659 00:31:35,140 --> 00:31:36,610 ja siis kasuta väljatrükki. 660 00:31:36,610 --> 00:31:40,810 Selgub, et PHP on stenografisti märge selle, mis on lihtsalt 661 00:31:40,810 --> 00:31:45,050 võrdusmärk, mis on tehniliselt funktsiooni nimetatakse kaja asemel print, 662 00:31:45,050 --> 00:31:46,800 kuid see on sama asi, tõhusalt. 663 00:31:46,800 --> 00:31:48,440 >> See lihtsalt tundub parem. 664 00:31:48,440 --> 00:31:50,510 See on lihtsalt süntaktiliste suhkrut, kui soovite, 665 00:31:50,510 --> 00:31:52,260 mis teeb mu koodi vaadata veidi parem. 666 00:31:52,260 --> 00:31:54,010 Selgub aga, ja me näeme seda jälle 667 00:31:54,010 --> 00:31:57,420 Enne pikk, peame nimetame seda tüütult pikk funktsiooni nimetatakse 668 00:31:57,420 --> 00:32:00,582 HTML erilist sümbolid PHP, sest selgub, 669 00:32:00,582 --> 00:32:02,790 on teatud sisendite et kasutaja võib meile anda, 670 00:32:02,790 --> 00:32:05,160 või et kasutajad võiksid meile, et ei kavatse murda meie veebilehel. 671 00:32:05,160 --> 00:32:07,035 Aga me näeme, et järgmisel nädalas JavaScript. 672 00:32:07,035 --> 00:32:10,740 Aga nüüd, lihtsalt tean, et Selle faili headers.php, lihtsalt 673 00:32:10,740 --> 00:32:13,040 võtab tiitli, et Ma möödunud aastal, et teha 674 00:32:13,040 --> 00:32:17,380 kindel, et see on ohutu süstida web leht ja see sülitab välja nagu mu tiitel 675 00:32:17,380 --> 00:32:18,640 ja kui minu H1. 676 00:32:18,640 --> 00:32:24,440 Nii et kui ma minema see versioon nüüd, märgata, et loengud on selle pealkirja taga, 677 00:32:24,440 --> 00:32:28,630 nädal null on selle pealkirja taga, ja Tõepoolest, HTML Ma teeniva 678 00:32:28,630 --> 00:32:32,110 on identne sellega, mida minu esimene versioon was-- välja arvatud minu tühik, 679 00:32:32,110 --> 00:32:35,150 sest ma olen hakanud vormindamist minu kood natuke teistmoodi. 680 00:32:35,150 --> 00:32:38,082 Aga ma olen loodud kõik koodi ma hoolin. 681 00:32:38,082 --> 00:32:39,790 Nii et lubage mul peatuda üks hetk ja vaata 682 00:32:39,790 --> 00:32:42,200 kas seal on mingeid küsimusi või segadust lõin. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Olgu, nii et vaatame väänata natuke raskem siin 685 00:32:48,150 --> 00:32:51,500 et näha, kas seal on võimaluse parandada. 686 00:32:51,500 --> 00:32:56,130 Helpers.php oli ka see funktsioon, nimetatakse renderFooter. 687 00:32:56,130 --> 00:32:59,652 Ja mis väärib märkimist renderHeader ja renderFooter? 688 00:32:59,652 --> 00:33:02,610 Ja jälle, tänapäeva eesmärkidel, teame et ekstrakt funktsioon on lihtsalt 689 00:33:02,610 --> 00:33:08,280 minu viis möödaminnes argumendid arvesse header.php ja footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Vabandust? 692 00:33:11,780 --> 00:33:13,056 >> Sihtrühm: [kuuldamatu] 693 00:33:13,056 --> 00:33:15,180 DAVID Humala: Jah, ma ainult muutis nõuavad line. 694 00:33:15,180 --> 00:33:19,410 Nii sõna otseses mõttes, ma olen pannud patu kopeerimine ja kleepimine, veel kord. 695 00:33:19,410 --> 00:33:21,920 See ei ole suur number joonte, kuid tulevad nüüd-- 696 00:33:21,920 --> 00:33:25,220 kui ma kopeerige kõik lihtsalt muuta üks väike sõna, 697 00:33:25,220 --> 00:33:28,610 ja üks väike sõna, et Alan juhib väljapääs on jalusesse siin versus header siin. 698 00:33:28,610 --> 00:33:30,670 Muidu on kõik identsed, välja arvatud, 699 00:33:30,670 --> 00:33:32,180 muidugi funktsioon nimed. 700 00:33:32,180 --> 00:33:33,690 Mida saaksime teha paremini? 701 00:33:33,690 --> 00:33:39,810 >> Noh las ma avada see versioon siin, kusjuures helpers.php, 702 00:33:39,810 --> 00:33:42,300 Miks ma ei lihtsalt saada natuke targemaks selle kohta? 703 00:33:42,300 --> 00:33:46,410 Kirjutage veidi keerulisem koodi, kuid nimetavad seda muuta? 704 00:33:46,410 --> 00:33:48,470 Mida ma olen muutnud? 705 00:33:48,470 --> 00:33:51,770 >> See võtab argument now-- kaks argumenti, andmed veel. 706 00:33:51,770 --> 00:33:54,444 Ja mis siis on esimene Nimi tuleneb ilmselt kasutatakse, 707 00:33:54,444 --> 00:33:55,860 selle põhjal, mida sa loed siin? 708 00:33:55,860 --> 00:33:58,452 Isegi kui mõned süntaks on veel uus. 709 00:33:58,452 --> 00:33:59,660 Mis on dollari märk mall? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Vabandust? 712 00:34:03,016 --> 00:34:03,710 >> Sihtrühm: Päise või jaluse. 713 00:34:03,710 --> 00:34:04,510 >> DAVID Humala: Päise või jaluse. 714 00:34:04,510 --> 00:34:07,134 Nii ilmselt ma otsustasin, et kui ainus asi, mis muutuvad 715 00:34:07,134 --> 00:34:10,159 mida template ma tahan to print-- ja malli 716 00:34:10,159 --> 00:34:13,100 Ma mõtlen seda on plaan kood, mis ma tahan väljund, 717 00:34:13,100 --> 00:34:16,350 aga ma tahan ühendada mõne values-- nii et kui see on ainuke päise kaudu 718 00:34:16,350 --> 00:34:20,440 või jalus, miks ma ei parameterize seda ja nimetavad argument dollari märk 719 00:34:20,440 --> 00:34:21,409 mall? 720 00:34:21,409 --> 00:34:26,250 Ja siis see funky süntaks lubab mind luua path vaheldub siin. 721 00:34:26,250 --> 00:34:28,030 >> Nii dollari märk tee on varieeruv. 722 00:34:28,030 --> 00:34:31,120 Mida see süntaks teha, kui te olete juba tuttav? 723 00:34:31,120 --> 00:34:32,512 Jah? 724 00:34:32,512 --> 00:34:34,065 >> Sihtrühm: [kuuldamatu] 725 00:34:34,065 --> 00:34:34,940 DAVID Humala: Täpselt. 726 00:34:34,940 --> 00:34:37,600 Kui mall on tsitaat lõppeb, päise kaudu, või kui mall on, 727 00:34:37,600 --> 00:34:41,170 tsitaat lõppeb, jalus, et liin on et ma olen rõhutanud, line kaheksa, 728 00:34:41,170 --> 00:34:46,330 on lihtsalt ära, et nimi, nagu päise kaudu, ja concatenating see dot PHP. 729 00:34:46,330 --> 00:34:49,750 Nii et me ei pea seda operaator C. See dot operaator 730 00:34:49,750 --> 00:34:54,520 hämmastav asi PHP-- kui sa oled tuttav JavaScript või Java, 731 00:34:54,520 --> 00:34:56,949 saate lisaks kirjutama teha ahel. 732 00:34:56,949 --> 00:34:59,974 >> In C, see on valu neck-- ja ma olen nii kahju, p-set kuus, 733 00:34:59,974 --> 00:35:02,390 sa lähed pead tegema see-- see on tüütu 734 00:35:02,390 --> 00:35:03,930 to concatenate stringid. 735 00:35:03,930 --> 00:35:04,670 Miks? 736 00:35:04,670 --> 00:35:06,580 Noh, sest kui sul string, mis on see pikk, 737 00:35:06,580 --> 00:35:09,538 ja teine ​​string et see on pikk, sa ei saa lihtsalt kannab neid koos. 738 00:35:09,538 --> 00:35:11,070 Mida sa selle asemel pead tegema C? 739 00:35:11,070 --> 00:35:11,680 Jah? 740 00:35:11,680 --> 00:35:12,380 >> Sihtrühm: [kuuldamatu] 741 00:35:12,380 --> 00:35:15,090 >> DAVID Humala: Sa pead malloc mälu või kasutada massiivi virnas. 742 00:35:15,090 --> 00:35:17,214 Ja sa tegelikult teha, et massiivi piisavalt suur 743 00:35:17,214 --> 00:35:20,940 sobib see pluss see, pluss kurakriips null. 744 00:35:20,940 --> 00:35:24,994 Siis sisud kokku, kasutades segage kassi või käsitsi jaoks silmus, 745 00:35:24,994 --> 00:35:26,160 või mitmeid tehnikaid. 746 00:35:26,160 --> 00:35:27,760 Ja me näitan sulle paar p-set kuus. 747 00:35:27,760 --> 00:35:29,080 >> See on tüütu. 748 00:35:29,080 --> 00:35:34,190 Ja see on tõesti see, mida ma mõtlen umbes Selle versus see-- nagu C versus PHP. 749 00:35:34,190 --> 00:35:36,870 Sa lihtsalt saada nii palju funktsionaalsust tasuta 750 00:35:36,870 --> 00:35:39,030 nii et saate keskenduda, Ideaalis on lõbus 751 00:35:39,030 --> 00:35:41,190 osa kodeerimine, siis Projekti soovite lahendada, 752 00:35:41,190 --> 00:35:43,190 mitte madal eritunnuste. 753 00:35:43,190 --> 00:35:49,840 >> Nii see lihtsalt tekitab header.php või footer.php põhineb kuhu ma helistada. 754 00:35:49,840 --> 00:35:52,280 Ja tõepoolest, kui ma lähen arvesse index.php, teate 755 00:35:52,280 --> 00:35:56,230 kõik, mis changed-- asemel kutsudes muudavad päise kaudu või muuta jalus, 756 00:35:56,230 --> 00:36:00,230 Ma helistan muuta, millele järgneb nimi malli, et ma tahan teha. 757 00:36:00,230 --> 00:36:02,370 Ja te näete seda ka probleemide pani seitse, 758 00:36:02,370 --> 00:36:05,530 kusjuures me laseme teil kasutada sama funktsiooni, et teha kimpu 759 00:36:05,530 --> 00:36:07,550 ja kobarad erinevaid veebilehti. 760 00:36:07,550 --> 00:36:10,570 >> Nii et pigem elada liiga palju neid details-- 761 00:36:10,570 --> 00:36:13,210 mis te näete jälle Ülesanded seven-- vaatame 762 00:36:13,210 --> 00:36:16,850 at nüüd alguses lahenduse to huvitavama probleemi. 763 00:36:16,850 --> 00:36:19,310 Siiani midagi me oleme teha on salvestatud andmed. 764 00:36:19,310 --> 00:36:22,920 Tegelikult ainus kord, kui me eales salvestatud midagi, mida me oleme teinud selles klassis 765 00:36:22,920 --> 00:36:31,030 on, kui meil oli väga lihtne demo mõnda aega tagasi, kusjuures me kasutasime faili IO C, 766 00:36:31,030 --> 00:36:34,520 ja ma arvan, et ma kirjutada minu nimi, ja Hannah nimi ja Maria nime, 767 00:36:34,520 --> 00:36:37,610 või äkki Andy nimi ja siis salvestatud CSV-failina 768 00:36:37,610 --> 00:36:39,430 CSV-faili fail. 769 00:36:39,430 --> 00:36:43,530 >> Ja me kasutasime fopen-- ma arvan me kasutasime fprintf nagu ma mäletan, 770 00:36:43,530 --> 00:36:44,910 ja me salvestatud faili. 771 00:36:44,910 --> 00:36:46,920 Nüüd, see on kõige lihtsam andmebaasi vormis. 772 00:36:46,920 --> 00:36:50,230 Kui sa tahad teha veebileht Frosh IEd programmi, millega uustulnukat 773 00:36:50,230 --> 00:36:53,390 saab registreeruda sport, sa ideaalis tahan midagi teha, et andmed. 774 00:36:53,390 --> 00:36:55,370 Eelmisel nädalal tegime midagi koos data-- me lihtsalt ütles, 775 00:36:55,370 --> 00:36:56,661 olete registreeritud, tegelikult mitte. 776 00:36:56,661 --> 00:36:58,950 Või äkki ma emailitaks Proctor, ja see oli see. 777 00:36:58,950 --> 00:37:02,110 >> Aga see oleks tore, kui suutsin anda, et Proctor CSV faili, 778 00:37:02,110 --> 00:37:03,340 nagu Exceli faili. 779 00:37:03,340 --> 00:37:05,090 Või veel parem, see oleks tore, kui suutsin 780 00:37:05,090 --> 00:37:08,830 pane neid kasutajaid nimed ja Dorm nimed ja kõik, mis 781 00:37:08,830 --> 00:37:11,740 andmebaasiks, et lihtsalt elab igavesti, 782 00:37:11,740 --> 00:37:13,530 kuni ma valida kustutada andmeid. 783 00:37:13,530 --> 00:37:15,645 Andmebaas, mis võimaldab mul päringuid informatsiooni. 784 00:37:15,645 --> 00:37:18,070 Ja tõepoolest, see on, mida andmebaasis on. 785 00:37:18,070 --> 00:37:20,470 >> Tutvustame täna, ja Järgmisel nädalal Ka tehnoloogia 786 00:37:20,470 --> 00:37:25,020 nimetatakse SQL-- struktureeritud Query Keel, mida mõni teine ​​keel. 787 00:37:25,020 --> 00:37:28,750 See on sisuliselt programmeerimine keeles, kuid andmebaasides. 788 00:37:28,750 --> 00:37:31,760 Ja andmebaas nüüd, lihtsalt mõtle kui super fancy versioon 789 00:37:31,760 --> 00:37:35,710 Microsoft Exceli või Google Arvutustabeleid või Apple numbrid. 790 00:37:35,710 --> 00:37:39,950 See on üldiselt programm, mis võimaldab salvestada terve hulk andmeid 791 00:37:39,950 --> 00:37:43,960 ridade ja veergudena, üsna nagu võite Excel. 792 00:37:43,960 --> 00:37:47,100 >> Aga mis on kena, eriti kui me ei ole super tuttav Excel, 793 00:37:47,100 --> 00:37:52,040 Mis SQL võimaldab teil teha on päringu seda teabe kirjutamisel rida koodi 794 00:37:52,040 --> 00:37:55,220 kus saab ka siis, kui teie andmebaasis on miljon rida seda, 795 00:37:55,220 --> 00:37:57,190 leiad asju super kiire. 796 00:37:57,190 --> 00:37:59,950 Tegelikult Excel on eriti halb suure andmekogumi saatmiseks. 797 00:37:59,950 --> 00:38:02,460 Ja tegelikult, kuni mõne aastat tagasi, osutus 798 00:38:02,460 --> 00:38:08,890 Excel vaid võimaldavad salvestada kuni 65535 rida data-- mis 799 00:38:08,890 --> 00:38:12,020 kõlab palju, kuid aega olin Kraadiõppeüliõpilase, 800 00:38:12,020 --> 00:38:14,920 ja ma mäletan otsa komistamine sest ma teeniva 801 00:38:14,920 --> 00:38:17,900 CSV faile minu uurimistöö ja ma tahtsin analüüsida neid kiiresti 802 00:38:17,900 --> 00:38:19,530 lihtsalt avamisest Excel. 803 00:38:19,530 --> 00:38:23,730 Muidugi, minu arvuti lihtsalt kukkus, sest mul oli rohkem kui 65000 rida. 804 00:38:23,730 --> 00:38:27,210 >> Aga Kust 65535 tulevad? 805 00:38:27,210 --> 00:38:29,670 Mis oli Microsoft teeb arvatavasti? 806 00:38:29,670 --> 00:38:32,430 Kui sa oled hea oma volitused kaks? 807 00:38:32,430 --> 00:38:37,160 Jah, nad kasutasid 16-bitise väärtuse moodustavad rea number. 808 00:38:37,160 --> 00:38:41,310 Ja kaks kuni 16 on 65,536-- miinus üks, sest kui sa 809 00:38:41,310 --> 00:38:45,414 null indeks tähendab, et oli Kõige ridade arv Oleksin võinud. 810 00:38:45,414 --> 00:38:46,830 Ja see oli lihtsalt disaini otsuse. 811 00:38:46,830 --> 00:38:52,760 Kui salvestate 16 bitti, nad ainult mind 16000 rida asemel 4 miljardit 812 00:38:52,760 --> 00:38:54,322 mida ma oleks võinud ideaalis. 813 00:38:54,322 --> 00:38:57,030 Aga nüüd, me ei kavatse tutvustada seda rohkem veebi kontekstis. 814 00:38:57,030 --> 00:39:00,390 Ja mis tore SQL on see, et isegi kuigi see on üsna võimas ja ilus 815 00:39:00,390 --> 00:39:04,050 kogenud, see tõesti taandub alla nelja peamist tegevust, neli 816 00:39:04,050 --> 00:39:08,060 põhifunktsioonid, kui te will-- valida, allalaadimise andmeid, otsides 817 00:39:08,060 --> 00:39:12,510 andmete; kustutada või kustutamine andmete lisada lisamiseks rida andmebaasi; 818 00:39:12,510 --> 00:39:13,410 ja uuendamine. 819 00:39:13,410 --> 00:39:17,010 Nii et kui teil on kunagi kasutanud Google Tabelarvutus, Apple numbrid, Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, olete täidetud, kõige tõenäolisemalt, kes kõik 821 00:39:19,310 --> 00:39:22,530 Nende tegevuste kui inimese poolt lihtsalt kasutades klaviatuuri ja mouse-- 822 00:39:22,530 --> 00:39:26,050 andmete sisestamiseks, kasutades oma silmade valida või otsida andmeid, 823 00:39:26,050 --> 00:39:28,360 või uuendada andmeid või kustutada andmeid. 824 00:39:28,360 --> 00:39:29,870 >> Mida see tähendab? 825 00:39:29,870 --> 00:39:34,300 Noh, eelinstalleeritud CS50 IDE on programm nimega MySQL. 826 00:39:34,300 --> 00:39:37,050 See on tasuta, avatud lähtekoodiga andmebaas, mis on super populaarne. 827 00:39:37,050 --> 00:39:40,590 Kontoga, näiteks kasutab seda käesoleva päev, muu hulgas vahendeid, mida nad kasutavad. 828 00:39:40,590 --> 00:39:44,300 Ja palju väga populaarsed veebisaidid kasutavad see suures osas, sest see on kiire, 829 00:39:44,300 --> 00:39:45,230 ja kuna see on tasuta. 830 00:39:45,230 --> 00:39:46,820 Kuigi kindlasti alternatiive. 831 00:39:46,820 --> 00:39:49,580 Ja mõned teist võib võõpama koos alternatiive lõplik projekte. 832 00:39:49,580 --> 00:39:55,330 >> See on pilt, vahepeal on veebipõhine tööriist nimega phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 See on juhus, et See veebipõhine vahend on ka 834 00:39:58,260 --> 00:40:01,720 kirjutatud keeles, PHP, Aga mida see tähendas, et teha 835 00:40:01,720 --> 00:40:04,620 on meile veebipõhine liides andmebaasi. 836 00:40:04,620 --> 00:40:07,180 Kuna MySQL on tüüpiliselt midagi, ajalooliselt, siis 837 00:40:07,180 --> 00:40:08,770 oleks suhelda ainult koos käsurea. 838 00:40:08,770 --> 00:40:10,811 Ja see oleks super tüütu ja kauge olevat 839 00:40:10,811 --> 00:40:14,487 kirjuta teksti valimise käsud andmed, lisada andmeid, ja kustutada andmeid. 840 00:40:14,487 --> 00:40:16,820 Nii mõned inimesed internetis kirjutas veebipõhine programm 841 00:40:16,820 --> 00:40:18,900 et lihtsalt andke meile hallata andmete andmebaasi kantud. 842 00:40:18,900 --> 00:40:23,040 See on nagu topeltklõpsuga Excel, ja töötab veebipõhine versioon sellest. 843 00:40:23,040 --> 00:40:26,370 >> Ja mida sa tahad, et kasutan seda lõpuks järgmisel nädalal, mitte p-set kuus, 844 00:40:26,370 --> 00:40:28,680 kuid on ehitada midagi nimetatakse CS50 Finance, mis 845 00:40:28,680 --> 00:40:32,630 läheb on andmebaasi kasutajate kasutajanimed ja paroolid, 846 00:40:32,630 --> 00:40:34,860 dollari summasid, et nad on oma pangakontole. 847 00:40:34,860 --> 00:40:37,280 See saab olema midagi, mida kasutada, et salvestada 848 00:40:37,280 --> 00:40:39,910 sümbolid ja kogused Varude et kasutajad 849 00:40:39,910 --> 00:40:42,567 abil ostnud virtuaalse dollarit, et sa annan neile. 850 00:40:42,567 --> 00:40:44,900 Ja see läheb võimaldab kasutajatel registreerima saidile, 851 00:40:44,900 --> 00:40:47,190 nii et isegi oma sõbrad saab häälestada oma kodulehel 852 00:40:47,190 --> 00:40:49,360 ja tegelikult registreerida, sisse ja mängida 853 00:40:49,360 --> 00:40:52,807 ja proovige leida süü oma kood, ja proovige leida vigu oma kodulehel. 854 00:40:52,807 --> 00:40:55,390 Ja nad lihtsalt registreerida Lisades ise, tõhusalt, 855 00:40:55,390 --> 00:40:58,120 via koodi kirjutada oma andmebaasi. 856 00:40:58,120 --> 00:41:02,470 >> Näiteks, see on kiire screenshot mida andmebaasis tunduda. 857 00:41:02,470 --> 00:41:05,190 See oli üks Eelmise aasta solutions-- 858 00:41:05,190 --> 00:41:07,760 see on nagu mini Excel salvestatud failis meie andmebaasis, 859 00:41:07,760 --> 00:41:09,950 salvestatud tarkvara nimega MySQL. 860 00:41:09,950 --> 00:41:13,260 Vasakul pool, ma olen ilmselt kõiksugu kasutaja unikaalne number. 861 00:41:13,260 --> 00:41:16,200 Teises veerus, ma olen andnud kõik kasutaja name-- oma 862 00:41:16,200 --> 00:41:16,880 nende hulgas. 863 00:41:16,880 --> 00:41:21,430 Ja paremal poolel, Ma olen andnud neile hash. 864 00:41:21,430 --> 00:41:26,760 >> Nüüd see on tegelikult parooli, kuid see ei ole tavaline teksti salasõna. 865 00:41:26,760 --> 00:41:30,160 See on krüpteeritud parooli, kui te või hash salasõna. 866 00:41:30,160 --> 00:41:32,000 Mida me tuleme tagasi enne pikk. 867 00:41:32,000 --> 00:41:34,340 >> Aga kui te olete kunagi lugenud artikkel selle kohta, kuidas 868 00:41:34,340 --> 00:41:37,950 ununes mingil panga või mõne veebisait halvendavate, 869 00:41:37,950 --> 00:41:39,630 see võib tähendab üldjuhul üks kahest. 870 00:41:39,630 --> 00:41:42,780 Nii et see on lihtsalt väljavõte kuus kasutajat. 871 00:41:42,780 --> 00:41:45,460 Kõik te nüüd saate aru välja läbi häkkimise või lõhenemist 872 00:41:45,460 --> 00:41:47,690 mida meie kuus inimest paroolid on. 873 00:41:47,690 --> 00:41:49,720 Aga kui te olete kunagi saanud hoiatuse või vabandamist 874 00:41:49,720 --> 00:41:52,803 alates ettevõtte või veebisaidi ütlus, sorry, häkker murdis meie andmebaasi 875 00:41:52,803 --> 00:41:56,360 siis tuleb ilmselt muuta Parooli mida see võiks tähendada? 876 00:41:56,360 --> 00:41:59,670 >> Noh, üks, võib tähendada Ettevõte on olnud rohkem moronic, 877 00:41:59,670 --> 00:42:03,630 ja on salvestada oma parooli veerus niimoodi, krüpteerimata. 878 00:42:03,630 --> 00:42:05,840 Mis tähendab, et vastane, kes varastas andmebaasi 879 00:42:05,840 --> 00:42:07,440 sõna otseses mõttes teab oma kasutajanime ja parooli. 880 00:42:07,440 --> 00:42:08,960 See on halvim võimalik stsenaarium. 881 00:42:08,960 --> 00:42:11,710 Ja nagu näete p-komplekt seitse, nii lihtne vältida. 882 00:42:11,710 --> 00:42:15,624 Ei ole mingit vabandust, et kujul rumalus tänapäeva internet. 883 00:42:15,624 --> 00:42:18,540 Two-- ja me leiame mõned artiklid tunnistama, et see ikka 884 00:42:18,540 --> 00:42:21,710 juhtub, nonetheless-- kaks, äkki vastane 885 00:42:21,710 --> 00:42:23,840 varastas selle versiooni andmebaasi. 886 00:42:23,840 --> 00:42:27,110 Milline on ikka selline halb, sest nüüd nad teavad, et mul on kuus kliendid, 887 00:42:27,110 --> 00:42:29,270 Ma tean, et kasutaja nimed nende kuue klientidele, 888 00:42:29,270 --> 00:42:32,910 ja ma tean, et krüpteeritud versioonid, või räsitud versioonid, 889 00:42:32,910 --> 00:42:34,340 nende kuue klientide paroole. 890 00:42:34,340 --> 00:42:37,010 Aga keegi teist, kes võiksid teinud [? Hacker 2?] 891 00:42:37,010 --> 00:42:41,150 kus sa pragunenud paroole või võtsid pilk, mis versioon probleemi 892 00:42:41,150 --> 00:42:46,280 set, miks see on ikka natuke murettekitav kui vastane teab oma hash 893 00:42:46,280 --> 00:42:47,435 paroolid? 894 00:42:47,435 --> 00:42:49,732 >> Sihtrühm: sest need võivad sisestage kogu sõnastik 895 00:42:49,732 --> 00:42:50,690 arvesse hash funktsiooni. 896 00:42:50,690 --> 00:42:54,520 Ja kui teie parool on sõnaraamatu Sõna, [? nad saavad lihtsalt match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID Humala: Täpselt, vastane võid kirjutada koodi, nagu mõned teist 898 00:42:57,640 --> 00:43:00,526 tegi [? Hacker?] 2, millega sa Käi 899 00:43:00,526 --> 00:43:03,400 kõik sõnad sõnastikku või kõiki võimalikke kombinatsioone 900 00:43:03,400 --> 00:43:06,610 läbi Z ja üks läbi nine-- mis kõlab palju, ja see on. 901 00:43:06,610 --> 00:43:08,361 Aga arvuti, see on päris darn kiire. 902 00:43:08,361 --> 00:43:10,610 Ja tegelikult, see oli punkti [? Hacker 2?] Oli 903 00:43:10,610 --> 00:43:12,540 võtma asju, mis paistab sõna otseses mõttes seda, 904 00:43:12,540 --> 00:43:14,900 ja pöördkodeerida mida see tegelikult oli. 905 00:43:14,900 --> 00:43:17,270 >> Nii me vaatame, kuidas saame hoidke seda tõhusamalt. 906 00:43:17,270 --> 00:43:20,210 Selgub, õnneks on MySQL, seal saab olema tüüpi andmeid. 907 00:43:20,210 --> 00:43:22,800 Ja üks lõbus osad kohta andmebaasi disain, olgem ausad, 908 00:43:22,800 --> 00:43:25,810 tegelikult otsustada ise kuidas tuleks esindavad andmed? 909 00:43:25,810 --> 00:43:29,630 Kui te esindate telefoni number int, nagu suur number, või pikk? 910 00:43:29,630 --> 00:43:31,630 Või sa tegelikult teha jadana tähemärki? 911 00:43:31,630 --> 00:43:33,780 Ja seal saab olema väga mitte-triviaalne mõju sellele. 912 00:43:33,780 --> 00:43:36,714 >> Tegelikult üks varem, lõbus Sobiv lugusid 913 00:43:36,714 --> 00:43:39,880 on see, kui Mark Zuckerberg oli hoone Facebook, see oli algselt kirjutatud, 914 00:43:39,880 --> 00:43:42,300 ja ikka on suuresti kirjutatud PHP. 915 00:43:42,300 --> 00:43:45,400 Ja üks suurimaid väljakutseid nad silmitsi varakult oli tagi. 916 00:43:45,400 --> 00:43:48,820 Kui nad hoidsid lisades kooli pärast kooli pärast kooli, minu teada 917 00:43:48,820 --> 00:43:51,639 üks originaalseid lahendusi oli sisuliselt kopeeri ja kleebi 918 00:43:51,639 --> 00:43:53,430 mõned andmebaasid ja mõned koodi, 919 00:43:53,430 --> 00:43:55,346 nii et oli Harvardi liigub oma server, 920 00:43:55,346 --> 00:43:56,995 ja MIT jooksis omal server. 921 00:43:56,995 --> 00:43:59,120 Ja just seetõttu, mõnede teist, kes võiks meenutada, 922 00:43:59,120 --> 00:44:01,510 sa ei saa olla sõbrad teistes võrkudes. 923 00:44:01,510 --> 00:44:05,050 >> Sa ilmselt ei ole sõpru MIT või Harvard 10 või nii aastat tagasi, 924 00:44:05,050 --> 00:44:07,467 aga sa ei läbista võrgud Osaliselt sel põhjusel. 925 00:44:07,467 --> 00:44:10,550 Ja üks suurimaid väljakutseid Mark ja firmad nagu Facebook 926 00:44:10,550 --> 00:44:13,460 tegelikult käitlemise sadu ja tuhandeid ja miljoneid 927 00:44:13,460 --> 00:44:14,460 Taotluste sekundis. 928 00:44:14,460 --> 00:44:16,501 Nii et asjad, mida me hakkame Rääkides sel nädalal 929 00:44:16,501 --> 00:44:19,860 on tõesti olla Sobiv kirjalikult hea tarkvara ja rahva 930 00:44:19,860 --> 00:44:23,040 edukad vahendid, et saavad hakkama palju kasutajaid. 931 00:44:23,040 --> 00:44:25,460 >> Nii et me räägime asjadest nagu indekseerimine ja otsimine, 932 00:44:25,460 --> 00:44:26,910 kuid see on seda täna. 933 00:44:26,910 --> 00:44:28,780 Me näeme rohkem kolmapäeval. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [MUSIC - "Seinfeld" teema] 936 00:44:33,902 --> 00:44:35,943 DAVID Humala: saate seda ja lahutada see. 937 00:44:35,943 --> 00:44:38,859 Ja sa ei pea kinni mõned etteantud mälu. 938 00:44:38,859 --> 00:44:40,580 Noh, mis see saab olema nimetatakse? 939 00:44:40,580 --> 00:44:42,369 >> SPEAKER 1: Noh, mis toimub? 940 00:44:42,369 --> 00:44:43,535 SPEAKER 2: Mida sa mõtled? 941 00:44:43,535 --> 00:44:44,451 Ta loengut. 942 00:44:44,451 --> 00:44:47,650 DAVID Humala: Ja me saame kasutada funktsiooni nimetatakse malloc et memory-- 943 00:44:47,650 --> 00:44:50,050 >> SPEAKER 1: Miks ei ole tema käed liiguvad? 944 00:44:50,050 --> 00:44:52,450 >> SPEAKER 2: Noh see on-- sa tead, et on normaalne. 945 00:44:52,450 --> 00:44:57,162 See on nagu ta on lihtsalt suur vorst rippus seal. 946 00:44:57,162 --> 00:44:59,040 >> SPEAKER 1: See on normaalne? 947 00:44:59,040 --> 00:45:03,096 >> SPEAKER 2: Jah, ma arvan, et me lihtsalt eeldada, et ta kogemata 948 00:45:03,096 --> 00:45:06,840 asendada oma deodorandi superglue. 949 00:45:06,840 --> 00:45:07,608