[Glazbom] DAVID Malan: Ovo je CS50 i ovo je početak tjedna osam. A mi smo tako uzbuđeni da dobrodošli natrag, veliko iznenađenje, CS50 vlastiti Ramon Galvan, diže stariji koji je bio proveo posljednjih nekoliko mjeseci od srpnja u Los Angelesu, u Hollywoodu, doslovno radi na novim TV Show pod nazivom Kolonija, kreator koji je zapravo i sam Harvarda alum. I tako smo vrlo uzbuđeni vidjeti debi na SAD mreže u siječnju ove godine. Tako Stay tuned za to, a za više Ramon za nekoliko tjedana doći. Znajte sada da je kraj blizu. I što to znači da ne postoji sve što je mnogo ostalo od CS50, tužno je reći. Imamo samo tri problema setovi left-- postoji Problem postaviti six-- koji je u Ruke sada ili će uskoro biti, zbog kasnije ove week-- je značilo da premosti naši svjetovi komandne linije, gdje smo proveli većinu vremena korištenja C, a svijet web programiranja. Pa, vidjet ćete puno ideja posuđena iz naredbenog retka rad i, ali i puno novih i zanimljive ideje koje su također će biti tijesnoj za mobilne aplikacije i za tehnologiju, općenitije, s kojim Dečki su svi upoznati danas na prijenosna računala i telefoni i slično. Tako ćete ne provode web stranice ili web stranice po sebi, nego stvarna web poslužitelja. Vi ćete napisati ostatak web poslužitelja napisan u C, čija je svrha u životu je za primanje HTTP zahtjeva, te Virtualni omotnice smo zadržati u razgovoru o, i zapravo odgovoriti ili s neki statički content-- poput dot HTML datoteka, ili točka ili JPEG bilo koji drugi broj datoteka, ili čak PHP datoteka pri čemu je vaš web poslužitelj će protumačiti taj PHP broj i ispljunuti rezultate. Sada smo vas s vrlo malo okvira za it-- doista Raspodjela kod za problema postavljen šest je više od 1.000 linija dugi, Puno što je komentara, biti fair-- ali to je zapravo značilo biti prilika da biste dobili vaše ruke prljave ronjenje u prilično velikom projektu da smo vrlo konkretno isklesana komada za vas, tako da zapravo kada izađete CS50 i unesite stvarni svijet programiranja i želite brljati u bilo koji broj projekata, da ćete imati puno veći Udobnost skidanje neki izvor kod, neki open source projekt na webu, i ronjenje u i izradu Promjene koje vidite stane. Problem postaviti sedam će biti o izradu vlastite web-based aplikacija koji traje dinamički unos i proizvodi dinamičke izlaz u obliku od etrade.com nalik web stranice. A problema postaviti osam će se usredotočiti na još drugi jezik poznatije kao JavaScript. U međuvremenu, konačni Projekt je na horizontu. Takozvani pre-prijedlog je zbog tjedan dana od danas. Pre-proposal-- po specifikaciji, koji je na CS50 je website-- je lijepa prilika za povremeni slanje prilično kratak e-mail na svom nastavnom kolegama samo da ga obavijestiti ili joj ono što misliš, da se njega ili nju koriste kao sondiranje odbora. I imaju razum check-- da li ste mislili O rezak off previše puno ili možda premalo, ili možda nemate pojma što god i žele sudjelovati u razgovoru. Nakon toga je prijedlog i izvješće o stanju, tzv CS50 hackathon ovdje Cambridge za Harvard i Yale studentima podjednako. Završni projekt je provedba je tada zbog. A onda CS50 sajam ovdje, u Cambridgeu, kao i drugi u New Havenu. Dakle prijedlog, pogledajte web stranica za one pojedinosti. No, više uzbudljivo, previše, je priliku da biste dobili vaše ruke prljave, i misli vaše otvorene u cjelini gomila tema i alata i tehnike koje su pomoćne na tečaj core nastavni plan i program, ali ipak povezane. I također prekrasna stepenice u radi stvarno cool završne projekte koji nadilaze materijala koje smo pokriveni formalno u problemu postavlja ili predavanje. Dakle, ići na CS50 web stranice za cijeli roster seminara. Ako još ne registriraju, to je u redu. Idi naprijed i prijavite se još i mi ćemo slijedite gore sa live streaming vezu, dan i vrijeme je na web stranici. I sve će biti zabilježena i staviti online ako ne može napraviti Posebni dani i vrijeme. Što se tiče onoga što je pred nama thereafter-- dobro, Naravno, tu je CS50 hackathon. Ova slika, podsjetimo, iz tjedna nula uzeti oko 4:00 jedne večeri u posljednjih godina. Sajam CS50, što opet održat će se u oba grada. A onda, samo da se biljka sjeme, iako još uvijek ima mjesec dana uz ostalo od semestru, ako želite pridružiti CS50 vlastito učenje osoblje i želite započeti razmišljam o tome kako postati CA, ili učenje kolega, znam da Počet ćemo govoriti više o tome kasnije ovaj semestar. Ali ovdje na slici je većina ovogodišnjeg tima. I tako, PHP-- a ja sam tako tužna prošli tjedan da je [? Allyse?] Ljubazno otišao u nastojanju dobivanja Američki ove prekrasne rekvizite da nisam završiti koristite, tako da zapravo samo gledao vrsta glup da smo imali lopatu sjedi ovdje cijeli dan prošle srijede, i malo žlica. Ali ovo je bio moj metaforički način pokušava slikati slika zašto smo Prelaženje od C do jeziku poput PHP. A isto bi se moglo reći i za bilo Broj languages-- Java, Python, Ruby ili grozdova others--, ali dok je u C, na primjer, pisanje programa u C Možda obično biti poput uzimajući žlicu ovako i kopati rupu u tlo, u pijesak ili blato. PHP vam omogućuje da se mnogo veći ugriza iz problema, pisanje daleko manje koda pomoću daleko manji alat, jer postoji toliko mnogo više Funkcionalnost pieced u. Sada, ako smo bili jako dramatično, ćemo imati nešto za lopatu ovdje, ali neka bude tako. U međuvremenu, druga Metafora smo smislili je, naravno, što bi koristiti nešto poput ključa čekić u nešto poput noktiju. Ali, naravno, pravo alat za korištenje ide da se nije toliko jezik zove C-- a sada sam samo ljut [? Sanders?] Vjerojatno, mi ćemo popraviti later-- tako pravi alat za korištenje često ne će biti to je najniža razina alat. I doista, C nije jezik koji većina vas ikada idući u iskoristiti, ili nužno treba ponovno koristiti. A u stvari, malo secret-- jedini put Koristim C osobno je prilično između Rujan i prosinac svake jeseni semestar. A to je zato što smo koristiti ga kao priliku naučiti osnove programiranja, a uz to računala znanost osnove, podaci strukture, algoritmi i volimo-članovima, ali vrlo brzo će vam sada vidim da je sintaksa i ideje temeljne C tako čudesno prenijeti na modernije viši razinu jezika, kao što su PHP i Python i Perl i Java Cilj i-C-- zapravo, ne toliko Cilj-C-- ali Swift, ovi noviji jezika koji su mnogi od vas će zatim poprskati sa sobom konačni projekt. Dakle, bez dodatnih teškoća, neka je zapravo koristiti PHP riješiti neke probleme. Sjetite se da je rano, posljednja tjedan, mi samo koristiti CS50 IDE, mi je napisao Dinky mali program da je samo rekao: "Pozdrav svijetu". A onda sam ga spremiti u datoteka zove hello.php. A onda sam vodio ovu naredbu. I zašto? U engleskom jeziku, što se ovdje događa? Što sam radio kad Trčao sam ovu zapovijed? Da? PUBLIKA: Ima nekih funkcija PHP da čita ono in-- se razumije da. DAVID Malan: Dobro, ima nekih funkcija PHP-- i neka mi bude precizniji, postoji program koji se zove PHP, a.k.a. Tumač, koji razumije Sadržaj hello.php, i interpretira ga na vrh dno, lijeva na desno, a ne ono što ti kažu naredbe. Naredbe u hello.php, naravno, je samo izvor code-- funkcije i varijabli i petlje i slično, da mi sami su počeli pisati u PHP. No za razliku od C, što je sastavio jezik, PHP ste upravo ga pisati, i pokrenite ga. Možete preskočiti posrednika korak pretvaranja u nula i jedinica, a zatim ga prikazuju. I tako ono što je naopako ovo? Zašto smo preskakanje korak? Zašto više modernih jezika imaju tendenciju preskočiti ovaj korak? Što je korist? Ili jednostavno intuitivno? Čak i ako imamo ne napisano mnogo PHP prije, što je korisno o tome nije sastavljanje kôd misliš? Ne? Nije počinio? Grebanje glavu? Da. PUBLIKA: dinamičniji. DAVID Malan: dinamičniji? Što misliš? PUBLIKA: [nečujan] DAVID Malan: OK, dobro, tako da Ovisno o ulazu, ne morate ga sastaviti svaki put. I stvarno je kao jednostavan kao što that-- je točka nastavlja sastaviti svoj kod? Ovo je samo korak koji je making-- to zahtijeva, U posljednjih nekoliko tjedna, dvostruko više koraka kao samo izvodi svoj program. Bilo je korisno u vidim da vama vidjeti neke poruke o pogreškama i tako dalje, ali to je još uvijek samo neugodno korak. I tako programeri shvatio tijekom vremena, zašto ne bismo početi pisati jezike koji NE potrebno da prilično mehanički korak, tako da mogu samo napisati Vaš broj i pokrenite ga. No, ono što je cijena kako smo vidjeli smo platili prošlog tjedna, s jednom određenom primjeru? Da? Brzina. Dakle [? Što je?] tumača malo sporije, u tome nule i one su lijepo i brzo za računala razumjeti, jer je Intel CPU, ili što god to je, Samo razumije što se događa na onim obrascima bitova. Dok tumača je program koji stvarno mora pročitati izvor ASCII kod koji ste napisali, i pretvoriti ga, da tako kažem, ili shvatiti kako se pretvara u konačnici na nula i jedinica. Dakle, samo je potrebno malo malo je hit performansi. Dakle, to je malo trade-off. Sada, ako ćemo to učiniti ovdje, neka me ići naprijed i učiniti primjer kako slijedi. Ako odem ovdje, nova datoteka, idem spremiti ovo opet hello.php. A sada ću ići naprijed i reći: "print Hello World" - i podsjetiti da ja mogu koristiti print, ja ne moraju koristiti za ispis-F. I sada ovdje, ako ja PHP o hello.php, huh-- sam ne čini se da su ga tumačiti. Što sam učinio krivo? PUBLIKA: Kutni narukvice. DAVID Malan: Da, trebate da kut nosača do vrha. Dakle, to je vrsta neugodno, ali ste naviknuti na to vrlo brzo. Ako moram napisati PHP kod, ja obično trebaju ispričati program, ili reći tumača, hej PHP, ovdje dolazi neki PHP kod. A onda za dobru mjeru, bih zatvoriti to nije to, nego sa samo pitanje kutom mark nosač, tako da je sada ovdje, ako sam pokrenuti to opet, sada Ja dobiti željeni rezultat. Sada ćemo napraviti blagi optimizacija, samo da ste ga vidjeli. To je vrsta neugodno da ja moraju pokrenuti PHP prostor hello.php, jer je u prošlosti sam mogao samo napisati dot crta naziv programa, što je vrsta lijepo. To je vrsta bolje korisničko iskustvo. Tako ispada da možete to učiniti u PHP s following-- I možete koristiti ovaj prilično zagonetan bajanje na vrhu ovdje, koji se obično naziva stvar, pri čemu je to oštar simbol, da tako kažemo, to je prasak ili uskličnik. A ovo sada je put u programu na tipičnom Linux sustav koji naziva se okolina ili ENV. A to line-- dugu priču short-- linije jedna samo kaže, hej računalo, pronaći PHP tumač za mene u okolišu, Smatraju ga u sjećanju, da se tako izrazim. A što je lijepo sad je da, ako idem ovdje dolje, Ja mogu napraviti dot crta Pozdrav dot php, or-- hmm. Dopuštenje odbijen. Pa, vidjet ćete još više od toga s problemom postaviti sedam, ako vas već niste, s dozvolama. Ispada da mi treba izvršiti ovu naredbu zove [? chamod?] za promjenu mode-- plus x hello.php. Trebam [nečujan] to jedan dodatni korak koji govori moje računalo, bi hello.php izvršnu. I sada gledati što happens-- točku slash hello.php, to samo radi. Ne treba odrediti prevoditelj više. I ja mogu učiniti još ljepše, ipak, ako sam preimenovati ovu stvar. Ako sam hello.php kretati samo Hello-- tako primijetiti u gornjem lijevom, Ime programa je Doista sada samo Zdravo. Sada mogu učiniti da izgleda kao program C, iako je to napisano u PHP-- ili iskreno bilo koji broj drugih jezika. Dakle marginalna poboljšanja, nije funkcionalna razlika. Ali to je samo mali kuriozitet sada, tako da možete pisati programe na bilo kojem jeziku, a korisnik ne znati ili briga što oni jesu. Pa, pogledajmo više uvjerljiv primjer sada da sam tučeno se unaprijed. I to se zove quote.php. I to je dostupan online. I obavijest da je prilično short-- ali to je naredbenog retka program A to je će pogledati cijene dionica za mene, što se zapravo događa biti tijesnoj do problema postaviti sedam. Tako ćemo vidjeti što radim. Na samom vrhu sam dobio otvorena zagrada upitnika PHP. Tada sam dobio ovu liniju, pri čemu sam zahtijeva datoteku pod nazivom functions.php-- ćemo vidjeti više o tome u malo, ali to je kao C-a verzija oštro su, gdje želite ići uključuju drugu datoteku. PHP naziva to zahtijevaju, iako to Također ima funkciju uključiti. I ispada da je function.php samo nešto što sam napisao prije nastave. Stavio sam ga u istom direktoriju, jer Htio sam da faktor neke šifru da možda želite koristiti negdje drugdje. U međuvremenu, možete vjerojatno zaključiti što se događa ovdje. Ovaj je malo drugačiji od C-- ali Što mislim pod osiguralo pravilno korištenje? Prevedi ovu više tehnički. Pod kojim uvjetima sam ja odvikavanje program ili izlaska? Da? PUBLIKA: Kad nemate Dva argumente naredbenog retka. DAVID Malan: Kad nemam na argumente naredbenog retka. I zapamtite da je jedan od onih Argumenti je program ime sama. I drugi će biti druga riječ pišem nakon redak. Dakle, baš kao i C, taj je moj način provjere, je li korisnik suradnju i pokrenuti program kao što sam namjeravao? Sada, postoji nešto malo drugačiji s C-- prije svega smo imaju ovaj znak za dolar, a što se dolar prijaviti označavaju u PHP? Samo varijabla. To je all-- samo varijabla slijedi što god želite zapravo zovu. Obavijest postoji nešto nestalo iz mog PHP programa, baš kao što je nestalo prošli tjedan, u odnosu na C, što je ono? A vrste, ali i nešto drugo. Ne postoji nešto function-- glavnu funkciju. Nema glavna funkcija. Vi samo početi pisati Vaš broj bez brinuti o prilično proizvoljna Konvencija imenovanja neki propust Funkcija glavni. Dakle arg C je samo jako globalna varijabla koji tumača čini mi dostupni. Sada, ovo je zanimljivo. Pa pogledajte gore stvari. Dolar znak dionica je na lijevo, to je moj promjenjiva. Na desnoj strani, tu je očito funkcija u PHP zove lookup da Ja sam prolazeći moj zadnji komandne linije Argument to-- god ta riječ. I vidjet ćemo kako se to radi u ovom trenutku. I onda na kraju sam izvješćivanje cijenu. Ja sam jedan ispis Udio takav i takav. I zapamtite, ovo je Način na PHP-- način u PHP-- gdje ne morate učiniti dolar znak S više. Vi samo možete koristiti vitičastih zagrada i uključite se u neku varijablu. Vi ne morate brinuti o koristeći printf na isti način. I usput, kad ste stavili varijablu unutar dvostrukih navodnika kao što je ovaj, koristite fancy tehniku zove varijabla interpolacija. To samo znači priključiti varijablu ovdje. I usput, neki od vas koji dolaze od drugih programskih sredina, ne smijete koristiti jednostruke navodnike oko žice za to. Morate koristiti dvostruke navodnike za varijabla interpolacija raditi. Inače ćete doslovno vidjeti te vitičastih zagrada. Pa konačno, idemo naprijed i pokrenuti to. Dopustite mi da moj terminala malo veći. Dopustite mi ići naprijed i pokrenuti u mojoj citat imenik. [? CDsource?] [? AM?] [? citat?] PHP citat točka PHP, i ja ću tražiti nešto kao GOOG koji je njegov ticker simbol, i jedna dionica novim imenom, Abeceda Inc, košta 717 $, od danas. U redu, ako želimo pokrenuti ovo opet, tko još jedan burzovni žele gledati? Microsoft je što mislim da je ova, MSFT-- 53 $. Mislim Yahoo je možda to. I Facebook je to. Dakle, što je ovaj program radi? Čarolija čini se da je ugrađen u toj funkciji pregledna. Tako ćemo uzeti brzo pogledati. Ispada da ne dolazi s PHP, to je u functions.php. I nećemo proći to vrlo detaljno, ali primijetiti operativna riječ ovdje da se na liniji šest od functions.php-- Doslovno sam reći funkciju. Ja navesti ime moje funkcije. I onda odrediti bilo argumenata, ili parametre, Želim da funkcija take-- ne vrste. A onda sam ga provesti. A ja ću mahati ruku na provedbu, budući da je prilično napredna pravu sada, ali ćemo ga vidjeti opet zapravo u tjedan dana u problemu postaviti sedam. Ali ja mogu očistiti ovo gore, također. Također sam uključen u današnji broj verzija citat koji nema točkica PHP datoteke. Jer ono što je vjerojatno Na Vrh programa pod nazivom samo citirati? To tzv shebang-- prilično zagonetan bajanje koja kaže naći PHP, a zatim pokrenuti ga na moj broj ovdje. U redu, tako da donosi nas tamo gdje smo stali Posljednji time-- iako s neki napredniji primjera. Bilo kakva pitanja do sada o tome PHP i što radimo? No-- redu. Da? PUBLIKA: Unutar HTML datoteke, napraviti you-- [? što učiniti?] [? samo ga nazvati?] A [nečujan] PHP datoteka? DAVID Malan: Dobro pitanje. U web kontekstu, što smo doslovno Prenijet se, ne koristiti tzv stvar na vrhu, jer web server-- često Program se zove Apache ili Microsoft IIS, Internet Information Server ili bilo koji broj drugih web poslužiteljskog softvera, zna da kad vidi Točka PHP datoteke, kako to treba pokrenuti tumača na njemu. To ne izgleda na toj prvoj crti. Dakle, ove prve linije trik samo kada ste pisanje naredbenog retka programs-- što nećemo napraviti super često, ali to je naš način premošćivanja naši C primjeri sada naše PHP. Tako ćemo doista premostiti ovaj svijet iz naredbenog retka svijeta na webu na sljedeći način. Dopustite mi ići naprijed i nacrtati ovdje samo na trenutak. Dakle, ako imamo web poslužitelja, odnosno ako imamo moj laptop ovdje, što ću nacrtati ovako. A ovdje imamo Internet u nekom obliku. I onda ovdje imamo poslužitelj u building-- to je kako je internet works-- i ovdje je poslužitelj s nekim svjetlima možda. Što se zapravo događa između ove dvije veze? Dakle, u ovoj zgradi je web poslužitelj. To je samo računalo koji je pokrenut neki operativni system-- možda slobodan softver pod nazivom Apache, koji je pokrenut CS50 IDE. Dakle, možete zapravo mislim ove zgrade kao zgrada u koja je pohranjena CSt0 IDE. To je mjesto gdje svi imate računi, gdje vas sve imate vlastiti web poslužitelj trčanje, sve vas imaju svoje vlastite jedinstvene URL-ove, kao što smo počeli razgovarati, i vidjet ćete više u P. postaviti šest. Evo moj laptop negdje drugdje na internetu. I tako kad sam posjetite URL koji pripada mi, da se internetski promet ide do poslužitelja, poslužitelj je prima HTTP request-- poput dobili index.html i to je odgovaranje na tu web stranicu. Tako da je opća paradigma. Dok sve gore Do sada, danas sve se događa samo u granica ove zgrade. Sam bio koristeći moj laptop, ali Bio sam povezan s CS50 IDE, tako da sve te programe sam bio trčanje je unutar tog poslužitelja, sama. Ali sada, krenimo ponovno korištenje PHP napisati neke stvarne programe koji poslužuju se u web poslužitelja. I to učiniti, ja ću otići u cijela hrpa primjera kako uvesti tu ideju ovdje. Dakle, ovo je vrsta fancy način opisuje programski paradigmu. A u stvari, kao što ste izašli CS50 ili rade na završnim projektima, ili uzeti neki prate na klasu, vi ćete početi vidjeti da je svijet- pogotovo nakon što je odrastao s jezicima kao što su C da su super niske level-- shvatiti da postoji i bolje načini pisanje softvera. Postoje određeni obrasce možete slijediti, određene načine organiziranja datoteka i načina imenovanja svoje funkcije, tako da ne duljimo, svijet je došao gore s cijelom gomilom akronima i nazivi za načinima programiranja. To su samo tehnike možete koristiti. A jedan od njih se zove MVC, Model View Controller za. A to je samo za Sada, pretjerano komplicirano način govoreći kako treba nokautirati PHP-based web stranice, u našem slučaju. Kako organizirati svoje datoteke, Kako ćete organizirati svoj logiku, na način koji olakšava pišu složenije web stranice? I doista, mi brzo ćete doći s p-set sedam. Tako je u svijetu MVC, idete vidjeti da je naš broj može se općenito okarakterizirati ili kao modela koda, ili kontroler broj, ili prikaz koda. I ja ću uprostiti ga kao follows-- kontrolor je mozak vašeg programa, To je mjesto gdje sve od Zanimljivo logika događa. Dakle, sve što smo bili pisanje do sada u razredu, je vrsta kao kontroler code-- to kontrolira vaš program, vaši petlje, vaš uvjetima, vaša funkcija i varijable i sve to. Pogledi, sada će biti malo očitiji u svijetu weba. Pogled je estetika Vaše web stranice. To je ono što korisnik sees-- slike, HTML tablice, HTML oznake, i svi toga, sve fluffy estetike stvari koje se ne da je teško pisati, ali je upravo ono što stvaraju, je tzv pogled, estetika. I model, u konačnici, ide da se baze podataka koje stuff-- ćemo početi ronjenje u sve više srijedu. Dakle kontroler je logika, Pogled je estetski stvari, i model će biti gdje pohranjujemo naše stvarne podatke. Pa pogledajmo ovo konkretnije slijedećim primjerom. Ja ću ići u moj direktorij ovdje današnji izvora code-- sve što je dostupan online. I ja ću ići u verziji nula. I ovdje is-- budimo pozivu Verzija nula od CS50 web stranice. Nema puno ovdje na sve. To je vrlo jednostavna web stranica koja je Vjerojatno koristeći ono HTML tags-- jednostavno valjda iz prošlih primjera? Što je to? H1-- vjerojatno da je velika bold naslov, da se logo vrhu, CS50. I što je još u igri? Da? PUBLIKA: neuređen popis. DAVID Malan: neuređen list-- tako UL oznaka i možda par LI oznaka. A ako se ne sjećate tih, to iskreno ne smeta. To su pahuljasto vrsta detalji provedbe HTML da se brzo pogledati a vi ste se vratili na putu. Mi ćemo se više usredotočiti na programiranje ideje koje su sočnije komada. Tako ćemo samo uzeti brzo pogledajte HTML-- i doista ako sam otvoriti izvor pogled ovdje, yup, To je upravo ono što se ovdje događa. Postoji UL oznaka. Ugniježđena unutar koje je LI oznaka. A onda sam posudio URL stvarne nastavnog plana i programa ovdje. A onda se u lectures.php je očito drugi dinamički generirane stranice koje će imati, neka je see-- ah, prva dva tjedna predavanja. Dakle, tjedan nula i jedan tjedan, neka je pogledajte this-- ako sam vidjeti izvorni kod stranice, i super jednostavno. Oni su vodeći na dvije stranice zove week0.php i week1.php. Dakle, razmislite sada što se događa. Kad sam kliknite na week0.php, moj laptop čini zahtjev za week0.php. Web poslužitelja, a.k.a., CS50 IDE, prima taj virtualni omotnicu. To je viđenje poruku kao, dobili week0.php. Zatim je tumačenje datoteku, vrh do dna, s lijeva na redu-datoteku zove week0.php-- i pljuvanje iz rezultate. Dakle unutar ove datoteke, week0.php, mora biti logika kontroler koji se generira to HTML, a mi ćemo uskoro vidjeti. Ali za sada, dopustite mi da kliknite na tjedan nula, a sada imamo srijedom i petkom, a sada imamo slajdova polako od tjedan nula. A možda sjetiti ovo od put natrag kada. Tako da je sve ove web stranice radi. Tako ćemo razmotriti kako se to radi. Ja ću ići natrag u izvorni kod ovdje, u CS50 IDE, i ja ću otvoriti index.php. Na vrhu ove datoteke je hrpa komentara. A onda je u sredini ove datoteke ga, Ispada, ne PHP kod god. Jer ako ne imati bilo koji od otvorena zagrada upitnik PHP oznake, slobodno možete samo staviti HTML. Jer ono što je PHP Tumač je trebao učiniti, kada se čita ovaj file-- od vrha do dna, s lijeva na redu- samo interpretira kôd to vidi između one kutne zagrade upitnik. I još nešto da ne prepoznaju kao PHP, to samo pljuje. I HTML je među stvarima to će samo ispljunuti. Dakle, ova datoteka može imati pozvani index.html, ali ja sam imenovanja sve točka PHP kao koračni kamena. Lectures.php-- slično underwhelming, to je samo neki HTML. Week0.php, sličan samo su neke HTML. No, sada ćemo staviti na poslovična inženjering šešir, i razmotriti kako možemo poboljšati ovo. To nije teško učiniti, ali ja vrsta od devolved u kopirati i zalijepiti. A u stvari, ako bi dva tjedna, što Znaš što ja vjerojatno ću učiniti? Ja ću ići na week1.php, ja sam će istaknuti sve. Idem ga kopirati, zalijepiti u novu datoteku pod nazivom week2.php, ugađanje neke URL-ove, i biti na putu. Dakle, na temelju onoga što smo vidjeti u C već, to ne čini u redu, nadam se. Kopiraj, Zalijepi rijetko pravo rješenje. Dakle, što možemo početi učiniti kako bi poboljšali ovo? Gdje su prilike za bolji dizajn? Kad sam doći do tjedan osam, što se događa biti jako neugodno ako želim promijeniti font svakog od moja stranica, ili ako želim mijenjati strukturu izgleda. Dakle, gdje je prilika za bolji dizajn? Pa, neka je uzeti u obzir što je zajednička u svim tim datotekama. Evo jedan tjedan, evo tjedan nula, evo lectures.php, evo index.php-- što je isti i Ono što je drugačije, grubo rečeno, u svakoj od tih datoteka? Da? PUBLIKA: [nečujan] DAVID Malan: U redu, dobro. Dakle, postoji uzorak, sigurno, pri čemu svaki put biram predavanje I, Trebao bih biti generiranje vrlo slično izgleda stranica. I tako možda mogu utjecati činjenica da zapravo, namjerno smo brojčano indeksiraju našu lectures-- ako ja mogu staviti još riječi u svoj odgovor. I što je jedina stvar, zapravo, što se mijenja između tjednu one-- i neka mi se pomaknite prema dolje, tako da je otprilike u istom mjesto-- pa ovdje je tjedan nula, otprilike na vrhu. Ovdje je tjedan jedan, tjedan nula, jedan tjedan, tjedan nula. U redu, doslovno ako znate nema programa god, to je sada baš kao i uzorak podudaranje igra. Dakle, što je drugačije? Da? PUBLIKA: [nečujan] DAVID Malan: Dobro, tako da naslov mijenja, uvijek je tako malo. Nula će, naravno, na jedan. Ista stvar se događa u H1 tag. A mi ne sasvim vidjeti kako se lako, jer su URL-ovi su malo dugo. No, one su URL-ovi malo mijenja. No, ono što se ne mijenja je, usudio bih kažu, većina sadržaja page-- HTML tag je isti, je glava isti, naslov je gotovo isti, tijelo je isti, i gotovo sve ostalo je isti, osim za one malo ugađanje. Pa kako možemo ići o faktoring neke ovo? Pa neka mi predloži točno da se u sljedećoj verziji. Dakle, ovdje u verziji jednom, imam točan Ista slika, plus nekoliko drugih. Evo index.php-- pa čak i ako nikada nisam vidio PHP prije, ono što sam ja vjerojatno radi riješiti ovaj problem-- na temelju onoga što vidite ovdje? Da, da blagi opredjeljenje? Ne? Da, ići dalje. PUBLIKA: [nečujan] DAVID Malan: Aha. PUBLIKA: [nečujan] DAVID Malan: trebam se govorim samo malo glasnije. PUBLIKA: [nečujan] DAVID Malan: U redu, dobro. I ja think-- bilo je teško you-- ali čujem mislim što ste uzimajući u da oznake koje su bile uobičajene do vrha, i oznake koje su bile uobičajene na Dno, sada su factored out, ili degradirani što datoteke? Header.php i footer.php-- i idemo napraviti neke tweaks na obratiti vam brigu samo podigao o brojevima zamjene, Primjerice, ako sam te dobro čula. Ali to čini se da je suština. Ako postoji ogromna količina zalihost na vrhu stranice, i ogromna količina redundancije na dnu, neka je doslovno samo vrhunac i izrezati taj sadržaj van, stavite ga u zasebnu file-- baš kao ideja CSS, gdje smo factored out vrlo slične estetike, staviti je u odvojenom dot PHP datoteku, koristiti zahtijevaju mechanism-- koji je kao cis include-- koji je u biti kao što je rekao ide zgrabite sadržaj header.php, i kopirajte i zalijepite ih ovdje. Ali što to znači da je sada u index.php, imam te dvije linije. U lectures.php, ja također ima te dvije linije. U week0.php, ja također ima te dvije linije. Pa sad, ako želim promijeniti naslov sve moje stranice, ili želim promjenu Temeljna struktura, Mogu ga promijeniti sada u samo jednom mjestu, ili dva places-- zaglavlja i podnožja, respektivno. Sada koda je polazna gledati malo više zagonetan, zar ne? Ali ako mislite o tome što je stranica je doing-- ako sam traži week0.php, kao i na izradi više here-- kada se traži week0.php, što to znači? Doslovno, ova datoteka je zatraži pregledniku. Webu server-- a.k.a. CS50 ID-- zgrabi to datoteka, week0.php i čita je od vrha do dna, s lijeva na desno. On line jednom, odmah nailazi otvorena zagrada upitnik PHP, zahtijevaju zaglavlje točka PHP, i tako što je PHP tumač does-- koji je izgrađen u web poslužitelja, jer smo unaprijed konfiguriran je za you-- automatski ide u header.php, kopira sadržaj, ih lijepi ovdje. Ali onda tumač susreti upitnik blizu zagrada, tako da je sve to radi razmišljanja. Sada je samo slijepo pljuje iz linije dvije do sedam godina, jer to je samo sirovi HTML. Dobiva se postroje osam, a ne da Isto magija again-- otvaranja datoteke, grabbing sadržaj i ih zahtijevaju ili ih zalijepiti pravo zatim i tamo. Ali ja sam samo aludirao na bug. Ovo je djelomičan korak unatrag, jer ako ćemo gledati u header.php, Ja sam vrsta izrezati ugla. Ono što je značajka sam odustati kako da dobije ovu uvjerljivu bolji dizajn? Da? PUBLIKA: [nečujan] DAVID Malan: Da, ja vrsta od izrezati Netrivijalno kutak. Vi istaknuo da ono što se mijenja bio je naslov, broj u naslovu, a broj u H1. Dakle, moje rješenje je, u redu, neka je samo preimenovati stranicu, a ne nositi s tim Problem god. Dakle, to je djelomična korak unatrag za sigurno. No, ono što je napomenuti ovdje je da je ono što sam učinio je inače factored sve zajedničke stvari. A u footer.php, primijetiti sam factored iz svega toga, premda manje, uobičajena stvar. Dakle, moram nekako sada moći uzeti još jedan korak naprijed, i popraviti tu titulu pitanja. Tako ćemo učiniti. Pusti me u mojoj drugoj verziji ovdje, što, opet, ima iste datoteke osim jednog novog toga. I to je malo više preopširan, ali neka je vidjeti ako mi može zafrkavati osim što se ovdje događa. Dakle, umjesto da zahtijevaju header.php i footer.php, Čini mi se da se samo zahtijevaju jednu file-- zove, naravno, helpers.php. I neka mi propisuje sada, ono što je unutar helpers.php je samo hrpa funkcija to sam napisao, baš kao i prije. Ali ja to nazvao helpers.php. Sada je očito, u crta tri i 10, ja sam nazivajući dva functions-- uzvratiti udarac glavom donijeti podnožje. Oni ne dolaze s PHP, napisao sam one sebe. I ja sam ih stavio u helpers.php. Sada, možemo samo vidio ovu sintaksu jednom, i to je super kratak. Ali to je očito argument pružiti zaglavlje, funkciju. Zašto znam da? Pa ovdje je blizak zagrada, Ovdje je otvorena zagrada. I naravno, baš kao u C, nešto između tih zagrada je input-- ili Argument u funkciji. Koji je tip podataka ovog argumenta, na temelju onoga što sam istaknuo? Što ti četvornih zagrade pokazuju, na temelju prošlog tjedna? Da, to je array-- posebno asocijativne niz. I to sintaksa doduše je malo funky, ali to je samo prolazi u jednom ključnom vrijednosti par. Ključ je, citiram citat naslov, a vrijednost je CS50. Ako je to učinio u C, to bi moglo umjesto izgledaju ovako, Samo citat citat CS50-- ili zapravo bilo bi kovrčava aparatić, ili nešto slično u C, gdje je ključ je nula, a vrijednost je CS50. Ali opet, u PHP-u, iako je sintaksa je, opet, malo čudno, što vam omogućuje da prođe u Riječi umjesto brojeva povezati tipke sa vrijednostima. Pa što to sve znači? Ako odem u helpers.php, Pogledajmo ove funkcije. renderHeader.php, a renderHeader je moja funkcija, i znam da je, jer vidim funkcija ključna riječ ovdje. Ovo je nova da ga C-- očito Potrebno argument zove data-- ali mogao sam nazvao ništa, ali sam nazvao ga podataka, samo da se malo clean-- i samo uzeti pogodak, pogotovo Ako ste programirali u nekom drugom viša razina jezika prije, nešto iznad C, konceptualno. Što jednak otvoren nosač uglata zagrada vjerojatno znači? Ili što bi to značilo? Nismo vidjeli u C. Da? Prazan niz. Konkretno, to znači da ako korisnik ne zovu renderHeader s argumentom, ja još uvijek idem da imaju argument zove podataka, ali njegova Zadana vrijednost je će biti prazan niz. Dakle, to je samo lijepo praktičnost. Ja ne moram vikati na korisnika, ili reći da koriste moje djelovanje u krivu. Ja samo mogu dati korisniku propust vrijednost, ako sam ne osobito stalo. Sada je ova funkcija, ja sam će val ruke na. Ali to ekstrakt funkcija omogućuje nas da prođe tih varijabli u podacima u header.php na sljedeći način. I ovo je zadnji komad, Mislim, funky sintakse. Ovdje je moja nova verzija ga header.php-- koristi za reći, doslovno, otvorena Naslov nosač CS50, i to je bilo to. I ista stvar za H1. Sada je očito govori nešto lijepo funky. I neka mi pojednostaviti ovaj na trenutak kako slijedi. To je ono što sam promijenila moj naslov da bude. Međutim, to je sve malo ružno stalno otvorene zagrade s PHP, a zatim koristite funkciju ispisa. Ispada da PHP ima stenogram zapis za to, što je samo znak jednakosti, što je tehnički funkcija zove odjek umjesto ispisa, ali to je ista stvar, učinkovito. To samo izgleda bolje. To je samo sintaktička šećera, ako će, što čini moj broj izgleda malo bolje. No, ispostavilo se, i vidjet ćemo ovo opet prije dugo, moramo zvati dosadno dugo funkcija zove HTML posebnih znakova u PHP, jer ispada postoje određene ulazi da korisnik može nam dati, ili da korisnici mogu nam dati, koji će slomiti našu stranicu. No, vidjet ćemo da je sljedeća tjedan JavaScript. No, za sada, samo znam da Ova datoteka, headers.php, jednostavno uzima naslov koji Prošao sam u, to bi Sigurno je sigurno da se ubrizgava u mrežu stranica, a to ga ispljune kao moj naslov i kao moj H1. Dakle, ako idem u ovu verziju sada, obavijest da predavanja ima svoj naslov natrag, tjedan nula ima svoj naslov natrag, i Doista, HTML sam generira identičan je ono što je moj prvi verziji was-- osim moje razmakom, jer sam počeo formatiranja moj broj je malo drugačije. Ali sam ostvarila sve kod mi je stalo. Pa neka mi pauzu za samo trenutak i vidjeti ako postoji bilo kakva pitanja ili zbunjenost sam stvorio. U redu, pa neka je twist malo teže ovdje da li postoji prilika za poboljšanje. Helpers.php također imao ovo funkcija, nazvao renderFooter. A što je značajan o renderHeader i renderFooter? I opet, za današnje potrebe, znaju da ekstrakt funkcija je samo moj način donošenja argumenata u header.php i footer.php. Žao nam je? PUBLIKA: [nečujan] DAVID Malan: Da, samo ja promijeni zahtijevaju linija. Dakle doslovno, ja sam počinio grijeh od kopiranja i lijepljenja, opet. To nije veliki broj linija, ali dolaze on-- ako sam kopirati i zalijepiti sve Samo mijenjati jednu malu riječ, i jedna mala riječ koja ističe Alan out je podnožje ovdje, u usporedbi zaglavlja ovdje. Inače, sve je identična, osim, Naravno, imena funkcija je. Dakle, ono što možemo učiniti bolje? Pa neka mi otvoriti ovu verziju Ovdje, pri čemu je u helpers.php, zašto ne bih jednostavno dobiti malo pametnije o tome? Napišite nešto složeniji broj, ali ga zovu donijeti? Pa što sam iz temelja promijenio? Potrebno argument now-- dva argumenta, podaci i dalje. I što onda je prvi Ime vjerojatno se koristi za, na temelju onoga što čitate ovdje? Čak i ako neki od sintakse je još uvijek novi. Što je dolar znak predložak? Žao nam je? PUBLIKA: zaglavlje ili podnožje. DAVID Malan: zaglavlje ili podnožje. Dakle očito, odlučio sam da ako jedina stvar koja se mijenja je ono što ja želim predložak da print-- i predloška Mislim ovo je nacrt za kod koje želim izlaz, ali želim da se spojite na neki values-- pa ako je samo zaglavlje ili podnožja, zašto ne bih parametriranje to i nazvati argument znak za dolar predložak? A onda je to funky sintaksa mi omogućuje stvoriti put u varijablu ovdje. Dakle, dolar znak put je varijabla. Što to sintaksu ne, ako ste upoznati? Da? PUBLIKA: [nečujan] DAVID Malan: Točno. Ako predložak, citat citat, zaglavlja, ili ako je predložak, citat citat, fusnote, koja crta postoji koje sam istaknuo, linija osam, jednostavno uzimajući to ime, kao što su zaglavlja, i nadovezivanjem s dot PHP. Dakle, mi nismo imali taj operator u C. Ova točka je operator nevjerojatna stvar u PHP-- ako ste upoznati s JavaScript ili Java, možete koristiti plus potpisati učiniti ulančavanje. U C, to je bol u neck-- i ja sam tako žao, u p-set šest, ti si idući u morati učiniti this-- to je bol u vratu da spojite žice. Zašto? Pa, jer ako imaš niz koji je ovo dugo, i još niz koji je ovo dugo, ne možete samo ih uključite zajedno. Što umjesto toga morate učiniti u C? Da? PUBLIKA: [nečujan] DAVID Malan: Morate malloc memorije, ili koristiti niz na stog. A ti zapravo morati učiniti da niz dovoljno velik da stane to plus to, plus backslash nula. Zatim ih spojite zajedno pomoću promiješati mačku ili ručno for petlje, ili bilo koji broj tehnika. A mi vam pokazati par u p-set šest. To je bol u vratu. I to je uistinu ono što mislim o tome ovaj odnosu this-- poput C u odnosu na PHP. Vi samo dobiti puno više funkcionalnost besplatno, tako da se možete usredotočiti, idealno, na zabavu dio kodiranje je Projekt želite riješiti, nego niske razine detalji. Dakle, to samo stvara header.php ili footer.php na temelju kojih je jedan zovem. I doista, ako odem u index.php, obavijest sve što je changed-- Umjesto nazivajući uzvratiti udarac glavom ili donijeti podnožje, Zovem uzvratiti, nakon čega slijedi naziv predloška da želim učiniti. I vidjet ćete to, također, u problemu postaviti sedam, pri čemu smo vam omogućiti da koristite Isto funkciju kako bi grozdovi i grozdovima različitih web stranica. Dakle, umjesto da žive previše mnogo više na one details-- što ćete vidjeti u Problem skup seven-- pogledajmo na sada početkom otopine na više zanimljiv problem. Do sada, ništa mi smo učinio je spasio podatke. U stvari, jedini put smo ikada spašeni nešto što smo učinili u ovoj klasi se kada smo imali vrlo jednostavan demo neko vrijeme natrag, gdje smo se datoteke IO u C, i mislim da sam upisali u moje ime, i Hannah ime, i Maria ime, ili možda Andy ime, i onda smo spašeni CSV file-- vrijednosti odvojenih zarezom datoteku. I koristili smo fopen-- mislim koristili smo fprintf se sjećam, a mi spasio datoteku. Sada, to je najjednostavniji oblik baze. Ako želite napraviti web stranicu za Frosh IM programa, pri čemu brucoši mogu se prijaviti za sport, te je idealno želite učiniti nešto s tim podacima. Prošli tjedan, nismo ništa s data-- smo upravo rekao, ste registrirani, zapravo i nije. Ili možda sam e-poštom Proctor, i to je bilo to. Ali bilo bi lijepo da sam mogao dati da Proctor CSV datoteku, kao Excel datoteke. Ili još bolje, to bi lijepo ako sam mogao stavio imena tih korisnika i spavaonica imena i sve to u bazu podataka koja Samo živi vječno, dok sam se odlučio za brisanje podataka. Baza podataka koja omogućuje me upita informacije. I doista, to je ono što je baza podataka. Mi smo predstaviti danas, a sljedeći tjedan, također, tehnologija zove SQL-- strukturirani upita Jezik, koji je drugi jezik. To je u biti programski jezik, ali za baze podataka. A baza podataka za sada, samo misliti kao super fantazija verziji Microsoft Excel ili Google Proračunske tablice ili Apple Numbers. To je općenito program koji omogućuje da pohraniti hrpu podataka u retke i stupce, sasvim kao što ste možda u Excelu. No, ono što je lijepo, pogotovo ako nismo super upoznati s programom Excel, ono SQL vam omogućuje da učinite je upita ovaj Informacije pisanjem linija koda gdje možete, čak i ako je vaš baza podataka ima milijun redaka u njoj, možete naći ono super brzo. U stvari, posebno Excel loše na velikim skupovima podataka. A u stvari, do neke godina, ispostavilo se Excel samo će vam omogućiti da pohraniti do 65,535 redovi data-- koji zvuči kao mnogo, ali u Vrijeme Bio sam grad student, i sjećam se spotaknula to jer sam generira CSV datoteke za mog istraživanja i ja htjela analizirati ih brzo po samo otvaranje u Excelu. Naravno, moje računalo samo srušio, jer sam imao više od 65.000 redaka. Ali gdje li je 65.535 dolaze iz? Što je Microsoft radi, valjda? Ako ste dobri sa svojim ovlastima dvoje? Da, oni su pomoću 16-bitni vrijednost predstavlja broj retka. I dva do 16 je 65,536-- minus jedan, jer ako vas nula indeks znači da je najveći broj redaka bih mogao imati. I to je bio samo dizajn odluke. Do štedi 16 bita, oni su mi ograničene do 16.000 redaka, umjesto 4 milijarde, što sam mogao imati savršeno. No, za sada, idemo uvesti to više u web kontekstu. A što je lijepo o SQL je da čak i iako je prilično snažan i prilično sofisticiran, to stvarno svodi do četiri ključna operacija, četiri ključne funkcije, ako will-- odabrali, za dohvaćanje podataka, traži za podatke; brisanje ili brisanje podataka; umetnite za dodavanje redaka u bazi podataka; i ažuriranje. Dakle, ako ste ikada koristili Google Proračunske tablice, Apple, Microsoft Brojevi Excel, koje ste pogubili, najvjerojatnije, sve ovih operacija kao čovjeka po Samo pomoću tipkovnice i mouse-- umetanje podataka, koristeći svoje oči za odabir ili tražiti podatke, ili ažuriranje podataka, ili brisanje podataka. Dakle, što to znači? Pa, pre-instaliran u CS50 IRO je program pod nazivom MySQL. To je besplatan, open-source baza podataka koja je super popularan. Prijava, na primjer, koristi se to dan, među ostalim alatima koje koriste. I puno vrlo popularne web stranice koriste to velikim dijelom zato što je brzo, i zato što je besplatno. Iako sigurno postoje alternative. A neki od vas možda brljati s alternative za završne projekte. Ovo je screenshot, u međuvremenu, od web-based alat zove phpMyAdmin. To je slučajnost da Ova web-based alat je također napisana na jeziku, PHP, ali ono što je značilo da se daju nam web-based Sučelje prema bazi podataka. Zbog MySQL obično je nešto povijesno vas, će komunicirati samo s s komandne linije. I to bi bilo super neugodno i arcane imati upisati tekstualne naredbe za odabir podataka, umetanje podataka i brisanje podataka. Tako da neki ljudi na internetu napisao program web-based da je samo neka nam upravljaju podaci u našoj bazi podataka. To je kao dvostrukim klikom na Excel, i pokretanje web-based verziju istih. A što ćeš koristiti ovu za konačnici sljedeći tjedan, a ne u p-set i šest, ali je izgraditi nešto zove CS50 financija, koji je će imati bazu podataka Korisnici, s korisnička imena i lozinke, Dolar iznosi da su imaju u svojim bankovnim računima. To će biti nešto što koristite za pohranu simboli i količine dionica koje korisnik kupio pomoću virtualne dolara da ćete dati. I to će omogućiti korisnicima registrirati za svoje stranice, tako da čak i svoje prijatelje može naštimati na vaše web stranice i zapravo se registrirate, prijavite se i poigrati i pokušati pronaći grešku u kodu, i pokušati pronaći greške u vaše web stranice. I oni će jednostavno registrirati tako se dodaje, učinkovito, putem koda pišete na vašoj bazi podataka. Na primjer, to je brz screenshot onoga što je baza podataka može izgledati. Ovo je iz jedne od prošlogodišnji solutions-- To je kao mini Excel podnijeti, pohranjeni u našoj bazi podataka, pohranjena u ovaj program pod nazivom MySQL. Na lijevoj strani, sam očito dao svaki korisnik ima jedinstveni broj. U drugom stupcu, ja sam dao Svatko korisnik name-- moja među njima. A na desnoj strani, Ja sam im dao mljeveno meso. Sada je to zapravo lozinke, ali to nije običan lozinke tekst. To je šifrirana zaporka, ako hoćete, ili mljeveno meso lozinku. Koje ćemo se vratiti prije dugo. Ali, ako ste ikada pročitali članak o tome kako ste lozinku na nekoj banci ili neki Web stranica možda ugrožena, općenito može značiti jednu od dvije stvari. Dakle, ovo je samo izvadak iz šest korisnika. Sve vas sada mogu shvatiti se putem sjeckanje ili pucanja što naših šest ljudi lozinke. Ali, ako ste ikada stečen upozorenje ili ispriku od tvrtke ili web stranice govoreći, Žao nam je, haker provalio u našoj bazi, vjerojatno treba mijenjati lozinku, što bi to moglo značiti? Pa, jedan, moglo značiti Tvrtka je više kretenski, te je spremanje lozinku u stupcu kao što je ovaj, nesigurna. Što znači protivnika, tko je ukrao baze podataka, doslovno zna vaš ime i zaporku. To je najgori mogući scenarij. I kao što ćete vidjeti u p-set sedam, tako lako izbjeći. Nema apsolutno nema opravdanja za to oblik gluposti u današnjem internetu. Two-- i mi ćemo pronaći neke članke svjedočiti činjenicu da je to još uvijek dogodi, nonetheless-- dva, možda protivnik Ukrao ovu verziju baze podataka. Koji je još uvijek vrsta loša, jer sada oni znaju da ja imam šest kupaca, Znam korisničkih imena tih šest kupaca, i znam da je kodiran verzije, ili raspršene inačice, lozinke tih šest kupaca. No, bilo koji od vas koji bi mogli napraviti [? Hacker 2?] gdje puknut lozinke, ili je Pogled na toj verziji problema Skup, zašto je to ipak malo zabrinjavajuće ako je protivnik zna svoj hash lozinke? PUBLIKA: Zato što su mogli unesite cijeli rječnik u hash funkcije. A ako ste lozinku je rječnik Riječ, [? oni samo mogu match--?] DAVID Malan: Točno, protivnik može samo pisati kod, kao što neki od vas učinio za [? Haker?] 2, gdje li ponoviti više sve riječi u rječniku, ili sve moguće kombinacije A do Z i jedan kroz nine-- koja zvuči kao mnogo, a to je. No, za računalo, to je prilično darn brzo. A u stvari, to je bio točka [? Hacker 2,?] Bio uzeti stvari koje doslovno izgleda ovako, i obrnuti inženjering što je zapravo bio. Tako ćemo pogledati kako možemo spremiti ovaj učinkovitije. Ispada, srećom u MySQL, tu su idući u biti vrsta podataka. A jedan od zabavnih dijelova o dizajn baze podataka, da budem iskren, zapravo odlučuje za sebe kako bi vam predstavlja podatke? Ukoliko predstavljaju broj telefona kao int, poput velikog broja, ili dugo? Ili ti zapravo to učiniti kao niz znakova? I tu može biti vrlo ne-trivijalne utjecaji na to. Naime, jedna od Najraniji, zabava zameci priče kada je Mark Zuckerberg je izgradnja Facebook, je izvorno napisan na, i dalje u velikoj mjeri je napisan u PHP. A jedan od najvećih izazova oni suočavaju rano je skaliranje. Kad su držali dodavanja školu nakon Škola poslije škole, prema mojim saznanjima, jedan od originalnih rješenja je bitno kopirati i zalijepiti neke baze i neke koda, tako da je Harvard bio radi na vlastitom poslužitelju, i MIT je trčanje na vlastitom poslužitelju. I to je razlog zašto, za neke od vas koji bi mogli podsjetiti, ne može imati prijatelje u drugim mrežama. Vi vjerojatno ne imati prijatelje MIT ili Harvardu prije 10-ak godina, ali nije mogao obuhvatiti mreže za djelomično toga. A jedan od najvećih izazova za Mark i za tvrtke kao što su Facebook zapravo rukovanje stotine i tisuće i milijuni zahtjeva u sekundi. Dakle, stvari ćemo početi govori o ovom tjednu su stvarno će biti tijesnoj se pisanje dobar softver, a popularno uspješni alati koji može nositi puno korisnika. Tako ćemo govoriti o stvarima kao indeksiranje i pretraživanje, ali to je to za danas. Mi ćemo vas vidjeti više srijedu. [MUSIC - "Seinfeld" TEMA] DAVID Malan: možete da da, i oduzimati od njega. I ne morate se držati s neke unaprijed određena količina memorije. Pa, što se to događa da se zove? SPEAKER 1: Pa, što se događa? ZVUČNIK 2: Što mislite? On je predavanje. DAVID Malan: I mi možemo koristiti funkcija zove malloc na memory-- SPEAKER 1: Zašto se ne kreće ruke? ZVUČNIK 2: Pa that's-- znate, to je normalno. To je kao da je upravo velike kobasice visi tamo. SPEAKER 1: To je normalno? ZVUČNIK 2: Da, mislim da samo pretpostaviti je slučajno zamijenio njegov dezodorans s ljepila.