[Muusika mängib] DAVID Humala: See on CS50 ja see on algus nädalas kaheksa. Ja me oleme nii põnevil, et tervitada tagasi, suur üllatus, CS50 enda Ramon Galvan, tõusev vanem, kes on olnud kulutusi juba mitmendat kuud Alates juulist LA, Hollywood, sõna otseses mõttes töötavad uhiuue TV Näita nimetatakse Colony, looja, kes on tegelikult Harvard alum ise. Ja nii me oleme väga põnevil, et näha seda debüüdi USA võrgus tänavu jaanuaris. Nii et stay tuned, et ja rohkem Ramon eest lähinädalatel. Tea nüüd, et lõpuks on lähedal. Ja mida see tähendab, et seal ei ole kõik, et palju järel CS50, kurb öelda. Meil on vaid kolm probleemi komplekti left-- seal Probleem seatud six-- mis on käed nüüd või varsti, lõpupoole see week-- on mõeldud ületada Meie maailmad käsurealt, kus Veetsime suurema osa oma ajast abil C ja maailma veebi programmeerimine. Noh, näete palju ideid laenatud käsurea töö aga ka palju uusi ja huvitavaid ideid mis on ka kavatse olla Sobiv eest mobiilsete rakenduste ja tehnoloogia üldisemalt, kellega poisid on kõik tuttavad tänapäeval sülearvutid ja telefonid jms. Nii saate rakendada ei veebilehe või veebilehel per se, kuid tegelik veebiserver. Sa kirjutad ülejäänud veebiserver kirjutatud C, kelle elu mõte on saada HTTP päringuid, neid virtuaalne ümbrikud me edasi rääkida umbes, ja tegelikult vastata kas mõned staatilised content-- nagu dot HTML fail või dot JPEG või muu failide arv, või isegi PHP fail, mille veebi server läheb üles tõlgendama PHP kood ja sülitama tulemusi. Nüüd oleme andnud Teile üsna natuke raames jaoks see-- tõepoolest jaotus kood probleem seatud kuus üle 1000 rida pikk, et palju, mis on kommentaarid, et fair-- kuid see on tegelikult tähendas üheks võimaluseks saada oma käed määrdunud sukeldumine arvesse suhteliselt suurt projekti et me oleme väga konkreetselt nikerdatud tükki teile, nii et tõesti, kui väljute CS50 ja sisestage reaalses maailmas programmeerimine ja tahan võõpama mis tahes mitmeid projekte, sul on palju suurem Comfort allalaadimist mõned allikas kood, mõned avatud lähtekoodiga projekti veebis ja sukeldumine ja muutes muutusi, et näed. Ülesanded seitse saab olema umbes muutes oma veebipõhine rakendus mis võtab dünaamiline sisend ja toodab dünaamilist väij on etrade.com-like kodulehel. Ja probleem seatud kaheksa keskendub veel teises keeles tuntakse JavaScript. Vahepeal lõpliku Projekti on silmapiiril. Niinimetatud eelpakkumist on tingitud nädalas alates tänasest. Pre-proposal-- täpsustamine kohta, mis on CS50 on website-- on päris juhuslik võimalus Teil saata päris sisutihe e-posti oma õpetuse mehe lihtsalt teavitama teda või tema mis sa mõtled, et kasuta teda Kaikukoppa. Ja on meelerahu kontroll-- kas sa mõtled umbes hammustab liiga palju või hoopis liiga vähe, või äkki sa ei tea üldse ja tahavad vestelda. Seejärel on ettepanek ja status report, nn CS50 hackathon siin Cambridge'i Harvard ja Yale õpilased samasugused. Lõpliku projekti rakendamine on sealt otse. Ja siis CS50 õiglane siin, Cambridge, samuti teise New Haven. Nii ettepanekut, kui heita pilk Veebilehe need andmed. Aga rohkem põnevalt, ka see on võimalust saada oma käed määrdunud, ja oma mõtetes avatud kogu hunnik teemasid ja tööriistad ja tehnikaid, mis lähtuvad kursuse tuum õppekava, kuid siiski seotud. Ja ka imeline nurgakiviks teeme lahedaid lõplik projekte, mis minna kaugemale materjali oleme kaetud ametlikult probleem seab või loeng. Nii lähevad CS50 kodulehel kogu nimekirja seminare. Kui te ei registreeri veel, et trahvi. Lase käia ja registreeruda ikka ja me jälgida live streaming link, päev ja kellaaeg on veebilehel. Ja kõik saab registreerida ja panna Internetis Kui te ei saa teha Eelkõige päevadel ja kellaaegadel. Mis, mis ees ootab thereafter-- hästi, Muidugi, seal on CS50 hackathon. See foto, mäletate, nädalast null võtta umbes 4 olen üks õhtu aastat varem. CS50 õiglane, mis omakorda toimub mõlemas linnas. Ja siis, just istutada seeme, kuigi me veel on kuus pluss vasakul poolel, kui soovid liituda CS50 enda õpetamine personal ja soovite alustada mõelnud muutumas CA, või õpetamise mehe, tean, et Hakkame rääkima rohkem sellest sel semestril. Aga pildil on Kõige selle aasta meeskond. Ja nii, PHP-- ja ma olin nii kurb eelmisel nädalal, et [? Allyse?] Lahkelt läks pingutust saada meil neid suurepäraseid rekvisiidid et ma ei jõua abil, nii et see tõesti lihtsalt vaatas tobe et meil oli labidas istun siin kõik päeval eelmisel kolmapäeval ja natuke lusikaga. Aga see oli minu metafoorne kuidas püüda maalida pilt, miks me üleminekul alates C keeles nagu PHP. Ja sama võib öelda ükskõik arvu languages-- Java, Python, Ruby või kimpu others-- kuid samas C, näiteks kirjutades programmi C võib tavaliselt olla nagu võttes lusikaga niimoodi ja kaevamine auk maa, liiva või mustust. PHP võimaldab teha palju suurem hammustab välja probleemi, kirjutamise palju vähem koodi kasutades palju väiksem näitaja, sest seal on nii palju funktsionaalsus pieced aastal. Nüüd, kui me tõesti dramaatiline, oleks meil midagi kühveldada siin, aga olgu nii. Vahepeal muud metafoor meil tulid Loomulikult on, siis võiks kasuta midagi mutrivõti haamriga midagi nagu nael. Aga muidugi õigus tööriista kasutamine toimub olla mitte niivõrd keeles nimetatakse C- ja nüüd ma lihtsalt pahane [? Sanders,?] Ilmselt, me fikseerida, et later-- nii õige vahend kasutada sageli ei kavatse olla Selle madalaima taseme näitaja. Ja tõepoolest, C keelt ei ole olemas, et enamik teist on kunagi kasutada, või peaks tingimata kasutada uuesti. Ja tegelikult, natuke secret-- ainus kord Ma kasutan C ise on päris palju vahel Septembris ja detsembris ning igal sügisel semestri. Ja see on, sest me kasuta seda võimalust õpetada põhitõdesid programmeerimine, ja koos sellega arvuti teaduse põhialuseid, andmete struktuure, algoritmide ja like-- kuid väga kiiresti eks vaata nüüd, süntaks ja ideid aluseks C on nii imeliselt üleantav moodsam kõrgema taseme keelte, nagu PHP ja Python ja Perl ja Java ja Objective-C- tegelikult, mitte niivõrd Eesmärk-C- kuid Swift, need uuemad keeled, mida paljud teist siis võõpama teiega lõplik projekt. Nii ilma pikema jututa, olgem tegelikult kasutada PHP lahendada mõningaid probleeme. Tuletame meelde, et juba varakult, viimase nädalal, me lihtsalt kasutada CS50 IDE, me kirjutas tilluke väike programm et lihtsalt ütles: "Tere maailm." Ja siis ma päästsin ta fail nimega hello.php. Ja siis ma jooksin seda käsku. Ja miks? Inglise keeles, mis toimub siin? Mida ma teen, kui Jooksin selle käsu? Jah? Sihtrühm: Seal on mõned funktsiooni PHP mis loeb, mida on in-- mõistab seda. DAVID Humala: Hea, seal on mõned funktsiooni PHP-- ja lase mul olla täpsem, seal on programm nimega PHP teise nimega Tõlk, et mõistab sisu hello.php, ja tõlgendab seda ülevalt alt, vasakult paremale, ja teeb seda, mida need käsud öelda. Käsud hello.php muidugi on lihtsalt hankida code-- funktsioonid ja muutujate ja silmad ja jms, et me ise hakanud kirjalikult PHP. Kuid erinevalt C, mis on kompileeritud keeles PHP sa lihtsalt kirjutada ja käivitada. Sa vahele, et käsi samm konverteerides selle ühtede ja nullide, ja siis töötab see. Ja mis on peapeale seda? Miks me vahele samm? Miks rohkem kaasaegsete keelte kipuvad selle sammu vahele jätta? Mis oli kasu? Või lihtsalt intuitiivselt? Isegi kui me oleme mitte kirjutatud palju PHP enne, Mis kasulik kohta pole koostamisel koodi sa arvad? No? Ei toime? Kriimustada oma peaga? Jah. Sihtrühm: dünaamilisemaks. DAVID Humala: Rohkem dünaamiline? Mida sa mõtled? Sihtrühm: [kuuldamatu] DAVID Humala: OK, hea, et Sõltuvalt sisend, sa ei pea koostama iga kord. Ja see on tõesti nii lihtne selle-- mida on mõtet jätkata kompileerida koodi? See on lihtsalt samm, mis on making-- seda nõuavad, mitmendat nädalat, kaks korda nii palju etappe lihtsalt töötab oma programmi. See on olnud kasulik nähes, et sa vaata mõned veateated jne, kuid see on ikka lihtsalt tüütu samm. Ja nii programmeerijad mõistis aja jooksul, miks me ei hakake keeles, mis ei ole vaja, et üsna mehaaniline samm, nii et võid kirjutada koodi ja käivitada. Aga milline oli hind me nägime pöörasime eelmisel nädalal ühe konkreetse näitena? Jah? Speed. Nii [? Mis?] tõlkide veidi aeglasem, et ühtede ja nullide on kena ja kiire arvutit mõista, sest Intel CPU, või mis iganes see on, lihtsalt aru, mis toimub kohta nende mustrid bitti. Arvestades tõlgi on programm, mis tõesti on lugeda Ascii allikas kood, mis olete kirjutanud, ja muuta, nii et rääkida, või nuputada, kuidas see muudab lõppkokkuvõttes to ühtede ja nullide. Nii see lihtsalt võtab vähe natuke jõudlust hitt. Nii et see on natuke kompromiss. Nüüd, kui me seda siin, las ma minna ja teha näiteks järgmiselt. Kui ma lähen siin, uue faili, ma lähen päästa seda jällegi hello.php. Ja nüüd ma lähen edasi minna ja öelda, "print hello world" - ja meelde tuletama, et ma saan kasutada print, ma ei on kasutada print-F. Ja nüüd siin, kui ma PHP of hello.php, huh-- ma ei tundu on seda tõlgendanud. Mida ma valesti tegin? Sihtrühm: nurgelised käevõrud. DAVID Humala: Jah, teil on vaja et nurksulu up top. Nii et see on selline tüütu, kuid sa harjud sellega kiiresti. Kui ma pean kirjutama PHP koodi, ma üldiselt vaja öelda programmi, või öelda tõlk, hey PHP, siin on mõned PHP koodi. Ja siis hea meede, oleksin sulgeda see siiski mitte selle, vaid pigem vaid küsimärk nurk sulg, nii et nüüd siin, kui ma saan seda uuesti, nüüd Ma saan soovitud tulemuse. Teeme nüüd kerge optimeerimisega, just nii, et sa oled näinud seda varem. See on selline tüütu, et ma on joosta PHP ruumi hello.php, sest varem ma võiks lihtsalt kirjutada dot kaldkriipsuga programmi nimi, mis on omamoodi tore. See on selline parem kasutaja kogemus. Nii selgub saate seda teha PHP koos following-- ma võivad kasutada seda üsna segasena loits ülaosas siin mida üldiselt nimetatakse Jutt, kusjuures see on terav sümbol, niiöelda, see on bang või hüüumärk. Ja see nüüd on tee programmi tüüpiline Linux süsteem, mis nimetatakse keskkonda, inimese tervisele või keskkonnale. Ja see LINE pikk lugu short-- line üks lihtsalt ütleb, hey arvuti, leida PHP tõlgi mulle keskkonnas, leida see oma mälu, kui nii võib öelda. Ja mis on tore nüüd on et kui ma lähen siia alla, Ma suudan dot kaldkriipsuga hello dot php, või-- hmm. Keelati. Noh, näete isegi rohkem seda probleemsete pani seitse, kui te pole juba koos õigused. Tuleb välja, et mul on vaja seda käsku käivitada nimetatakse [? chamod?] muutusteks mode-- pluss x hello.php. Mul on vaja [kuuldamatu] see üks täiendav samm, mis räägib minu arvuti, teha hello.php käivitatav. Ja nüüd vaata, mis happens-- dot kaldkriips hello.php, see lihtsalt jookseb. Ma ei vaja täpsustada tõlgi enam. Ja ma ei tee seda isegi ilusam, ikka, kui ma ümber see asi. Kui ma liigun hello.php lihtsalt Hello-- nii teate ülaosas vasakul, Programmi nimi on tõepoolest nüüd vaid Tere. Nüüd ma saan teha seda välja nagu C programmi kuigi see on kirjutatud PHP-- või ausalt tahes number kohta teistes keeltes. Nii marginaalne lisaseadme no funktsionaalne erinevus. Aga see on lihtsalt natuke uudishimu Nüüd, et saate kirjutada programme mis tahes keeles, ja kasutaja ei on teada, või huvita, mida need on. Noh, vaatame veel kaalukaid Näiteks nüüd et ma vahustatud ette. Ja seda nimetatakse quote.php. Ja see on kättesaadavad Internetis. Ja märkad, et see on päris short-- aga see on käsurea programm, mis on läheb otsima üles aktsiate hinnad minu jaoks, mis tegelikult toimub olema Sobiv probleemi pani seitse. Vaatame, mida ma teen. Tipus Olen saanud Avatud sulg küsimärk PHP. Siis ma sain seda joont, kusjuures ma olen nõuab fail nimega functions.php-- me näeme rohkem seda natuke, kuid see on nagu C on versioon terav hulka, kuhu sa tahad minna lisada teise faili. PHP nimetab seda nõuavad, kuigi see Samuti on hulka funktsiooni. Ja selgub, et function.php on lihtsalt midagi, mida ma kirjutasin enne klassi. Ma panin selle sama kataloog, sest Tahtsin tegur mõned koodi et me võiksite kasutada mujal. Vahepeal saab ilmselt järeldan, mis toimub siin. See on natuke erinev C- kuid mida ma mõtlen tagada nõuetekohane kasutamine? Tõlgi see tehniliselt. Millistel asjaoludel olen ma suitsetamisest programmi või lõpetavad? Jah? Sihtrühm: Kui sul ei ole kaks käsurea argumente. DAVID Humala: Kui mul ei ole käsurea argumente. Ja pidage meeles, et üks neist argumendid on programmi nimi ise. Ja teine ​​läheb teise sõna writing pärast kiiret. Nii nagu C, seda on minu viis kontrollida, ei kasutajale koostööd ja käivitada programmi, kui ma mõeldud? Nüüd, seal on midagi natuke erinev koos C- meil esmalt on see dollari märk, ja mis dollari kirjutama tähistavad PHP? Just muutuv. See on all-- vaid muutuv järgneb mida iganes sa tahad, et tegelikult seda nimetada. Pange tähele, et midagi on puudu minu PHP programm, nagu see oli puudu viimase nädalas, versus C, mis on mis? Tüüpi, vaid ka midagi muud. Ei ole midagi funktsioon-- põhiülesanne. Ei ole peamine funktsioon. Sa lihtsalt hakake koodi ilma muretsema üsna meelevaldne Konventsioon nimetades mõningaid vaikimisi funktsiooni peamine. Nii arg C on lihtsalt väga globaalne muutuja et tõlk teeb minule. Nüüd on see huvitav. Nii otsida kraami. Dollar märk laos asub jäänud, see on mu muutuja. Paremal pool, seal on ilmselt funktsiooni PHP nimetatakse lookup, et Ma kulgeb minu viimane käsurea argument mina-- iganes sõna. Ja me näeme, kuidas see töötab hetkel. Ja siis lõpuks ma aru hinda. Ma väljatrükk üks osakaal selline ja selline. Ja pidage meeles, see on kuidas PHP-- nii in PHP-- kus sa ei pea tegema dollari märk S enam. Sa võid kasutada looksulg ja ühendage mõne muutuja. Sa ei pea muretsema kasutades printf samamoodi. Ja kui kõrvale, kui paned muutuja sees jutumärgid niimoodi, kasutate väljamõeldud tehnikat nimetatakse muutuva interpolatsiooni. See tähendab lihtsalt ühendage muutuja siin. Ja kui kõrvale, mõned teist, kes tulevad teistest programmeerimine taustaga, sa ei tohi kasutada ülakoma ümber stringid seda teha. Sa pead kasutama jutumärkide jaoks muutuva interpolatsiooni tööle. Muidu pead sõna otseses mõttes vaata need looksulg. Nii lõpuks lähme edasi ja käivitada. Lubage mul teha minu terminal veidi suurem. Lubage mul minna ja joosta sees minu quote kataloogi. [? CDsource?] [? AM?] [? tsitaat?] PHP quote dot PHP, ja ma lähen otsida midagi nagu GOOG, mis on tema sümbolit, ja üks osa tema uus nimi Tähestiku Inc, hind $ 717 alates tänasest. Hea küll, kui me tahame käivitada uuesti, keegi on teine ​​börsisümbol nad tahavad otsida? Microsoft on minu arvates see, MSFT-- $ 53. Ma arvan, et Yahoo on äkki see. Ja Facebook on nii. Mis on selle programmi teeme? Magic tundub olevat varjatud et lookup funktsioon. Võtame pilgu. Tuleb välja, et ei tule PHP, see on functions.php. Ja me ei lähe läbi see väga täpselt, aga märgata Keskne sõna siin mis on line kuus functions.php-- Ma sõna otseses mõttes öelda funktsioon. Ma nimetage oma funktsiooni. Ma siis täpsusta ühtegi argumente, või parameetrid, Ma tahan, et funktsiooni Vőta ei tüübid. Ja siis ma seda rakendada. Ja ma siputan poolt kell rakendamist, sest see on üsna arenenud õigus nüüd, aga me näeme seda uuesti tegelikult nädalas probleemide pani seitse. Aga ma ei saa puhastada see üles ka. Olen ka lisatud Tänapäeva kood versioon Tsitaadi, mis ei ole dot PHP fail. Sest see, mis on oletatavasti peal programmi nimega lihtsalt tsiteerida? See nn shebang-- üsna segasena loits mis ütleb, et leida PHP ja seejärel kasutada seda oma koodi siin. Kõik õige, et toob meid sinna, kus pooleli jäime viimase AEG_ kuigi mõned täpsemad näited. Kõik küsimused siiani umbes PHP või mida me teeme? Ei-- kõik korras. Jah? Sihtrühm: Toas HTML-faile, teha sina-- [? Kas sa ?] [? lihtsalt nimetame seda?] [kuuldamatu] PHP faili? DAVID Humala: Hea küsimus. In web kontekstis, kus me oleme sõna otseses mõttes umbes üleminek, sa ei kasuta nn Jutt tipus, sest web server-- sageli programmi nimega Apache või Microsoft IIS, Internet Information Server, või mõnel teisel veebiserveri tarkvara, teab, et kui ta näeb dot PHP faili, et see peaks kulgema tõlk ta. See ei vaadata, et esimene rida. Nii see esimene rida trikk just siis, kui sa oled kirjalikult käsurea programs-- mida me ei tee super sageli aga see on meie viis ulatuda Meie C näiteid nüüd meie PHP. Nii saab tõepoolest ületada selle maailma käsurealt maailma veebis tehes järgmist. Lubage mul minna ja teha siin hetkeks. Nii et kui meil on veebiserver, või pigem Kui meil on oma sülearvuti siin, mis ma joonistan niimoodi. Ja siin on meil Interneti mingis vormis. Ja siis siin on meil server on building-- see on, kuidas internet works-- ja siin on server mõned tuled äkki. Mis tegelikult toimub Nende kahe ühendused? Nii selles hoones on veebiserver. See on lihtsalt arvuti mis jookseb mõned operatsioonisüsteemi süsteemis endale võibolla vaba tarkvara nimega Apache, mis CS50 IDE töötab. Nii saab tegelikult mõtle selle hoone nagu oleks hoone mis CSt0 IDE on salvestatud. See on koht, kus kõik on teil raamatupidamise, kus teil kõigil on oma veebiserver töötab, kõik sul on oma unikaalne URL, kui hakkasime arutama, ja sa näed rohkem P. seatud kuus. Siin on minu sülearvuti kusagil mujal internetis. Ja nii kui ma külastada URL, mis kuulub mulle, et internet liiklus läheb üle server, serveri Saanud HTTP request-- nagu saan index.html ja see on vastates, et veebilehel. Nii et üldine paradigma. Arvestades kõike üles Siiani täna kõike juhtub ainult piiridest selles hoones. Ma kasutan oma sülearvuti, kuid Olin ühendatud CS50 IDE, nii et kõik need programmid Ma jooksin oli sees, et server ise. Aga nüüd, alustame uuesti kasutamist PHP kirjutada mõned tegelik programmid serveeritakse poolt veebiserver. Ja seda teha, ma lähen arvesse terve hulk näiteid et tutvustada seda ideed siin. Nii et see on omamoodi fancy viis kirjeldab programmeerimine paradigma. Ja tegelikult, kui te väljute CS50 või töö lõplik projekte, või võtta mõned järgida klassi, hakkate näha, et world-- eriti üles kasvanud keeltega, nagu C mis on super madal level-- aru, et seal on parem viise kirjutamise tarkvara. On teatud mustrid saab jälgida, teatud viisil korraldada oma faile ja viisid pange oma funktsioone, nii et pikk lugu lühike, maailma on tulnud välja terve hunnik lühendid ja nimed võimalusi programmeerimine. Need on vaid tehnikat võite kasutada. Ja üks neist on nn MVC, mudeli Vaata Controller. Ja see on lihtsalt, et Nüüd, liiga keeruline viis öelda, kuidas sa peaksid panema PHP-põhine veebisait, meie puhul. Kuidas korraldada oma faile, kuidas teil korraldada oma loogika, viisil, mis muudab lihtsamaks kirjuta keerulisem veebilehtedel? Ja tõepoolest, siis me kiiresti sinna p-set seitse. Nii maailmas MVC, sa lähed näha, et meie koodi saab üldiselt iseloomustada kas mudel koodi või kontroller koodi või vaadata koodi. Ja ma lähen lihtsustavad seda follows-- töötleja on aju oma programmi, see on juhul, kui kõik huvitav loogika juhtub. Nii et kõik me oleme kirjalikult seni klassis, on selline nagu kontroller code-- see kontrolliv oma programmi, teie silmad, oma tingimused, oma funktsioone ja muutujad ja kõik. Views, nüüd saab olema natuke ilmsem maailma veebis. Vaade on esteetika oma kodulehel. See, mida kasutaja sees-- pilte, HTML tabelid, HTML sildid ja kõik Selle, kõik koheva esteetilise asju, mis ei ole nii raske kirjutada, kuid on just see, mida sa tekitama, on nn arvates esteetika. Ja mudel, lõpuks läheb olema andmebaasi stuff-- mis hakkame sukeldudes kõik rohkem sel kolmapäeval. Nii kontroller on loogika, vaade on esteetiline värk, ja mudel saab olema, kui meil hoida meie tegelikke andmeid. Nii vaatame seda konkreetsemalt järgmise näitega. Ma lähen minu kataloog siin tänapäeva allikas code-- mis kõik on kättesaadavad Internetis. Ja ma lähen minema versioon null. Ja siin on-- olgem nimetame seda versioon nulli CS50 veebisaidil. Seal ei ole palju siin üldse. See on väga lihtne veebileht, mis on Tõenäoliselt kasutades, mida HTML tags-- lihtsalt arvan varasemast näiteid? Mis see on? H1-- ilmselt nii suur julgeid pealkiri, et logo up top, CS50. Ja mis veel on mängida? Jah? Sihtrühm: Tavalise nimekirja. DAVID Humala: Tavalise list-- nii UL tag ja võibolla paar LI sildid. Ja kui te ei mäleta neid, see ausalt ei ole oluline. Need on kohev omamoodi rakendamise üksikasju HTML et teil kiiresti otsida ja sa oled tagasi oma tee. Me keskendume rohkem programmeerimine ideid, mis on mahlasem tükki. Nii võtame lihtsalt kiire vaadata HTML-- ja tõepoolest kui ma avada vaade allikas siin, yup, See on täpselt, mis toimub siin. Seal on UL tag. Pesastatud sees see LI sildid. Ja siis ma laenatud URL tegeliku ainekava siin. Ja siis lectures.php on ilmselt teise dünaamiliselt loodud lehele et läheb on, olgem see-- ah, Esimese kahe nädala loengu. Nii nädala null ja nädalas ühe, olgem vaata see-- kui ma vaatan lehele allikas, Samuti super lihtne. Need viivad kaks lehekülge nimetatakse week0.php ja week1.php. Nii leiavad nüüd, mis toimub. Kui ma vajutan week0.php, minu arvuti teeb taotluse week0.php. Veebiserver, teise nimega CS50 IDE, võtab, et virtuaalne ümbrikus. See on näha sõnum nagu, saada week0.php. Seejärel tõlgendamisel faili, top alla, vasakule right-- faili nimetatakse week0.php-- ja sülitab välja tulemusi. Nii seest seda faili week0.php, peab olema kontrolleri loogikast, et tekitab Selle HTML, ja me varsti näha. Aga nüüd, las ma klõpsake nädalal null, ja nüüd on meil kolmapäeval ja reedel, ja nüüd on meil slaidid aeglaselt nädalal null. Ja siis võiks meenutada see on tee tagasi millal. Nii et kõik see veebileht teeb. Nii Vaatleme, kuidas ta teeb seda. Ma lähen tagasi lähtekoodi siin, CS50 IDE, ja ma lähen avada index.php. Ülaosas seda pilti on kamp kommentaarid. Ja siis keset seda pilti, et Selgub, ei PHP kood üldse. Sest kui sa ei ole ühegi Avatud sulg küsimärk PHP silte sa oled vaba lihtsalt panna HTML. Sest see, mida PHP tõlk peaks tegema, on, kui ta loeb seda file-- ülevalt alla, vasakule right-- vaid tõlgendab kood näeb ta vahel need nurksulud küsimärk. Ja kõike muud, mis seda ei ole tunnustavad PHP, see lihtsalt sülitab välja. Ja HTML on üks värk see lihtsalt sülitama. Nii et see fail võib olla kutsutud index.html, aga ma nimetades kõike dot PHP hüppelaud. Lectures.php-- sarnaselt underwhelming, see on lihtsalt mõned HTML. Week0.php sarnaselt vaid mõned HTML. Aga nüüd paneme kohta lõpmatuseni inseneri mütsi, ja mõelda, kuidas me suudame parandada selle. See ei ole raske teha, kuid ma selline hajutatud arvesse kopeeri ja kleebi. Ja tegelikult, kui ma teen nädalas kaks, siis tean, mida ma ilmselt tegema hakkad? Ma lähen minema week1.php, ma olen läheb esile kõike. Ma lähen kopeerida, kleepida uude faili nimega week2.php, näpistama mõned URL, ja mu teel. Nii selle põhjal, mida me oleme näinud C juba, see ei tundu õige, loodetavasti. Copy, paste harva õige lahendus. Mida me saame alustada teha, et parandada see on? Kus on võimalused parema disaini? Selleks ajaks, kui ma saan nädalas kaheksa, see läheb olla tõesti tüütu kui ma tahan muuta fondi iga üks minu lehekülge, või kui ma tahan struktuuri muuta skeemi. Nii et kui on võimalus parema disaini? Noh, olgem kaaluma, mida on jagada kõigi nende faile. Siin nädalal üks, siin on nädal null, siin on lectures.php, siin on index.php-- mis on sama ja Mis on erinev, jämedalt öeldes, kõigis nendes faile? Jah? Sihtrühm: [kuuldamatu] DAVID Humala: OK, hea. Nii et muster, kindlasti, kusjuures Iga kord, kui ma valida loeng, Oleksin tekitama väga sarnane otsin lehel. Ja nii ma võibolla võimendada asjaolu, et tõesti, me teadlikult numbriliselt indekseeritud meie lectures-- kui ma ei pane isegi rohkem sõnad oma vastuse. Ja mis on ainus asi, tõesti, mis on muutumas vahel nädalal one-- ja andke mulle keri nii et see on enam-vähem sama place-- Nii et siin on nädala null, umbes tipus. Siin on nädalas üks, nädal null, nädalas üks, nädal null. OK, sõna otseses mõttes, kui sa tead, no programm üldse, see on nüüd just nagu mustrite mängu. Mis siis erinevad? Jah? Sihtrühm: [kuuldamatu] DAVID Humala: Hea, et tiitli muutub, õige pisut. Zero läheb muidugi ühele. Sama asi toimub ka H1 tag. Ja me ei ole päris näha seda nii lihtsalt, sest URL on veidi pikk. Aga need URL on pisut muutunud. Aga mis ei muutu tähendab, julgen st enamik sisu page-- HTML tag on sama, juht on sama pealkiri on peaaegu sama, keha on sama, ja peaaegu kõik muu on sama va neid vähe tweaks. Niisiis, kuidas me saame minna faktooring osa sellest välja? Noh andke mulle ettepaneku täpselt et järgmise versiooni. Nii et siin on versioon ühest, mul on täpselt Sama faile, pluss paar teistega. Siin index.php-- ja isegi kui olete kunagi näinud PHP enne, mida ma ilmselt teeme seda probleemi lahendada problem-- selle põhjal, mida te näete siin? Jah, on see, et kerge kohustus? No? Jah, minna. Sihtrühm: [kuuldamatu] DAVID Humala: Yep. Sihtrühm: [kuuldamatu] DAVID Humala: Ma vajan sind rääkida natuke kõvemini. Sihtrühm: [kuuldamatu] DAVID Humala: OK, hea. Ja ma think-- see oli raske kuulda sina-- kuid ma mõelda, mida te saate juures on see, et sildid, mis olid ühised up top, ja silte, mis olid ühised kohta alt, on nüüdseks arvutatud välja, või alandati millised failid? Header.php ja footer.php-- ja me läheme teha mõned tweaks pöörata tähelepanu just tõstatatud numbrid muutuvad, sest Näiteks, kui ma kuulsin, et sa õigesti. Aga see tundub olevat põhisisu ta. Kui seal oli suur hulk koondamise ülaosas lehel ja suur hulk koondamise allosas, olgem sõna otseses mõttes lihtsalt esile ja lõigatud, et sisu välja, pane see eraldi file-- nagu idee CSS, kus me võtsime välja väga sarnane esteetika, panna see eraldi dot PHP faili kasuta nõuavad mechanism-- mis on nagu C teravad include-- mis on sisuliselt nagu öelda minna Haara sisu header.php, ja kopeeri ja kleebi need siin. Aga mida see tähendab, et nüüd index.php, mul on need kaks rida. In lectures.php, ma ka on need kaks rida. In week0.php, ma ka on need kaks rida. Nüüd, kui ma tahan muuta pealkiri kõik mu lehti, või ma tahan muuta põhistruktuuri, Ma ei muuda see nüüd vaid üks koht, või kaks places-- päis ja jalus, võrra. Nüüd kood on hakanud otsima veidi segasena, eks? Aga kui sa arvad, milline leht on doing-- kui ma taotleva week0.php, nagu oleval joonisel üle siin-- kui week0.php taotletakse, Mida see tähendab? Sõna otseses mõttes, see fail on taotleb brauserit. Veebist server-- a.k.a. CS50 ID-- haarab see faili, week0.php ja loeb see ülevalt alla, vasakult paremale. On line üks, siis kohe tekib Avatud sulg küsimärk PHP, nõuavad päise kaudu dot PHP, ja nii mida PHP tõlk does--, mis on ehitatud web server, sest me eelseadistatud seda sina-- see läheb automaatselt arvesse header.php, koopiad sisu, kleebib need siia. Aga siis tõlgi kohtumisi küsimärk lähedal sulg, nii et kõik on tehtud mõelnud. Nüüd lihtsalt pimesi sülitab välja rida kaks kuni seitse, sest see on lihtsalt toores HTML. Gets liinile kaheksa, ja teeb seda sama magic again-- failide avamisega, haarates sisu ja nõudes neilt või kleepimine Olgu siis või ei. Aga ma lihtsalt vihjas viga. See on osaline samm tagasi, sest kui me vaatame header.php, Olen selline lõigatud nurgas. Mis funktsioon ma loobuma, et saada see vaieldav parem kujundus? Jah? Sihtrühm: [kuuldamatu] DAVID Humala: Jah, ma selline Lõigatud mittetriviaalne nurgas. Sa märkis, et see, mida oli muutumas oli pealkiri, number pealkiri, ja number H1. Nii et minu lahendus oli OK, olgem lihtsalt ümber lehel ja mitte tegeleda, et probleem üldse. Nii et osalise samm tagasi kindlasti. Aga mis on tähelepanuväärne siin Kas see, mida ma olen teinud on muidu tegureid kõik ühise kraami. Ja footer.php, märkate Ma tegureid kõik selle, ehkki vähemal, ühise kraami. Nii et ma pean kuidagi nüüd võimalik astuda samm edasi ning määrata et pealkiri küsimusi. Nii teeme seda. Lubage mul minna minu teine ​​versioon Siit võivad mis jällegi on sama faile välja arvatud üks uus täiendus. Ja see on natuke rohkem paljusõnaline, kuid vaatame, kas me ei kiusa peale, mis toimub siin. Nii et selle asemel, et nõuda header.php ja footer.php, Mulle tundub, et saab ainult nõuda, et üks file-- nimetatakse muidugi helpers.php. Ja andke mulle ette näha nüüd, mis sees on helpers.php on lihtsalt hunnik funktsioone mis ma kirjutasin, just nagu enne. Aga ma kutsusin ta helpers.php. Nüüd ilmselt ka line kolm ja 10, ma olen kutsudes kaks functions-- muuda päise kaudu, muudab jalust. Need ei tule PHP, ma kirjutasin need endale. Ja ma panen neile helpers.php. Nüüd oleme näinud ainult selle süntaksit kord, ja see oli super lühike. Aga see on ilmselt argument muuta päise kaudu, funktsioon. Miks ma seda tean? Noh siin on tihe paren, siin on avatud paren. Ja muidugi just nagu C, midagi nende vahel, sulgudes on input-- või argument, et funktsioon. Milline on andmete tüüpi see argument, põhjal, mida ma olen esile? Mida need nurksulud näitavad, põhineb eelmisel nädalal? Jah, see on array-- spetsiaalselt assotsiatiivne massiiv. Ja seda süntaksit küll on veidi funky, aga see on lihtsalt möödaminnes ühes põhiväärtus paari. Oluline on, tsitaat lõppeb Pealkiri ja väärtus on CS50. Kui me oleksime seda teinud C, siis võiks selle asemel vaadata pigem seda, lihtsalt quote lõppeb CS50-- või tegelikult oleks lokkis traksid, või midagi sellist, et C, kus võti on null, ja väärtus on CS50. Aga jälle, PHP, kuigi süntaks on jälle natuke imelik, see võimaldab teil läbida sõnad numbrite asemel siduda võtmed väärtustega. Mida see kõik tähendab? Kui ma minema helpers.php, Vaatame seda funktsiooni. renderHeader.php, pigem renderHeader on minu funktsioon, ja ma tean, et kuna ma näen funktsiooni märksõna siin. See on uue, C- see ilmselt võtab argumendiks nimetatakse data-- aga ma oleks võinud nimetada seda midagi, kuid ma helistasin ta andmed, lihtsalt olla natuke clean-- ja lihtsalt võtta vist, eriti Kui te olete programmeeritud muul kõrgema taseme keele enne, midagi Ülaltoodud C, kontseptuaalselt. Mida tähendab võrdse avatud sulg nurksulg ilmselt tähendab? Või milline võiks see tähendab? Meil ei ole seda näinud C. Jah? Tühja rea. Täpsemalt, see tähendab, et kui kasutaja ei helista renderHeader koos argument, ma olen ikka läheb on argument nimetatakse andmed, kuid selle default väärtus on läheb tühja rida. Nii et see on lihtsalt kena mugavuse. Ma ei pea kisa kasutaja, või ütled kasutada oma funktsiooni valesti. Ma lihtsalt anda kasutajale vaikimisi väärtust, kui ma ei huvita. Nüüd on see funktsioon, ma olen läheb siputan käed. Aga see väljavõte funktsioon võimaldab meil läbivad need muutujad andmeid arvesse header.php järgmisel viisil. Ja see on viimane tükk, Ma arvan, funky süntaks. Siin on minu uus versioon of header.php-- see tavatses öelda, sõna otseses mõttes, avatud sulg pealkiri CS50, ja see oli see. Ja sama asi H1. Nüüd ilmselt ütleb midagi päris funky. Ja las ma seda lihtsustada hetkeks järgmiselt. See on see, mida ma olen muutsin pealkirja olema. Kuid see muutub veidi kole pidevalt avatud sulgudes PHP, ja siis kasuta väljatrükki. Selgub, et PHP on stenografisti märge selle, mis on lihtsalt võrdusmärk, mis on tehniliselt funktsiooni nimetatakse kaja asemel print, kuid see on sama asi, tõhusalt. See lihtsalt tundub parem. See on lihtsalt süntaktiliste suhkrut, kui soovite, mis teeb mu koodi vaadata veidi parem. Selgub aga, ja me näeme seda jälle Enne pikk, peame nimetame seda tüütult pikk funktsiooni nimetatakse HTML erilist sümbolid PHP, sest selgub, on teatud sisendite et kasutaja võib meile anda, või et kasutajad võiksid meile, et ei kavatse murda meie veebilehel. Aga me näeme, et järgmisel nädalas JavaScript. Aga nüüd, lihtsalt tean, et Selle faili headers.php, lihtsalt võtab tiitli, et Ma möödunud aastal, et teha kindel, et see on ohutu süstida web leht ja see sülitab välja nagu mu tiitel ja kui minu H1. Nii et kui ma minema see versioon nüüd, märgata, et loengud on selle pealkirja taga, nädal null on selle pealkirja taga, ja Tõepoolest, HTML Ma teeniva on identne sellega, mida minu esimene versioon was-- välja arvatud minu tühik, sest ma olen hakanud vormindamist minu kood natuke teistmoodi. Aga ma olen loodud kõik koodi ma hoolin. Nii et lubage mul peatuda üks hetk ja vaata kas seal on mingeid küsimusi või segadust lõin. Olgu, nii et vaatame väänata natuke raskem siin et näha, kas seal on võimaluse parandada. Helpers.php oli ka see funktsioon, nimetatakse renderFooter. Ja mis väärib märkimist renderHeader ja renderFooter? Ja jälle, tänapäeva eesmärkidel, teame et ekstrakt funktsioon on lihtsalt minu viis möödaminnes argumendid arvesse header.php ja footer.php. Vabandust? Sihtrühm: [kuuldamatu] DAVID Humala: Jah, ma ainult muutis nõuavad line. Nii sõna otseses mõttes, ma olen pannud patu kopeerimine ja kleepimine, veel kord. See ei ole suur number joonte, kuid tulevad nüüd-- kui ma kopeerige kõik lihtsalt muuta üks väike sõna, ja üks väike sõna, et Alan juhib väljapääs on jalusesse siin versus header siin. Muidu on kõik identsed, välja arvatud, muidugi funktsioon nimed. Mida saaksime teha paremini? Noh las ma avada see versioon siin, kusjuures helpers.php, Miks ma ei lihtsalt saada natuke targemaks selle kohta? Kirjutage veidi keerulisem koodi, kuid nimetavad seda muuta? Mida ma olen muutnud? See võtab argument now-- kaks argumenti, andmed veel. Ja mis siis on esimene Nimi tuleneb ilmselt kasutatakse, selle põhjal, mida sa loed siin? Isegi kui mõned süntaks on veel uus. Mis on dollari märk mall? Vabandust? Sihtrühm: Päise või jaluse. DAVID Humala: Päise või jaluse. Nii ilmselt ma otsustasin, et kui ainus asi, mis muutuvad mida template ma tahan to print-- ja malli Ma mõtlen seda on plaan kood, mis ma tahan väljund, aga ma tahan ühendada mõne values-- nii et kui see on ainuke päise kaudu või jalus, miks ma ei parameterize seda ja nimetavad argument dollari märk mall? Ja siis see funky süntaks lubab mind luua path vaheldub siin. Nii dollari märk tee on varieeruv. Mida see süntaks teha, kui te olete juba tuttav? Jah? Sihtrühm: [kuuldamatu] DAVID Humala: Täpselt. Kui mall on tsitaat lõppeb, päise kaudu, või kui mall on, tsitaat lõppeb, jalus, et liin on et ma olen rõhutanud, line kaheksa, on lihtsalt ära, et nimi, nagu päise kaudu, ja concatenating see dot PHP. Nii et me ei pea seda operaator C. See dot operaator hämmastav asi PHP-- kui sa oled tuttav JavaScript või Java, saate lisaks kirjutama teha ahel. In C, see on valu neck-- ja ma olen nii kahju, p-set kuus, sa lähed pead tegema see-- see on tüütu to concatenate stringid. Miks? Noh, sest kui sul string, mis on see pikk, ja teine ​​string et see on pikk, sa ei saa lihtsalt kannab neid koos. Mida sa selle asemel pead tegema C? Jah? Sihtrühm: [kuuldamatu] DAVID Humala: Sa pead malloc mälu või kasutada massiivi virnas. Ja sa tegelikult teha, et massiivi piisavalt suur sobib see pluss see, pluss kurakriips null. Siis sisud kokku, kasutades segage kassi või käsitsi jaoks silmus, või mitmeid tehnikaid. Ja me näitan sulle paar p-set kuus. See on tüütu. Ja see on tõesti see, mida ma mõtlen umbes Selle versus see-- nagu C versus PHP. Sa lihtsalt saada nii palju funktsionaalsust tasuta nii et saate keskenduda, Ideaalis on lõbus osa kodeerimine, siis Projekti soovite lahendada, mitte madal eritunnuste. Nii see lihtsalt tekitab header.php või footer.php põhineb kuhu ma helistada. Ja tõepoolest, kui ma lähen arvesse index.php, teate kõik, mis changed-- asemel kutsudes muudavad päise kaudu või muuta jalus, Ma helistan muuta, millele järgneb nimi malli, et ma tahan teha. Ja te näete seda ka probleemide pani seitse, kusjuures me laseme teil kasutada sama funktsiooni, et teha kimpu ja kobarad erinevaid veebilehti. Nii et pigem elada liiga palju neid details-- mis te näete jälle Ülesanded seven-- vaatame at nüüd alguses lahenduse to huvitavama probleemi. Siiani midagi me oleme teha on salvestatud andmed. Tegelikult ainus kord, kui me eales salvestatud midagi, mida me oleme teinud selles klassis on, kui meil oli väga lihtne demo mõnda aega tagasi, kusjuures me kasutasime faili IO C, ja ma arvan, et ma kirjutada minu nimi, ja Hannah nimi ja Maria nime, või äkki Andy nimi ja siis salvestatud CSV-failina CSV-faili fail. Ja me kasutasime fopen-- ma arvan me kasutasime fprintf nagu ma mäletan, ja me salvestatud faili. Nüüd, see on kõige lihtsam andmebaasi vormis. Kui sa tahad teha veebileht Frosh IEd programmi, millega uustulnukat saab registreeruda sport, sa ideaalis tahan midagi teha, et andmed. Eelmisel nädalal tegime midagi koos data-- me lihtsalt ütles, olete registreeritud, tegelikult mitte. Või äkki ma emailitaks Proctor, ja see oli see. Aga see oleks tore, kui suutsin anda, et Proctor CSV faili, nagu Exceli faili. Või veel parem, see oleks tore, kui suutsin pane neid kasutajaid nimed ja Dorm nimed ja kõik, mis andmebaasiks, et lihtsalt elab igavesti, kuni ma valida kustutada andmeid. Andmebaas, mis võimaldab mul päringuid informatsiooni. Ja tõepoolest, see on, mida andmebaasis on. Tutvustame täna, ja Järgmisel nädalal Ka tehnoloogia nimetatakse SQL-- struktureeritud Query Keel, mida mõni teine ​​keel. See on sisuliselt programmeerimine keeles, kuid andmebaasides. Ja andmebaas nüüd, lihtsalt mõtle kui super fancy versioon Microsoft Exceli või Google Arvutustabeleid või Apple numbrid. See on üldiselt programm, mis võimaldab salvestada terve hulk andmeid ridade ja veergudena, üsna nagu võite Excel. Aga mis on kena, eriti kui me ei ole super tuttav Excel, Mis SQL võimaldab teil teha on päringu seda teabe kirjutamisel rida koodi kus saab ka siis, kui teie andmebaasis on miljon rida seda, leiad asju super kiire. Tegelikult Excel on eriti halb suure andmekogumi saatmiseks. Ja tegelikult, kuni mõne aastat tagasi, osutus Excel vaid võimaldavad salvestada kuni 65535 rida data-- mis kõlab palju, kuid aega olin Kraadiõppeüliõpilase, ja ma mäletan otsa komistamine sest ma teeniva CSV faile minu uurimistöö ja ma tahtsin analüüsida neid kiiresti lihtsalt avamisest Excel. Muidugi, minu arvuti lihtsalt kukkus, sest mul oli rohkem kui 65000 rida. Aga Kust 65535 tulevad? Mis oli Microsoft teeb arvatavasti? Kui sa oled hea oma volitused kaks? Jah, nad kasutasid 16-bitise väärtuse moodustavad rea number. Ja kaks kuni 16 on 65,536-- miinus üks, sest kui sa null indeks tähendab, et oli Kõige ridade arv Oleksin võinud. Ja see oli lihtsalt disaini otsuse. Kui salvestate 16 bitti, nad ainult mind 16000 rida asemel 4 miljardit mida ma oleks võinud ideaalis. Aga nüüd, me ei kavatse tutvustada seda rohkem veebi kontekstis. Ja mis tore SQL on see, et isegi kuigi see on üsna võimas ja ilus kogenud, see tõesti taandub alla nelja peamist tegevust, neli põhifunktsioonid, kui te will-- valida, allalaadimise andmeid, otsides andmete; kustutada või kustutamine andmete lisada lisamiseks rida andmebaasi; ja uuendamine. Nii et kui teil on kunagi kasutanud Google Tabelarvutus, Apple numbrid, Microsoft Excel, olete täidetud, kõige tõenäolisemalt, kes kõik Nende tegevuste kui inimese poolt lihtsalt kasutades klaviatuuri ja mouse-- andmete sisestamiseks, kasutades oma silmade valida või otsida andmeid, või uuendada andmeid või kustutada andmeid. Mida see tähendab? Noh, eelinstalleeritud CS50 IDE on programm nimega MySQL. See on tasuta, avatud lähtekoodiga andmebaas, mis on super populaarne. Kontoga, näiteks kasutab seda käesoleva päev, muu hulgas vahendeid, mida nad kasutavad. Ja palju väga populaarsed veebisaidid kasutavad see suures osas, sest see on kiire, ja kuna see on tasuta. Kuigi kindlasti alternatiive. Ja mõned teist võib võõpama koos alternatiive lõplik projekte. See on pilt, vahepeal on veebipõhine tööriist nimega phpMyAdmin. See on juhus, et See veebipõhine vahend on ka kirjutatud keeles, PHP, Aga mida see tähendas, et teha on meile veebipõhine liides andmebaasi. Kuna MySQL on tüüpiliselt midagi, ajalooliselt, siis oleks suhelda ainult koos käsurea. Ja see oleks super tüütu ja kauge olevat kirjuta teksti valimise käsud andmed, lisada andmeid, ja kustutada andmeid. Nii mõned inimesed internetis kirjutas veebipõhine programm et lihtsalt andke meile hallata andmete andmebaasi kantud. See on nagu topeltklõpsuga Excel, ja töötab veebipõhine versioon sellest. Ja mida sa tahad, et kasutan seda lõpuks järgmisel nädalal, mitte p-set kuus, kuid on ehitada midagi nimetatakse CS50 Finance, mis läheb on andmebaasi kasutajate kasutajanimed ja paroolid, dollari summasid, et nad on oma pangakontole. See saab olema midagi, mida kasutada, et salvestada sümbolid ja kogused Varude et kasutajad abil ostnud virtuaalse dollarit, et sa annan neile. Ja see läheb võimaldab kasutajatel registreerima saidile, nii et isegi oma sõbrad saab häälestada oma kodulehel ja tegelikult registreerida, sisse ja mängida ja proovige leida süü oma kood, ja proovige leida vigu oma kodulehel. Ja nad lihtsalt registreerida Lisades ise, tõhusalt, via koodi kirjutada oma andmebaasi. Näiteks, see on kiire screenshot mida andmebaasis tunduda. See oli üks Eelmise aasta solutions-- see on nagu mini Excel salvestatud failis meie andmebaasis, salvestatud tarkvara nimega MySQL. Vasakul pool, ma olen ilmselt kõiksugu kasutaja unikaalne number. Teises veerus, ma olen andnud kõik kasutaja name-- oma nende hulgas. Ja paremal poolel, Ma olen andnud neile hash. Nüüd see on tegelikult parooli, kuid see ei ole tavaline teksti salasõna. See on krüpteeritud parooli, kui te või hash salasõna. Mida me tuleme tagasi enne pikk. Aga kui te olete kunagi lugenud artikkel selle kohta, kuidas ununes mingil panga või mõne veebisait halvendavate, see võib tähendab üldjuhul üks kahest. Nii et see on lihtsalt väljavõte kuus kasutajat. Kõik te nüüd saate aru välja läbi häkkimise või lõhenemist mida meie kuus inimest paroolid on. Aga kui te olete kunagi saanud hoiatuse või vabandamist alates ettevõtte või veebisaidi ütlus, sorry, häkker murdis meie andmebaasi siis tuleb ilmselt muuta Parooli mida see võiks tähendada? Noh, üks, võib tähendada Ettevõte on olnud rohkem moronic, ja on salvestada oma parooli veerus niimoodi, krüpteerimata. Mis tähendab, et vastane, kes varastas andmebaasi sõna otseses mõttes teab oma kasutajanime ja parooli. See on halvim võimalik stsenaarium. Ja nagu näete p-komplekt seitse, nii lihtne vältida. Ei ole mingit vabandust, et kujul rumalus tänapäeva internet. Two-- ja me leiame mõned artiklid tunnistama, et see ikka juhtub, nonetheless-- kaks, äkki vastane varastas selle versiooni andmebaasi. Milline on ikka selline halb, sest nüüd nad teavad, et mul on kuus kliendid, Ma tean, et kasutaja nimed nende kuue klientidele, ja ma tean, et krüpteeritud versioonid, või räsitud versioonid, nende kuue klientide paroole. Aga keegi teist, kes võiksid teinud [? Hacker 2?] kus sa pragunenud paroole või võtsid pilk, mis versioon probleemi set, miks see on ikka natuke murettekitav kui vastane teab oma hash paroolid? Sihtrühm: sest need võivad sisestage kogu sõnastik arvesse hash funktsiooni. Ja kui teie parool on sõnaraamatu Sõna, [? nad saavad lihtsalt match--?] DAVID Humala: Täpselt, vastane võid kirjutada koodi, nagu mõned teist tegi [? Hacker?] 2, millega sa Käi kõik sõnad sõnastikku või kõiki võimalikke kombinatsioone läbi Z ja üks läbi nine-- mis kõlab palju, ja see on. Aga arvuti, see on päris darn kiire. Ja tegelikult, see oli punkti [? Hacker 2?] Oli võtma asju, mis paistab sõna otseses mõttes seda, ja pöördkodeerida mida see tegelikult oli. Nii me vaatame, kuidas saame hoidke seda tõhusamalt. Selgub, õnneks on MySQL, seal saab olema tüüpi andmeid. Ja üks lõbus osad kohta andmebaasi disain, olgem ausad, tegelikult otsustada ise kuidas tuleks esindavad andmed? Kui te esindate telefoni number int, nagu suur number, või pikk? Või sa tegelikult teha jadana tähemärki? Ja seal saab olema väga mitte-triviaalne mõju sellele. Tegelikult üks varem, lõbus Sobiv lugusid on see, kui Mark Zuckerberg oli hoone Facebook, see oli algselt kirjutatud, ja ikka on suuresti kirjutatud PHP. Ja üks suurimaid väljakutseid nad silmitsi varakult oli tagi. Kui nad hoidsid lisades kooli pärast kooli pärast kooli, minu teada üks originaalseid lahendusi oli sisuliselt kopeeri ja kleebi mõned andmebaasid ja mõned koodi, nii et oli Harvardi liigub oma server, ja MIT jooksis omal server. Ja just seetõttu, mõnede teist, kes võiks meenutada, sa ei saa olla sõbrad teistes võrkudes. Sa ilmselt ei ole sõpru MIT või Harvard 10 või nii aastat tagasi, aga sa ei läbista võrgud Osaliselt sel põhjusel. Ja üks suurimaid väljakutseid Mark ja firmad nagu Facebook tegelikult käitlemise sadu ja tuhandeid ja miljoneid Taotluste sekundis. Nii et asjad, mida me hakkame Rääkides sel nädalal on tõesti olla Sobiv kirjalikult hea tarkvara ja rahva edukad vahendid, et saavad hakkama palju kasutajaid. Nii et me räägime asjadest nagu indekseerimine ja otsimine, kuid see on seda täna. Me näeme rohkem kolmapäeval. [MUSIC - "Seinfeld" teema] DAVID Humala: saate seda ja lahutada see. Ja sa ei pea kinni mõned etteantud mälu. Noh, mis see saab olema nimetatakse? SPEAKER 1: Noh, mis toimub? SPEAKER 2: Mida sa mõtled? Ta loengut. DAVID Humala: Ja me saame kasutada funktsiooni nimetatakse malloc et memory-- SPEAKER 1: Miks ei ole tema käed liiguvad? SPEAKER 2: Noh see on-- sa tead, et on normaalne. See on nagu ta on lihtsalt suur vorst rippus seal. SPEAKER 1: See on normaalne? SPEAKER 2: Jah, ma arvan, et me lihtsalt eeldada, et ta kogemata asendada oma deodorandi superglue.