[Muzikos grojimo] DAVID Malan: Tai CS50 ir tai yra aštuoni savaitę pradžia. Ir mes taip malonu pasveikinti atgal, didelė staigmena, CS50 savo Ramonas Galván auga vyresnysis, kuris buvo išleisti per pastaruosius kelis mėnesius nuo liepos LA, Holivude, tiesiog dirba naują TV Rodyti vadinama kolonija, kurio autoriumi iš tikrųjų yra Harvardo alum pats. Ir todėl mes labai džiaugiamės, kad šis debiutas JAV tinklo Šių metų sausio mėn. Taigi Laukite, kad ir daugiau Ramonas už ateinančias savaites. Žinokite, kad galas arti. Ir ką tai reiškia, kad ten ne visi, kad daug liko CS50, liūdna pasakyti. Mes turime tik trys problemos rinkiniai left-- ten problema nustatyti six-- kuri yra Jūsų rankos dabar arba netrukus bus, dėl vėliau šiais week-- yra skirtas įveikti Mūsų pasauliai komandinėje eilutėje, kur mes praleido didžiąją mūsų laiko naudojant C ir interneto programavimo pasaulyje. Na, jūs pamatysite daug idėjų pasiskolino iš komandų eilutės darbų, bet taip pat daug naujo ir įdomių idėjų kurie taip pat bus Germane už mobiliųjų programų ir technologijų, apskritai, su kuria jūs vaikinai yra visi susipažinę šiandien nešiojamieji kompiuteriai ir telefonai ir pan. Taigi jums įgyvendinti nėra interneto puslapis, arba svetainė per se, bet faktinis žiniatinklio serverio. Jūs rašyti žiniatinklio serverio poilsio parašyta C, kurio gyvenimo tikslas yra gauti HTTP užklausas, tas virtualūs vokai mes kalbėtis apie, ir iš tikrųjų reaguoti arba su kai statinio content-- kaip dot HTML failą arba dot JPEG arba bet kuri kita failų skaičius, ar net PHP failą, kuriuo jūsų interneto serveris ketina interpretuoti, kad PHP kodas ir išspjauti rezultatus. Dabar, mes pateikiame jums su gana sistemoje tiek už it-- tiesų paskirstymo kodas problemos nustatyti šeši yra daugiau kaip 1000 eilučių ilgi, daug, kuris yra komentarai, būti fair-- bet tai iš tikrųjų reiškia būti galimybė gauti savo rankas purvinas nardymas į gana didelį projektą kad mes labai konkrečiai iškirpti gabalus už jus, taip, kad tikrai, kai išeisite CS50 ir įveskite realų pasaulį programavimo ir nori taškytis bet projektų skaičius, jūs turėsite daug didesnis Comfort atsisiųsti tam tikrą šaltinį kodas, kai atviro kodo projektas internete, ir nardymas ir priėmimo pokyčiai, kurie jums atrodo tinkama. Problema nustatyti septyni bus apie kurti savo žiniatinklio taikomąją programą kad mano dinamišką įvestį ir gamina dinamišką produkciją formos iš etrade.com panašūs svetainėje. Ir problema nustatyti aštuoni daugiausia dėmesio bus skiriama dar kitas žinomas kaip JavaScript kalba. Tuo tarpu, galutinis Projektas yra horizonto. Vadinamasis anksto pasiūlymas yra dėl per savaitę nuo šiandien. Pasirengimo proposal-- už specifikacijos, kuris yra CS50 anketa website-- yra gana atsitiktinis galimybė Jums siųsti gana glausta laišką savo mokymo bendradarbiu tik informuoti jį ar jai ką jūs galvojate, kad naudoti jį arba ją skleidėjo. Ir turėti sveiką protą check-- ar jūs galvojate apie kramtymas ne per daug, o gal per mažai, arba gal jūs neturite idėjos, ką ir nori įsitraukti į pokalbį. Vėliau yra pasiūlymas ir būklės ataskaita, vadinamasis CS50 hackathon čia Kembridžo Harvardo ir Jeilio studentai panašūs. Galutinis projekto įgyvendinimas yra ten tiesiai. Ir tada CS50 tikroji čia, Cambridge, taip pat, kaip ir kitas, New Haven. Taigi pasiūlymo, pažvelgti už šių duomenų svetainė. Tačiau daugiau intriguojančiai, taip pat yra galimybė gauti savo rankas purvinas, ir jūsų mintys nesugestų be atviros visos krūva temų ir įrankiai ir metodus, kurie yra pagalbinės į kursą "pagrindinės mokymo programos, bet vis dėlto susiję. Ir taip pat puikus atspirties į daro tikrai cool galutinius projektus, peržengti medžiagos mes apėmė oficialiai problemos nustato arba paskaitos. Taigi eikite į CS50 anketa svetainėje visa grafikas seminaruose. Jei neturite užsiregistruoti dar, tai gerai. Eiti į priekį ir užsiregistruoti dar ir mes Tolesni su transliacija nuorodą, diena ir laikas yra svetainėje. Ir viskas bus registruojami ir įdėti internete jei jūs negalite padaryti ypatingas dienas ir laiką. Kalbant apie tai, kas laukia priekyje thereafter-- gerai, Žinoma, yra "The CS50 hackathon. Ši nuotrauka, prisiminti, nuo nulinio savaitę priimtas apie 4 esu vienas vakaras metų praeitį. CS50 teisinga, kuris vėl vyks abiejuose miestuose. Ir tada, tik sodinti sėklos, nors mes vis dar turi per mėnesį plius kairėje semestrą, jei norite prisijungti prie CS50 nuosavą mokymą darbuotojai, ir jūs norite pradėti galvoju apie tai, CA, ar mokymo kolegos, žinau, kad Pradėsime kalbėti daugiau apie tai vėliau šį semestrą. Bet čia nuotraukoje yra dauguma šių metų komanda. Ir taip, PHP-- ir aš buvau taip liūdna praeitą savaitę, kad [? Allyse?] Maloniai nuvyko į gauti pastangų JAV šie nuostabūs rekvizitai kad aš ne galų gale naudojant, todėl tikrai tik atrodė rūšies kvailas kad mes turėjome kastuvą sėdi čia visi dieną praėjusį trečiadienį, ir šiek tiek šaukštu. Bet tai buvo mano metaforinė būdas bando tapyti iš kodėl mes pereiti nuotrauka nuo C iki panašaus PHP kalba. Ir tą patį galima būtų pasakyti ir apie bet skaičius languages-- Java, Python, Ruby ar kekių tarnauja kitiems, bet kadangi C, pavyzdžiui, rašyti į C programa gali paprastai būti, pavyzdžiui, atsižvelgiant panašaus šaukštu ir kasti skylę žemės, smėlio ar purvo. PHP leidžia jums imtis daug Didesnės įkandimų iš problemos, rašyti kur kas mažiau kodą naudojant gerokai mažesnę nuorodą, nes ten daug daugiau funkcionalumas pieced vietą. Dabar, jei mes buvome tikrai dramatiška, mes norime turėti kažką kastuvu čia, bet tegul bus taip. Tuo tarpu, kita metafora, mes atėjo su yra, žinoma, galite naudoti kažką panašaus veržliarakčiu plaktuku kažką panašaus vinis. Bet, žinoma, teisę priemonė naudoti vyksta kad būtų ne tiek daug kalba vadinama C-- ir dabar aš tiesiog erzina [? Sanders?] Tikriausiai, mes nustatyti, kad later-- taip tinkama priemonė dažnai naudoja yra nesiruošia būti Tai žemiausias lygis priemonė. Ir iš tiesų, C yra ne kalba, kuri dauguma iš jūsų yra kada nors naudoti, ar būtinai turi naudoti dar kartą. Ir iš tikrųjų, šiek tiek secret-- vienintelį kartą Aš naudoju C save yra gana daug tarp Rugsėjo ir gruodžio kiekvieną rudenį semestrą. Ir tai todėl, kad mes naudoti jį kaip galimybę mokyti pagrindai programavimo, ir su juo kompiuteriu Mokslas pagrindai, duomenų struktūros, algoritmai ir like-- bet labai greitai bus jums matyti, kad dabar, sintaksę ir pagrindines idėjas C yra taip nuostabiai perkeliami į daugiau modernių aukštesnio lygio kalbos, kaip PHP ir Python, Perl ir Java ir tikslas-C-- tikrųjų, ne tiek daug Tikslas-C-- bet Swift, tai naujesnė kalbos, kad daugelis iš jūsų bus tada taškytis su jumis galutinio projekto. Taigi be tolesnio ceremonija, tegul iš tikrųjų naudoti PHP išspręsti kai kurias problemas. Prisiminkite, kad anksti, paskutinis savaitę, mes tiesiog naudoti CS50 IDE, mes parašė dinky maža programa kad tik pasakė: "Hello world". Ir tada aš jį išgelbėjo iš failas vadinamas hello.php. Ir tada aš sutikau šią komandą. Ir kodėl? Anglų kalba, kas vyksta čia? Ką aš buvau daro, kai Išbėgau šią komandą? Taip? Auditorija: Yra keletas funkcija PHP kuri skaito tai, kas in-- supranta. DAVID Malan: Geras, ten kai funkcija PHP-- ir leiskite man būti konkretesnis, ten programa, vadinama PHP, dar žinoma kaip Vertėjas, kad supranta Iš hello.php turinys, ir interpretuoja jį iš viršaus į apačioje, iš kairės į dešinę, ir ką daro tie komandas pasakyti. Į hello.php komandas, žinoma, yra tik šaltinis code-- funkcijas ir kintamieji ir kilpos ir panašiai, kad mes patys pradėjo rašyti PHP. Tačiau skirtingai nuo C, kuris yra parengtą kalba, PHP galite tiesiog parašyti jį ir paleisti jį. Jūs praleisti, kad tarpininkas žingsnis konvertuoti jį į nulių ir, ir tada paleisti jį. Ir kas taip yra tai aukštyn kojom? Kodėl mes praleidžiant žingsnį? Kodėl daugiau šiuolaikinių kalbų linkę praleisti šį žingsnį? Kokia buvo nauda? Arba tiesiog intuityviai? Net jei mes ne parašyta daug PHP anksčiau, kas naudinga apie ne Sudarant kodą manai? Nėra? Ne įsipareigojant? Braižymo ant galvos? Taip. Auditorija: labiau dinamiškas. DAVID Malan: labiau dinamiškas? Ką turi omenyje? Auditorija: [nesigirdi] DAVID Malan: Gerai, gerai, todėl priklausomai nuo įvesties, Jūs neturite kaupia kiekvieną kartą. Ir tai tikrai yra kaip paprasta, kaip that-- ką yra toliau taškas sudaryti savo kodą? Tai tik žingsnis, kad tai making-- tai reikia, Per pastaruosius kelis savaičių, dvigubai daugiau žingsniai kaip tik rodyti savo programą. Tai buvo naudinga pamatyti, kad jūs pamatyti klaidų pranešimus ir taip toliau, bet tai dar tik erzina žingsnis. Ir taip supratau, programuotojai laikui bėgant, tai ne mes, kodėl pradėti rašyti kalbas, kurios nėra reikia, kad gana mechaniškai žingsnį, taip, kad gali tiesiog parašyti savo kodą ir paleisti jį. Bet kas buvo kaina kad mes matėme mokama Praėjusią savaitę su vienu konkrečiu pavyzdžiui? Taip? Greitis. Taigi [? kas?] vertėjai šiek tiek lėčiau, tuo, kad nulių ir yra gražus ir greitas kompiuteriu suprasti, dėl to, kad "Intel" procesorius, ar kokia ji yra, tiesiog supranta, kas vyksta apie su tais bitais modelius. Kadangi vertėją yra programa, kuri tikrai turi skaityti ASCII šaltinį kodą, kurį parašiau, ir konvertuoti jį, taip sakant, arba išsiaiškinti, kaip jis konvertuoja galiausiai į nulių ir. Taigi tereikia šiek tiek tiek veiklos rezultatų hitu. Taigi tai iš kompromisas tiek. Dabar, jei mes darome tai per čia, leiskite man eiti į priekį ir padaryti pavyzdį taip. Jei aš einu čia, naujas failas, aš ruošiuosi išsaugoti šį kartą yra hello.php. Ir dabar aš ruošiuosi eiti į priekį ir sako: "spausdinimo hello world", - ir priminti, kad aš galiu naudoti spausdinti, aš ne turite naudoti spausdinimo-F. Ir dabar žemyn čia jei aš PHP apie hello.php, huh-- aš neatrodo, kad ją aiškino. Ką man daryti negerai? Auditorija: lenktąją apyrankės. DAVID Malan: Taip, jums reikia kad kampas laikiklis iki viršaus. Taigi tai tipo erzina, bet jums priprasti prie jo greitai. Jeigu aš turiu rašyti PHP kodą, aš Apskritai reikia pasakyti programą, ar pasakyti vertėją, ei PHP, čia ateina šiek tiek PHP kodą. Ir tada gera priemonė, aš norėčiau uždaryti šį ne tai, o tik su klaustuku kampu laikiklis, taip, kad dabar žemyn čia, jei aš paleisti tai dar kartą, dabar Aš gauti norimą rezultatą. Dabar padarykime nedidelį optimizavimas, tik todėl, kad jūs matėte anksčiau. Tai tipo erzina, kad aš turite paleisti PHP kosmoso hello.php, nes per pastaruosius I gali tiesiog parašyti dot velniop programos pavadinimas, kuris yra natūra gražus. Tai tipo geresnį vartotojų patirtį. Taigi paaiškėja, galite tai padaryti PHP su following-- I galite naudoti gana paslaptingas Buršana viršuje čia, kuris paprastai vadinamas Szulernia, kuriuo tai yra aštrus simbolis, taip sakant, tai yra sprogimo arba šauktukas. Ir tai dabar yra programai kelias tipiškas Linux sistemoje, kuri vadinamas aplinkai arba ENV. Ir tai line-- ilga istorija short-- linija tik vienas sako, ei kompiuteris, rasti PHP vertėjo man į aplinką, rasti jį į savo atmintį, taip sakant. Ir kas malonu dabar yra kad jei aš eiti čia Galiu padaryti dot velniop Sveiki dot PHP, or-- hmm. Leidimas nesuteiktas. Na, pamatysite dar daugiau apie tai su problema septynis, jei jums dar neturite, su leidimais. Pasirodo, kad man reikia vykdyti šią komandą vadinamas [? chamod?] pokyčiams mode-- pliuso x hello.php. Man reikia [nesigirdi] Tai vienas papildomas žingsnis, kuris pasakoja savo kompiuterį, padaryti hello.php vykdomąjį. Ir dabar žiūrėti, ką happens-- tašką slash hello.php, jis tiesiog veikia. Man nereikia nurodyti vertėjas nebėra. Ir aš galiu tai padaryti dar gražiau, dar, jei aš pervadinti šį dalyką. Jei aš judėti hello.php tiesiog Hello-- todėl pranešimas viršutiniame kairiajame, kad programos pavadinimas yra Iš tiesų dabar tik Sveiki. Dabar aš galiu padaryti, tai atrodo kaip C programa, nors ji parašyta PHP-- arba atvirai bet koks skaičius Kitų kalbų. Taigi ribinio stiprinimas, nėra funkcinis skirtumas. Bet tai tik šiek tiek smalsumas dabar, kad galite rašyti programas bet kokia kalba, ir vartotojas nėra turite žinoti, ar rūpintis, kas tai yra. Na, pažvelkime daugiau įtikinamų pavyzdžių dabar kad aš plakta iš anksto. Ir tai vadinama quote.php. Ir tai galima rasti internete. Ir pastebėsite, kad tai gana short-- bet tai komandinės eilutės programa, kuri yra ketina ieškoti akcijų kainas man, kuris iš tikrųjų vyksta būti Priklauso problema nustatyti septyni. Taigi pažiūrėkime, ką aš darau. Pačiame viršuje aš turiu atvira laikiklis klaustukas PHP. Tada aš turiu šią eilutę, pagal kurią Aš esu reikalaujantis failą pavadinimu functions.php-- mes ketiname pamatyti Daugiau apie tai šiek tiek, bet tai kaip C " versija SHARP apimti, ten, kur norite eiti įtraukti kitą failą. PHP ragina jis reikalauja, nors ji taip pat turi būti funkciją. Ir paaiškėja, kad function.php yra tiesiog kažkas rašė prieš klasę. Aš įdėti jį į tą pačią direktoriją, nes Norėjau veiksnys iš tam tikrą kodą kad mes galbūt norėsite naudoti kitur. Tuo tarpu, jūs tikriausiai galite numanyti, kas čia vyksta. Tai yra šiek tiek skiriasi nuo C-- bet ką man reiškia užtikrinti tinkamą naudojimą? Versti ši techniškai. Kokiomis aplinkybėmis aš esu mesti programą, arba išeinant? Taip? Auditorija: Kai jūs neturite du komandinės eilutės argumentai. DAVID Malan: Kai aš neturiu į komandų eilutę argumentus. Ir atminkite, kad viena iš šių argumentai yra pats programos pavadinimas. Ir antra bus kitą žodį I tipo po eilutę. Taigi, kaip ir C, šis yra mano būdas patikrinti, Ar vartotojas bendradarbiauti ir paleisti programą kaip aš skirtas? Dabar kažkas šiek tiek kitoks su C-- Pirmiausia mes turėti šią dolerio ženklas, ir ką daro doleris pasirašyti pažymėti PHP? Tiesiog kintamasis. Štai all-- tik kintamasis po ką jūs norite iš tikrųjų jį vadiname. Atkreipkite dėmesį, kad yra kažkas trūksta mano PHP programa, kaip jis buvo dingęs paskutinis savaitę, lyginant su C, kuris yra kas? A rūšys, bet ir kažkas. Nėra kažkas function-- pagrindinę funkciją. Nėra pagrindinė funkcija. Jūs tiesiog pradėti rašyti Jūsų kodas neturint nerimauti gana savavališkas Konvencija dėl pavadinimų kai pagal nutylėjimą funkcija pagrindinis. Taigi ARG C yra tiesiog tikrai pasaulinė kintamasis kad vertėjo daro man prieinami. Dabar, tai yra įdomus. Taigi ieškoti daiktų. Dolerio ženklas ištekliai yra dėl į kairę, kad mano kintamasis. Dešinėje pusėje, ten matyt PHP funkcija vadinama lookup, kad Aš artimųjų paskutinio mano komandinę eilutę argumentas to-- kokia žodis. Ir mes pamatyti, kaip tai dirba momentu. Ir tada galiausiai aš ataskaitų kainą. Aš spausdinti vieną dalis tokia ir tokia. Ir atminkite, tai yra būdas PHP-- A PHP-- būdu kur jūs neturite daryti dolerio ženklas S nebėra. Jūs galite tiesiog naudoti vingiuotus skliaustus ir prijunkite kai kintamasis. Jūs neturite jaudintis naudojant printf tuo pačiu būdu,. Ir kaip panaikinti, kai jūs įtraukėte kintamąjį viduje dvigubas kabutes, kaip šis, Jūs naudojate išgalvotas technika vadinamas kintamos interpoliacija. Tai tiesiog reiškia, prijunkite kintamasis čia. Ir kaip panaikinti, kai kurie iš jūsų, kurie atvyksta iš kitų programavimo sluoksnių, Jūs negalite naudotis Viengubomis kabutėmis apie įsipareigojimų tai padaryti. Jūs turite naudoti dvigubas kabutes už kintamasis interpoliacija į darbą. Priešingu atveju jūs tiesiog pamatyti tuos vingiuotus skliaustus. Taigi galiausiai, eikime į priekį ir paleisti tai. Leiskite man padaryti, kad mano terminalo šiek tiek didesni. Leiskite man eiti į priekį ir paleisti viduje mano citata kataloge. [? CDsource?] [? AM?] [? citata?] PHP citata dot PHP, ir aš ruošiuosi ieškoti kažko kaip GOOG, kuri yra jos simbolį, ir viena dalis nauju pavadinimu, Alfabetas Inc kainuos $ 717, kaip šiandien. Gerai, jei norime paleisti tai vėl kas nors turi kitą žymėjimo akcijos jie nori ieškoti? "Microsoft", manau, yra tai viena, MSFT-- 53 $. Manau, Yahoo gal. Ir "Facebook" yra tai, kad. Taigi, kas yra ši programa daro? Magija, atrodo, būti integruotas toje peržvalgos funkcija. Taigi leiskite priimti greitai pažvelgti. Pasirodo, kad neateina su PHP, tai į functions.php. Ir mes ne eiti per Tai labai išsamiai, bet pastebėsite, operacinis žodis čia kad iš functions.php-- šešių linija Aš tiesiog pasakyti funkciją. Aš nurodykite savo funkcijos pavadinimą. Aš tada nurodykite bet argumentai, arba parametrai, Noriu, kad funkcija take-- jokių tipus. Ir tada aš jį įgyvendinti. Ir aš pakylės ranką tuo įgyvendinimą, nes tai gana pažangi teisė dabar, bet mes pamatyti jį vėl iš tikrųjų per savaitę į problemą nustatyti septyni. Bet galiu valyti tai iki, per daug. Aš taip pat įtraukiami į Šiandienos kodas versija, Citatos, kuris neturi dot PHP failą. Nes tai, kas yra tikriausiai ne Top programos vadinamas tiesiog pacituoti? Tai vadinamasis shebang-- gana paslaptingas užkalbėjimas kad sako rasite PHP ir tada paleisti jį į mano kodas čia. Gerai, kad atneša mums, kur mes baigėte paskutinis LAIKĄ_ nors kai kurios sudėtingesnės pavyzdžiai. Turite klausimų iki šiol apie PHP ar tai, ką mes darome? No-- viskas gerai. Taip? Auditorija: Viduje HTML failus, daryti you-- [? ar tu ?] [? tiesiog vadina jį?] A [nesigirdi] PHP failą? DAVID Malan: Geras klausimas. Be interneto kontekste, kuris mes tiesiog apie pereiti prie, Jums nereikia naudoti vadinamoji Szulernia viršuje, nes interneto server-- dažnai programa, vadinama "Apache" arba "Microsoft IIS, Internet Information Server arba bet kita serverio programinės įrangos egzempliorių skaičių, žino, kad kai ji mato dot PHP failą, kad jį reikia paleisti interpretatorių ant jo. Tai neatrodo tuo pirmoje eilutėje. Taigi pirmoji eilutė triukas yra tik tada, kai esate raštu komandinės eilutės programs-- kurį mes negali padaryti itin dažnai, bet tai mūsų būdas mažinti Mūsų C pavyzdžiai šiol mūsų PHP. Taigi leiskite tiesų įveikti šį pasaulį iš komandinės eilutės pasaulyje prie interneto atlikdami šiuos veiksmus. Leiskite man eiti į priekį ir parengti per čia tik akimirką. Taigi, jei mes turime interneto serverį, ar veikiau jei mes turime mano nešiojamas per čia kurios aš atkreipti, kaip šis. Ir čia mes turime Interneto tam tikra forma. Ir tada per čia, mes turime esantis tokioje stato serveris tai kaip internetas works-- ir čia yra kai kurių žibintai gal serveris. Ką iš tikrųjų vyksta tarp šių dviejų jungčių? Taigi šiame pastate yra žiniatinklio serverio. Tai tiesiog kompiuteris kad manimi veikia Kai kurios operacinės system-- gal nemokama programinė įranga, vadinama Apache, kuris CS50 IDE veikia. Taigi jūs iš tikrųjų galite galvoti apie šio pastato Jis laikomas pastatas kurie yra saugomi CSt0 IDE. Štai kur jūs visi sąskaitos, kur visi jūsų turėti savo serverį veikia, visi jūs turi savo unikalų URL, kaip mes pradėjome diskutuoti, ir pamatysite daugiau p nustatytas šešių. Štai mano nešiojamas kažkur kitur internete. Ir todėl, kai aš aplankyti URL, kuris priklauso pas mane, kad interneto srauto vyksta perkelti į serverį, serverio gauti HTTP request-- tarsi gauti index.html ir tai Siekiant atsakyti į šį tinklalapį. Taigi, kad bendras paradigma. Kadangi viską aukštyn Iki šiol šiandien viskas vyksta tik į pragyvena iš šio pastato. Aš naudoju mano nešiojamas, bet Man buvo prijungtas prie CS50 IDE, todėl visi iš šių programų Buvau veikia buvo viduje tame serveryje, pati. Bet dabar, pradėkime pakartotinai PHP rašyti keletą faktinių programas, aptarnaujami iki pagal serveryje. Ir tai padaryti, aš ruošiuosi eiti į visa krūva pavyzdžių kad pristatyti šią idėją čia. Taigi tai yra rūšies išgalvotas būdas aprašant programavimo paradigma. Ir iš tiesų, kaip jūs išeiti CS50 arba dirbti dėl galutinių projektų, arba imtis tam sekti nuo klasės, jūs pradėsite matyti, kad world-- ypač užaugo su kalbomis, pavyzdžiui, C kad yra super žemas level-- suprasti, kad geriau būdai rašymo programinės įrangos. Yra tam tikrų modeliai, galite sekti, tam tikri būdai organizuoti savo failus būdai ir pavadino savo funkcijas, taip, kad ilga istorija trumpa, pasaulis sugalvoti su visa krūva akronimai ir pavadinimai būdų programavimą. Tai yra tik metodai galite naudoti. Ir vienas iš jų yra vadinamas "MVC, Model View Controller. Ir tai tik, už dabar pernelyg sudėtinga būdas pasakyti, kaip reikia išdėstyti PHP pagrindu svetainė, mūsų atveju. Kaip jums organizuoti savo failus, kaip jums organizuoti savo logiką, tokiu būdu, kad leidžia lengviau rašyti sudėtingesnius svetaines? Ir iš tiesų, mes greitai ten su P-septynis. Taigi, MVC pasaulyje, jūs ketinate pamatyti, kad mūsų kodas gali paprastai būti apibūdinamas kaip arba modelio kodu, arba valdytojas kodas, arba peržiūrėti kodą. Ir aš ruošiuosi daug supaprastinti jį kaip follows-- duomenų valdytojas yra smegenys jūsų programos, tai kai visi įdomus loginis atsitiks. Taigi viskas mes jau raštu iki šiol klasėje, yra lyg valdiklio code-- tai kontroliuoti jūsų programa, jūsų kilpos, jūsų sąlygomis jūsų funkcijos ir kintamieji ir visa kita. Peržiūros, dabar ketiname būti šiek tiek daugiau nei akivaizdi, atsižvelgiant į interneto pasaulį. Vaizdas yra estetika Jūsų svetainės. Tai, ką vartotojas sees-- vaizdus, HTML lentelių HTML žymes, ir visi to, visi purios estetinių stuff, kad yra ne tai, kad sunku rašyti, bet ką jūs generuoti, yra vadinamasis nuomone, estetika. Ir modelis, galiausiai, vyksta būti duomenų bazės stuff-- kuris mes pradėsime pasinerti į visus daugiau šį trečiadienį. Taigi valdytojas yra logika, vaizdas yra estetinis dalykų, ir modelis bus kur mes saugome mūsų faktinius duomenis. Taigi pažvelkime į tai konkrečiau su tokia pavyzdyje. Aš ruošiuosi eiti į mano katalogą čia Šiandienos šaltinio code-- kurie visi yra prieinami internete. Ir aš ruošiuosi eiti į versiją nulio. Ir čia is-- tegul ją skambutį iš CS50 tinklalapyje nulis versija. Yra ne daug čia ne visi. Tai labai paprasta interneto puslapis tai tikriausiai naudojate ką HTML tags-- tik atspėti iš praeities pavyzdžių? Kas tai? H1-- turbūt, kad didelis paryškinti pavadinimas, kad logotipas iki viršaus, CS50. Ir ką dar yra žaisti? Taip? Auditorija: Nerūšiuotas sąrašas. DAVID Malan: Nerūšiuotas list-- todėl UL žyma o gal LI žymeles pora. Ir jei jūs neturite prisiminti tai, jis nuoširdžiai nesvarbu. Tai yra purus rūšiuoti įgyvendinimo detales HTML kad jūs greitai ieškoti ir jūs esate atgal į savo kelią. Mes daugiau dėmesio skirti programavimui idėjų, kurios yra sultingesnis vienetų. Taigi leiskite tiesiog greitas pažvelgti į HTML-- ir iš tiesų jei aš atverti Žiūrėti kodą čia Yup, Būtent tai, kas vyksta čia. Ten būna UL žymė. Įdėtos viduje, kuri yra Li žymes. Ir tada aš pasiskolino URL Faktinio mokymo programą čia. Ir tada į lectures.php matyt kitas generuojamas dinamiškai puslapis kad ketina turėti, tegul see-- Ah, pirmąsias dvi savaites Paskaitų. Taigi nulis savaitę savaitę vienas, tegul pažvelgti this-- jei aš Rodyti puslapio šaltinį, Taip pat super paprasta. Tai yra viena iš pirmaujančių dviejų puslapių vadinamas week0.php ir week1.php. Taigi mano dabar kas vyksta. Kai paspaudžiu ant week0.php, mano nešiojamas daro už week0.php prašymą. Web serveris, dar žinoma kaip, CS50 IDE, gauna tą virtualų voką. Tai matydamas žinutę kaip, gauti week0.php. Jis tada žodžiu failą, iš viršaus į apačią, iš kairės į right-- failą vadinamas week0.php-- ir spjaudė iš rezultatų. Taigi viduje šį failą, week0.php, turi būti valdiklis logika, kuri generuoja HTML, ir mes netrukus pamatysite, kad. Bet dabar, leiskite paspauskite ant nulio savaitę ir dabar mes turime trečiadienį ir penktadienį, ir dabar mes turime skaidres lėtai nuo nulinio savaitę. Ir jums gali prisiminti Tai iš kelio atgal, kai. Taigi, kad viskas šioje svetainėje darai. Taigi aptarkime, kaip tai daryti. Aš ruošiuosi grįžti į kodo čia, CS50 IDE, ir aš ruošiuosi atverti index.php. Šio failo viršuje yra komentarų krūva. Ir tada viduryje šio failo, jį turns out, yra ne PHP kodą kokia. Nes jei jūs neturite bet kurį iš atvira Laikiklis klaustukas PHP žodžius, Jūs esate laisvai tiesiog įdėti HTML. Nes tai, kas PHP vertėjas turėtų daryti, yra tada, kai jis skaito šį file-- iš viršaus į apačią, iš kairės į right-- jis tik interpretuoja kodą jis mato tarp tie kampas skliausteliuose klaustuką. Ir dar ką nors, kad jis nėra pripažinti PHP, jis tiesiog išspjauna. Ir HTML tarp stuff tai bus tiesiog išspjauti. Taigi šis failas gali turėti buvo vadinamas index.html bet aš pavadinti viską dot PHP kaip slenksčiu. Lectures.php-- panašiai underwhelming, tai tik keletas HTML. Week0.php, panašiai tik keletas HTML. Bet dabar tegul įdėti ant patarlė inžinerijos skrybėlę, ir apsvarstyti, kaip mes galime pagerinti šį. Tai nėra sunku tai padaryti, bet aš natūra perduotos į kopiją ir pasta. Ir iš tiesų, jei aš dviejų savaičių, jums žinoti, ką aš tikriausiai ketinate daryti? Aš ruošiuosi eiti į week1.php, aš ketina pabrėžti viską. Aš ruošiuosi nukopijuokite jį, įklijuokite jį į naują failą pavadinimu week2.php, įgnybti kai URL ir būti mano būdas. Taigi remiantis tuo, kas mes matyti C jau tai neturi jaustis, tikiuosi. Kopijuoti, pasta retai teisingas sprendimas. Taigi, ką mes galime pradėti padaryti, siekiant pagerinti tai? Kur yra galimybės geriau dizainas? Iki to laiko gaunu aštuonių savaičių, ji vyksta būtų tikrai erzina jei noriu pakeisti kiekvieno vienos šriftas Mano puslapiai arba, jei noriu pakeisti išdėstymo struktūrą. Taigi, kur yra galimybė geriau dizainas? Na, tegul mano kas bendrai naudojami visi šie failus. Štai savaitę vieną, čia savaitę nulis, čia lectures.php, čia index.php-- kas yra tas pats, ir Kuo skiriasi, Apytiksliai, kiekvienoje iš šių bylų? Taip? Auditorija: [nesigirdi] DAVID Malan: Gerai, gerai. Taigi ten modelis, be abejo, pagal kurią kiekvieną kartą, aš pasirinksiu paskaita I, Būčiau Generatoriniai labai panašiai atrodančius puslapis. Ir taip gal aš galiu sverto faktas, kad tikrai, mes sąmoningai programinio indeksuojami mūsų lectures-- jei aš galiu įdėti dar daugiau žodžius į savo atsakymą. Ir kas yra vienintelis dalykas, tikrai, kad keičiasi tarp savaitės one-- ir leiskite man slinkite žemyn, todėl maždaug tuo pačiu place-- Taigi čia yra nulis savaitę maždaug viršuje. Štai savaitę vieną, savaitę nulis, savaitę vienas, nulis savaitę. Gerai, tiesiog, jei žinote nė viena programa kokia, tai yra, dabar tik kaip modelio atitikimo žaidimas. Taigi, kas skiriasi? Taip? Auditorija: [nesigirdi] DAVID Malan: Geras, todėl pavadinimas keičiasi, vis tiek šiek tiek. Nulis vyksta, žinoma, į vieną. Tas pats vyksta H1 žyma. Ir mes ne visai matyti, kaip lengvai, nes URL yra šiek tiek ilgai. Bet tie URL keičiasi nežymiai. Bet kas nesikeičia yra, drįstu pasakyti, dauguma iš page-- turinį HTML tegus tas pats, galva tas pats, pavadinimas yra beveik tas pats, kūnas yra tas pats, ir beveik visa kita yra vienodi, išskyrus tas mažai tweaks. Taigi, kaip mes galime eiti apie faktoringo kai tai atlikti? Na leiskite man pasiūlyti būtent kad kitą versiją. Taigi čia versijos vieną, turiu tiksli tie patys failai, plius kiti pora. Štai index.php-- ir net jei jūs niekada PHP anksčiau, ką aš tikriausiai daro išspręsti šią problem-- remiasi tuo, ką matote čia? Taip, yra tai, kad šiek tiek įsipareigojimą? Nėra? Taip, eiti. Auditorija: [nesigirdi] DAVID Malan: Yep. Auditorija: [nesigirdi] DAVID Malan: man reikia jums kalbėti tik šiek tiek garsiau. Auditorija: [nesigirdi] DAVID Malan: Gerai, gerai. Ir aš think-- tai buvo sunku išgirsti you-- bet aš manau, tai, ką jūs gaunate ne tai, kad žodžius, kurie buvo dažni iki viršaus, ir žodžius, kurie buvo populiaresnės apačioje, jau buvo atsižvelgta iš, arba nustumtos į kokius failus? Header.php ir footer.php-- ir mes ketiname padaryti keletą tweaks spręsti susirūpinimą jūs tiesiog iškėlė apie numerius keičiasi, už Pavyzdžiui, jei aš girdėjau jus teisingai. Bet, kad atrodo, kad iš jos esmė. Jei ten buvo didžiulis atleidimas iš darbo ne puslapio viršuje, ir didžiulis atleidimo apačioje tegul pažodžiui tik akcentas ir supjaustyti, kad turinys iš, įdėti jį į atskirą file-- tik kaip CSS, idėja, kur mes atsižvelgti dėmesį labai panašūs estetika, pateikiami ji atskirame dot PHP failą, naudoti reikalauja mechanism-- kuris yra kaip cis include-- kuris iš esmės yra tarsi sakydamas eiti patraukti header.php turinį, nukopijuokite ir įklijuokite jį čia. Bet ką tai reiškia, kad dabar index.php, turiu šias dvi linijas. Be lectures.php, aš taip pat turi šias dvi linijas. Be week0.php, aš taip pat turi šias dvi linijas. Taigi dabar, jei noriu pakeisti iš visų mano puslapius pavadinimas, ar aš noriu pakeisti pagrindinė struktūra, Galiu pakeisti jį dabar tik vienoje vietoje, ar du places-- antraštės ir poraštės, atitinkamai. Dabar kodą pradeda ieškoti šiek tiek daugiau paslaptingas, tiesa? Tačiau, jei jūs manote apie tai, ką puslapis yra doing-- jei aš prašydama week0.php, kaip dėl piešimo ant here-- kai week0.php prašoma, ką tai reiškia? Drąsiai, šis failas yra prašo naršyklėje. Interneto server-- dar žinoma kaip CS50 ID-- griebia šį failą, week0.php ir skaito ji iš viršaus į apačią, iš kairės į dešinę. On line vienos, tai iš karto susiduria su atvira laikiklis klaustukas PHP, reikalauja antraštės taškas PHP ir tt kas PHP interpretatorius does-- kad pastatytas į interneto serveris, nes mes iš anksto sukonfigūruotas tai už you-- jis automatiškai eina į header.php, kopijos turinys, pastos juos čia. Bet tada vertėjas susitikimai klaustukas Uždaryti laikiklis, todėl viskas padaryta galvoti. Dabar jis tiesiog aklai išspjauna iš linijų du per septynių, nes tai tiesiog žalias HTML. Paimama linija aštuoni, ir tai daro pati magija again-- atidarant failą, greiferiniai turinį ir reikalaujant iš jų arba įklijuoti juos teisę tada ar ten. Bet aš tik užsiminė klaidą. Tai yra dalinis žingsnis atgal, nes jei pažvelgsime į header.php, Aš rūšies supjaustyti kampe. Kas funkcija aš pasiduoti tam įgyti šį ginčytina geriau dizainas? Taip? Auditorija: [nesigirdi] DAVID Malan: Taip, aš natūra nuo supjaustyti nontrivial kampe. Jūs pažymėjo, kad tai, kas keičiasi buvo pavadinimą, pavadinime numeris ir į H1 skaičius. Taigi, mano sprendimas buvo, gerai, tegul tiesiog pervadinti puslapį, o ne kovoti su tuo problema kokia. Taigi, kad dalinis žingsnis atgal, tikrai. Bet kas yra Pažymėtina čia Ar tai, ką aš padariau kitaip sudauginti visas bendros stuff. Ir footer.php, pastebėsite, aš įskaičiuota iš visų, kad, nors ir mažesnis, bendra medžiaga. Taigi man reikia kažkaip dabar galės žengti dar vieną žingsnį į priekį, ir nustatyti tas pavadinimas klausimus. Taigi leiskite tai padaryti. Leiskite man eiti į mano antroji versija čia, kuris, vėl, turi tokias pačias failus išskyrus vieną naują to. Ir tai šiek tiek daugiau daugiažodis, bet pažiūrėkime, jei mes gali erzinti, išskyrus tai, kas vyksta čia. Taigi vietoj reikia header.php ir footer.php, Man atrodo, kad reikia tik reikalauti, kad viena file-- vadinamas, žinoma, helpers.php. Ir leiskite man nustatyta, jau dabar, kas viduje helpers.php yra tik funkcijų krūva kad aš parašiau, kaip anksčiau. Bet aš jį pavadino helpers.php. Dabar, matyt, į trys linijos ir 10, aš skambina du functions-- teikti galva, suteikti apačia. Tie, kurie negali ateiti su PHP, parašiau tiems save. Ir aš įdėti juos į helpers.php. Dabar, mes tik matė šį sintaksė vieną kartą, ir tai buvo super trumpai. Bet tai, matyt, argumentas teikti antraštę, funkciją. Kodėl aš žinau, kad? Na čia artimas paren, čia atvira paren. Ir, žinoma, kaip ir C, nieko tarp šių skliausteliuose yra input-- arba argumentas funkcijai. Kas yra duomenų tipas šio argumento, remiantis tuo, kas aš pabrėžė? Ką tie skliaustus nurodo, remiantis paskutinę savaitę? Taip, tai yra array-- specialiai Association masyvas. Ir tai tiesa sintaksė yra šiek tiek funky, bet tai tik artimųjų vienoje rakto porą. Svarbiausia yra, citata citatos pabaiga pavadinimas ir vertė yra CS50. Jei būtume tai padarė C, tai gali vietoj atrodo labiau kaip šis, tiesiog citata citatos pabaiga CS50-- ar iš tikrųjų tai būtų garbanotas petnešos, ar kažką panašaus, kad C, kur raktas yra nulis, o vertė yra CS50. Bet vėl, PHP, nors sintaksė, vėlgi, šiek tiek keistai, jis leidžia jums pereiti į žodžiai vietoj numeriai susieti raktai su vertybėmis. Taigi, ką visa tai reiškia? Jei aš einu į helpers.php, Pažvelkime į šią funkciją. renderHeader.php, o renderHeader yra mano funkcija, ir žinau, kad, nes matau funkcija raktažodis čia. Tai nauja iš C-- ją, matyt, užima argumentą, pavadintą data-- bet aš galėjo tai pavadino nieko, bet aš jį pavadino duomenys, tik šiek tiek clean-- ir tik spėti, ypač jei jūs užprogramuoti kai kurie kiti aukštesnio lygio kalba anksčiau, kažkas virš C, konceptualiai. Ką vienodą atvirą laikiklį kvadratinių laikiklį tikriausiai reiškia? Arba ką jis galėtų reikšti? Mes nematėme tai C. Taip? Tuščia masyvo. Tiksliau sakant, tai reiškia, kad, jei vartotojas neskambina renderHeader su argumentu, aš vis dar vyksta turėti argumentą, vadinamą duomenų, bet jos Numatytoji reikšmė yra bus tuščias masyvas. Taigi tai tiesiog gražus patogumui. Aš neturiu klykauti ne vartotojui, arba pasakyti jums naudoti mano funkcija negerai. Aš galiu tik suteikti vartotojui nutylėjimą vertė, jei aš ne itin rūpi. Dabar ši funkcija, aš vyksta mojuoti mano rankas. Tačiau šis ekstraktas funkcija leidžia mums perduoti šių kintamųjų duomenų į header.php šiuo būdu. Ir tai yra paskutinis gabalas, Manau, funky sintaksė. Čia yra mano nauja versija iš header.php-- ją sakydavo, pažodžiui, atvira laikiklis pavadinimas CS50, ir kad ji buvo. Ir tas pats už H1. Dabar tai, matyt, sako kažkas gana madingas. Ir leiskite man supaprastinti šį akimirką taip. Tai yra tai, ką aš pakeitė mano vardo būtų. Tačiau tai vis tiek negraži nuolat atviros skliausteliuose su PHP, ir tada naudokite spausdinimo funkciją. Pasirodo, kad PHP turi Sutrumpintas notacijos už tai, kuri yra tik lygybės ženklą, kuris yra techniškai funkcija vadinama echo vietoj spausdinti, bet tai tas pats, efektyviai. Tai tiesiog atrodo geriau. Tai tiesiog sintaksinis cukraus, jei norite, kad daro mano kodas atrodyti šiek tiek geriau. Tačiau paaiškėja, ir matysime tai dar kartą prieš ilgas, mes turime tai vadiname annoyingly vadinamas ilgas funkcija HTML specialių simbolių in PHP, nes paaiškėja, yra tam tikras žaliavas kad vartotojas gali duoti mums, arba kad vartotojai gali duoti mums, kad ketina nutraukti mūsų svetainę. Bet mes pamatysime, kad kitą savaitę su JavaScript. Bet dabar, tiesiog žinau, kad Šis failas, headers.php, tiesiog laikosi pavadinimą, Aš praėjo, tai padaryti įsitikinkite, kad jis yra saugus, kurį reikia sušvirkšti į interneto puslapis, ir jis išspjauna jį kaip mano pavadinime ir kaip mano H1. Taigi, jei aš einu į šią versiją dabar pastebėsite, kad paskaitos turi savo pavadinimą atgal, nulis savaitę turi savo pavadinimą atgal, ir Iš tiesų, HTML, aš generuoti yra identiškas, ką mano pirmąją versiją was-- išskyrus mano tarpų, nes aš pradėjau formatavimą mano kodas šiek tiek kitaip. Bet aš generuojami visi kodas Aš rūpi. Taigi leiskite man pristabdyti tik akimirka ir pamatyti jei yra kokių nors klausimų ar man painiava sukūrėte. Gerai, tad pasukti šiek tiek sunkiau čia pamatyti, jei ten yra galimybė tobulinti. Helpers.php taip pat turėjo tai funkcija, vadinama renderFooter. Ir kas Pažymėtina apie renderHeader ir renderFooter? Ir vėl, šiandienos tikslais žinoti kad ekstraktas funkcija yra tik mano būdas artimųjų argumentų į header.php ir footer.php. Atsiprašome? Auditorija: [nesigirdi] DAVID Malan: Taip, aš tik pasikeitė reikalauja linija. Taigi pažodžiui, aš padaręs nuodėmę kopijavimo ir įklijavimo dar kartą. Tai nėra labai daug linijų, bet ateis on-- jei aš kopijuodami viską tiesiog pakeisti vieną mažą žodį ir vienas mažas žodis, Alanas atkreipia OUT Footer čia, lyginant su header čia. Priešingu atveju, viskas yra vienodos, išskyrus, Žinoma, ši funkcija vardai. Taigi, ką galėtume padaryti geriau? Na leiskite man atverti šią versiją čia, kur į helpers.php, kodėl ne aš tiesiog gauti tiek protingesni apie tai? Parašyk šiek tiek sudėtingesnis kodas, bet ją vadina padaryti? Taigi, ką aš iš esmės pasikeitė? Tai užtrunka argumentą now-- du argumentai, duomenų dar. Ir kas tada pirmas vardas tikriausiai yra naudojamas, remiantis tuo, kas jūs skaitote čia? Net jei kai kurie iš sintaksė yra dar nauja. Kas yra dolerio ženklas šablonas? Atsiprašome? Auditorija: ar apačią. DAVID Malan: ar apačią. Taigi, matyt, aš nusprendžiau, kad jei vienintelis dalykas, kuris keičiasi kas šabloną Noriu į print-- ir šabloną Aš turiu galvoje, tai yra koncepciją, kodas, kuris Noriu produkcijos, bet aš noriu prijungti kai kurie values-- todėl, jei tai tik antraštės arba poraštės, kodėl ne aš parameterize kad ir skambinkite argumentas dolerio ženklas šablonas? Ir tai funky sintaksė leidžia man sukurti kelią į kintamąjį čia. Taigi dolerio ženklas kelias yra kintama. Ką tai sintaksę daryti, jei esate susipažinę? Taip? Auditorija: [nesigirdi] DAVID Malan: Būtent. Jei šablonas yra citata citatos pabaiga, galva, arba jei šablonas yra, citata citatos pabaiga, apačia, kad linija yra kad aš pabrėžė, linija aštuoni, tiesiog vartojate šį pavadinimą, pavyzdžiui, antraštės, ir concatenating su dot PHP. Taigi mes neturėjome šį operatorių C Tai taškas operatorius nuostabi dalykas PHP-- jei esate susipažinęs su JavaScript arba Java, galite naudoti pliuso pasirašyti daryti sujungimas. C, tai yra į neck-- skausmas ir aš taip gaila, kad p nustatytas šešių, jūs ketinate daryti this-- tai yra kaklo skausmas Jungiant eilutes. Kodėl? Na, nes jei jūs turite eilutė, tai taip ilgai, ir kitą eilutę tai taip ilgai, Jūs negalite tiesiog prijunkite juos kartu. Ką jūs, o ne daryti, C? Taip? Auditorija: [nesigirdi] DAVID Malan: Jūs turite malloc atminties arba naudoti masyvą ant kamino. Ir jūs iš tikrųjų turi padaryti, kad masyvas pakankamai didelis kad tilptų šis plius tai, plius Backslash nulis. Tada Jungiant juos kartu naudojant maišykite katė arba rankiniu būdu su už kilpos, arba bet metodus, skaičius. Ir mes parodysime jums per porą P-nustatyti šeši. Tai, kaklo skausmas. Ir tai yra tikrai tai, ką aš turiu galvoje apie Tai, palyginti su this-- kaip C, palyginti su PHP. Jūs tik gauti daug daugiau funkcionalumas nemokamai taip, kad jūs galite sutelkti dėmesį, Idealiu atveju, ant fun dalis kodavimas, The Projektas norite išspręsti, o ne žemo lygio smulkmenų. Taigi tai tik generuoja header.php arba footer.php kuriais remiantis vienas aš skambinti. Ir iš tiesų, jei aš einu į index.php, pranešimas visi, kad changed-- Vietoj raginama teikti antraštę ar padaryti apačia, Aš raginama teikti, o po to Pavadinimas šabloną, kad aš noriu padaryti. Ir jūs pamatysite tai, taip pat, į problemą septynis, kurią mes leidžia jums naudoti pačią funkciją padaryti kekių ir kekių įvairių tinklalapių. Taigi, o ne gyventi per daug daugiau tų details-- kuri pamatysite vėl Problema rinkinys seven-- pažiūrėkime ne dabar iš tirpalo pradžioje į įdomesnio problema. Iki šiol nieko mes padaryti yra išsaugotus duomenis. Tiesą sakant, tik laiko mes kada nors išgelbėti kažkas, ką mes padarėme šioje klasėje yra, kai mes turėjo labai paprastą demo kurį laiką atgal, kurią mes naudojamas failo IO C, ir aš manau, aš įvedėte mano vardu, ir Hannah vardas, ir Maria vardas, arba gal Andy vardas ir tada mes išgelbėti CSV file-- atskyrus kableliu failą. Ir mes naudojome fopen-- Manau mes naudojome fprintf kaip prisimenu, ir mes išgelbėti failą. Dabar, kad yra paprasčiausias forma bazėje. Jei norite padaryti dėl svetainės Frosh IGS programoje, pagal kurią pirmakursiai gali registruotis sporto, jums idealiai noriu padaryti kažką su tais duomenimis. Praėjusią savaitę, mes nieko su data-- mes ką tik pasakė, esate užsiregistravęs, tikrai ne. Arba gal aš elektroniniu paštu Proctor, ir kad ji buvo. Bet tai būtų malonu, jei galėčiau duoti, kad Proctor CSV failą, kaip Excel failą. Arba dar geriau, tai malonu, jei galėčiau įdėti tiems vartotojams, vardus ir bendrabučio vardus ir visi, kad į duomenų bazę, kuri tiesiog gyvena amžinai, kol aš pasirinksiu ištrinti duomenis. Duomenų bazę, kuri leidžia man užklausos informaciją. Ir iš tiesų, tai ką duomenų bazė yra. Pristatome šiandien, ir kitą savaitę, taip pat, technologija vadinamas SQL-- Struktūrinis užklausa Kalba, kuri yra kita kalba. Tai iš esmės yra programavimo kalba, bet duomenų bazių. Ir duomenų bazė dabar tik galvoti, kaip super išgalvotas versija "Microsoft Excel", ar "Google" Skaičiuoklės, ar "Apple" numerius. Tai paprastai yra programa, kuri leidžia jums laikyti visa krūva duomenis eilėmis ir stulpeliais, gana kaip jums gali Excel. Bet kas malonu, ypač jei mes ne itin gerai susipažinęs su Excel, kas SQL leidžia jums padaryti, tai užklausos ši informacija raštu kodo eilutes kur jūs galite, net jei jūsų duomenų bazė turi milijono eilučių jame, Jūs rasite dalykų, super greitai. Iš tiesų, Excel yra ypač neblogai didelių duomenų rinkinių. Ir iš tikrųjų, iki kelių prieš keletą metų, paaiškėjo, "Excel leistų jums laikyti tik iki 65.535 eilučių data-- kuris skamba kaip daug, bet ne kartą buvau grad studentas, ir aš prisiminti užkliuvimo per tai, nes aš buvo generuoti CSV failus savo mokslinių tyrimų ir I norėjo juos analizuoti greitai tiesiog atverti Excel. Žinoma, mano kompiuteris tiesiog sudužo, nes turėjau daugiau nei 65000 eilučių. Bet kur padarė 65.535 atsirado? Kas buvo "Microsoft daro, matyt? Jei esate gera su savo galias dviejų? Taip, jie buvo naudoti 16 bitų vertė atstovauti eilės numerį. Ir du 16 yra 65,536-- atėmus vieną, nes jei nulis puslapis reiškia, kad buvo Patys eilučių skaičius galėčiau turėti. Ir tai buvo tik dizainas sprendimas. Taupydami 16 bitai, jie man ribojamas 16.000 eilučių, o 4 mlrd, kurį aš galėjo idealiai. Bet dabar, mes ketiname pristatyti šį daugiau interneto kontekste. Ir kas malonu apie SQL yra tai, kad net nors tai gana galingas ir gana sudėtingas, tai tikrai verda iki keturi pagrindiniai veiksmai, keturi Pagrindinės funkcijos, jei will-- pasirinkite, už nuskaitant duomenis, ieškant duomenų; ištrinti ar ištrinti duomenis; įterpti pridėti eilutes į duomenų bazę; ir atnaujinimas. Taigi, jei jūs kada nors naudoti "Google" Skaičiuoklės, "Apple", "Microsoft" numeriai "Excel", turite įvykdytas, Labiausiai tikėtina, kad visi iš šių operacijų kaip žmogaus pagal tik naudojant klaviatūrą ir mouse-- įterpiant duomenis, naudodami savo akis pasirinkite arba ieškoti duomenų, arba atnaujinti duomenis ar ištrinti duomenis. Taigi, ką tai reiškia? Na, iš anksto įdiegta į CS50 IDE yra programa, vadinama MySQL. Tai nemokama, atviro kodo duomenų, kad super populiarus. Facebook, pavyzdžiui, naudoja jį ši be kitų priemonių, kurias jie naudoja dieną. Ir labai populiarių svetainių aikštelė naudoti tai didele dalimi todėl, kad tai greitai, ir todėl ji nemokama. Nors tikrai alternatyvų. Ir kai kurie iš jūsų gali taškytis su alternatyvos galutinių projektų. Tai yra ekrano, tuo tarpu, iš internetinė priemonė vadinama phpMyAdmin. Tai yra sutapimas, kad Šis internetinis įrankis taip pat parašyta kalba, PHP bet ką tai reiškia, daryti yra mums internetinė Sąsaja su duomenų baze. Kadangi MySQL paprastai yra kažkas, istoriškai jus būtų sąveikauti su tik su komandų eilutę. Ir tai būtų super erzina ir paslaptinga turėti rašyti tekstinius komandas pasirinkti duomenys, įrašyti duomenis ir ištrinti duomenis. Taigi keletas patarimų internete žmonės rašė žiniatinklio programa kad tiesiog leiskite mums valdyti Į mūsų duomenų bazėje duomenys. Tai kaip dukart paspaudę ant "Excel", ir veikia jų žiniatinklio versiją. Ir ką jūs ketinate naudoti šį galiausiai kitą savaitę, o ne p nustatytas šešių, bet yra sukurti kažką vadinamas CS50 Finansai, kuri ketina turėti duomenų bazę vartotojams, su vartotojo vardai ir slaptažodžiai, sumas doleriais, kad jie turi savo banko sąskaitas. Tai bus ką jūs naudojate saugoti simboliai ir kiekiai išteklių, apie kuriuos vartotojai nusipirkau naudojant virtualios dolerių, kad jums duoti jiems. Ir jis ketina leisti vartotojams užsiregistruoti savo svetainę, taip, kad net jūsų draugai galima sureguliuoti į savo svetainę ir faktiškai įregistruoti, prisijunkite, ir pažaisti ir pabandyti surasti gedimą jūsų kodas, ir pabandyti surasti klaidas į savo svetainę. Ir jie bus tiesiog registruotis pridedant save, efektyviai, per kodą, kurį rašyti į savo duomenų bazę. Pavyzdžiui, tai greitai ekrano kas duomenų bazė gali atrodyti. Tai buvo iš vienos iš praėjusių metų solutions-- tai tarsi mini Excel failą, saugomi mūsų duomenų bazėje, saugomi šiame programinė įranga vadinama MySQL. Kairėje pusėje, aš, matyt, suteikta kiekvienam vartotojui unikalų numerį. Antroje skiltyje, aš suteikti Kiekvienas naudotojas name-- my own tarp jų. Ir dešinėje pusėje, Aš davė jiems maišos. Dabar tai tikrai slaptažodį bet tai nėra paprastas tekstas slaptažodį. Tai užšifruotos slaptažodį, jei Jums bus arba maišos slaptažodį. Kuris mes grįžti į prieš ilgas. Bet jei jūs kada nors skaityti straipsnis apie tai, kaip Jūsų slaptažodis tikru banku arba kai svetainė gali būti pažeistas, ji iš esmės gali reikšti vieną iš dviejų. Taigi tai yra tiesiog šešių vartotojų ištrauka. Visi jūs dabar gali suprasti iš per įsilaužimo arba skilinėjimą kas mūsų šešių žmonių slaptažodžiai. Bet jei jūs kada nors Dotarłeś perspėjimas ar atsiprašymas iš bendrovės arba svetainėje sakydamas, Atsiprašome, hakeris įsilaužė į mūsų duomenų bazę, jūs tikriausiai turėtų pakeisti savo slaptažodį, ką gali tai reiškia? Na, vienas, gali reikšti, kad kompanija buvo daugiau Kretyński, ir buvo laikyti slaptažodį kaip šiuo skiltyje, paprastasis. Tai reiškia, kad priešininkui, kas pavogė duomenų bazę, tiesiog žino jūsų Vartotojo vardas ir slaptažodis. Štai blogiausią atvejį. Ir kaip jūs pamatysite p-Set septynių, todėl lengva išvengti. Nėra absoliučiai jokio pateisinimo, kad forma kvailumo šiandienos internete. Two-- ir mes surasime keletą straipsnių liudyti, kad tai vis dar atsitinka, nonetheless-- du, o gal priešas pavogė šį duomenų bazės versiją. Kuri vis dar yra rūšies blogai, nes dabar jie žino, kad aš turiu šešis klientus, Aš žinau, naudotojo vardus šių šešių klientams ir aš žinau, šifruotą versijos, arba maišytą versijos, šių šešių klientų slaptažodžius. Bet kas nors iš jūsų, kurie gali padariau [? Hacker 2?] kur krekingo slaptažodžius, ar buvo a look tuo problemos versijos rinkinys, kodėl ji vis dar mažai jaudina jei priešininkas žino savo maišos slaptažodžius? Auditorija: Nes jie galėtų įveskite visą žodyną į maišos funkcija. Ir jei jūsų slaptažodis yra žodynas Žodis [? jie gali tiesiog match--?] DAVID Malan: Būtent, priešas galite tiesiog parašyti kodą, kaip kai kurie iš jūsų padarė [? Hakerių?] 2, kuriuo galite pakartoti per visi žodyne tariant, ar visi galimi deriniai A per Z ir vienas per nine-- kurioje sounds kaip daug, ir jis yra. Bet kompiuterio, tai pretty darn greitai. Ir iš tikrųjų, kad buvo taškas [? Hacker 2,?] Buvo imtis dalykų, kad tiesiog atrodo taip, ir perkonstruoti ką ji iš tikrųjų buvo. Taigi mes pažvelgti, kaip mes galime laikyti tai efektyviau. Pasirodo, laimei MySQL, Yra bus duomenų tipai. Ir vienas iš smagių dalys apie duomenų bazių projektavimas, būti sąžiningais, iš tikrųjų nuspręsti už save kaip jūs turėtumėte atstovauti duomenis? Jei atstovaujate telefono numerį, kaip int, kaip didelis skaičius, ar ilgai? Arba jūs iš tikrųjų tai padaryti kaip simbolių sekos? Ir ten gali būti labai neakivaizd poveikis apie tai. Iš tiesų, vienas iš anksčiau įdomus Germane istorijos yra tada, kai Markas Zuckerberg statė "Facebook", iš pradžių ji buvo parašyta, ir vis dar daugiausia parašyta PHP. Ir vienas iš didžiausių iššūkių jie susiduria anksti buvo mastelio. Kai jie laikomi pridedant mokyklą po Mokykla po mokyklos, mano žiniomis, vienas iš originalių sprendimų esmės buvo nukopijuoti ir įklijuoti kai kurie iš duomenų bazių, ir kai kurie iš kodą, kad Harvardo buvo veikia savo serverį, ir MIT buvo paleista savo serveryje. Ir tai buvo, kodėl, kai iš jūsų, kurie gali priminti, tu negali turėti draugų kituose tinkluose. Jūs tikriausiai neturite draugų ne MIT arba Harvardo prieš 10 metus ar panašiai, bet tu negali apimti tinklus Iš dalies dėl šios priežasties. Ir vienas iš didžiausių iššūkių Markas ir įmonėms, pavyzdžiui, "Facebook" iš tikrųjų tvarkymo šimtus ir tūkstančiai ir milijonai Prašymų per sekundę. Taigi, ką mes pradėsime kalbame apie šią savaitę tikrai bus Priklauso rašyti gerą programinę įrangą, o populiariai sėkmingomis priemonėmis, kad gali dirbti daug vartotojų. Taigi mes kalbame apie tokius dalykus kaip indeksavimo ir paieškos, bet tai ją šiandien. Mes jus pamatyti daugiau trečiadienį. [Muzika - "Seinfeld" TEMA] DAVID Malan: galite ji, ir atimti iš jo. Ir jūs neturite klijuoti su kai iš anksto nustatomi atminties kiekis. Na, kas tai bus vadinama? GARSIAKALBIS 1: Na, kas vyksta? SPEAKER 2: Ką tai reiškia? Jis suteikia paskaitą. DAVID Malan: Ir mes galime naudoti funkcija vadinama malloc į memory-- GARSIAKALBIS 1: Kodėl ne jo rankos juda? SPEAKER 2: Na that's-- žinote, kad tai normalu. Tai kaip jis turi tik Didelės dešrelės kabo ten. GARSIAKALBIS 1: Tai normalu? SPEAKER 2: Taip, aš manau, kad mes tiesiog manyti, jis netyčia pakeisti savo dezodorantas su superglue.