1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Zenelejátszási] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> DAVID MALAN: Ez CS50, és ez az a hét elején nyolc. 5 00:00:13,350 --> 00:00:17,510 És nem vagyunk annyira izgatott, hogy üdvözlöm vissza, nagy meglepetés, CS50 saját Ramon 6 00:00:17,510 --> 00:00:22,160 Galván, a növekvő vezető, aki már kiadások az elmúlt néhány hónapban 7 00:00:22,160 --> 00:00:26,190 július óta Los Angelesben, Hollywoodban, Szó dolgozik egy vadonatúj TV 8 00:00:26,190 --> 00:00:31,930 műsorban Colony, alkotója, amely valójában egy Harvard timsó magát. 9 00:00:31,930 --> 00:00:36,610 És így nagyon izgatottak vagyunk, hogy ezt debütált az USA-hálózat idén januárban. 10 00:00:36,610 --> 00:00:40,370 Szóval, stay tuned, hogy és Több Ramon számára az elkövetkezendő hetek. 11 00:00:40,370 --> 00:00:42,550 >> Tudom, hogy most, hogy közel a vég. 12 00:00:42,550 --> 00:00:47,400 És ez mit jelent az, hogy nincs hogy sok minden maradt a CS50, szomorú. 13 00:00:47,400 --> 00:00:49,400 Már csak három probléma készletek left-- van 14 00:00:49,400 --> 00:00:52,510 probléma meghatározott six-- amely kezedben most vagy hamarosan az lesz, 15 00:00:52,510 --> 00:00:56,080 miatt még ebben week-- célja, hogy áthidalja világunkba a parancssorban, ahol 16 00:00:56,080 --> 00:00:59,450 töltöttünk a legtöbb időt C, és a világ a webes programozás. 17 00:00:59,450 --> 00:01:02,350 Nos, akkor megjelenik egy csomó ötletet kölcsönzött a parancssori munkát, 18 00:01:02,350 --> 00:01:04,560 hanem egy csomó új és érdekes ötletek 19 00:01:04,560 --> 00:01:07,929 hogy is lesz illenek a mobil alkalmazások és a technológia, 20 00:01:07,929 --> 00:01:10,470 általánosabban, mellyel srácok mindannyian ismerik ma 21 00:01:10,470 --> 00:01:12,090 A laptopok és mobiltelefonok és hasonlók. 22 00:01:12,090 --> 00:01:15,220 >> Szóval akkor végre nem egy weboldalt, vagy egy honlap 23 00:01:15,220 --> 00:01:17,620 önmagában, hanem egy tényleges webszerver. 24 00:01:17,620 --> 00:01:21,590 Meg fogja írni a többi egy webszerver C-ben írt, amelynek célja az életben 25 00:01:21,590 --> 00:01:25,410 abból áll, hogy a HTTP kérések, azoknak virtuális borítékok mi arról beszélünk 26 00:01:25,410 --> 00:01:29,780 kb, és valóban reagálni akár néhány statikus content--, mint egy pont HTML 27 00:01:29,780 --> 00:01:32,310 fájlt, vagy egy pont JPEG vagy egyéb fájlok száma, 28 00:01:32,310 --> 00:01:37,070 vagy akár egy PHP fájlt, amellyel a web szerver fog értelmezni, hogy a PHP 29 00:01:37,070 --> 00:01:38,332 kódot, és köpje ki az eredményeket. 30 00:01:38,332 --> 00:01:40,540 Most már megkapta a egy kicsit a keret 31 00:01:40,540 --> 00:01:43,100 A it-- valóban a forgalmazás kódot probléma 32 00:01:43,100 --> 00:01:47,496 meg hat több mint 1000 sor hosszú, egy Sok amely megjegyzéseket, hogy fair-- 33 00:01:47,496 --> 00:01:49,370 de ez valójában azt jelentette, hogy lehetőséget 34 00:01:49,370 --> 00:01:52,570 hogy a kezét piszkos búvárkodás egy meglehetősen nagy projekt 35 00:01:52,570 --> 00:01:55,570 hogy már nagyon specifikusan kifaragott darabokat az Ön számára, 36 00:01:55,570 --> 00:01:59,046 így igazán, amikor kilép CS50 és adja meg a valós világban a programozási 37 00:01:59,046 --> 00:02:00,920 és szeretné pancsolás tetszőleges számú projekt, 38 00:02:00,920 --> 00:02:03,253 akkor meg sokkal nagyobb Kényelem letöltő néhány forrás 39 00:02:03,253 --> 00:02:05,020 kód, néhány nyílt forráskódú vetíteni az interneten, 40 00:02:05,020 --> 00:02:08,174 és búvárkodás, és így változásokat, hogy jónak látod. 41 00:02:08,174 --> 00:02:11,340 Probléma beállítani hét lesz kb hogy a saját web-alapú alkalmazás 42 00:02:11,340 --> 00:02:14,140 vevő dinamikus adatbevitel és termel dinamikus kimenetet formájában 43 00:02:14,140 --> 00:02:16,920 Egy etrade.com-szerű honlapján. 44 00:02:16,920 --> 00:02:20,800 És a probléma beállított nyolc fog összpontosítani még ismert más nyelvet, mint a JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Eközben a végső projekt a láthatáron. 46 00:02:24,170 --> 00:02:26,800 Az úgynevezett pre-javaslat esedékes egy hét múlva. 47 00:02:26,800 --> 00:02:29,930 Pre-proposal-- per a specifikáció, amely a CS50 a website-- 48 00:02:29,930 --> 00:02:33,260 egy szép alkalmi lehetőség hogy küldjön egy elég szűkszavú e-mail 49 00:02:33,260 --> 00:02:35,170 a tanítási fickó csak azért, hogy megismerje őt 50 00:02:35,170 --> 00:02:38,250 vagy ő az, amire gondolsz, hogy használja őt, mint meghallgatja. 51 00:02:38,250 --> 00:02:40,980 És van egy józan check-- hogy te gondolsz 52 00:02:40,980 --> 00:02:43,210 mintegy leharapta is sok vagy talán túl kevés, 53 00:02:43,210 --> 00:02:46,480 Vagy lehet, hogy fogalma sincs, egyáltalán és azt szeretnék, hogy vegyenek részt a beszélgetésben. 54 00:02:46,480 --> 00:02:48,480 >> Ezt követően egy javaslatot és állapotáról szóló jelentést, 55 00:02:48,480 --> 00:02:51,860 az úgynevezett CS50 hackathon itt Cambridge Harvard és a Yale diákok 56 00:02:51,860 --> 00:02:52,362 egyaránt. 57 00:02:52,362 --> 00:02:54,320 A végleges projekt végrehajtás azután. 58 00:02:54,320 --> 00:02:59,290 És akkor egy CS50 tisztességes itt, Cambridge-ben, valamint egy másik New Havenben. 59 00:02:59,290 --> 00:03:02,500 Így a javaslat, vessen egy pillantást A honlap mindazokat az adatokat. 60 00:03:02,500 --> 00:03:06,530 >> De még ennél is izgalmasan is, egy lehetőséget kap a keze piszkos, 61 00:03:06,530 --> 00:03:09,350 és gondolataitokat nyitva egész csomó témák és eszközök 62 00:03:09,350 --> 00:03:12,920 és technikák, amelyek kapcsolatban vannak A kurzus alapvető tananyag, 63 00:03:12,920 --> 00:03:14,810 de mégis kapcsolatos. 64 00:03:14,810 --> 00:03:18,400 És azt is csodálatos ugródeszkaként Ennek nagyon klassz végső projektek 65 00:03:18,400 --> 00:03:22,020 jóval túlmutatnak anyagból már lefedett formálisan probléma határozza illetve előadás. 66 00:03:22,020 --> 00:03:24,446 Így megy CS50 honlapján az egész naptárban szemináriumok. 67 00:03:24,446 --> 00:03:26,070 Ha nem regisztrálja mégis, ez rendben van. 68 00:03:26,070 --> 00:03:29,860 Menj előre, és iratkozzon fel még, és mi utána pedig egy élő streaming linket, 69 00:03:29,860 --> 00:03:31,844 A nap és az idő a honlapon. 70 00:03:31,844 --> 00:03:33,760 És minden rendben lesz rögzített, és tegye az online 71 00:03:33,760 --> 00:03:35,800 ha nem tudja, hogy a Különösen napokon és időpontokban. 72 00:03:35,800 --> 00:03:39,380 >> Ami a mi vár ránk thereafter-- is, Persze, ott van a CS50 hackathon. 73 00:03:39,380 --> 00:03:43,560 Ezt a fényképet, emlékszem, hétről nulla venni körül 04:00 egyik este az elmúlt években. 74 00:03:43,560 --> 00:03:46,900 A CS50 tisztességes, ami ismét kerül sor a két városban. 75 00:03:46,900 --> 00:03:49,760 És akkor, csak, hogy elvessük a vetőmag, bár még mindig 76 00:03:49,760 --> 00:03:54,080 egy hónap, plusz maradt a félév, ha szeretnél csatlakozni CS50 saját tanítási 77 00:03:54,080 --> 00:03:56,770 személyzet és meg szeretné kezdeni gondolkodni válás CA, 78 00:03:56,770 --> 00:03:59,550 vagy oktatási fickó, tudja, hogy Kezdjük beszél erről többet 79 00:03:59,550 --> 00:04:00,630 még ebben a félévben. 80 00:04:00,630 --> 00:04:03,470 De láthatunk itt van leginkább az idei csapat. 81 00:04:03,470 --> 00:04:06,950 >> És így, PHP-- és én annyira szomorú a múlt héten, hogy [? Allyse?] Kedvesen 82 00:04:06,950 --> 00:04:09,370 elment a fáradságot a szerzés nekünk ezeket a csodálatos kellékek 83 00:04:09,370 --> 00:04:11,720 hogy nem a végén segítségével, így Tényleg csak nézett hülyén 84 00:04:11,720 --> 00:04:15,160 hogy mi volt egy lapáttal ül itt minden nap múlt szerdán, és egy kis kanál. 85 00:04:15,160 --> 00:04:17,709 De ez volt a metaforikus módja próbál festeni 86 00:04:17,709 --> 00:04:21,600 A kép miért is áttéréskor C-ből a nyelv, mint a PHP. 87 00:04:21,600 --> 00:04:25,480 És ugyanaz mondható el minden számú languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 vagy csokor others--, de míg C, például, az írás egy programot C 89 00:04:31,270 --> 00:04:34,050 akkor például, mint hogy egy kanál, mint ez 90 00:04:34,050 --> 00:04:36,770 és ásni egy lyukat a földre, a homokban vagy a szennyeződést. 91 00:04:36,770 --> 00:04:39,770 PHP lehetővé teszi, hogy sokkal nagyobb harap ki a probléma, 92 00:04:39,770 --> 00:04:42,842 írásban sokkal kevésbé kód egy sokkal kisebb szerszám, 93 00:04:42,842 --> 00:04:45,050 mert ott sokkal több funkcionalitást rakott a. 94 00:04:45,050 --> 00:04:47,633 >> Ha most valóban drámai, mi volna valamit lapátolni 95 00:04:47,633 --> 00:04:48,760 itt, de hát legyen. 96 00:04:48,760 --> 00:04:51,370 Eközben a másik metafora jöttünk fel 97 00:04:51,370 --> 00:04:53,770 Természetesen, amit lehetett Használja olyasmi, mint egy kulcs 98 00:04:53,770 --> 00:04:56,610 a kalapács olyasmi, mint egy köröm. 99 00:04:56,610 --> 00:04:58,980 De természetesen, a jobb eszköz használatát megy 100 00:04:58,980 --> 00:05:01,360 hogy nem annyira a nyelv úgynevezett C-- 101 00:05:01,360 --> 00:05:03,590 és most csak bosszús [? Sanders,?] Valószínűleg, 102 00:05:03,590 --> 00:05:07,890 megjavítjuk, hogy later-- így a megfelelő eszköz a gyakran használt 103 00:05:07,890 --> 00:05:09,640 Nem lesz ez a legalacsonyabb szintű eszköz. 104 00:05:09,640 --> 00:05:13,720 És valóban, a C nem egy nyelvet a legtöbben valaha is használni, 105 00:05:13,720 --> 00:05:15,590 vagy kell feltétlenül használja újra. 106 00:05:15,590 --> 00:05:18,350 >> És valóban, egy kicsit secret-- az egyetlen alkalom, 107 00:05:18,350 --> 00:05:23,160 Én a C magam nagyjából között Szeptember és december minden ősszel 108 00:05:23,160 --> 00:05:23,870 félévben. 109 00:05:23,870 --> 00:05:25,790 És ez azért van, mert használja a lehetőséget 110 00:05:25,790 --> 00:05:27,852 tanítani az alapokat programozás, 111 00:05:27,852 --> 00:05:29,810 és vele együtt a számítógép tudomány alapjait, adatok 112 00:05:29,810 --> 00:05:32,435 struktúrák, az algoritmusok és a általam elvártnál, de nagyon gyorsan fogsz 113 00:05:32,435 --> 00:05:35,010 most látni, hogy a szintaxis és elgondolások C 114 00:05:35,010 --> 00:05:37,530 oly csodálatosan átruházható modernebb 115 00:05:37,530 --> 00:05:41,130 magasabb szintű nyelvek, mint a PHP és Python és Perl és Java 116 00:05:41,130 --> 00:05:46,750 és Objective-C-- valójában nem annyira Objective-C-- de Swift, ezek az újabb 117 00:05:46,750 --> 00:05:50,010 nyelveken, hogy sokan közületek Ezután pancsolás veled végleges projekt. 118 00:05:50,010 --> 00:05:55,070 >> Tehát minden további nélkül, nézzük ténylegesen PHP megoldani bizonyos problémákat. 119 00:05:55,070 --> 00:06:00,230 Emlékezzünk vissza, hogy korán, az utolsó héten, mi csak használjuk CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 írtunk egy takaros kis programot hogy csak azt mondta: "Hello world." 121 00:06:02,990 --> 00:06:05,680 És akkor én elmentette nevű fájlt hello.php. 122 00:06:05,680 --> 00:06:07,280 És akkor futottam ezt a parancsot. 123 00:06:07,280 --> 00:06:08,080 >> És miért? 124 00:06:08,080 --> 00:06:09,900 Az angol, mi folyik itt? 125 00:06:09,900 --> 00:06:12,760 Mit csinálok, ha Futottam ezt a parancsot? 126 00:06:12,760 --> 00:06:13,405 >> Igen? 127 00:06:13,405 --> 00:06:16,572 >> Közönség: Van valami funkciója PHP amely így szól: mi in-- megérti, hogy. 128 00:06:16,572 --> 00:06:19,696 DAVID MALAN: Jó, van valami funkciója PHP-- és hadd legyek konkrétabb, 129 00:06:19,696 --> 00:06:21,810 van egy program neve PHP, más néven 130 00:06:21,810 --> 00:06:25,872 Egy tolmács, amely megérti tartalmát hello.php, 131 00:06:25,872 --> 00:06:27,830 és úgy értelmezi, hogy fentről lefelé, balról jobbra, 132 00:06:27,830 --> 00:06:29,590 és azt teszi, amit a parancsokat mondani. 133 00:06:29,590 --> 00:06:33,320 A parancsok hello.php, persze, csak forrás code-- funkciók 134 00:06:33,320 --> 00:06:35,750 és változók és hurkok és hasonlók, hogy mi magunk 135 00:06:35,750 --> 00:06:37,460 már elkezdtem írni a PHP. 136 00:06:37,460 --> 00:06:40,240 >> De ellentétben a C, ami lefordított nyelven, 137 00:06:40,240 --> 00:06:42,810 PHP csak írd meg, és futtatni. 138 00:06:42,810 --> 00:06:46,420 Kihagyod, hogy közvetítő lépése átkonvertálja nullák, 139 00:06:46,420 --> 00:06:47,790 majd fut. 140 00:06:47,790 --> 00:06:50,510 És akkor mi van egy fejjel e? 141 00:06:50,510 --> 00:06:52,690 Miért kihagyom a lépést? 142 00:06:52,690 --> 00:06:55,238 Miért modernebb nyelvek inkább kihagyja ezt a lépést? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Mi volt az előny? 145 00:07:01,220 --> 00:07:02,080 >> Vagy csak ösztönösen? 146 00:07:02,080 --> 00:07:04,200 Még ha mi már nem írásos sokkal korábban a PHP, 147 00:07:04,200 --> 00:07:07,210 mi előnyös, hogy nem összeállítása a kódot gondolsz? 148 00:07:07,210 --> 00:07:08,520 Nem? 149 00:07:08,520 --> 00:07:09,610 Nem elkövető? 150 00:07:09,610 --> 00:07:11,350 Vakarja a fejét? 151 00:07:11,350 --> 00:07:12,614 Igen. 152 00:07:12,614 --> 00:07:13,600 >> Közönség: Dinamikusabb. 153 00:07:13,600 --> 00:07:14,683 >> DAVID MALAN: Dinamikusabb? 154 00:07:14,683 --> 00:07:16,032 Amire gondolsz? 155 00:07:16,032 --> 00:07:17,000 >> Közönség: [hallható] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 DAVID MALAN: OK, jó, így függően a bemeneti, 158 00:07:22,390 --> 00:07:23,470 Önnek nem kell lefordítani minden egyes alkalommal. 159 00:07:23,470 --> 00:07:24,990 És ez tényleg olyan egyszerű hogy-- mi 160 00:07:24,990 --> 00:07:26,990 az a pont, folyamatos hogy fordítsa le a kódot? 161 00:07:26,990 --> 00:07:29,480 Ez csak egy lépés, hogy az making-- ezt igénylő, 162 00:07:29,480 --> 00:07:31,900 az elmúlt néhány hét, kétszer annyi lépést 163 00:07:31,900 --> 00:07:33,820 mint most fut a program. 164 00:07:33,820 --> 00:07:36,940 Ez hasznos volt látni, hogy lásd néhány hibaüzenetet és így tovább, 165 00:07:36,940 --> 00:07:38,720 de ez még mindig csak egy bosszantó lépés. 166 00:07:38,720 --> 00:07:41,810 >> És így a programozók rájött idővel, miért nem 167 00:07:41,810 --> 00:07:45,327 írásához nyelvek, amelyek nem kell, hogy meglehetősen mechanikus lépést, 168 00:07:45,327 --> 00:07:47,160 úgy, hogy csak írni a kódot, és futtatni. 169 00:07:47,160 --> 00:07:48,920 De mi volt az ár hogy láttunk már kifizetett 170 00:07:48,920 --> 00:07:50,910 A múlt héten, egy konkrét példát? 171 00:07:50,910 --> 00:07:51,650 Igen? 172 00:07:51,650 --> 00:07:52,370 >> Speed. 173 00:07:52,370 --> 00:07:54,690 Na [? mi?] tolmácsok egy kicsit lassabban, 174 00:07:54,690 --> 00:07:57,330 abban nullák vagyunk szép és gyors a számítógép 175 00:07:57,330 --> 00:08:00,070 megérteni, mert a Intel CPU, vagy bármi legyen is az, 176 00:08:00,070 --> 00:08:03,070 Csak megérti, mi folyik A azokkal minták bitek. 177 00:08:03,070 --> 00:08:05,370 Mivel tolmács egy olyan program, ami igazán 178 00:08:05,370 --> 00:08:07,980 el kell olvasni az ASCII forrás kódot, amit írtam, 179 00:08:07,980 --> 00:08:12,700 és átalakítani, hogy úgy mondjam, vagy kitalálni, hogyan alakítja végső soron 180 00:08:12,700 --> 00:08:13,525 a nullák. 181 00:08:13,525 --> 00:08:15,650 Tehát ez csak úgy egy kis Kicsit teljesítménycsökkenést okoz. 182 00:08:15,650 --> 00:08:16,858 Szóval ez egy kicsit kompromisszum. 183 00:08:16,858 --> 00:08:21,570 Most, ha ezt ide, hadd megy előre, és nem egy példa az alábbiak szerint. 184 00:08:21,570 --> 00:08:26,610 Ha megyek itt, új fájlt, megyek menteni ezt megint hello.php. 185 00:08:26,610 --> 00:08:31,450 És most megyek, hogy menjen előre és azt mondják, "print hello world" - 186 00:08:31,450 --> 00:08:35,130 és emlékszem, hogy tudom használni a nyomtatási, én nem kell használni a nyomtatási-F. És most itt lent, 187 00:08:35,130 --> 00:08:42,039 ha megteszem PHP a hello.php, huh-- I úgy tűnik, nem is értelmezték. 188 00:08:42,039 --> 00:08:43,412 Mit csináltam rosszul? 189 00:08:43,412 --> 00:08:44,710 >> Közönség: A hajlított karkötő. 190 00:08:44,710 --> 00:08:47,015 >> DAVID MALAN: Igen, meg kell hogy hegyes zárójel fel tetején. 191 00:08:47,015 --> 00:08:49,390 Szóval ez a fajta idegesítő, de Ön szokni gyorsan. 192 00:08:49,390 --> 00:08:53,500 Ha azt kell írni a PHP kódot, I Általában kell mondani a programot, 193 00:08:53,500 --> 00:08:56,950 vagy mondd el a tolmács, hé PHP, itt jön néhány PHP kódot. 194 00:08:56,950 --> 00:09:00,440 És akkor a jó intézkedés, megtenném zárni ezt nem ezzel, hanem 195 00:09:00,440 --> 00:09:03,740 csak kérdőjel szög konzol, így most itt lent, 196 00:09:03,740 --> 00:09:06,840 Ha futok ezt újra, most Azt, hogy a kívánt eredményt. 197 00:09:06,840 --> 00:09:09,820 >> Most ismét egy enyhe optimalizálás, Csak úgy, hogy már láttam. 198 00:09:09,820 --> 00:09:14,040 Ez a fajta idegesítő, hogy én meg kell futtatni a PHP helyet hello.php, 199 00:09:14,040 --> 00:09:16,060 mert az elmúlt I. Lehet, hogy csak levelet dot perjel 200 00:09:16,060 --> 00:09:17,560 program neve, ami elég szép. 201 00:09:17,560 --> 00:09:19,420 Ez a fajta a jobb felhasználói élményt. 202 00:09:19,420 --> 00:09:24,160 >> Így kiderül, akkor ezt PHP a following-- I 203 00:09:24,160 --> 00:09:28,780 Használhatja ezt a meglehetősen rejtélyes ráolvasás tetején van, 204 00:09:28,780 --> 00:09:31,740 amely általában úgynevezett shebang, miáltal ez egy éles szimbólum, 205 00:09:31,740 --> 00:09:34,270 hogy úgy mondjam, ez egy bumm vagy egy felkiáltójel. 206 00:09:34,270 --> 00:09:38,490 És ezt most az út a program Egy tipikus Linux rendszert 207 00:09:38,490 --> 00:09:41,500 nevezzük környezetben, vagy az ENV. 208 00:09:41,500 --> 00:09:43,920 És ez line-- hosszú történet short-- vonalon csak 209 00:09:43,920 --> 00:09:48,710 mondja, hé számítógépet, meg a PHP tolmács számomra a környezetben, 210 00:09:48,710 --> 00:09:50,610 megtalálja azt a memóriát, hogy úgy mondjam. 211 00:09:50,610 --> 00:09:54,130 >> És mi a szép most, hogy ha lemegyek itt, 212 00:09:54,130 --> 00:09:57,750 Meg tudom csinálni dot perjel Hello dot php, or-- hmm. 213 00:09:57,750 --> 00:09:59,000 Hozzáférés megtagadva. 214 00:09:59,000 --> 00:10:02,350 Nos, akkor még többet látni ezt A probléma beállítva hét, ha 215 00:10:02,350 --> 00:10:04,060 még nem tette meg, az engedélyeket. 216 00:10:04,060 --> 00:10:06,510 Kiderül, hogy szükségem van hogy ezt a parancsot 217 00:10:06,510 --> 00:10:10,779 nevű [? chamod?] a változás mode-- egy plusz x hello.php. 218 00:10:10,779 --> 00:10:13,820 Szükségem [hallhatatlan] ez egy további lépés, amely azt mondja a számítógépet, 219 00:10:13,820 --> 00:10:16,400 hogy hello.php futtatható. 220 00:10:16,400 --> 00:10:21,310 És most nézzük, mi happens-- dot perjel hello.php, csak fut. 221 00:10:21,310 --> 00:10:23,310 Nem kell megadni A tolmács többé. 222 00:10:23,310 --> 00:10:26,680 És tudom, hogy még szebb, Mégis, ha nevezhetem át ezt a dolgot. 223 00:10:26,680 --> 00:10:30,570 Ha mozgok hello.php, hogy csak Hello-- így észre a bal felső, 224 00:10:30,570 --> 00:10:32,860 A program neve Valóban már csak Helló. 225 00:10:32,860 --> 00:10:37,300 Most már tudom, hogy úgy tűnjön, mint egy C program, bár ez írva PHP-- 226 00:10:37,300 --> 00:10:39,210 vagy őszintén akárhány Más nyelven. 227 00:10:39,210 --> 00:10:41,480 >> Szóval marginális javítása, nincs funkcionális különbség. 228 00:10:41,480 --> 00:10:44,460 De ez csak egy kis érdekesség Most, így programokat írni 229 00:10:44,460 --> 00:10:48,989 bármilyen nyelven, és a felhasználó nem Tudnunk kell, vagy érdekel, mik ezek. 230 00:10:48,989 --> 00:10:51,030 Nos, nézzük meg egy kényszerítő például most 231 00:10:51,030 --> 00:10:52,850 hogy én felkorbácsolta előre. 232 00:10:52,850 --> 00:10:54,955 És ezt nevezik quote.php. 233 00:10:54,955 --> 00:10:56,740 És ez elérhető online. 234 00:10:56,740 --> 00:11:00,299 És észre, hogy ez elég short-- de ez egy parancssori program, ami 235 00:11:00,299 --> 00:11:02,840 fog felnézni tőzsdei árfolyamok Nekem, ami valójában megy 236 00:11:02,840 --> 00:11:04,230 hogy valaminek megfelelő probléma beállítani hét. 237 00:11:04,230 --> 00:11:05,396 >> Nézzük, mit csinálok. 238 00:11:05,396 --> 00:11:08,640 Legtetején Megvan a nyitó zárójel kérdőjel PHP. 239 00:11:08,640 --> 00:11:13,372 Aztán itt van ez a vonal, ahol vagyok igénylő nevű fájlt functions.php-- 240 00:11:13,372 --> 00:11:15,080 fogunk látni erről bővebben egy kicsit, 241 00:11:15,080 --> 00:11:17,340 de ez, mint a C adatbankjában változata éles közé, 242 00:11:17,340 --> 00:11:19,090 hova akarsz menni többek között egy másik fájlt. 243 00:11:19,090 --> 00:11:23,720 PHP nevezi igényel, bár is van egy tartalmaznak funkciót. 244 00:11:23,720 --> 00:11:26,861 És kiderül, hogy function.php van csak valami írtam osztály előtt. 245 00:11:26,861 --> 00:11:29,860 Tettem azt ugyanabban a könyvtárban, mert Azt akartam, hogy figyelembe néhány kód 246 00:11:29,860 --> 00:11:31,800 hogy érdemes használni máshol. 247 00:11:31,800 --> 00:11:34,560 >> Közben, akkor talán következtetni, hogy mi folyik itt. 248 00:11:34,560 --> 00:11:39,200 Ez egy kicsit más, mint C-- de mit gondolok a helyes használat? 249 00:11:39,200 --> 00:11:41,180 Fordítsd ezt technikailag. 250 00:11:41,180 --> 00:11:45,950 Milyen körülmények között vagyok én kilépés az, vagy kilépéskor? 251 00:11:45,950 --> 00:11:47,074 Igen? 252 00:11:47,074 --> 00:11:47,990 >> Közönség: Ha nincs Két parancssori paramétereket. 253 00:11:47,990 --> 00:11:49,480 >> DAVID MALAN: Amikor nincs a parancssori paramétereket. 254 00:11:49,480 --> 00:11:52,396 És ne feledjük, hogy egy ilyen érvek az a program neve is. 255 00:11:52,396 --> 00:11:55,340 És a második lesz Egy szót gépelek után azonnal. 256 00:11:55,340 --> 00:11:57,460 Tehát, mint a C, ez az én utam ellenőrzése, 257 00:11:57,460 --> 00:12:00,022 nem a felhasználó együttműködnek és a program futtatásához, mint szerettem volna? 258 00:12:00,022 --> 00:12:01,730 Most, hogy van valami Egy kicsit más 259 00:12:01,730 --> 00:12:04,020 A C-- először is ezt dollár jel, 260 00:12:04,020 --> 00:12:07,710 és mit jelent a dollár jelentkezzen jelöli PHP-ben? 261 00:12:07,710 --> 00:12:08,440 Csak egy változó. 262 00:12:08,440 --> 00:12:11,731 Ez all-- csak egy változót, majd amit csak akarsz, hogy ténylegesen nevezni. 263 00:12:11,731 --> 00:12:14,000 Figyeljük van valami hiányoznak a PHP program, 264 00:12:14,000 --> 00:12:18,210 mint ez hiányzott az utolsó héten, szemben a C, ami mi? 265 00:12:18,210 --> 00:12:21,620 >> A fajta, hanem valami más. 266 00:12:21,620 --> 00:12:26,409 Nincs valami function-- fő funkciója. 267 00:12:26,409 --> 00:12:27,450 Nincs fő funkciója. 268 00:12:27,450 --> 00:12:29,680 Te csak írásához A kód nélkül 269 00:12:29,680 --> 00:12:32,790 aggódnia a meglehetősen önkényes egyezmény elnevezési néhány alapértelmezett 270 00:12:32,790 --> 00:12:33,880 funkciót fő. 271 00:12:33,880 --> 00:12:36,720 Tehát arg C csak nagyon egy globális változót 272 00:12:36,720 --> 00:12:39,049 hogy a tolmács elérhetővé teszi számomra. 273 00:12:39,049 --> 00:12:40,090 Nos, ez érdekes. 274 00:12:40,090 --> 00:12:41,140 Így néz ki a cucc. 275 00:12:41,140 --> 00:12:43,370 Dollárjel állomány a hagyta, hogy az én változó. 276 00:12:43,370 --> 00:12:45,120 A jobb oldali, ott nyilvánvalóan 277 00:12:45,120 --> 00:12:50,270 függvény a PHP nevű keresési hogy Én halad az utolsó parancssori 278 00:12:50,270 --> 00:12:51,902 érv az alábbiakra: bármilyen szó. 279 00:12:51,902 --> 00:12:53,610 És majd meglátjuk, hogy ez a működik egy pillanatra. 280 00:12:53,610 --> 00:12:55,380 >> És akkor végül én jelentési árát. 281 00:12:55,380 --> 00:12:58,650 Én kinyomtatásával egy részesedése ilyen és ilyen. 282 00:12:58,650 --> 00:13:02,082 És ne feledd, ez a módon PHP-- módon a PHP-- 283 00:13:02,082 --> 00:13:04,290 ahol nem kell tennie, A dollár jel S többé. 284 00:13:04,290 --> 00:13:06,782 Csak használata kapcsoszárójele és dugja néhány változó. 285 00:13:06,782 --> 00:13:09,240 Nem kell aggódnia használva printf ugyanúgy. 286 00:13:09,240 --> 00:13:13,530 >> És ahogy Mellesleg, ha tesz egy változót belső idézőjel, mint ez, 287 00:13:13,530 --> 00:13:17,370 használ egy díszes technika nevű változó interpoláció. 288 00:13:17,370 --> 00:13:20,380 Ez csak azt jelenti dugja a változó itt. 289 00:13:20,380 --> 00:13:23,760 És mint félre, néhányan közületek, akik jönnek más programozási háttérrel, 290 00:13:23,760 --> 00:13:26,960 lehet, hogy nem egyszerű idézőjeleket körül húrok erre. 291 00:13:26,960 --> 00:13:30,290 Ki kell használni a kettős idézeteket változó interpoláció dolgozni. 292 00:13:30,290 --> 00:13:32,740 Egyébként akkor szó látni ezeket a zárójelek segítségével. 293 00:13:32,740 --> 00:13:34,500 >> Így végül, menjünk előre, és futtatni ezt. 294 00:13:34,500 --> 00:13:36,690 Hadd tegyem terminál egy kicsit nagyobb. 295 00:13:36,690 --> 00:13:41,940 Hadd menjen előre és fuss belső én idézet könyvtár. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? AM?] [? quote] PHP idézet dot PHP, 297 00:13:46,950 --> 00:13:50,290 és fogok keresni valamit mint GOOG, amely a rövidítést, 298 00:13:50,290 --> 00:13:55,510 és egy részvény az új nevet, Alphabet Inc, ára $ 717, mint a mai. 299 00:13:55,510 --> 00:13:58,680 Rendben, ha azt akarjuk, hogy futtatni ezt újra, bárki 300 00:13:58,680 --> 00:14:02,600 Van egy másik árfolyamkijelző akarják, hogy néz ki? 301 00:14:02,600 --> 00:14:06,770 >> A Microsoft azt hiszem, ez, MSFT-- 53 $. 302 00:14:06,770 --> 00:14:09,720 Azt hiszem, a Yahoo talán. 303 00:14:09,720 --> 00:14:12,130 És a Facebook, hogy. 304 00:14:12,130 --> 00:14:13,740 >> Szóval mi ez a program csinál? 305 00:14:13,740 --> 00:14:16,306 A varázslat úgy tűnik, hogy a beágyazott abban a keresési funkciót. 306 00:14:16,306 --> 00:14:17,430 Szóval vessünk egy gyors pillantást. 307 00:14:17,430 --> 00:14:21,815 >> Kiderül, hogy nem jön PHP, ez a functions.php. 308 00:14:21,815 --> 00:14:23,690 És nem megyünk át ez nagy részletességgel, 309 00:14:23,690 --> 00:14:28,040 de észre az operatív szó itt hogy on-line hat functions.php-- 310 00:14:28,040 --> 00:14:29,440 Szó szerint azt mondják funkciót. 311 00:14:29,440 --> 00:14:31,050 Azt adja meg a nevét én funkciót. 312 00:14:31,050 --> 00:14:34,330 Aztán meg semmilyen érveket, vagy paraméterek, 313 00:14:34,330 --> 00:14:36,480 Azt akarom, hogy a funkció a take-- nincs típusok. 314 00:14:36,480 --> 00:14:37,580 És akkor hajtják végre. 315 00:14:37,580 --> 00:14:39,240 >> És én hullám kezem a végrehajtás, 316 00:14:39,240 --> 00:14:42,115 mivel ez viszonylag fejlett joga most, de majd meglátjuk, hogy ismét ténylegesen 317 00:14:42,115 --> 00:14:44,700 Egy hét alatt a probléma beállítva hét. 318 00:14:44,700 --> 00:14:47,490 De én tiszta ez akár is. 319 00:14:47,490 --> 00:14:49,590 Azt is szerepel mai kódot verzió 320 00:14:49,590 --> 00:14:52,340 Az idézet, amelynek nincs dot PHP fájlt. 321 00:14:52,340 --> 00:14:57,270 Mert ami feltehetően a tetején a program neve csak idézni? 322 00:14:57,270 --> 00:15:00,140 Ez az úgynevezett shebang-- a meglehetősen rejtélyes ráolvasás 323 00:15:00,140 --> 00:15:04,590 hogy azt mondja találni PHP majd futtatni a kódomat itt. 324 00:15:04,590 --> 00:15:07,360 >> Rendben, hogy hozza minket, ahol abbahagytuk 325 00:15:07,360 --> 00:15:09,560 Utolsó time-- bár néhány fejlettebb példát. 326 00:15:09,560 --> 00:15:13,980 Bármilyen kérdése eddig mintegy PHP vagy mit csinálunk? 327 00:15:13,980 --> 00:15:15,570 No-- minden rendben. 328 00:15:15,570 --> 00:15:16,180 Igen? 329 00:15:16,180 --> 00:15:19,610 >> Közönség: Bent a HTML fájlok, nem you-- 330 00:15:19,610 --> 00:15:22,226 [? te ?] [? Csak hívják?] Egy [hallhatatlan] PHP fájlt? 331 00:15:22,226 --> 00:15:23,350 DAVID MALAN: Jó kérdés. 332 00:15:23,350 --> 00:15:26,070 A web összefüggésben, ami mi vagyunk Szó szerint mintegy átmenet, 333 00:15:26,070 --> 00:15:28,028 Ön nem használja az úgynevezett kocsma tetején, 334 00:15:28,028 --> 00:15:31,980 mert az internetes server-- gyakran nevű program Apache vagy a Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, az Internet Information Server, vagy számos más web szerver szoftver, 336 00:15:37,470 --> 00:15:40,636 tudja, hogy ha látja egy pont PHP fájlt, hogy 337 00:15:40,636 --> 00:15:42,010 kell futtatni a tolmács rajta. 338 00:15:42,010 --> 00:15:43,468 Nem úgy néz ki, hogy az első sorban. 339 00:15:43,468 --> 00:15:45,580 Tehát ez első sorban trükk csak ha éppen 340 00:15:45,580 --> 00:15:48,330 írásban parancssori programs-- amely nem teszünk szuper gyakran, 341 00:15:48,330 --> 00:15:52,510 de ez mi módon áthidaló a C példa, hogy most mi a PHP. 342 00:15:52,510 --> 00:16:00,680 >> Úgyhogy valóban áthidalja ezt a világot a parancssorból világon a web 343 00:16:00,680 --> 00:16:02,230 az alábbiak végrehajtásával. 344 00:16:02,230 --> 00:16:05,090 Hadd menjen előre, és felhívni ide csak egy pillanatra. 345 00:16:05,090 --> 00:16:09,940 Tehát ha van egy webszerver, vagy inkább ha van laptopom ide, 346 00:16:09,940 --> 00:16:11,280 amit majd felhívni, mint ez. 347 00:16:11,280 --> 00:16:14,250 És itt van a internet valamilyen formában. 348 00:16:14,250 --> 00:16:18,210 És akkor itt, van szerveren egy building-- 349 00:16:18,210 --> 00:16:20,760 ez hogyan az interneten works-- és itt 350 00:16:20,760 --> 00:16:23,120 egy szerver néhány fények talán. 351 00:16:23,120 --> 00:16:27,530 Mi történt valójában E két kapcsolatok? 352 00:16:27,530 --> 00:16:29,240 >> Tehát ebben az épületben van egy webszerver. 353 00:16:29,240 --> 00:16:31,420 Ez csak egy számítógép hogy fut valamilyen működési 354 00:16:31,420 --> 00:16:34,561 system-- talán az ingyenes szoftver hívott Apache, amely CS50 IDE fut. 355 00:16:34,561 --> 00:16:36,310 Így tulajdonképpen gondolom az épület 356 00:16:36,310 --> 00:16:38,579 mint az épület amely CSt0 IDE tárolják. 357 00:16:38,579 --> 00:16:40,870 Ez az, ahol minden van számlák, ahol mindannyian 358 00:16:40,870 --> 00:16:43,130 Van saját webszerver futás, mindannyian 359 00:16:43,130 --> 00:16:45,730 van saját egyedi URL, Amint elkezdtük megvitatni, 360 00:16:45,730 --> 00:16:47,280 és látni fogod többet P. meg hat. 361 00:16:47,280 --> 00:16:49,450 >> Itt az én laptop valahol máshol az interneten. 362 00:16:49,450 --> 00:16:54,550 És így amikor meglátogat egy URL-t, hogy tartozik nekem, hogy az internet forgalma megy 363 00:16:54,550 --> 00:16:58,360 át a szerver, a szerver részesülő HTTP request-- 364 00:16:58,360 --> 00:17:02,900 mint egy kap index.html és ez válaszolt arra a weboldalra. 365 00:17:02,900 --> 00:17:04,280 Szóval ez az általános paradigma. 366 00:17:04,280 --> 00:17:07,089 Mivel mindent Eddig ma, mindent 367 00:17:07,089 --> 00:17:09,660 történik csak a étkeztetést ez az épület. 368 00:17:09,660 --> 00:17:12,910 Én is használtam a laptop, de Én csatlakozik CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 így minden, az e programok futottam volt benne az, hogy szerver, maga. 370 00:17:17,369 --> 00:17:22,660 >> De most, kezdjük újrahasznosítása PHP hogy írjon néhány aktuális programok 371 00:17:22,660 --> 00:17:24,230 szolgálnak fel a web szerver. 372 00:17:24,230 --> 00:17:30,320 És hogy ezt, én megyek egy csomó példát 373 00:17:30,320 --> 00:17:33,710 hogy vezessenek be ezt az ötletet itt. 374 00:17:33,710 --> 00:17:38,500 Tehát ez a fajta divatos módja leíró programozási paradigma. 375 00:17:38,500 --> 00:17:41,540 >> És valóban, ahogy kilép CS50 vagy dolgozni végleges projekteket, 376 00:17:41,540 --> 00:17:43,520 vagy hogy néhány követni osztályú, kezdesz 377 00:17:43,520 --> 00:17:45,740 látja, hogy a world-- különösen miután nőtt fel 378 00:17:45,740 --> 00:17:48,300 a nyelvek, mint a C- hogy szuper alacsony level-- 379 00:17:48,300 --> 00:17:51,290 rájönnek, hogy van jobb, módjait író szoftver. 380 00:17:51,290 --> 00:17:53,290 Vannak bizonyos minták tudod követni, 381 00:17:53,290 --> 00:17:57,640 Bizonyos szempontból a szervező a fájlokat és módjait elnevezése a funkciók, 382 00:17:57,640 --> 00:18:00,300 úgy, hogy rövidre fogjam, A világ jön 383 00:18:00,300 --> 00:18:04,340 egy csomó betűszavak és nevek módon a programozás. 384 00:18:04,340 --> 00:18:06,260 Ezek csak technikákat lehet használni. 385 00:18:06,260 --> 00:18:09,660 >> És egyikük az úgynevezett MVC, A MVC. 386 00:18:09,660 --> 00:18:12,270 És ez még csak, a Most, túlbonyolított 387 00:18:12,270 --> 00:18:18,960 szóval hogyan kellene meghatároznia azokat PHP-alapú honlap, a mi esetünkben. 388 00:18:18,960 --> 00:18:22,140 Hogyan fájlok szervezéséhez, hogyan szervezi a logika, 389 00:18:22,140 --> 00:18:26,220 oly módon, hogy megkönnyíti a levelet bonyolultabb weboldalak? 390 00:18:26,220 --> 00:18:28,550 És valóban, akkor gyorsan odaér a p-set hét. 391 00:18:28,550 --> 00:18:32,020 >> Így a világ MVC, fogsz törekedtünk, hogy a kód általában 392 00:18:32,020 --> 00:18:38,290 jellemezhető mindkét modellt kódot, vagy a vezérlő kód, vagy kilátás kódot. 393 00:18:38,290 --> 00:18:40,200 És fogok leegyszerűsítik azt follows-- 394 00:18:40,200 --> 00:18:42,074 A vezérlő a Brains program 395 00:18:42,074 --> 00:18:44,100 ez az, ahol az összes Érdekes logika történik. 396 00:18:44,100 --> 00:18:46,110 Szóval, amin írásban eddig az osztályban, 397 00:18:46,110 --> 00:18:48,210 olyan, mint adatkezelő code-- ez kontrolling 398 00:18:48,210 --> 00:18:50,585 a programunkban, a hurkok, a feltételeket, a funkciók 399 00:18:50,585 --> 00:18:52,100 és változók, és minden. 400 00:18:52,100 --> 00:18:56,160 >> Nézetek, most is lesz egy kicsit sokkal nyilvánvalóbb a világon az interneten. 401 00:18:56,160 --> 00:18:59,360 A kilátás az esztétika az Ön honlapján. 402 00:18:59,360 --> 00:19:04,080 Ez az, amit a felhasználó sees-- a képeket, A HTML táblázatok, a HTML, és minden 403 00:19:04,080 --> 00:19:08,220 Az, hogy minden a bolyhos esztétikai cucc, ami nem is olyan nehéz írni, 404 00:19:08,220 --> 00:19:11,380 de csak amit generál, az úgynevezett véli, az esztétika. 405 00:19:11,380 --> 00:19:13,880 És a modell végső soron folyik hogy adatbázis stuff-- amely 406 00:19:13,880 --> 00:19:16,510 kezdjük búvárkodás minden A több szerdán. 407 00:19:16,510 --> 00:19:19,740 Tehát vezérlő logikáját, Tekintettel az esztétikai dolgokat, 408 00:19:19,740 --> 00:19:23,500 és a modell lesz, ahol tároljuk a tényleges adatokat. 409 00:19:23,500 --> 00:19:26,410 >> Tehát nézzük meg ezt konkrétabban a következő példa. 410 00:19:26,410 --> 00:19:34,700 Én megyek az én könyvtárban van A mai forrása code-- amelyek mindegyike 411 00:19:34,700 --> 00:19:35,770 online elérhető. 412 00:19:35,770 --> 00:19:37,800 És fogok belemenni változata nulla. 413 00:19:37,800 --> 00:19:41,500 És itt is-- nevezzük az változata a nulla a CS50 honlapján. 414 00:19:41,500 --> 00:19:43,010 Nincs sok itt egyáltalán. 415 00:19:43,010 --> 00:19:46,810 Ez egy nagyon egyszerű internetes oldalt, hogy az valószínűleg a mi HTML tags-- csak 416 00:19:46,810 --> 00:19:48,970 Szerintem a korábbi példák? 417 00:19:48,970 --> 00:19:49,890 >> Az mi? 418 00:19:49,890 --> 00:19:53,920 H1-- valószínűleg, hogy nagy vastag cím, hogy logót fel tetején, CS50. 419 00:19:53,920 --> 00:19:55,080 És mi van még a játék? 420 00:19:55,080 --> 00:19:55,799 Igen? 421 00:19:55,799 --> 00:19:56,840 Közönség: Rendezetlen lista. 422 00:19:56,840 --> 00:19:59,990 DAVID MALAN: Rendezetlen list-- így a UL tag és talán egy-két LI címkék. 423 00:19:59,990 --> 00:20:01,840 És ha nem emlékeznek ezekre, őszintén nem számít. 424 00:20:01,840 --> 00:20:04,170 Ezek bolyhos fajta végrehajtásának részleteit a HTML 425 00:20:04,170 --> 00:20:06,378 hogy gyorsan felnéznek és te vissza az utat. 426 00:20:06,378 --> 00:20:10,040 Majd inkább a programozási ötletek, hogy a szaftosabb darab. 427 00:20:10,040 --> 00:20:12,890 >> Úgyhogy csak egy gyors nézd meg a HTML-- sőt 428 00:20:12,890 --> 00:20:16,880 ha megnyitja a kép forrását itt, aha, Pontosan ez az, mi folyik itt. 429 00:20:16,880 --> 00:20:18,440 Van egy UL tag. 430 00:20:18,440 --> 00:20:20,630 Beágyazott belsejében, ami a LI címkék. 431 00:20:20,630 --> 00:20:24,470 És akkor vettem kölcsön az URL- Az aktuális tananyag itt. 432 00:20:24,470 --> 00:20:27,570 >> És akkor a lectures.php láthatóan 433 00:20:27,570 --> 00:20:31,640 Egy másik dinamikusan generált oldal hogy megy, hogy, mondjuk see-- ah, 434 00:20:31,640 --> 00:20:33,170 Az első két hét előadás. 435 00:20:33,170 --> 00:20:36,600 Így a héten a nulla és a héten az egyik, hadd nézd meg this-- ha Oldal forrásának megtekintése, 436 00:20:36,600 --> 00:20:38,120 is szuper egyszerű. 437 00:20:38,120 --> 00:20:42,430 Ezeket ami a két oldalt nevű week0.php, és week1.php. 438 00:20:42,430 --> 00:20:44,040 Tehát úgy most mi történik. 439 00:20:44,040 --> 00:20:50,630 >> Amikor rákattintok week0.php, a laptopom teszi a kérelmet week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 A web szerver, más néven, CS50 IDE, kap, hogy a virtuális borítékot. 442 00:20:58,110 --> 00:21:01,040 Ez látta az üzenetet mint, hogy week0.php. 443 00:21:01,040 --> 00:21:05,060 Ezután értelmezése a fájlt, felső lefelé, balról right-- fájl 444 00:21:05,060 --> 00:21:07,720 nevű week0.php-- és kiköpte az eredményeket. 445 00:21:07,720 --> 00:21:10,510 Szóval belsejében ez a fájl, week0.php, kell lennie 446 00:21:10,510 --> 00:21:15,410 A vezérlő logika amely generálja Ezzel a HTML, és mi hamarosan látni, hogy. 447 00:21:15,410 --> 00:21:19,340 >> De most, hadd kattintson héten nulla, és most már szerdán és pénteken, 448 00:21:19,340 --> 00:21:25,260 és most már a diák Lassan hétről nulla. 449 00:21:25,260 --> 00:21:27,400 És lehet, hogy emlékszem ez nagyon régről, amikor. 450 00:21:27,400 --> 00:21:29,340 Annak érdekében, hogy ez az egész weboldalt csinál. 451 00:21:29,340 --> 00:21:31,120 >> Tehát nézzük meg, hogyan csinálja ezt. 452 00:21:31,120 --> 00:21:34,290 Én megyek vissza a forráskódot itt, CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 és fogok nyitni index.php. 454 00:21:36,660 --> 00:21:38,910 A tetején a fájl egy csomó hozzászólás. 455 00:21:38,910 --> 00:21:43,000 És akkor a közepén ez a fájl, akkor Kiderül, nem PHP kód nélkül. 456 00:21:43,000 --> 00:21:47,380 Mert ha nincs a nyitó zárójel kérdőjel PHP címkék, 457 00:21:47,380 --> 00:21:49,180 Ön szabadon imént HTML. 458 00:21:49,180 --> 00:21:51,480 >> Mert amit a PHP tolmács kéne csinálni, 459 00:21:51,480 --> 00:21:53,938 van, amikor kimondja ezt file-- felülről lefelé, balról right-- 460 00:21:53,938 --> 00:21:59,100 csak úgy értelmezi kódot látja között azok csúcsos zárójelben kérdőjel. 461 00:21:59,100 --> 00:22:02,380 És bármi más, ez nem felismerni a PHP, csak kiköpi. 462 00:22:02,380 --> 00:22:05,080 És HTML között van a cucc akkor csak kiköp. 463 00:22:05,080 --> 00:22:09,090 >> Így sikerült a fájl van nevezték index.html, 464 00:22:09,090 --> 00:22:11,690 de én elnevezési mindent dot PHP, mint egy lépcsőfok. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- hasonlóan underwhelming, ez csak néhány a HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php hasonlóan csak néhány HTML. 467 00:22:19,840 --> 00:22:22,300 >> De most tegyük a közmondásos mérnöki kalap, 468 00:22:22,300 --> 00:22:24,400 és megvizsgálja, hogyan lehetne javítani ezen. 469 00:22:24,400 --> 00:22:28,541 Ez nem nehéz csinálni, de azt a fajta A decentralizált be a másolás és beillesztés. 470 00:22:28,541 --> 00:22:31,540 És valóban, ha én heti két, akkor Tudom, mit valószínűleg fog csinálni? 471 00:22:31,540 --> 00:22:34,940 Én megyek, hogy week1.php vagyok majd jelölje ki mindent. 472 00:22:34,940 --> 00:22:39,110 Megyek másolja, illessze egy új nevű fájlt week2.php, 473 00:22:39,110 --> 00:22:42,440 csípés néhány URL, és legyen útban. 474 00:22:42,440 --> 00:22:45,240 >> Tehát annak alapján, amit mi már látott C már, 475 00:22:45,240 --> 00:22:46,860 ez nem érezheti magát, reménykedve. 476 00:22:46,860 --> 00:22:49,610 Másolás, beillesztés ritkán jó megoldás. 477 00:22:49,610 --> 00:22:51,429 Szóval mit tudunk majd tenni, hogy javítsák ezt? 478 00:22:51,429 --> 00:22:53,345 Hol vannak a lehetőségek a jobb tervezés? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> Mire eljut heti nyolc, ez lesz 481 00:22:58,760 --> 00:23:00,910 hogy igazán bosszantó ha meg akarom változtatni 482 00:23:00,910 --> 00:23:03,930 a betűtípus minden egy oldalaimon, vagy ha azt akarom, 483 00:23:03,930 --> 00:23:06,522 szerkezetének megváltoztatása az elrendezés. 484 00:23:06,522 --> 00:23:08,396 Szóval hol van a lehetőséget, a jobb tervezés? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Nos, nézzük meg, mi van megoszthatók az összes ezeket a fájlokat. 487 00:23:15,160 --> 00:23:21,696 >> Itt van egy héten, itt héten nulla, itt lectures.php, 488 00:23:21,696 --> 00:23:25,790 itt index.php-- ami ugyanaz, és Mi a különbség, durván szólva, 489 00:23:25,790 --> 00:23:26,760 minden ilyen fájlokat? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Igen? 492 00:23:32,060 --> 00:23:34,560 >> Közönség: [hallható] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 DAVID MALAN: OK, jó. 495 00:23:42,160 --> 00:23:46,115 Szóval van egy minta, biztosan, ahol minden alkalommal, amikor választani Előadásomban, 496 00:23:46,115 --> 00:23:48,250 Azt kell termelni nagyon hasonló kinézetű oldal. 497 00:23:48,250 --> 00:23:50,375 És így talán képes kihasználni Az a tény, hogy nagyon, 498 00:23:50,375 --> 00:23:53,060 mi szándékosan számszerűen indexelt mi elõadások 499 00:23:53,060 --> 00:23:55,290 ha tudok még több szavakat a választ. 500 00:23:55,290 --> 00:23:59,984 És mi az az egyetlen dolog, tényleg, amely megváltoztatja hét között one-- 501 00:23:59,984 --> 00:24:02,400 és hadd lépjünk le, így ez nagyjából ugyanabban place-- 502 00:24:02,400 --> 00:24:05,480 ezért itt a héten nulla, durván a tetején. 503 00:24:05,480 --> 00:24:12,370 Itt héten egy, a héten nulla, heti egy, a héten nulla. 504 00:24:12,370 --> 00:24:14,370 OK, szó szerint, ha tudod, nincs program egyáltalán, 505 00:24:14,370 --> 00:24:16,286 ez most olyan, mint egy minta megfelelő játékot. 506 00:24:16,286 --> 00:24:17,200 Szóval mi más? 507 00:24:17,200 --> 00:24:18,765 Igen? 508 00:24:18,765 --> 00:24:19,777 >> Közönség: [hallható] 509 00:24:19,777 --> 00:24:22,360 DAVID MALAN: Jó, így a cím változik, alig észrevehetően. 510 00:24:22,360 --> 00:24:24,010 Zero lesz, persze, hogy az egyik. 511 00:24:24,010 --> 00:24:25,570 Ugyanaz történik a H1 tag. 512 00:24:25,570 --> 00:24:28,790 És nem elég látni, mint könnyen, mert az URL-ek egy kicsit hosszú. 513 00:24:28,790 --> 00:24:30,670 De ezek az URL-ek változik egy kicsit. 514 00:24:30,670 --> 00:24:34,490 >> De mi nem változik van, merem mondjuk, a legtöbb a tartalmát a page-- 515 00:24:34,490 --> 00:24:38,530 A HTML tag ugyanaz, a fej az azonos, a cím majdnem ugyanaz, 516 00:24:38,530 --> 00:24:40,659 a test ugyanaz, és szinte minden mást 517 00:24:40,659 --> 00:24:42,450 jelentése ugyanaz, kivéve azok a kis csíp. 518 00:24:42,450 --> 00:24:45,310 Tehát hogyan tudjuk járni faktoring néhány ezt ki? 519 00:24:45,310 --> 00:24:48,740 >> Hát hadd javaslatot pontosan hogy a következő verzió. 520 00:24:48,740 --> 00:24:53,890 Tehát itt verzióban egy, már a pontos ugyanazokat a fájlokat, plusz egy pár mások. 521 00:24:53,890 --> 00:24:59,730 Itt van index.php-- és akkor is, ha még sosem láttam korábban a PHP, 522 00:24:59,730 --> 00:25:05,511 én mit csinálok valószínűleg megoldani ezt problem-- alapján, amit itt látsz? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Igen, az, hogy egy kis elkötelezettség? 525 00:25:12,760 --> 00:25:13,450 Nem? 526 00:25:13,450 --> 00:25:16,020 Igen, folytassa. 527 00:25:16,020 --> 00:25:17,380 >> Közönség: [hallható] 528 00:25:17,380 --> 00:25:18,380 >> DAVID MALAN: Ja. 529 00:25:18,380 --> 00:25:20,380 >> Közönség: [hallható] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> DAVID MALAN: Azt akarom, hogy beszélnek, csak egy kicsit hangosabban. 532 00:25:28,669 --> 00:25:31,084 >> Közönség: [hallható] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 DAVID MALAN: OK, jó. 535 00:25:36,660 --> 00:25:38,620 És én think-- volt nehezen hallható you-- de 536 00:25:38,620 --> 00:25:42,690 úgy gondolja, hogy mit akarsz kilyukadni, hogy A címkék, amelyek közös fel tetején, 537 00:25:42,690 --> 00:25:47,710 valamint a címkék, amelyek gyakori a alján, most komoly tényező ki, 538 00:25:47,710 --> 00:25:51,140 vagy kárhoztatva, hogy milyen fájlokat? 539 00:25:51,140 --> 00:25:53,476 Header.php és footer.php-- és megyünk 540 00:25:53,476 --> 00:25:55,600 hogy néhány csíp aggodalom csak 541 00:25:55,600 --> 00:25:59,370 felemelte a szám változó, az Például, ha azt hallottam, hogy helyesen. 542 00:25:59,370 --> 00:26:02,060 >> De úgy tűnik, hogy a lényegét. 543 00:26:02,060 --> 00:26:04,820 Ha volt egy hatalmas redundancia a lap tetején, 544 00:26:04,820 --> 00:26:06,736 és egy hatalmas mennyiségű redundancia az alján, 545 00:26:06,736 --> 00:26:09,280 nézzük szó szerint csak fénypontja és vágja, hogy a tartalom el, 546 00:26:09,280 --> 00:26:13,270 tedd egy külön file-- akárcsak Az ötlet a CSS, ahol tényezőként ki 547 00:26:13,270 --> 00:26:16,710 nagyon hasonló az esztétika, tedd ez egy külön dot PHP fájlt, 548 00:26:16,710 --> 00:26:20,340 Használja a igényelnek mechanism-- amely olyan, mint a C éles foglalják magukba, amelyek 549 00:26:20,340 --> 00:26:23,570 Lényegében mintha azt mondanánk menni en- nek a tartalmát header.php 550 00:26:23,570 --> 00:26:25,370 és másolja őket ide. 551 00:26:25,370 --> 00:26:29,490 >> De ez mit jelent az, hogy most index.php, van e két sort. 552 00:26:29,490 --> 00:26:32,130 Ebben lectures.php, én is Van két sor. 553 00:26:32,130 --> 00:26:35,230 Ebben week0.php, én is Van két sor. 554 00:26:35,230 --> 00:26:38,380 >> Tehát most, ha meg akarom változtatni A cím minden az én oldalak, 555 00:26:38,380 --> 00:26:40,530 vagy meg akarom változtatni a alapvető szerkezetét, 556 00:26:40,530 --> 00:26:44,380 Meg tudom változtatni most csak egy helyen, vagy két places-- fejléc és a lábléc, 557 00:26:44,380 --> 00:26:45,429 volt. 558 00:26:45,429 --> 00:26:47,970 Most a kódot kezdő nézni egy kicsit rejtélyes, nem igaz? 559 00:26:47,970 --> 00:26:53,590 De ha úgy gondolja, hogy mi az oldal A doing-- ha én kérő week0.php, 560 00:26:53,590 --> 00:26:59,880 csakúgy, mint a rajz fölött here-- ha week0.php kérik, 561 00:26:59,880 --> 00:27:00,960 az mit jelent? 562 00:27:00,960 --> 00:27:04,410 >> Szó szerint, ez a fájl kérte a böngésző. 563 00:27:04,410 --> 00:27:06,240 A web server-- a.k.a. 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- megragadja ezt fájlt, week0.php, és olvas 565 00:27:09,250 --> 00:27:10,780 ez felülről lefelé, balról jobbra. 566 00:27:10,780 --> 00:27:15,400 Az egyes vonalon, akkor azonnal találkozik nyitó zárójel kérdőjel PHP, szükségessé 567 00:27:15,400 --> 00:27:17,872 header dot PHP, és így amit a PHP értelmező 568 00:27:17,872 --> 00:27:20,580 does--, ami beépül a web szerver, mert előre konfigurált 569 00:27:20,580 --> 00:27:24,580 azt you-- akkor automatikusan a header.php, másolja a tartalmát, 570 00:27:24,580 --> 00:27:25,640 illeszti őket ide. 571 00:27:25,640 --> 00:27:28,790 >> De aztán a tolmács találkozások kérdőjel záró zárójel, 572 00:27:28,790 --> 00:27:30,320 így mind kész gondolkodik. 573 00:27:30,320 --> 00:27:33,400 Most csak vakon kiköpi sorokat, két hét keresztül, 574 00:27:33,400 --> 00:27:35,240 mert ez csak a nyers HTML. 575 00:27:35,240 --> 00:27:38,470 Gets sorban nyolc, és nem, hogy ugyanaz a varázslat again-- a fájl megnyitása, 576 00:27:38,470 --> 00:27:41,460 megragadta a tartalmát, és felszólítja őket, vagy beillesztés őket 577 00:27:41,460 --> 00:27:42,480 Akkor jó, vagy ott. 578 00:27:42,480 --> 00:27:44,210 >> De én csak utaltam a hibát. 579 00:27:44,210 --> 00:27:48,610 Ez egy részleges lépés hátra, mert ha megnézzük a header.php 580 00:27:48,610 --> 00:27:50,850 Már fajta vágott egy sarokban. 581 00:27:50,850 --> 00:27:56,250 Mi jellemző adtam fel annak érdekében, nyerni ezt a vitatható jobb tervezés? 582 00:27:56,250 --> 00:27:57,305 Igen? 583 00:27:57,305 --> 00:27:58,180 Közönség: [hallható] 584 00:27:58,180 --> 00:28:00,570 DAVID MALAN: Igen, valahogy A vágott nemtriviális sarokban. 585 00:28:00,570 --> 00:28:04,489 Ön rámutatott arra, hogy mi változik volt a címe, a szám a címben, 586 00:28:04,489 --> 00:28:05,530 és a szám a H1. 587 00:28:05,530 --> 00:28:08,170 Szóval a megoldás az volt, OK, nézzük csak nevezd át a lapot, 588 00:28:08,170 --> 00:28:10,080 és nem foglalkozik, hogy probléma nélkül. 589 00:28:10,080 --> 00:28:12,130 Szóval ez egy részleges visszalépés az biztos. 590 00:28:12,130 --> 00:28:14,300 >> De mi is figyelemre méltó itt Ez az, amit tettem 591 00:28:14,300 --> 00:28:17,200 egyébként tényezőként ki az összes közös dolgokat. 592 00:28:17,200 --> 00:28:21,520 És footer.php, észre azt tényezőként ki minden, hogy, bár kisebb, 593 00:28:21,520 --> 00:28:22,790 közös dolgokat. 594 00:28:22,790 --> 00:28:26,070 Szóval kell valahogy most képes Egy lépést előre, és rögzíti 595 00:28:26,070 --> 00:28:27,160 ezt a címet kérdéseket. 596 00:28:27,160 --> 00:28:28,180 Tehát lássuk, hogy. 597 00:28:28,180 --> 00:28:35,060 >> Hadd menjen be a második verzió Itt, amely ismét ugyanaz a fájlokat 598 00:28:35,060 --> 00:28:36,825 kivéve egy új mellett. 599 00:28:36,825 --> 00:28:38,950 És ez egy kicsit bőbeszédű, de lássuk, ha 600 00:28:38,950 --> 00:28:40,550 lehet ugratni egymástól, mi folyik itt. 601 00:28:40,550 --> 00:28:45,370 Tehát ahelyett igénylő header.php, és footer.php, 602 00:28:45,370 --> 00:28:50,180 Úgy látszik, hogy csak előírja egy file-- nevű, természetesen helpers.php. 603 00:28:50,180 --> 00:28:52,560 És hadd kikötik most, mi van benne a helpers.php 604 00:28:52,560 --> 00:28:55,330 csak egy csomó funkciók hogy én írtam, csak úgy, mint korábban. 605 00:28:55,330 --> 00:28:57,550 De én nevezte helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Most úgy tűnik, a sorban három és 10 vagyok 607 00:29:00,370 --> 00:29:02,840 hív két functions-- render fejléc, lábléc tehetik. 608 00:29:02,840 --> 00:29:05,040 Azok nem jönnek PHP, írtam ezeket magam. 609 00:29:05,040 --> 00:29:07,880 És tettem őket helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Most még csak láttam ezt a szintaxist egyszer, és ez volt szuper rövid. 611 00:29:11,210 --> 00:29:15,330 De ez nyilvánvalóan egy érv tétele fejléc, a funkció. 612 00:29:15,330 --> 00:29:16,450 Miért tudom? 613 00:29:16,450 --> 00:29:18,522 Hát itt van egy közeli zárójel, Itt van egy nyitott zárójel. 614 00:29:18,522 --> 00:29:21,230 És persze, mint C, semmit azok között, zárójelben 615 00:29:21,230 --> 00:29:23,350 egy input-- vagy egy érv, hogy a funkció. 616 00:29:23,350 --> 00:29:26,710 >> Mi az adatok típusát ezt az érvelést, annak alapján, amit én már rávilágított? 617 00:29:26,710 --> 00:29:30,820 Mit jelentenek ezek az szögletes zárójelben jelzik, az elmúlt egy héten? 618 00:29:30,820 --> 00:29:33,390 Igen, ez egy array-- konkrétan egy asszociatív tömb. 619 00:29:33,390 --> 00:29:35,700 És ez a szintaxis ugyan egy kicsit funky, 620 00:29:35,700 --> 00:29:38,860 de ez csak múló egy kulcs-érték párt. 621 00:29:38,860 --> 00:29:43,530 A legfontosabb az, idézet idézet vége cím, és ez az érték CS50. 622 00:29:43,530 --> 00:29:46,220 >> Ha ezt megtette C, talán inkább 623 00:29:46,220 --> 00:29:49,400 nézel ki, mint ez, Csak idézet idézet vége CS50-- 624 00:29:49,400 --> 00:29:52,460 vagy tényleg nem lenne göndör nadrágtartó, vagy valami ilyesmi a C, 625 00:29:52,460 --> 00:29:55,580 hol a kulcs nulla, és ez az érték CS50. 626 00:29:55,580 --> 00:29:59,840 De ismét, PHP, bár a szintaxis, megint egy kicsit furcsa, 627 00:29:59,840 --> 00:30:02,860 ez lehetővé teszi, hogy adja át a szóval a számok helyett 628 00:30:02,860 --> 00:30:05,120 társítani kulcsok értékeit. 629 00:30:05,120 --> 00:30:06,390 >> Szóval mit is jelent ez? 630 00:30:06,390 --> 00:30:09,750 Ha bemegyek helpers.php, nézzük meg ezt a funkciót. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, hanem renderHeader az én funkciót, 632 00:30:13,620 --> 00:30:16,220 és tudom, hogy azért, mert látom A funkció kulcsszó itt. 633 00:30:16,220 --> 00:30:19,450 Ez az új-re C-- ez nyilvánvalóan vesz egy érv az úgynevezett data-- 634 00:30:19,450 --> 00:30:22,400 de nem tudtam volna nevezte ezt semmit, de én nevezte adatok, 635 00:30:22,400 --> 00:30:25,090 Csak hogy egy kicsit clean-- és Csak egy tipp, különösen 636 00:30:25,090 --> 00:30:28,173 ha már beprogramozott valamilyen más magasabb szintű nyelvet, mielőtt valami 637 00:30:28,173 --> 00:30:29,820 AC feletti koncepcionálisan. 638 00:30:29,820 --> 00:30:33,820 >> Mit jelent az egyenlő nyitva tartó szögletes zárójel valószínűleg azt jelenti? 639 00:30:33,820 --> 00:30:35,540 Vagy mi lehet ez? 640 00:30:35,540 --> 00:30:39,660 Már nem láttam ezt a C. Igen? 641 00:30:39,660 --> 00:30:40,480 >> Egy üres tömböt. 642 00:30:40,480 --> 00:30:45,440 Konkrétan ez azt jelenti, hogy ha a a felhasználó nem hívja renderHeader 643 00:30:45,440 --> 00:30:49,340 egy érv, én még mindig megy hogy egy függvényben adatok, 644 00:30:49,340 --> 00:30:52,327 de alapértéke lesz egy üres tömböt. 645 00:30:52,327 --> 00:30:53,660 Tehát ez csak egy szép kényelmét. 646 00:30:53,660 --> 00:30:56,493 Nem kell kiabálni a felhasználó, vagy mondjuk használtam a funkciót rossz. 647 00:30:56,493 --> 00:30:59,849 Én is csak hogy a felhasználó egy alapértelmezett értéket, ha én nem igazán érdekel. 648 00:30:59,849 --> 00:31:01,890 Most ezt a funkciót, én vagyok fog integetni a kezem meg. 649 00:31:01,890 --> 00:31:07,620 De ez a kivonat a funkció lehetővé teszi számunkra, hogy adja át ezeket a változókat adatok 650 00:31:07,620 --> 00:31:10,360 figyelembe header.php a következő módon. 651 00:31:10,360 --> 00:31:13,100 És ez az utolsó darab, Azt hiszem, a funky szintaxis. 652 00:31:13,100 --> 00:31:15,860 Itt az új verzió A header.php-- meg 653 00:31:15,860 --> 00:31:20,140 szokta mondani, a szó szoros értelmében, nyitott konzol cím CS50, és ennyi volt. 654 00:31:20,140 --> 00:31:21,766 És ugyanezt a H1. 655 00:31:21,766 --> 00:31:24,310 >> Most nyilván azt mondja, valami nagyon pörgős. 656 00:31:24,310 --> 00:31:28,030 És hadd egyszerűsítése egy pillanatra a következő. 657 00:31:28,030 --> 00:31:31,020 Ez az, amit Megváltoztattam a címet, hogy legyen. 658 00:31:31,020 --> 00:31:35,140 Azonban ez már egy kicsit csúnya hogy folyamatosan nyitott zárójelet a PHP, 659 00:31:35,140 --> 00:31:36,610 majd a nyomtatási funkció. 660 00:31:36,610 --> 00:31:40,810 Kiderül, hogy a PHP egy rövidített jelölés erre, amely mindössze 661 00:31:40,810 --> 00:31:45,050 egyenlőségjel, ami technikailag egy nevű függvény echo helyett print, 662 00:31:45,050 --> 00:31:46,800 de ez ugyanaz a dolog, hatékonyan. 663 00:31:46,800 --> 00:31:48,440 >> Hogy csak jobban néz ki. 664 00:31:48,440 --> 00:31:50,510 Ez csak egy szintaktikai cukor, ha úgy tetszik, 665 00:31:50,510 --> 00:31:52,260 ami a kódomat meg egy kicsit jobban. 666 00:31:52,260 --> 00:31:54,010 De kiderült, és majd meglátjuk ezt újra 667 00:31:54,010 --> 00:31:57,420 Nemsokára meg kell hívni ezt idegesítően hosszú nevű függvény 668 00:31:57,420 --> 00:32:00,582 HTML speciális jelek közé PHP, mert kiderül, 669 00:32:00,582 --> 00:32:02,790 vannak bizonyos bemenetek hogy a felhasználó esetleg nekünk, 670 00:32:02,790 --> 00:32:05,160 vagy hogy a felhasználók adhat nekünk, hogy fognak törni a honlapunkon. 671 00:32:05,160 --> 00:32:07,035 De majd meglátjuk, hogy a következő héten a JavaScript. 672 00:32:07,035 --> 00:32:10,740 De most, csak tudom, hogy ezt a fájlt, headers.php, egyszerűen 673 00:32:10,740 --> 00:32:13,040 veszi a cím, hogy Átmentem a, ez teszi 674 00:32:13,040 --> 00:32:17,380 arról, hogy biztonságos kell beadni a webes oldal, és kiköpi a címemet 675 00:32:17,380 --> 00:32:18,640 és ahogy a H1. 676 00:32:18,640 --> 00:32:24,440 Szóval, ha bemegy a verziót, észre, hogy előadásokat megvan a cím vissza, 677 00:32:24,440 --> 00:32:28,630 heti nulla megvan a cím vissza, és Valóban, a HTML én generáló 678 00:32:28,630 --> 00:32:32,110 megegyezik azzal, amit az első verzió was-- kivéve Saját szóköz, 679 00:32:32,110 --> 00:32:35,150 mert én már elkezdtem formázás kódomat egy kicsit másképp. 680 00:32:35,150 --> 00:32:38,082 De én keletkezett összes A kód érdekel. 681 00:32:38,082 --> 00:32:39,790 Szóval hadd szünet Csak egy pillanatra, és látni 682 00:32:39,790 --> 00:32:42,200 ha van olyan kérdés vagy zavartság hoztam létre. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Rendben, szóval csavarja egy kicsit nehezebb itt 685 00:32:48,150 --> 00:32:51,500 hogy ha van egy lehetőséget a fejlődésre. 686 00:32:51,500 --> 00:32:56,130 Helpers.php is volt ez a funkció, az úgynevezett renderFooter. 687 00:32:56,130 --> 00:32:59,652 És mi a méltó mintegy renderHeader, és renderFooter? 688 00:32:59,652 --> 00:33:02,610 És ismét, a mai célra, tudom, hogy a kivonat funkció csak 689 00:33:02,610 --> 00:33:08,280 az én utam az elhaladó érvek a header.php és footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Bocsánat? 692 00:33:11,780 --> 00:33:13,056 >> Közönség: [hallható] 693 00:33:13,056 --> 00:33:15,180 DAVID MALAN: Igen, én csak megváltoztatta a igényelnek sorban. 694 00:33:15,180 --> 00:33:19,410 Tehát szó szerint, amit elkövetett bűn A másolás és beillesztés, ismét. 695 00:33:19,410 --> 00:33:21,920 Ez nem egy nagy szám sorok, de jön on-- 696 00:33:21,920 --> 00:33:25,220 ha én másolás és beillesztés mindent csak megváltoztatni egy kis szó, 697 00:33:25,220 --> 00:33:28,610 és az egy kis szó, hogy Alan rámutat végzésének láblécet itt, szemben a fejléc itt. 698 00:33:28,610 --> 00:33:30,670 Ellenkező esetben, minden azonos, kivéve, 699 00:33:30,670 --> 00:33:32,180 Természetesen a függvény nevét. 700 00:33:32,180 --> 00:33:33,690 Szóval mit lehetne jobban csinálni? 701 00:33:33,690 --> 00:33:39,810 >> Hát hadd nyissa meg ezt a verziót Itt, ahol a helpers.php, 702 00:33:39,810 --> 00:33:42,300 miért nem csak kap egy kicsit okosabb erről? 703 00:33:42,300 --> 00:33:46,410 Írja kissé bonyolultabb kódot, de hívják tehetik? 704 00:33:46,410 --> 00:33:48,470 Szóval mit értem alapjaiban változott meg? 705 00:33:48,470 --> 00:33:51,770 >> Beletelik egy érv now-- két érv, adatok még. 706 00:33:51,770 --> 00:33:54,444 És akkor mi van az első név valószínűleg használják, 707 00:33:54,444 --> 00:33:55,860 annak alapján, amit olvasol itt? 708 00:33:55,860 --> 00:33:58,452 Még ha néhány, a szintaxis mindig új. 709 00:33:58,452 --> 00:33:59,660 Mi dollár jel sablon? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Bocsánat? 712 00:34:03,016 --> 00:34:03,710 >> Közönség: fejléc vagy lábléc. 713 00:34:03,710 --> 00:34:04,510 >> DAVID MALAN: fejléc vagy lábléc. 714 00:34:04,510 --> 00:34:07,134 Tehát úgy tűnik, úgy döntöttem, hogy ha Az egyetlen dolog, amely megváltoztatja 715 00:34:07,134 --> 00:34:10,159 az, amit akarok sablon hogy print-- és sablon 716 00:34:10,159 --> 00:34:13,100 Úgy értem, ez tervezet kódot, amit szeretnénk kiírni, 717 00:34:13,100 --> 00:34:16,350 de azt akarom, hogy csatlakoztassa a néhány values-- így ha ez csak fejléc 718 00:34:16,350 --> 00:34:20,440 vagy lábléc, miért nem paraméterezni hogy és hívja az érv dollár jel 719 00:34:20,440 --> 00:34:21,409 sablon? 720 00:34:21,409 --> 00:34:26,250 És akkor ez a funky szintaxis lehetővé teszi számomra, hogy hozzon létre egy utat egy változó itt. 721 00:34:26,250 --> 00:34:28,030 >> Tehát dollár jel útját egy változó. 722 00:34:28,030 --> 00:34:31,120 Mit jelent ez a szintaxis csinálni, ha ismeri? 723 00:34:31,120 --> 00:34:32,512 Igen? 724 00:34:32,512 --> 00:34:34,065 >> Közönség: [hallható] 725 00:34:34,065 --> 00:34:34,940 DAVID MALAN: Pontosan. 726 00:34:34,940 --> 00:34:37,600 Ha sablon, idézet idézőjel bezárva, header, vagy ha sablon, 727 00:34:37,600 --> 00:34:41,170 idézet idézet vége, lábléc, hogy a sorban van hogy amit kiemelt, vonal nyolc, 728 00:34:41,170 --> 00:34:46,330 egyszerűen figyelembe ezt a nevet, mint a fejléc, és összefűzése azt dot PHP. 729 00:34:46,330 --> 00:34:49,750 Tehát nem volt ez a szolgáltató C. Ez a pont operátor 730 00:34:49,750 --> 00:34:54,520 egy csodálatos dolog PHP-- ha ismerik a JavaScript vagy Java, 731 00:34:54,520 --> 00:34:56,949 akkor a plusz aláírja csinálni összefűzés. 732 00:34:56,949 --> 00:34:59,974 >> A C-ben, ez a fájdalom a neck-- és nagyon sajnálom, a p-set hat, 733 00:34:59,974 --> 00:35:02,390 fogsz kell tennie, this-- ez a fájdalom a nyak 734 00:35:02,390 --> 00:35:03,930 összefûzését szálakat. 735 00:35:03,930 --> 00:35:04,670 Miért? 736 00:35:04,670 --> 00:35:06,580 Nos, azért, mert ha van Egy karaktersorozat, ez a hosszú, 737 00:35:06,580 --> 00:35:09,538 és egy másik szöveg, hogy ez a hosszú, nem lehet csak dugja össze őket. 738 00:35:09,538 --> 00:35:11,070 Mit helyett kell tennie a C? 739 00:35:11,070 --> 00:35:11,680 Igen? 740 00:35:11,680 --> 00:35:12,380 >> Közönség: [hallható] 741 00:35:12,380 --> 00:35:15,090 >> DAVID MALAN: Meg kell malloc memória, vagy használjon egy tömböt a verem. 742 00:35:15,090 --> 00:35:17,214 És valóban meg kell hogy a tömbben elég nagy 743 00:35:17,214 --> 00:35:20,940 amely ebbe a plusz ez, valamint a backslash nulla. 744 00:35:20,940 --> 00:35:24,994 Aztán összefűzni őket használó keverjük macska vagy kézzel egy for ciklus, 745 00:35:24,994 --> 00:35:26,160 vagy tetszőleges számú technikákat. 746 00:35:26,160 --> 00:35:27,760 És megmutatjuk neked egy pár p-set hat. 747 00:35:27,760 --> 00:35:29,080 >> Ez egy fájdalom a nyak. 748 00:35:29,080 --> 00:35:34,190 És ez valóban mit gondolok arról ennek függvényében this--, mint a C versus PHP. 749 00:35:34,190 --> 00:35:36,870 Csak azt, hogy sokkal több funkcionalitást ingyen, 750 00:35:36,870 --> 00:35:39,030 így nyugodtan koncentrálhat, Ideális esetben a móka 751 00:35:39,030 --> 00:35:41,190 részét kódoló, az projekt szeretné megoldani, 752 00:35:41,190 --> 00:35:43,190 inkább, mint az alacsony szintű aprólékos. 753 00:35:43,190 --> 00:35:49,840 >> Tehát ez csak generál header.php vagy footer.php alapján melyik hívom. 754 00:35:49,840 --> 00:35:52,280 És valóban, ha elmegyek figyelembe index.php, értesítés 755 00:35:52,280 --> 00:35:56,230 minden, ami changed-- Ahelyett hív render fejléc vagy lábléc render, 756 00:35:56,230 --> 00:36:00,230 Hívom render, majd a sablon nevét, amit akarok. 757 00:36:00,230 --> 00:36:02,370 És látni fogod, ez is A probléma állítva hét, 758 00:36:02,370 --> 00:36:05,530 amely által lehetővé teszi, hogy a ugyanazt a funkciót, hogy a fürtök 759 00:36:05,530 --> 00:36:07,550 és csokor különböző weboldalakat. 760 00:36:07,550 --> 00:36:10,570 >> Tehát ahelyett lakik túl sokkal azokon details-- 761 00:36:10,570 --> 00:36:13,210 amely látni fogod újra probléma szett seven-- nézzük 762 00:36:13,210 --> 00:36:16,850 a most az elején egy oldat hogy egy érdekes probléma. 763 00:36:16,850 --> 00:36:19,310 Eddig semmi mi már kész van a mentett adatok. 764 00:36:19,310 --> 00:36:22,920 Tény, hogy az egyetlen alkalom, amit valaha is mentett valamit tettünk ebbe az osztályba 765 00:36:22,920 --> 00:36:31,030 az, amikor volt egy nagyon egyszerű demo egy darabig vissza, ami által használt fájlok IO C, 766 00:36:31,030 --> 00:36:34,520 és azt hiszem, beírtam a nevem, és Hannah nevét, és Maria nevet, 767 00:36:34,520 --> 00:36:37,610 vagy talán Andy nevét, és akkor mentett CSV file-- 768 00:36:37,610 --> 00:36:39,430 vesszővel elválasztott fájlt. 769 00:36:39,430 --> 00:36:43,530 >> És szoktuk fopen-- Azt hiszem, szoktuk fprintf ha jól emlékszem, 770 00:36:43,530 --> 00:36:44,910 és mi mentett egy fájlt. 771 00:36:44,910 --> 00:36:46,920 Most, hogy a legegyszerűbb adatbázis formájában. 772 00:36:46,920 --> 00:36:50,230 Ha azt szeretnénk, hogy a honlapon a Frosh IMS-program, amelynek során gólya 773 00:36:50,230 --> 00:36:53,390 lehet regisztrálni a sport, akkor ideális esetben akar valamit csinálni, hogy az adatokat. 774 00:36:53,390 --> 00:36:55,370 A múlt héten csináltunk semmit A data-- mi csak azt mondta, 775 00:36:55,370 --> 00:36:56,661 Ön regisztrált, nem igazán. 776 00:36:56,661 --> 00:36:58,950 Vagy talán én e-mailben a Proctor, és ennyi volt. 777 00:36:58,950 --> 00:37:02,110 >> De jó lenne, ha tudnám adni, hogy a Proctor CSV fájlba, 778 00:37:02,110 --> 00:37:03,340 mint egy Excel fájl. 779 00:37:03,340 --> 00:37:05,090 Vagy még jobb, amilyet akkor jó lenne, ha tehetném 780 00:37:05,090 --> 00:37:08,830 tesz azok a felhasználók nevét és kollégiumi nevét, és minden adott 781 00:37:08,830 --> 00:37:11,740 egy adatbázis, amely Csak él örökké, 782 00:37:11,740 --> 00:37:13,530 amíg nem törli az adatokat. 783 00:37:13,530 --> 00:37:15,645 Egy adatbázis, amely lehetővé engem információk lekérdezésére. 784 00:37:15,645 --> 00:37:18,070 És valóban, ez az, amit az adatbázis. 785 00:37:18,070 --> 00:37:20,470 >> Bemutatjuk ma, és jövő héten is, a technológia 786 00:37:20,470 --> 00:37:25,020 nevű SQL-- a Structured Query Nyelvet, amely egy másik nyelvre. 787 00:37:25,020 --> 00:37:28,750 Ez lényegében a programozási nyelvet, de az adatbázisok. 788 00:37:28,750 --> 00:37:31,760 És egy adatbázist most, csak gondolni, mint egy szuper divatos verzió 789 00:37:31,760 --> 00:37:35,710 A Microsoft Excel vagy Google Táblázatok, vagy az Apple számok. 790 00:37:35,710 --> 00:37:39,950 Ez általában egy olyan program, amely lehetővé teszi hogy tárolja egy csomó adat 791 00:37:39,950 --> 00:37:43,960 A sorok és oszlopok, egészen mint lehet az Excel. 792 00:37:43,960 --> 00:37:47,100 >> De mi a szép, különösen, ha nem vagyunk szuper ismeri Excel, 793 00:37:47,100 --> 00:37:52,040 mit SQL lehetővé teszi, hogy nem is keresett ez információt írásban sornyi kódot 794 00:37:52,040 --> 00:37:55,220 ahol csak lehet, még akkor is, ha a adatbázisszervered millió sorok benne, 795 00:37:55,220 --> 00:37:57,190 megtalálja a dolgok szuper gyors. 796 00:37:57,190 --> 00:37:59,950 Tény, hogy az Excel különösen rossz nagy adathalmazok. 797 00:37:59,950 --> 00:38:02,460 És valóban, akár egy pár évvel ezelőtt, kiderült, 798 00:38:02,460 --> 00:38:08,890 Excel csak lehetővé teszi, hogy tárolja akár 65.535 sorok data-- amely 799 00:38:08,890 --> 00:38:12,020 soknak hangzik, de a időben voltam grad diák, 800 00:38:12,020 --> 00:38:14,920 és emlékszem, megbotlás mert én voltam generáló 801 00:38:14,920 --> 00:38:17,900 CSV fájlokat kutatáshoz és én akarta elemezni őket gyorsan 802 00:38:17,900 --> 00:38:19,530 mindössze megnyitása az Excel. 803 00:38:19,530 --> 00:38:23,730 Természetesen, a számítógép csak összeomlott, mert nem volt több, mint 65.000 sor. 804 00:38:23,730 --> 00:38:27,210 >> De ha nem a 65.535 származik? 805 00:38:27,210 --> 00:38:29,670 Mit csinál a Microsoft, feltehetően? 806 00:38:29,670 --> 00:38:32,430 Ha jó a hatáskörét kettő? 807 00:38:32,430 --> 00:38:37,160 Igen, voltak használva egy 16 bites értéket képviselnek a sor számát. 808 00:38:37,160 --> 00:38:41,310 És két 16 65,536-- mínusz egy, mert ha 809 00:38:41,310 --> 00:38:45,414 nulla index azt jelenti, hogy volt leginkább a sorok számát tudtam volna. 810 00:38:45,414 --> 00:38:46,830 És ez csak egy tervezési döntést. 811 00:38:46,830 --> 00:38:52,760 Megtakarításával 16 bit, akkor korlátozott nekem 16.000 sorok helyett 4 milliárd, 812 00:38:52,760 --> 00:38:54,322 amit lehetett volna ideális. 813 00:38:54,322 --> 00:38:57,030 De most, megyünk bevezetni ezt inkább egy webes környezetben. 814 00:38:57,030 --> 00:39:00,390 És mi a szép SQL, hogy még bár ez elég erős és elég 815 00:39:00,390 --> 00:39:04,050 kifinomult, ez tényleg csapódik ki, amely négy legfontosabb műveleteket, négy 816 00:39:04,050 --> 00:39:08,060 funkciói, ha will-- válassza, letöltésére vonatkozó adatok, keres 817 00:39:08,060 --> 00:39:12,510 az adatok; törölni vagy törlése adatok; betét hozzátéve sorok az adatbázisba; 818 00:39:12,510 --> 00:39:13,410 és frissítése. 819 00:39:13,410 --> 00:39:17,010 Tehát, ha valaha is használt Google Táblázatok, az Apple számok, a Microsoft 820 00:39:17,010 --> 00:39:19,310 Excel, akkor végre, legvalószínűbb, valamennyi 821 00:39:19,310 --> 00:39:22,530 Ezeknek a műveleteknek, mint egy emberi által Csak a billentyűzet használatával és mouse-- 822 00:39:22,530 --> 00:39:26,050 adatbevitel használja a szemét kiválasztásához, vagy Adatkereséshez 823 00:39:26,050 --> 00:39:28,360 vagy frissíteni az adatokat, vagy törölje az adatokat. 824 00:39:28,360 --> 00:39:29,870 >> Tehát mit jelent ez? 825 00:39:29,870 --> 00:39:34,300 Nos, előre telepített CS50 Az IDE egy program neve MySQL. 826 00:39:34,300 --> 00:39:37,050 Ez egy ingyenes, nyílt forráskódú adatbázis, hogy a szuper népszerű. 827 00:39:37,050 --> 00:39:40,590 Facebook, például arra használja, hogy ezt a nap, többek között olyan eszközökkel, amelyekkel használni. 828 00:39:40,590 --> 00:39:44,300 És egy csomó nagyon népszerű weboldalak használata ez nagyrészt azért, mert ez gyors, 829 00:39:44,300 --> 00:39:45,230 és azért, mert ingyenes. 830 00:39:45,230 --> 00:39:46,820 Bár minden bizonnyal léteznek alternatívák. 831 00:39:46,820 --> 00:39:49,580 És néhányan talán pancsolás a alternatívák végső projektek. 832 00:39:49,580 --> 00:39:55,330 >> Ez egy screenshot, eközben a egy web-alapú eszközt, az phpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Ez egy véletlen egybeesés, hogy ez a web-alapú eszköz is 834 00:39:58,260 --> 00:40:01,720 nyelven írt, PHP, de mi ez azt jelentette, hogy nem 835 00:40:01,720 --> 00:40:04,620 van nekünk egy web-alapú interfész egy adatbázishoz. 836 00:40:04,620 --> 00:40:07,180 Mivel a MySQL jellemzően valamit, történelmileg, akkor 837 00:40:07,180 --> 00:40:08,770 lenne kölcsönhatásba csak a parancssor. 838 00:40:08,770 --> 00:40:10,811 És ez lenne a szuper bosszantó és misztikus, hogy 839 00:40:10,811 --> 00:40:14,487 hogy írja szöveges parancsok kiválasztásához adatok, helyezze adatok, és az adatok törlése. 840 00:40:14,487 --> 00:40:16,820 Szóval néhány ember az interneten írt egy web-alapú program 841 00:40:16,820 --> 00:40:18,900 hogy csak hadd kezelni Az adatok az adatbázisunkban. 842 00:40:18,900 --> 00:40:23,040 Ez olyan, mint dupla kattintással Excel és fut egy web-alapú változata tartalmazza. 843 00:40:23,040 --> 00:40:26,370 >> És mit fogsz használni ezt a végső soron a jövő héten, nem p-set hat, 844 00:40:26,370 --> 00:40:28,680 de az, hogy létrejöjjön valami nevű CS50 Pénzügy, amely 845 00:40:28,680 --> 00:40:32,630 megy, hogy egy adatbázis a felhasználók, a felhasználói neveket és jelszavakat, 846 00:40:32,630 --> 00:40:34,860 dollár összegeket, hogy azok már a saját bankszámlák. 847 00:40:34,860 --> 00:40:37,280 Ez lesz amit használni tárolására 848 00:40:37,280 --> 00:40:39,910 A szimbólumok és mennyiségek állományok, hogy a felhasználók 849 00:40:39,910 --> 00:40:42,567 vásárolt virtuális dollárt, hogy akkor adjon nekik. 850 00:40:42,567 --> 00:40:44,900 És ez megy, hogy a felhasználók hogy regisztráljon a webhely, 851 00:40:44,900 --> 00:40:47,190 így még a barátok lehet ráhangolódni a honlapon 852 00:40:47,190 --> 00:40:49,360 és ténylegesen regisztrálni, Jelentkezz be, és a játék körül 853 00:40:49,360 --> 00:40:52,807 és próbálja megtalálni a hiba a kódban, és próbálja megtalálni hiba az Ön honlapján. 854 00:40:52,807 --> 00:40:55,390 És akkor csak regisztrálni által hozzátéve magukat, hatékonyan, 855 00:40:55,390 --> 00:40:58,120 via kódot írsz az adatbázisba. 856 00:40:58,120 --> 00:41:02,470 >> Például, ez egy gyors képernyőkép amit egy adatbázis nézhet. 857 00:41:02,470 --> 00:41:05,190 Ez volt az egyik a tavalyi solutions-- 858 00:41:05,190 --> 00:41:07,760 ez olyan, mint egy mini Excel fájlt, adatbázisban tárolt, 859 00:41:07,760 --> 00:41:09,950 alatt az nevű szoftvert MySQL. 860 00:41:09,950 --> 00:41:13,260 A bal oldali, én már láthatóan mivel minden felhasználó egy egyedi szám. 861 00:41:13,260 --> 00:41:16,200 A második oszlopban, adtam mindenki egy felhasználó name-- saját 862 00:41:16,200 --> 00:41:16,880 köztük. 863 00:41:16,880 --> 00:41:21,430 És a jobb oldali, Adtam nekik egy hash. 864 00:41:21,430 --> 00:41:26,760 >> Most ez valójában egy jelszót, de ez nem egy egyszerű szöveges jelszóval. 865 00:41:26,760 --> 00:41:30,160 Ez egy titkosított jelszó, ha úgy tetszik, vagy hash jelszót. 866 00:41:30,160 --> 00:41:32,000 Melyik jövünk vissza hamarosan. 867 00:41:32,000 --> 00:41:34,340 >> De ha valaha is olvasni egy cikket arról, hogyan 868 00:41:34,340 --> 00:41:37,950 jelszó valamikor bank vagy valamilyen honlap veszélyben lehet, 869 00:41:37,950 --> 00:41:39,630 ez általában azt jelenti, egy két dolgot. 870 00:41:39,630 --> 00:41:42,780 Tehát ez csak egy részlet hat felhasználók. 871 00:41:42,780 --> 00:41:45,460 Minden most is a szám keresztül történik hacker vagy repedés 872 00:41:45,460 --> 00:41:47,690 mi hat embert a jelszavak. 873 00:41:47,690 --> 00:41:49,720 De ha valaha is ütött riasztás vagy a bocsánatkérés 874 00:41:49,720 --> 00:41:52,803 egy cég vagy website mondás, bocs, egy hacker betört adatbázisunkban, 875 00:41:52,803 --> 00:41:56,360 akkor valószínűleg változtatni a jelszót, mi lehet ez? 876 00:41:56,360 --> 00:41:59,670 >> Nos, az egyik, azt jelenti, a cég már több hülye, 877 00:41:59,670 --> 00:42:03,630 és már tárolása jelszavát egy oszlopban, mint ez, nem titkosított. 878 00:42:03,630 --> 00:42:05,840 Ami azt jelenti, az ellenség, aki ellopta az adatbázis, 879 00:42:05,840 --> 00:42:07,440 Szó szerint tudja a felhasználónevét és jelszavát. 880 00:42:07,440 --> 00:42:08,960 Ez a lehető legrosszabb forgatókönyv. 881 00:42:08,960 --> 00:42:11,710 És mint látni fogod a p-set hét, így könnyen elkerülhető. 882 00:42:11,710 --> 00:42:15,624 Egyáltalán nincs mentség forma butaság a mai internet. 883 00:42:15,624 --> 00:42:18,540 Two-- és mi megtaláljuk néhány cikk tanúskodni, hogy ez még mindig 884 00:42:18,540 --> 00:42:21,710 történik, nonetheless-- két, esetleg az ellenféltől 885 00:42:21,710 --> 00:42:23,840 ellopta ezt a verziót az adatbázis. 886 00:42:23,840 --> 00:42:27,110 Amely még mindig egyfajta rossz, mert most tudják, hogy már hat ügyfelek, 887 00:42:27,110 --> 00:42:29,270 Tudom, hogy a felhasználói nevek a hat ügyfelek, 888 00:42:29,270 --> 00:42:32,910 és tudom, hogy a titkosított változat, vagy a kivonatos változatát, 889 00:42:32,910 --> 00:42:34,340 e hat ügyfelek jelszavait. 890 00:42:34,340 --> 00:42:37,010 De valakinek, aki talán csinálta [? Hacker 2] 891 00:42:37,010 --> 00:42:41,150 ahol repedt jelszavak, vagy került Egy pillantás, hogy változata a problémát 892 00:42:41,150 --> 00:42:46,280 set, miért van még mindig egy kicsit aggasztó ha az ellenség tudja, a hash 893 00:42:46,280 --> 00:42:47,435 jelszavakat? 894 00:42:47,435 --> 00:42:49,732 >> Közönség: mert azok adja meg az egész szótár 895 00:42:49,732 --> 00:42:50,690 a hash függvény. 896 00:42:50,690 --> 00:42:54,520 És ha a jelszó egy szótárban szót, [? akkor csak match--?] 897 00:42:54,520 --> 00:42:57,640 >> DAVID MALAN: Pontosan, az ellenség csak írni kódot, mint néhányan közületek 898 00:42:57,640 --> 00:43:00,526 tett [? Hacker?] 2, amely akkor végighaladni 899 00:43:00,526 --> 00:43:03,400 Minden a szavait a szótárban, vagy az összes lehetséges kombinációját Egy 900 00:43:03,400 --> 00:43:06,610 tól Z-ig, és az egyik a nine-- ami soknak hangzik, és az is. 901 00:43:06,610 --> 00:43:08,361 De egy számítógép, ez elég rohadt gyors. 902 00:43:08,361 --> 00:43:10,610 És valóban, ez volt a pont [? Hacker 2,?] Volt 903 00:43:10,610 --> 00:43:12,540 hogy a cucc, hogy Szó szerint úgy néz ki, mint ez, 904 00:43:12,540 --> 00:43:14,900 és fejtheti amit valójában volt. 905 00:43:14,900 --> 00:43:17,270 >> Szóval megnézzük, hogyan tudjuk tárolja ezt hatékonyabban. 906 00:43:17,270 --> 00:43:20,210 Kiderült, szerencsére a MySQL, ott lesznek adattípusok. 907 00:43:20,210 --> 00:43:22,800 És az egyik szórakoztató-zsal adatbázis tervezés, hogy őszinte legyek, 908 00:43:22,800 --> 00:43:25,810 valójában döntenek magad hogyan érdemes képviseli az adatokat? 909 00:43:25,810 --> 00:43:29,630 Amennyiben Ön képviseli a telefonszámot int, mint egy nagy szám, vagy egy hosszú? 910 00:43:29,630 --> 00:43:31,630 Vagy azt tényleg csinálni mint egy szekvencia karaktereinek? 911 00:43:31,630 --> 00:43:33,780 És ott is nagyon nem triviális hatásait ezt. 912 00:43:33,780 --> 00:43:36,714 >> Sőt, az egyik a legkorábbi, szórakoztató illenek történetek 913 00:43:36,714 --> 00:43:39,880 amikor Mark Zuckerberg építette Facebook, eredetileg íródott, 914 00:43:39,880 --> 00:43:42,300 és még mindig nagyrészt PHP-ben íródott. 915 00:43:42,300 --> 00:43:45,400 És az egyik legnagyobb kihívás szembesültek korán került méretezés. 916 00:43:45,400 --> 00:43:48,820 Amikor tartani hozzátéve iskola után iskola iskola után, hogy tudomásom szerint 917 00:43:48,820 --> 00:43:51,639 az egyik az eredeti megoldások lényegében a másolás és beillesztés 918 00:43:51,639 --> 00:43:53,430 néhány, a adatbázisok és néhány, a kódot, 919 00:43:53,430 --> 00:43:55,346 úgy, hogy a Harvard volt futó saját szerver, 920 00:43:55,346 --> 00:43:56,995 és a MIT-ben futó saját szerver. 921 00:43:56,995 --> 00:43:59,120 És ez volt az oka, valamilyen , akik esetleg emlékeznek rá, 922 00:43:59,120 --> 00:44:01,510 akkor nem lehetett barátok más hálózatok. 923 00:44:01,510 --> 00:44:05,050 >> Valószínűleg nincs barátai MIT vagy Harvard 10 évvel ezelőtt a, 924 00:44:05,050 --> 00:44:07,467 de nem lehetett span hálózatok A részben emiatt. 925 00:44:07,467 --> 00:44:10,550 És az egyik legnagyobb kihívás Mark és a vállalatok számára, mint a Facebook 926 00:44:10,550 --> 00:44:13,460 valójában kezelése több száz és több ezer és több millió 927 00:44:13,460 --> 00:44:14,460 A kérelmek másodpercenként. 928 00:44:14,460 --> 00:44:16,501 Tehát a dolgokat fogjuk kezdeni beszélünk a héten 929 00:44:16,501 --> 00:44:19,860 valóban lesz valaminek megfelelő jó programot írni, és a nép 930 00:44:19,860 --> 00:44:23,040 Sikeres eszközök tudja kezelni sok felhasználó. 931 00:44:23,040 --> 00:44:25,460 >> Így fogunk beszélni a dolgokat mint indexelés és keresés, 932 00:44:25,460 --> 00:44:26,910 de ez van ma. 933 00:44:26,910 --> 00:44:28,780 Látni fogjuk, hogy több szerdán. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [ZENE - "Seinfeld" TÉMA] 936 00:44:33,902 --> 00:44:35,943 DAVID MALAN: Tudod, hogy ez, és vonjuk belőle. 937 00:44:35,943 --> 00:44:38,859 És akkor nem kell ragaszkodni néhány előre meghatározott mennyiségű memóriát. 938 00:44:38,859 --> 00:44:40,580 Nos, ez mit fog hívni? 939 00:44:40,580 --> 00:44:42,369 >> 1. Előadó: Nos, mi folyik itt? 940 00:44:42,369 --> 00:44:43,535 Hangszóró 2: Mit értesz? 941 00:44:43,535 --> 00:44:44,451 Ő előadást. 942 00:44:44,451 --> 00:44:47,650 DAVID MALAN: És tudjuk használni a nevezett funkció malloc hogy memory-- 943 00:44:47,650 --> 00:44:50,050 >> 1. Előadó: Miért nem a karját mozog? 944 00:44:50,050 --> 00:44:52,450 >> Hangszóró 2: Nos that's-- Tudod, ez normális. 945 00:44:52,450 --> 00:44:57,162 Olyan ez, mint ő, csak nagy kolbász lóg ott. 946 00:44:57,162 --> 00:44:59,040 >> 1. Előadó: Ez normális? 947 00:44:59,040 --> 00:45:03,096 >> Hangszóró 2: Igen, azt hiszem, Csak feltételezem, hogy véletlenül 948 00:45:03,096 --> 00:45:06,840 cserélni a dezodor pillanatragasztóval. 949 00:45:06,840 --> 00:45:07,608