[Powered by Google Translate] [Seminaras] [Interneto svetainių kūrimas: Nuo idėjos iki įgyvendinimo] [Benas Kuhn] [Billy Janitsch] [Harvardo universiteto] [Tai CS50] [CS50.TV] [Billy] Sveiki, aš Billy ir tai Benas. >> [Benas] Sveiki. Mes ketiname kalbėti apie interneto plėtrą ir šiandien. [Funvideo.ru | Mnis] [Billy Janitsch Ben Kuhn] Šiek tiek apie mus pirmas. Benas yra tarsi back-end vaikinas. Jis daro ką dirbti. Ir tada aš eiti ir padaryti juos gražus. Aš daugiausia buvo susijusios su daugiau front-end maketavimas rūšies dalykų, Ben, kita vertus, žino, ką jis daro, todėl jis veikia back-end stuff. Kartu mes padarėme keletą dalykų. Pavyzdžiui, praėjusiais metais dirbome Gimblium kuris yra internetinis žaidimas plėtros studija. Tai buvo mūsų galutinis projektas, skirtas klasės, ir nuo tada mes padarėme Harvardo klasei kuris yra internete sistema naršymui ir prekybos kursus Harvarde. Mes ketiname pradėti šią idėją mūsų svetainėje. Mes ketiname padaryti "Facebook", bet katėms. Prieš jūs iš tikrųjų padaryti šią svetainę, neverskite šią svetainę, nes tai nėra gerai, bet mes jį naudoti kaip pagrindas ir eiti per kaip mes šią idėją procesą ir paversti jį tikra interneto svetainėje mes galime naudoti. Pradėsime išmušant svetainę žemyn. Kaip jūs jau darote CS50, jūs norite galvoti apie tai, kas yra tikrieji komponentai, kad pereiti į šią svetainę. Iš esmės sukdami jį nuo idėjos, kuri yra tiesiog tarsi abstrakti sąvoka į tikrą, apčiuopiamą dalykas, kad jūs galite padaryti. Mes pradedame, prašydami keletą klausimų. Kas yra ši svetainė? Kodėl mes todėl? Kas tai bus naudojama? Kad dalykas rūšiuoti. Į "Facebook" Cat atveju mes iš esmės nori svetainę, kuri leidžia katės socialinį tinklą vieni su kitais. Idėja yra ta, kad jie gali rašyti viena kitos sienos, jie gali pateikti savo pastabas, kad dalykas rūšiuoti. Ir tai, kai mes einame į funkcinių komponentų. Mes dabar turime šią sistemą rūšiuoti - turime vartotojų profilius, mes turime pastabų, ir mes galime rašyti. Galbūt kada nors mes intako mėgsta ir kad dalykas rūšiuoti. Ir mes tipo nori teikti pirmenybę šias funkcijas vyksta in Norime pasakyti, kaip, gerai, tai tikrai svarbu, kad kiekvienas žmogus turi profilį ir kad kiekvienas gali rašyti viena kitos sienos. Antriniai, kad komentarai būtų malonu. Gal vėliau mes intako mėgsta. Taigi, jūs norite turėti tai, kas pagrindinis jūsų projekto idėja ir kas rūšiuoti bendresnio funkcija, kuri galėtų būti taikoma vėliau. Jūs norite rūšiuoti turėti konkretų sąrašą omenyje, bet projektas, kad jūs pradėti nesiruošia būti projektas, kuris jums baigti su. Kitaip tariant, viskas vyksta pakeisti, o jūs kurti svetainę, , ir jūs norite palikti kambarį, kad. Aš jį apverskite Ben kas manimi pakalbėti šiek tiek apie struktūrą. [Benas] aš ruošiuosi kalbėti apie daugiau techninės pusės, interneto svetainių kūrimas. Eikim per kai pagrindai pirmiausia. Kai darai web app, Pagrindinis padalinys, jūs ketinate turėti yra jūs ketinate turėti kai kurių dalykų vyksta kliento pusėje - tai yra kodas, kad jūs naršyklė trunka nuo svetainę ir JavaScript, HTML, CSS dalykų. Štai ir viskas, kliento pusėje. Jūs ketinate turėti kitą kodą, kuris veikia serverio pusėje kuri stebi visus duomenis, kad žmonės siunčia į jus, nusprendžia, kam duoti ką, stuff like that. Tai tik keletas terminų, kad jus vaikinai visi esame susipažinę su tuo, ką mes kalbame apie. Be to skyriaus, tai gerai pagalvoti apie savo interneto app požiūriu Skirtingų komponentų pora. Kai jūs darote interneto svetainių kūrimas vienas iš dalykų, kad jūs visada turėtų būti bando padaryti, tai, siekiant sumažinti sudėtingumą. Kuo sudėtingesnė jūsų kodas yra daugiau šansų yra, kad klaidų, sunkiau yra pakeisti vėliau. Taigi, jei galite nutraukti savo programą į keletą skirtingų funkcinių sričių kad bus - ir jūs galite sumažinti sumą abipus zonos komunikacijos rūšiuoti - kuris padės jums ilgalaikėje perspektyvoje, mažinant klaidų daug. Norėdami būti konkretūs, dažniausiai žmonės padalinti interneto app į - tai tipo Buzz žodžiai dabar, bet jie vis dar naudinga. Galbūt girdėjote žmones kalbėti apie modelius, nuomonėmis ir valdikliai. Modeliai yra faktiniai duomenys, kad jūsų app ketinate spręsti. Pavyzdžiui, jūsų katė Facebook, jūsų modeliai būtų - jūs turite dėl, pavyzdžiui, pranešimų modelį, ir dėl vartotojų profilių, dalykų, pavyzdžiui, kad modelis. Jūsų nuomonė yra kaip jums pristatyti tuos duomenis savo vartotojams. Jūs galite turėti 1 rodinį žiūri į vieną postą ir visus komentarus ir kitokios nuomonės savo sienos, kuri yra visų postų kurie yra nukreipti į jus, ir kitokios nuomonės jūsų naujienų - stuff like that. Galiausiai, jūs turite tikrintojus, kurie iš esmės tada, kai žmonės atsiųsti pranešimus ir jums padaryti atnaujinimus į savo back-end sistemos, Jūs prieaugio iš skaitiklių krūva, ir dar ką nors. Tai yra jūsų valdytojai. Aš ruošiuosi kalbėti daugiausia apie modelius. Peržiūros techniškai nėra, kad sunku ir problema daugiau su projektavimo juos Valdikliai ketinate būti būdingi ką jūs projektuojant. Tačiau yra keletas gana bendri metodai galite naudoti padaryti savo modelių gražiau ir lengviau dirbti, kad aš manau, yra labai naudinga. Tai dažniausiai bus apie tai, kaip elgtis su savo Web Apps "duomenimis gražus būdas. Pagrindinės problemos su modeliais yra tai, kad jie gyvena nuo kliento ir serverio, ir jūs turite išsiaiškinti, ), kaip juos gauti - visus atitinkamus tie - iš serverio į klientą, ir b) kaip išlaikyti juos sinchronizuoti. Jūsų vartotojai ketinate norite padaryti kai kuriuos naujinimus. Jie norės, kad naujų pareigybių. Jie norės patinka tai, ir kita, jei turite mėgsta. Tai yra pagrindiniai techniniai sunkumai bendraujant su modeliais. Pirmas dalykas, kad jūs ketinate norite užduoti sau yra Kokie duomenys eina šio modelio ir kokios užklausas mes ketiname norite daryti - tai yra, kaip mes ketiname pažvelgti į modelių? Jūsų Cat Facebook pavyzdžiui, Jūsų pranešimas teks autorius su juo, kai sienos po teksto ir sienelės paštu gavėjas. Ir tada jūs galbūt norėsite užklausti, kad įvairiais būdais krūva. Jūs norėtumėte pažvelgti į jį, kuris parašė, kokia postą, PSO atsiųstus rašyti, gal iki tos dienos, kai buvo paskelbtas. Bet jei jūs ketinate daryti pagal datą, tada jūs turite pridėti kitą lauką į jūsų pranešimą kada jis iš tikrųjų buvo įdėtas. Šie 2 veiksniai - kokie duomenys, kuriuos norite naudoti, ir kaip jūs norite, kad matytumėte tai - jums reikia galvoti apie jų pirmąjį, nes jie priklauso vienas nuo kito, ir tai bus sunkiau įtraukti juos vėliau. Yra keletas kitų aplinkybių. Kai jūs galvojate apie tai, kaip jums susidoroti su modeliais serveryje ką jūs norite pažvelgti į tai - iš esmės jūs norite, kad serveris taip paprasta, kaip įmanoma. Doing stuff kliento pusėje paprastai yra daug greičiau, jei galite tai padaryti vien tik klientui be daryti bet kokį tinklo prašymu rūšiuoti. Idėja yra padaryti, kaip daugelis užklausas, kaip jūs galite ant kliento. Vienintelė problema su tuo yra tai, kad jei jūs prašote visus savo duomenis pradžioje tada, kad ketina imtis daug laiko įkelti. Taigi, idėja yra surasti aukso vidurį tarp turintys pakankamai duomenų apie kliento kad jūs galite padaryti didžiąją dalį savo darbo ten, bet ne tik žavingas viską iš karto taip, kad jums tikrai lėtai apkrovos metu pradžioje. Pavyzdžiui, jūsų katė duomenys Jūs tikriausiai norėsite atnešti pastarųjų sienos pranešimų krūva. Jūs nenorėtų paimti juos visus, nes tai gali grįžti porą metų. Bet jūs nenorite atnešti jiems vienu metu nes kad būtų nustatyta tinklo pridėtinių išlaidų daug. Tai dažnai gana sunku - jei turite duomenų bazės veikia - tai dažnai labai sunku pakeisti, kokius duomenis turite jį - tai yra, pridėti naują stulpelį duomenų bazės ar kažką - taip viena gera strategija iš tiesų yra tiesiog išlaikyti savo duomenų daug teksto burbuliuko - JSON BLOB - JSON yra Javaskriptą objektas Žymėjimas - Todėl, kad tai naudinga, nes tada jūs galite pridėti naujų savybių visų šių JSON BLOB nekeičiant savo duomenų bazę. Tik neigiama, kad yra tai, kad jei turite laukų krūva kad jums pridėta vėliau - kaip paslėpti tą JSON blob - tada tai sunkiau paprašyti juos viduje duomenų bazę. Pavyzdžiui, jei vėliau - jei turėjo savo pašto modelį, kuris aptarėme anksčiau tik su autoriaus, recipiento ir teksto - jūs taip pat galėtų turėti JSON BLOB ir tada, jei vėliau norėjo įtraukti datos laukas jūs neturite pakeisti savo duomenų bazę. Jūs galite tiesiog pridėti datas į visus teksto laukus. Ir tada jums bus suteikta galimybė pažvelgti į tuos, kliento pusėje, bet jums nebus suteikta galimybė paprašyti juos serverio pusėje nes ji paslėpta šio teksto. Kitas klausimas, kad jūs norite galvoti apie kaip jūsų klientas ir serveris ketiname bendrauti. Jūs paprastai nori tai išlaikyti taip paprasta, kaip įmanoma. Jūs galite tiesiog turi kaip get-me-šio duomenų Prašymų, sukurti-a-naujo objekto dalykas, ir update-senumo-objektas prašymu. Ir tai galėtų visi būti skirtingi adresai serveryje, kad jūs - kad naršyklė būtų - galite naudoti AJAX prašymus dėl visų šių ir arba gauti ar rašyti duomenis. Vėlgi, mūsų kačių Facebook pavyzdžiui, galite turėti šį URL gauti atskirą įrašą, ir jūs turite URL sukurti naują sienos posto o gal ir įkelti savo profilio nuotrauką, stuff like kad URL. Bet vėl, tai iš anksto paimti daugumą savo duomenis, kad jūs neturite išlaikyti priėmimo tinklo užklausas. Dėl šios priežasties, jums gali nenorėti turėti tokią atskirą GET užklausą dėl vieno posto, ir vietoj to, jūs tiesiog norite 1 GET užklausos už visą sieną. Ir tada, jei jūs bandote išlaikyti pusiausvyrą, nes - tai taip pat ketina priklausys nuo jūsų paraišką. Nes jei jūs tikitės, kad žmonės turi tik 10 ar 20 sienos pranešimų kad bus gerai. Bet jei tikitės jie turi tūkstančius tada šis prašymas užtruktų per ilgai, ir todėl jūs galbūt norėsite pridėti get visus postus, nes parametrą. Dėl visų šių, jūs tikriausiai norite sinchronizuoti duomenis JSON - JavaScript objektas žymėjimas. Beveik kiekvienas kalba labai gerai dirba su JSON. JQuery turi šią gražią getJSON funkcija, kuri atliks visą sunkų darbą už jus. Ir PHP yra taip pat labai gražus JSON komunikacijos funkcijas. Taigi, tai tikriausiai geriausias formatas siunčiant savo modelius ir atgal. Pavyzdžiu to, ką mes kalbėjome apie iki šiol, pavyzdžiui, Štai pavyzdys srautas Cat "Facebook" programa. Jis prasideda su jūsų naršyklėje prašančiosios pagrindinį svetainės URL. Serverio tikriausiai siųsti daugiau nei statinis HTML ir kai JavaScript ir CSS. Tai paprastai geriau ne daryti bet atvaizdavimas serveryje. Jūs tikriausiai nenorite - kas serveris yra ne daro ten vyksta žemyn sienos postų ir sukurti kai kiekvienam iš HTML ir siųsti, kad per. Tai paprastai geriausia daryti, kad kliento pusėje, nes kitaip kiekvieną kartą, kai norite iš naujo atkreipti kažką, kad jūs turite padaryti serverio prašymą. Ir kad labai greitai suteikia jums važtaraščius daug. Tai paprastai geriausia tiesiog laivas zsyla statinis HTML ir tada "JavaScript" ir CSS, kad bus padaryti atvaizdavimo kliento pusėje. Kuo greičiau, kad kita ateina, tuomet jūs galite turėti - JavaScript - galite padaryti prašymus sienos duomenų ir stuff like that, o po to serveris yra iš esmės tik tai duomenų bazės užklausų ir patikrinti leidimus. Tik svarbus dalykas yra tai, kad ji negali siųsti daugiau nei kai kurių kitų vartotojų sienos pranešimų kad jūs negalite pamatyti. Tai iš esmės gali būti labai plonas prieigos sluoksnio į duomenų bazę, ir tada visi rodo duomenis - visi nuomonėmis ir kita - tas gali atsitikti jūsų naršyklėje, ir tada, kai norite padaryti įrašą ar kažką jūs tik išsiųsti kitą prašymą. Yra taip pat kai išgalvotas stuff galite padaryti ant to. Kalbant apie labiau konkreti techninė informacija, kurti paprastojo JavaScript gali būti šiek tiek skausminga, todėl kai kurie bibliotekos ir įrankiai, kurie padės jums daug, kad. Manau, jūs visi tikriausiai girdėjote apie JQuery todėl daro HTML atvaizdavimą ir manipuliavimo daug lengviau - turi daug išgalvotas funkcijų nyksta ir išeina, ir daro kazkas animaciją. Taip pat ši biblioteka vadinama Underscore.js. Jis turi daug naudingų naudingumo funkcijų daug, daiktų, kad jums būtų tikėtis Javaskriptą, kad turi kad ji tikrai doesnt - dalykų, pavyzdžiui, shuffling masyvą, pašalinti dublikatus iš sąrašo, ar išlyginimo į sąrašų sąrašą. Tai tik maža kodo pavyzdys. Pabraukimo turi šių naudingų funkcijų, kad jums nori jums reikės visą laiką toną. Ir tada ten dar 1 biblioteka, kad aš norėčiau praleisti šiek tiek laiko vadinamas Backbone.js nes stuburą tikrai padeda jums susidoroti su modelių kliento pusėje ir apie sumaištį, kuri gali sukelti daug. Pagrindas suteikia jums šį modelių ir kolekcijų koncepciją JavaScript kuris yra iš esmės lygiai taip pat kaip JavaScript objektų JavaScript masyvų, tačiau jie įvykių, kai jūs pakeičiate savo savybes. Kaip JavaScript, jūs galite turėti, kai mygtukas bus paspaudėte ar kažkas renginį šie backbone modeliai ir backbone kolekcijos transliuos dalykų, pavyzdžiui, kad kai jie pasikeis. Tai reiškia, kad galite tiesiog parašyti kažką panašaus į šio kodo fragmentą čia - tai sako, kai jūs pridėti nieko žinutes masyvo jūs vėl įtraukti visą sieną. O tai sako, kad kai pasikeičia po numeris iš mėgstami, jums pranešti vartotojui, kad kažkas patiko savo postą. Arba kiekvieną kartą, kai poste nuosavybė keitimus perbraižyti postą. Daiktai, kaip kad bus jums sutaupyti tonų sudėtingumo, nes kitaip jei jūs neturite Some Like Šis pamatinis tada kiekvieną kartą savo kodą, kurį pakeisti nieko apie pareigas, jūs turite atsiminti save vadina visus Užkrauta funkcijas ir stuff like that, ir, jei norite pridėti kažką naujo, kas atsitiko kaskart keistas pareigas jūs turite pereiti per kiekvieną savo vietoje kodą, kurį modifikuotas įrašą ir pridėti, kad naujas dalykas. Kaip ši sistema bus pašalinti tos tarp sluoksnio komunikacijos aikštelė kad daro jūsų kodas sudėtingas ir sunku išlaikyti. Yra šiek tiek apie nuomonėmis, taip pat. Aš ruošiuosi palikti dauguma tai Billy, nes jie techniškai nėra labai sunku. Naudokite JQuery savo nuomonę. Tai beveik kaip šiame etape būtinybė. Jis tiesiog daro viską daug lengviau. Yra bibliotekų daug. Jei sudėtinga vartotojo sąsajos elementus, Jei norite automatinio pildymo dalykas ar patinka vieną iš šių išgalvotas daugiabučių selektoriai - jei norite ko nors panašaus, jūs tikriausiai turėtų tiesiog ieškoti aplink ir jūs galite rasti gerą biblioteką, kad bus padaryti tai, ko norite. Billy paaiškinti daugiau apie faktiškai sunkiausių dalių nuomonėmis. Taip pat, kaip šalutinis dėmesį, stuburą turi už peržiūros bendrauti funkcionalumą gražiai su modeliais - pažvelgti į visus šiuos bibliotekų dokumentų, iš tikrųjų. Tiesiog pažvelkite į docs. Jie labai gerai parašyta ir lengvai sekti. Apskritai, jūs galite labai daug tik "Google", jei turite problemų. Yra daug žmonių juos naudojant. Manau, kad tai, kaip galutinis dėmesį. Taip pat yra keletas sudėtingesnių dalykų, kad jūs galite padaryti, jei jūs ieškote, kad jūsų žiniatinklio programa papildomai nuostabus. Jūs galite padaryti - nauja HTML5 specifikacija yra išgalvotas, ką galite padaryti daug. Vietinis saugojimas - tai galite įrašyti duomenis į naršyklę - o ne eiti atgal ir žiūrinėti viskam serverį galite laikyti kai jis nuo kliento ir net leidžia žmonėms - kai kuriais atvejais jis gali net leidžia naudoti tinklalapio neprisijungę. Ten tai dalykas, vadinamas websockets kurie yra įvairių rūšių tinklo ryšio kur, o ne tik jums padaryti vieną prašymą, gausite atsakymą, ir jūs baigsite, jūs nuolat atidaryti su serveriu ir todėl jūs galite padaryti kažką panašaus realaus laiko atnaujinimus. Taigi, jei jūs bandote padaryti pokalbių programą, galite naudoti websockets bendrauti ir atgal, kad jūs neturite išlaikyti prašymą, "O, serveris, ar kas nors atsiųsti man pokalbis?" kas 10 sekundžių arba kažkas. Taip pat įdomu HTML5 funkcija, kur jūs galite padaryti jį atrodo kaip Į puslapio URL keičiasi niekada nereikėtų faktiškai perkrauti. Galite naudoti atgal ir perduoti mygtukus nedarant tinklo paraiškų krūva. Daiktai, kaip kad yra tikrai naudinga siekiant jį padaryti greitai, bet taip pat dirbti kaip web app turėtų. Taip pat šis dalykas, vadinamas CoffeeScript. CoffeeScript yra kitokia kalba, iš tikrųjų, kad kaupia žemyn JavaScript. Galima būtų rašyti visus savo kodą CoffeeScript, ir tada paleisti šį kompiliatorių, ir jis išspjauna JavaScript failą, galite įtraukti į savo tinklalapį. Priežasties, kad CoffeeScript yra gražus, nes jis atsikrato iš partijos keistai atvejų, kad "JavaScript", kur lygu lygu, ir lygus lygu tai skirtingi dalykai, ar patinka - ji gražiau sintaksė, susijusius su matricomis ir funkcijos. Tai mažai fragmentas CoffeeScript kuri gamina visų kvadratų sąrašą nuo 10 ^ 2 su 1 ^ 2 atvirkštine tvarka. Kaip matote, CoffeeScript dažnai leidžia išreikšti linija 1 kas užtruktų 5 eilučių JavaScript. Tai gali padaryti ką daug lengviau. Tai šiek tiek naujos sintaksės išmokti, pirmiausia, bet ji tikrai padės jums labiau produktyvus ilgalaikėje perspektyvoje. Taip pat galite naudoti kitas kalbas serveryje nei PHP - kalbomis, pavyzdžiui, Ruby, Python, ar ten net projektas, pavadintas node.js , kuris leis jums naudoti JavaScript serveryje. Asmeniškai, aš tikrai, tikrai nekenčiu PHP. Aš tiesiog nemanau, patinka dirbti su juo. Jei jūs taip pat manote, kad tai yra baisu cluge iš kalbos, tada galite naudoti vieną iš šių vietoj. Apskritai, jei norite ką nors ir jūs tikrai žinote, kaip galėtumėte tai padaryti, tiesiog ieškoti internete. Yra tonų ir tonų išteklių, ypač apie - StackOverflow yra puikus vienas. Tai tai svetainė, kurioje programuotojai paklausti vieni kitus klausimus. Galite paleisti į jį, jei jūs turite problemų dėl CS50 probleminių rinkinių. Ir yra t Bibliotekos daryti beveik viską, ką norėtų. Jei norite ką nors ir jūs nežinote, kaip tai padaryti, negalvokite, kad tai neįmanoma. Tiesiog apsidairykite aplink ir jūs galite rasti keletą gerų išteklių. Kaip apskritai susivynioti, pagrindiniai išsinešti yra išlaikyti viskas paprasta. Kuo sudėtingesnė jūsų kodas yra pradžioje ir daugiau jums pabandyti padaryti išgalvotas stuff, ilgiau užtruks gauti kažką iš tikrųjų funkcinis ir sunkiau bus pakeisti vėliau. Taigi, daryti tai, ko kvailas, lengvai pirmas. Eiti kartu su tuo, nereikia bijoti mesti toli senąjį kodą arba valyti jį daug. Apskritai, kai jūs iš tikrųjų turi kažką darbo, tai daug lengviau galvoti apie nei tada, kai jūs vis dar pradžioje etapais kaip man įdėti visa tai kartu. Tai geriausia padaryti kvailiausias įmanomas dizainą, kuris veikia ir tada jį patobulinti keletą kartų, nei bandyti gauti viską iš pirmo karto. Kalbant apie kliento-serverio padalinys, išbandyti ir išlaikyti savo serverį labai paprasta - tik duomenų bazės, o kai autentifikavimo ir nedaryk bet sunkaus darbo ten. Ar visi jūsų sudėtingą stuff kliento pusėje naršyklėje JavaScript kiek galite. Apsižvalgykite bibliotekoms, kad padarys jūsų gyvenimą geriau. Visada geriau naudoti kodą, kad kažkas parašė jei - o ne rašyti patys. Yra daug daiktų internete. Google yra jūsų geriausias draugas. "Google" programuotojas geriausias draugas. Taip, tikrai nebijokite apsižvalgyti dalykų. Gerai. Ir perkelti į Billy. [Billy] Tiesą sakant, kol aš pradėti kai kurių dizaino dalykų, Ar kas nors turite Ben klausimus apie ką nors, kad jis kalbėjo apie? Gerai, gerai. Vėlgi, leiskite mums žinoti, jei kas nors neaišku arba, jei norite, kad mes eiti per nors šiek tiek daugiau. Aš ruošiuosi atsitraukti šiek tiek ir kalbėti apie daugiau pagrindinių dalių projektavimas. Ben paminėjo modelis vadinamas - atsiprašau, modelis valdiklis vaizdo sistema kuri yra tarsi techninio aspekto, todėl aš ruošiuosi pažvelgti nuomonėmis konkrečiau, ir aš ruošiuosi pradėti su tuo, kaip norite sukurti vaizdą, kad atrodo gražiai. Štai kokios tikrai pagrindinio šablono mūsų katinu Facebook. Manau, yra keletas šiuolaikinių UI dizainas pagrindai kad yra verta įlaipinami. Galite pastebėti, ten tarpas visame puslapyje daug, daug vietos daiktų. Nesinori turite Skvošas daiktus į puslapį. Jūs norite palikti daug erdvės atviros, ir jei jūs einate į beveik bet kurios šiuolaikinės interneto svetainėje pamatysite ten balta visur. Yra baltos vietų, kur nebūtų galima tikėtis. Turite šią spalvų paletę, o ji protinga pradžioje pasirinkti spalvų paletę, kad jūs ketinate dirbti ir tobulėti. Taip pat - tai padeda pasirinkti šriftą, ir tokiu būdu jūs tarsi dirbti su šie konkretūs pagrindai dizainas. Jūs turite savo tipą, turite savo spalvas, ir tada jūs galite rūšies tilptų visa kita, kiek reikia. Taigi, kaip sakiau, su savo spalvų schemą norite naudoti ryškesnėmis spalvomis, savo spalvų schemą taupiai. Antraštės yra gražus. Mygtukai yra malonu turėti tikrai didelis, prašmatnus spalvų. Bet apskritai, jei turite svetainę, kad yra spalvų visur, visi žiūri jums į veidą, jis tiesiog atrodo netvarkinga, ir tai nėra gerai. Norite paprastai naudoti šviesias spalvas. Pabandykite vėl pasiimti gana nuoseklią spalvų schemą. Jūs galite turėti šių mažai purslų daug spalvų - kad gali atrodyti labai gražus, bet jūs norite juos naudoti gana taupiai. Kaip jau sakiau, jūs norite, kad būtų minimalus. Mažiau yra beveik visada daugiau. Jei galite pateikti kažką, ar ne rodyti kažką, ir esate natūra tikras, ar jis turėtų būti ten pagal nutylėjimą - tikriausiai esate geriausias ne palikti jį. Jūs visada galite pridėti jį vėliau. Taip, kad viskas būtų paprasta. Bet svarbiausia, jūs norėsite apsvarstyti keletą dizainų. Nemanykite, kad, kai jūs padaryti svetainę, jūs turite jį į savo galvą, kad jūs ketinate kad tam tikru būdu svetainę, ir ji ketina atrodo kaip šis. Ji ketina turėti mėlyną antraštės viršuje ir mėlynos spalvos juosta ir tada geltona sub-header dalykas. Jūs norite padaryti keletą šablonų. Galite - jei esate gerai su Photo Shop, galite atidaryti, kad iki ir rūšiuoti sukurti interneto svetainę, kaip jūs norite, kad ji atrodo. Jei ne, galite tiesiog naudoti rašiklį ir popieriaus, bet sukrapštyti kelis dizainus. Jūs norite iš esmės turi įsteigti, kur jūs turite daug skirtingų dizainų, ir jei viena baigiasi darbo, tai puiku. Jei vienas baigiasi nesugeba, tada jūs visada turite kitą į ką kreiptis. Apskritai, nereikia jaustis kaip jūs turėtų būti apribotas kokia dizaino jūs iš pradžių nuspręsti dėl. Dizainas yra labai įvairi, o dalis šio modelio svarbą valdiklis vaizdo sistema yra ta, kad jūs galite apsikeitimo ir įvairius požiūrius norite. Galite linguoti duomenis į vieną pusę, ir tik tada nuspręsti, oi, iš tikrųjų, tai neveikia, kad gerai. Manau, kad tai rūšies pernelyg sudėtingas ar ten dalis, kad čia tikrai ne darbo, todėl aš tik ketina visiškai atsisakyti šio požiūrio ir apsikeitimo į visiškai naują. Mes vis dar galite naudoti senas modelius ir senus valdikliai. Mes galime padaryti viską dėl serverio ir kliento, kaip mes to anksčiau. Tačiau tikrasis bangos duomenų, kaip parodyta bus šiek tiek kitoks. Kiek iš tikrųjų įgyvendinti norimą dizainą, Jei turite keletą dizaino eskizas ant popieriaus arba ant Photo Shop ar kas, yra įrankių, kurie yra prieinami jums, skaičius. Pirmasis esate labai susipažinę su, kuris yra jūsų HTML, PHP, ar kas kalba jūs naudojate tik koduoti statinius puslapius savo svetainėje. Jūs daug dirbo su HTML kokios suteikia jums šias žymes kad jūs galite įdėti daiktus į ir iš esmės tai organizuoti savo turinį būdas. Pavyzdžiui, jūs turite antraštę ten, todėl jūs turės antraštės gairę, ir jis ketina turėti tam tikrą viduje jo tekstą, kuris tikriausiai bus kitoje žyma. Tada jūs turite juostą ir gal kai kurių grandžių, ir tiems, kurie ketina visiems būti atskirtumėte žymes. Taigi, iš esmės HTML jo širdyje yra dalijant į puslapio būdas, kaip jūs galų gale norite formatuoti. Taigi dar kartą, jūs matėte, kad prieš. Jūs gana patogu su ja dirbti dabar turint omenyje, kad jūs baigsite paskutinė pset tikiuosi, taip, kad neturėtų būti problema. Tada jūs turite CSS, kuri iš esmės tvarko visus dizaino statinius aspektus. Būtų tvarkyti visų spalvų, visų skirtingų elementų pozicionavimo, kur jie keliauja su vienas kito atžvilgiu, kokio jos dydžio, įvairių rūšių positionings kad jums reikės - Kitaip tariant, jūs galite turėti dalykų, nustatomos taip, kad, kai jūs slinkite žemyn jos buvimo, arba galite turėti dalykų, lyginant su kitų elementų. Visa tai stuff rūšiuoti yra CSS. Be to, galite padaryti įvairių papuošalų, jūs galite turėti teksto spalvas, teksto efektai, visa tai stuff natūra. Benas davė tikrai gerą seminarą apie šį praėjusį savaitgalį, ir todėl aš tikrai patikrinti, kad, jei jūs planuojate daryti kai išgalvotas dalykų su CSS. CSS3 yra iš tikrųjų naujausia versija CSS, ir tai gali padaryti viską, tikrai gražių dalykų rūšių. Tai galite padaryti nuolydžiai, jūs galite turėti gražus, užapvalintais kampais, galite tai padaryti visus dalykus rūšių padaryti jūsų svetainę atrodo labiau modernus ir išgalvotas. Kitas įrankis yra JavaScript ir jQuery kuris Benas kalbėjo šiek tiek apie, bet aš gausiu šiek tiek toliau į. "JavaScript", nes dirbote su juo šiek tiek, ar bent matė jį paskaitoje rūšies dinamiškai daryti stuff HTML būdas. HTML, kaip žinote, yra statinis, todėl, kai jūs turite HTML jūs negalite pakeisti. Bet Javaskriptą, tam tikrais būdais, yra būdas, kad būtų galima keisti HTML. Taigi jūs galite tai padaryti, ir tai puiku, bet Javaskriptą, tikrai yra skausmas dirbti. Tai taip ilgai ir bukas ir daryti net paprasčiausių dalykų reikalauja daug eilučių JavaScript. Taigi, JQuery yra iš esmės skirtas JavaScript biblioteka, kuri supaprastina visa tai. Ji sako, gerai, jei jūs norite turėti kvadratinį langelį ateina iš kairės ir išnyks į puslapį taip, kad jis per vidurį, "JavaScript", kad būtų atsižvelgta - Aš nežinau, šimtą eilučių daryti, ir tai būtų skausmas, ir jūs iš jo nekenčia viską apie web programavimas. JQuery jūs iš esmės turite elementas-dot-fade-in, ar kažkas panašaus. Taigi, labai, labai paprastas funkcijas, kurios leis jums padaryti visas kietas animacijos rūšių ir kad rūšies dalykas. Kitas dalykas, kad jie 2 yra tikrai gera, tai tiesiog daryti dinaminius dalykus su svetaine. Taigi, o ne tik, kad jūsų puslapio HTML - kuris rodo kai kuriuos duomenis, bet iš tikrųjų nėra nieko daryti - JavaScript ir jQuery leis jums mygtukus, jūs galite spustelėti ant, ir jūs galite vilkti elementus ir iš naujo užsisakyti ir rūšiuoti juos, ir turi naujų elementų pridėta arba pašalinta. Jūs galite pridėti-Delete, kad dalykas rūšiuoti. Taigi, JQuery daro tonų įdomių dalykų. Ir Vipul iš tikrųjų duoti apie tai seminare šiandien, manau, bent 5-val, todėl, jei galite klijuoti aplink, kad ilgai, kad būtų - 5 ar 4? Keturi. Atsiprašau. Iš tikrųjų iš karto po to, kad aš norėčiau rekomenduoti klijuoti aplink jį, jei galite. JQuery yra super, super naudinga, ir jūs galėsite daryti daug tikrai gražių dalykų su juo už beveik bet interneto plėtros projektą. Dabar aš ruošiuosi gauti į rūšies atskyrimo. Aš kalbu iš esmės apie vartotojo sąsają. Vartotojo sąsaja yra tiesiog svetainės dizainas. Tačiau yra tarsi kita sąvoka, kuri yra vartotojo patirtis. Du labai skirtingi. Sąsaja yra tikrai dalis patirtimi. Kitaip tariant, kai jūs einate į svetainę, jums pažvelgti į sąsają. Tai dalis to, kaip jūs patirtį svetainėje. Tačiau vartotojo patirtis yra daugiau nei tai. Vartotojo patirtis yra apie tai, kas susidaro įspūdis, kad vartotojas gauna iš jūsų svetainę. Taigi, akivaizdu, kad sąsaja yra to dalis. Ir tai tikrai būtina dalis, tačiau tai nėra pakankamas. Kitaip tariant, jei turite gražią sąsają, ir tai gana ir spalvingas ir visa tai, tai puiku, bet jei vartotojas eina į jūsų svetainę, mato gana išdėstymą ir tai trikdo viskas, neturi idėjos, kaip nieko daryti, tada, žinoma, jūs atlikote tikrai prasta svetainėje. Tai tarsi kur vartotojo patirtį Įgijusi Aš norėčiau pakalbėti šiek tiek apie UX dizainas - UX yra trumpas vartotojo patirtį - ir rūšis, kaip jūs galite įsitikinti, kad turite gerą vartotojo patirtį. Pirmoji yra ta, kad jūs galite sukurti tinklalapį, kuriame vartotojas gali daryti viską, kad kad vartotojas galbūt nori. Bet jei vartotojas negali suprasti, kaip daryti tuos dalykus - Kitaip tariant, jei vartotojas neturi turėti gerą idėją, kai jie išeina į savo svetainėje, "O, jei noriu atnaujinti savo profilį, tada aš spustelėkite šį mygtuką, arba jei noriu rašyti kažkieno sienos, tada aš einu į savo sienos ir spustelėkite mažai langelyje. " Jei vartotojas nežino, kad tada jums efektyviai neturite iš tikrųjų teisingai įgyvendinti šį funkcionalumą. Dalis įgyvendinti funkcionalumą yra tai, kad vartotojai iš tikrųjų galėtų jį naudoti. Ir jis gali būti varginantis - galite padaryti svetainę, ir ji gali daryti visų rūšių nuostabių dalykų, bet tada jūs turite žmonių išbandyti jį ir sako: "Ji negali padaryti. Kodėl negaliu tai vyksta? "Ir jums pasakyti atgal į juos, "Na, tai gali. Jūs tiesiog turite eiti į 7 išskleidžiamajame meniu tai neaiškus puslapis, tik yra rasti apačioje, dešiniajame kampe "ar kažką nuorodą. Akivaizdu, kad jūs nenorite, kad. Jūs norite, kad ji būtų aiški jūsų vartotojams, ką jie turėtų daryti, ir ji turėtų būti paprasta ir intuityvi jiems. Kitas dalykas, kad jūs norite pabandyti padaryti, tai, jei kas nors ketina eiti į savo svetainę ir 9 iš 10 kartų padaryti Veiksmas, ir 1 iš 10 kartų padaryti veiksmo B, jūs tikriausiai norite sutelkti savo patirtį veiksmų A. Kitaip tariant, jūs norite įsitikinti, kad tai yra labai, labai aišku, kaip daryti A. Turėtų būti priekyje ir centre - eiti į svetainę, matyti, oh, tai tiesiai ten. Kadangi B žinoma, jūs norite, kad būtų aišku, bet galite palikti šiek tiek daugiau fone. Davidas suteikia gerą pavyzdį tai paskaitos, kuris yra Bostono T sistema. Kai jūs einate į Bostono T ir norite nusipirkti bilietą, jūs turite gauti į 5 meniu prieš jūs iš tikrųjų galite nusipirkti bilietą už 2 $, 2,50 $ verte, kuri yra kiek užtrunka važiuoti metro viena kryptimi. Tai problema, nes dauguma žmonių, kurie yra jojimo metro turbūt tiesiog nori eiti į vieną vietą, pirkti bilietą, gauti iš karto. Tai neturi prasmės, kad jie turi eiti per daug skirtingų meniu ten patekti. Geriau vartotojo patirtis būtų greitai mygtukas į pirmą puslapį kad tiesiog sako "pirkti bilietą į vieną pusę", ir kad būtų įgyvendinti visi standarto numatytosios vertės ir tada, jei kas nors nori pirkti kitą bilietą, negu, jie vis dar, žinoma, turi galimybę, bet jūs optimizuotas bendro naudojimo atveju, kuris yra tikrai svarbus. Jūs galite pamatyti pavyzdžių tai "Facebook", tiesa? Jeigu jūs einate į "Facebook" ir norite rašyti statusą, tai į dešinę viršuje, kuri yra tai, ką dažnai nori daryti. Kai tik įvesite puslapį, galite tai padaryti dažniausiai tai, kas jūs norite daryti. Jei norite padaryti šiek tiek daugiau sudėtingų dalykų, pavyzdžiui, pasakyti, kad aš noriu eiti į mano draugo sienos ir po paveikslėlį ant jo - kuriuos aš noriu padaryti, dažnai, bet ne taip dažnai, kaip parašėte statusas atnaujinimus - todėl šiuo atveju aš tipo savo vardą į lauką viršuje, spustelėkite savo profilyje, ir tada, vis dar, tai pačiame viršuje yra, kai aš Dotarłeś savo profilio. Vėlgi, aš optimizuotas prioritetas labiausiai paplitusių naudojimo atvejais. Kitas svarbus dalykas yra tai, kad dažnai žmonės tarsi bando gauti apie tai sakydamas, gerai, kad aš padarė svetainę ir žmonės darosi painu, ir tai problema, tiesa? Žinoma, aš nenoriu, kad žmonės galėtų būti painiojama su mano svetainės turinį. Tačiau būdas išspręsti tai nereiškia, kad kažkas pop-up sakydamas, Ei, aš einu išmokyti jus, kaip naudotis šia svetaine. Žingsnis 1 - spustelėkite šį mygtuką. Žingsnis 2 - eikite čia. Žinoma, tai aplink jį - tai taip, kad jūs galite pasakyti žmonėms, ką daryti, bet tai tikrai nėra optimalus būdas. Jeigu aš eiti į svetainę ir staiga aš užmiega su šia pamoka, kad man sako ką daryti ir kur eiti ir visa tai, kad nėra smagu man. Tai nėra gera patirtis man. Tai koks skausmas. Noriu tiesiog pradėti daryti stuff. Žmonės ketina uždaryti dialogo lange jų d arba išeiti iš pamoka, o ne žinoti, ką daryti, o tada skųstis, nes Jūs neturite pranešė jiems, ką daryti. Būdas išspręsti šią problemą yra neduodant jokios pamoka ar kryptimis natūra - nieko panašaus. Kiek jūs galite išvengti, jūs tikrai norite, kad vartotojas ką daryti tiesiog tai, kaip svetainė yra išdėstyti pobūdžio. Kitaip tariant, jei aš einu į "Facebook" be prisijungimo, pirmas dalykas, kad matau pagrindinį puslapį - tai mažai prisijungimo langas. Taigi, duh. Turiu prisijungti Tai tiesiai ten. Kadangi, jei aš nuėjau į "Facebook" ir aš turėjo spustelėkite mažai nuorodą apačioje tai sakė "prisijungti" ir likusi puslapio dalis buvo tik keletas paveikslėlyje, arba kažką natūra, Aš tikrai nežino, ką daryti, tiesa? Norėčiau būti painiojamas. Taigi, tai gali man pasakyti, eiti ten ir spustelėkite mygtuką registruotis, arba per mygtuką žurnalas gali būti pačiame viršuje, kur aš ruošiuosi jį pamatyti. Norite visada būti rodomas vartotojui, ką daryti, ir kad turėtų būti neatskiriama paties puslapio. Kai jūs galvojate apie dizaino ir tyčiojasi skirtingus būdus išreikšdami savo svetainę, jūs tikrai norite galvoti apie tai, ką vartotojai ketinate daryti ir kaip jūs galite parodyti jiems, ką daryti. Ir paskutinis dalykas yra bandymai yra tikrai, tikrai svarbu. Smagu gauti ką nors - gausite draugas, gauti ką nors jūs nežinote netgi - kas niekada svetainę anksčiau, naudojantis svetaine. Nes dirbote svetainėje valandas, jūs buvote spoksoti į jį, ir jūs žinote, ką daryti, taigi akivaizdu, kad jūs ketinate būti išbandyti dalykų, kad jūs jau dirba, ir kad jūs žinote, darbą. Bet jei kažkas ateina kartu ir naudoja svetainę, kad niekada naudojo jį anksčiau, tai unikali patirtis, nes jūs turite ką nors, kas neturi išankstinių žinių iš svetainės ketina į jį, todėl jie ketina turėti efektyviai neįsivaizduoju, ką daryti arba kokios naudojimo atvejais yra pateikti jiems. Tai puiku. Tai unikalus, nes jie iš esmės asmuo dėl pasiūlymo dėl proto tuščias. Jie gali pasakyti, jei kažkas yra klaidinantys ar neaiškūs. Jie gali duoti jums, būtent vartotojo patirtį savo svetainės yra idėja. Jis gali būti labai sunku pasakyti, kad sau, todėl tikrai norėčiau paskatinti jus kaip kuriate savo projektus - jei jūs darote internetinius projektus - kad žmonės Naudodamiesi svetaine jau turite kokių nors funkcinių demo natūra. Dabar aš norėčiau pakalbėti šiek tiek apie tai, kaip valdyti interneto plėtros projektą. Mes dingo dėl to, kaip jūs galite padaryti techninį back-end pusės, kaip galite sukurti tikrai gerą svetainę, ir tai puiku, jei jūs dirbate sau, bet - , net jei jūs dirbate sau ir ypač jei dirbate komandoje, projekto valdymas tampa didelė problema. Jūs tarsi išgirdau apie projektų valdymą įvairių formų, nes pradinės mokyklos, kai buvo pasakyta, grupinį darbą. Jūs turite bendradarbiauti, bendrauti, visa tai. Kad visi dar čia galioja, bet yra keletas unikalių aplinkybių, kompiuterių mokslas, kad jūs norite žinoti, ir jūs norite įsitikinti, kad jūs elgtis taip pat. Aš kalbėti pirmiausia šiek tiek apie komanda, kuri jums bus in Tai labai svarbu pasirinkti tinkamą dydį komandoje, kad jis veikia, ir savo galutinį projektą, manau, jūs turite galimybę pasirinkti, tarp 1 ir 4 žmonės, jei aš teisingai. Jūs norite įsitikinti, kad jūs ne tik pasirenkant žmonių skaičių kad jūs norite dirbti su, nes jie yra jūsų draugai. Jūs norite pasirinkti komandą, kad yra geras dydžio ir kad gaus darbą. Yra kompromisą turėti kuo daugiau žmonių, negu jaunesniems žmonėms. Jei turite daugiau žmonių, žinoma, daugiau darbų gali būti padaryta nes jūs turite daug žmonių, daug kodo, daug idėjų, ir kad viskas puiku. Tačiau ji taip pat reikalauja daug daugiau valdymą ir daug daugiau bendrauti. Kitaip tariant, jei jūs turite 4 žmonės, dirbantys tam pačiam projektui ir jie visi redaguoti tą patį kodą, daugiau ar mažiau visi jie poreikio natūra žinoti kas vyksta, kad tai jums - jei norite pridėti šiek tiek naują funkciją jūs tarsi turite pasakyti žmonėms - ı'm pridedant tai, Aš keičiasi tai šiuo būdu - ypač jei jūs gaunate į tikrai giliai stuff kaip modeliai ir valdikliai, kad iš tikrųjų ketiname daryti įtaką, kaip svetainė veikia. Visa komanda turi būti susipažinę su ja, todėl jūs turite įsitikinti, kad jūs ne pasirinkti per didelį komanda, kuri ketina būti sunku padaryti, kad bendrauti. Taip pat nenorite pasirinkti nedidelį pakankamai komandą, kad jūs nesiruošia gebėti bendrauti, nes tai tik jums. Kitas dalykas, apsvarstyti, yra, kur žmonių įgūdžiai yra balansas. Tai puiku, jei jūs visi tikrai geri programuotojai. Bet jei jūs visus back-end žmones, tada jūsų svetainė nesiruošia atrodo labai gerai nes jūs turite šią puikią bazę, ir tai daro super greitai paieškos užklausas - kuris yra puikus - tačiau, kai jūs einate į jį, tai kaip 1990 svetainėje su raudona ir mėlyna visur, ir tai nėra gerai, bet. Atkreipkite dėmesį, kad Benas ir aš dirbti kaip komanda yra labai gražus, nes aš tarsi daugiau iš priekio, mes abu bendrauti viduryje pabaigoje ir Benas tikrai gera su back-end stuff, kad veikia tikrai gerai, nes mes galime sukurti bet kokios svetainės ir iš esmės skylės toje vietoje, kurie turi būti užpildyti galima užpildyti bet vienas iš mūsų, arba galbūt abu. Jūs norite įsitikinti, kad nėra jokių Jūsų komandoje skyles. Tai gerai, jei yra iš dalies sutampa tiek. Kitaip tariant, jei turite 2 žmones, kurie yra gerai su nugaros pabaigoje, kad gali būti taip pat gerai, nes jie gali padėti viena kitai problemas kad jie daro. Tai gali būti problema, jei turite tik 1 asmuo, kuris yra atsakingas už tam tikrą dalyką ir jie paleisti į problemą, todėl jūs norite turėti šiek tiek sutapimu bet svarbiausia, noriu įsitikinti, kad visas galimas skyles užpildyti. Ir paskutinis dalykas - ir tai turėtų būti akivaizdu, tačiau tai dažnai nėra. Jūs tikrai norite būti smagiai. Baigiamojo projekto CS50 vieta ir dažnai interneto svetainių kūrimas taškas apskritai yra ne tik padaryti darbą, nes jis turi daryti. Jūs tikrai norite būti smagiai, ir jūs norite būti padaryti kažką kad motyvuoja jus dirbti su juo. Jei ką darote yra skausmas atsisėsti ir dirbti, tada jums nereikia pasirinkti tinkamą projektą. Jūs norite pasirinkti kažką, kad jums įdomu, Jūs tikrai norite pamatyti rezultatą, jūs susijaudinęs, kai jūs gaunate naują idėją apie ką jūs galite padaryti - todėl yra visų tipų projektus, ten, kad aš tikiu, rasite - kiekvienas turi kažką, kad būtų tikrai intrigos juos jei jie daro žiniatinklio projektą. Aš pasakysiu dar kartą dabar. Jei jūsų projektas atrodo skausmo ir jūs nenorite dirbti su juo, pasirinkti kitą projektą. Pasirinkite ką nors, kad tikrai tave įkvepia. Ben paminėti šią iteracijos šiek tiek koncepciją, ir aš noriu eiti per jį truputį. Tai tikrai svarbu dirbti spurts kur gauti kažką funkcinę. Tai gali būti puikus, jei jūs turite šį planą svetainėje, kad ketina daryti A, B, ir C, ir galiausiai jis bus ten. Bet jūs pakimba šiame etape, kur dirbate, tai ir darbo su juo, bet nieko manimi gauti padaryti. Jūs neturite nieko pamatyti ir apčiuopiamą, funkcinė dalykas. Ką tikrai norite daryti kiek atrodo rūšies skausmas kartais dirbti kažką ir tada tarsi dangtelį jį išjungti, kad tai bent jau stabilus, veikia versija, net jei jis neturi visų funkcijų norite. O gal yra keletas funkcijų, kurios tikrai norite pridėti bet jūs tiesiog negali nes norite gauti šią svetainę į funkciniu požiūriu. Ir tokiu būdu jūs norite natūra turi visas kūrimo procesas atrodo, kad. Jūs norite pradėti kažkur funkcionalus - arba iš esmės pradėti nieko - , bet jūs norite gauti kažkur labai paprastas ir funkcionalus. Ir tada vėl padaryti šuolis rūšiuoti ir gauti kažkur funkcinis vėl. Jūs lėtai sukurti, ir jis gali eiti šiek tiek lėčiau nei būtų kitaip, bet ilgainiui, jei jūs nuolat pakimba šiame vidurį etapas, kai jūs ne iš tikrųjų turėti nieko dirba, tai gali būti tikrai didelis nusivylimas dirbti su jūsų projektu, nes jūs visada taip arti, kad gauti, kad jis dirba, ir jis niekada iš tikrųjų dirba. Jūs norite dirbti šių funkcinių spurts, ir jūs taip pat norite ką nors apmąstyti po kiekvieną iš jų. Kitaip tariant, kai esate vietoje, kurioje vietoje dabar yra darbo - jis neturi turėti viską, ko norite, bet ji kai kurių dalykų - jūs norite galvoti, gerai, tai svetainė įvykdyti tikslą, kad aš, nustatytus siekiant padaryti? Kitaip tariant, jei svetainė yra ketinate daryti X, yra tai, ką aš dirbanti X kryptimi? Ar visos funkcijos, kad aš ten norėjo? Ir be to, jis tarnauja bendram tikslui, kad aš noriu? Jei rasti, kad jūsų svetainė pradeda krypti į kitą pusę o gal ką tik natūra nėra darbo, tai gali būti laikas, kad pavaras perjungti truputį. Kitaip tariant, tai verta apsvarstyti - tai verta mesti savo idėjas, jei reikia, ir atsižvelgiant aš tikrai siekti, ką aš noriu būti. Manau, kad mano kitas klausimas. Nebijokite atsisakyti idėjas. Tiesiog todėl, kad jūs praleido daug valandų darbo funkcija ir pagaliau gavo tai veikia, bet ji tikrai nesiruošia taip gerai - kaip tai nėra, kad naudinga ar vartotojai, turintys problemų naudojant jį - kad dalykas rūšiuoti - nebijokite jį išmeskite. Jis sucks, kad jūs išleidote daug laiko su juo dirbti, bet galiausiai jūs nenorite svetainę, kuri rūšies sudėti šių vienetų, rūšiuoti darbo, bet ne tai, kad gerai tarnavo. Be to, nereikia bijoti priimti naujų idėjų. Jei kas nors ateina kartu ir sako, ei, kad svetainė atrodo tikrai gerai, bet nebūtų tai net puiku, jei ji taip pat tai padarė? Tiesiog todėl, kad kažkas, kad jūs neketino ir kažkas, kad negali savo Specifikacijos, kažkas, kad jums dar nėra nustatyta padaryti, nebijokite imtis jį ir tada dirbti su juo. Kadangi dažnai yra idėjų, kad jūs paleisti su visoje vystymosi eigoje galų gale yra tikrai cool savybės svetainėje. Sakiau anksčiau. Aš pasakysiu dar kartą. Testeriai yra super, super naudinga. Pabandykite, kad žmonės, kurie niekada matė svetainė iki prisijungti ir pamatyti, kas vyksta nes jie gali ne tik išbandyti svetainės ir vartotojo patirtį naudingumą, bet jie taip pat gali patikrinti funkcionalumą būdų, kad jūs galite ne. Jei jūs padarote šiek funkciją, kuri daro tam tikrą dalyką ir jūs žinote, jis ketina padaryti, kad tas pats teisingai kiekvieną kartą, tai puiku. Tačiau ji dažnai gali būti sunku sudaryti kampinių atvejais, kai vartotojas gali tipo kažką, kad jūs nesitikėjote - būtent todėl jums apibrėžti funkcijos sau. Taigi, kad kas nors ateis, kas neturi jokios idėjos, kaip naudotis svetaine ir tik sumušė jį, nepriklausomai nuo būdų, kaip jie gali padaryti, tai tikrai naudinga, nes jums gauti idėja iš visiškai kitos perspektyvos, ką jūsų svetainėje veikia ir ką reikia remontuoti. Paskutinis, aš norėčiau pakalbėti apie kai kuriuos bendruosius geros praktikos ir jūs mačiau tai daug CS50, tačiau jie taip pat tikrai, tikrai kreiptis į projekto nustatymus. Vienas iš jų yra komentarai. Visada komentarą kodą, ypač jei dirbate dideliame komanda. Jis gali būti taip erzina, kad tiesiog milžiniškas blokas kodo, kad kažkas parašyta o gal jis dirba, gal ne, bet jūs neturite idėjos, ką ji daro, todėl jūs neturite idėjos, ar tai naudinga, ar ne, ar jis turėtų būti ten, ar ne, ir jei dirbate kažkas tai dar įmanoma, kad jūs dirbate Tas pats, tad tiesiog labai, labai atsargūs, kad būtų dėmesingi savo bendraamžiais ir rašyti kodą, kuris yra gerai dokumentuota. Jūs neturite eiti taip toli, kaip daryti visa tai, kur patinka, jei prieaugio skaitiklis turi komentarą, kad sako, aš pridedant 1 prie šios kovos. Ji neturi būti, kad išsami, bet kokią funkciją, kad jūs kada nors raštu Jūs turite kai ką, kad funkcija tiksliai reiškia dokumentus, ką jos įėjimai, ir ką ji turėtų grąžinti. Tokiu būdu jūs galite naudoti kitų žmonių komponentus svetainėje ir jūs galite dirbti į pastato kažką didelis. Kitas svarbus dalykas yra tai norite daryti reguliariai valyti langus. Kodas gauna nepatogus. Negalima jaustis blogai, jei jūsų kodas yra tik visiškai neskaito ir milžinas netvarka. Kad interneto plėtra vyksta visada. Jūs pridėti naujų funkcijų, pašalinti senus. Daiktai bus ten, kad neturėtų būti. Tai gerai, bet jūs norite įsitikinti, spręsti su tuo nuolat. Jūs nenorite, kad tegul jis kaupiasi iki taško, kur jūs tiesiog negali rasti nieko savo kodą, ir jūs neturite idėjos, ką nors daro. Tai atvejis su HTML. Kartais jūs galų gale su objektais, kurių sudėtyje nėra nieko, ir jūs norite atsikratyti jų. CSS, galite būti nuoroda į elementus, kurie yra ne ten nebėra, todėl jūs norite atsikratyti šio kodekso. Be JavaScript, jums gali tekti pašalinti ką nors iš HTML. Taigi, jūs norite įsitikinti, kad jūs visada išvalyti, todėl dalykus gana kiek jūs galite reguliariai. Kitas tikrai naudingas dalykas, kad aš nemanau, kad yra išdėstyta labai daug CS50 bet verta patekti į yra versija kontrolės. Iš versijų kontrolės idėja yra, kai jūs iš esmės stebėti visą eigą jūs atlikote į savo svetainę, ir jei bet kuriuo metu jūs suprasite, oi, tai buvo darbo o atgal, bet ji neveikia, bet daugiau, galite grįžti į ankstesnes versijas ir pamatyti, kas pasikeitė nuo tada, ir kad dalykas rūšiuoti. Pagrindinis būdas tai padaryti yra su Git ir Git yra visa tai tipo sistema, kuri Manau Tommy MacWilliam davė seminarą apie pernai. Jeigu jūs einate į CS50 seminarus 2011, galite matyti savo seminarą, kad. Iš Git idėja yra iš esmės, kad reguliariai darote šiuos įsipareigojimus kurie yra būdų pasakyti svetainė yra tam gana stabili versija dabar taip Aš pakuočių jį ir siunčia jį toli į serverį, ir tada jūs galite eiti į tą serverį ir pažvelgti į visas ankstesnes versijas savo kodą ir pamatyti, kaip jis progresavo ir visi, kad gerų dalykų rūšiuoti. Taigi, tai iš esmės tai. Kiek interneto svetainių kūrimas, mes džiaugiamės, klijuoti aplink ir atsakyti į visus klausimai kiek mūsų pristatymą. Štai ir viskas. Ačiū. >> [Benas] Ačiū. [Plojimai] [Billy] Darbuotojai, ar kas nors turi kokių nors klausimų apie tai, kas mes, kuriems arba dalykų, kad mes ne kuriems, kad jie tikėjosi, mes norime padengti? Mielai atsakyti į juos. Anyone? [Auditorijos narys] Kokie yra privalumai ir trūkumai naudojant Ruby arba naudojant Python? [Benas] klausimas buvo, kas yra privalumus ir trūkumus naudojant Ruby ar Python vietoj kaip PHP. Privalumai yra tai, kad Ruby ir Python yra daug geresnių kalbos kaip PHP. Bent jau mano nuomone, ir manau, kad iš kitų žmonių nuomonių daug, taip pat. Jie buvo skirti daugiau daro sudėtingą medžiagą, ir mažiau Dams kartu tinklalapius tikrai greitai Šiek tiek dinaminio turinio. Trūkumus, kad yra šiek tiek - tai dar ne tiek mokymosi kreivė gauti juos steigti. Tai yra, pavyzdžiui, PHP, galite tiesiog HTML failą ir rašote mažiau nei, klaustukas, ir tada rašote tam tikrą kodą, ir tada rašyti klaustuką, didesnis nei, tada baigsite. Kitomis kalbomis, pavyzdžiui, Ruby ar Python, jūs turite eiti per šiek tiek daugiau darbo, kad gauti pradinį svetainės veikia. Yra taip pat - ne mažiau kaip ji naudojama būti atvejis - tai yra daugiau dokumentų galima PHP tik todėl, kad yra daugiau žmonių, naudojant jį. Manau, kad tai ne taip daug klausimu nebėra. Yra tikrai labai gera dokumentacija stuff like Ruby on Rails arba Django Python yra lygiaverčiai. PHP yra vienas, kad kiekvienas manimi buvo naudoti metus, ir jūs žinote, kaip tai veikia. Ruby ir Python yra šiek tiek mažiau subrendusios. [Auditorijos narys] Jei buvo pasirinkti vieną iš jų mokytis ar pasiimti, kuris jums labiau patinka? Sąžiningai, aš manau, kad priklauso nuo asmens. Aš atsiprašau. Klausimas buvo, kuri jums pasirinkti ką nors išmokti? Manau, Python gražiausių asmeniškai. Yra žmonių, kurie - aš mano pirmasis interneto dev projektas Python ir Django. Yra žmonių, kurie mėgsta Ruby on Rails, taip pat daug. Tikriausiai daugiau žmonių, kurie žino, Ruby on Rails. Sąžiningai, aš tiesiog eiti su kokia aplink tave žmonės žino todėl, kad jūs turite žmonėms užduoti klausimus. Klausimas buvo - bendromis serverių tai tipo sunku dirbti Python? Tai priklauso nuo jūsų priegloba. Yra interneto pavaduojančius skaičius, kuris bus po Python stuff. WebFaction nėra, tiesa? WebFaction yra vienas, kad Bilis ir aš naudojamas kai kuriuose projektuose. Jie tikrai puikus. Jie palaiko daugumą kalbų. Bet tai tiesa, kad PHP yra daug plačiai remiamas. Taigi, jei esate pakimba ant žiniatinklio prieglobos, kad tik daro PHP, tai gera priežastis naudoti PHP. [Auditorijos narys] Aš ką tik gavo į mokymąsi kaip į užklausą keletą duomenų bazių, ir aš žinau, kad mano SQL yra visur, bet aš neseniai gavo veikiami - ir jums nurodė jį. Jūs matote JSON ir plečiama duomenų bazes. My SQL vis dar visur. Kaip matote, vyksta? Ar ten bus auganti tendencija daugiau putų (nesigirdi)? Klausimas buvo - aš manau, kad tai bus į ne-SQL duomenų bazių tendencija. Pavyzdžiui, kaip MongoDB. Manau, kad tai tikrai tiesa. Mano patarimas buvo daugiausia čia MySQL susiję tik todėl, kad MySQL yra standartinė pramonės sektoriui. Asmeniškai, aš labai norėčiau, duomenų bazes, kurios neturi schemos kaip MongoDB jei jūs neturite, kad klausimas, oi, man reikia pridėti dar vieną stulpelį. Vargas man, kaip whatever man daryti? Tai labai sunku padaryti, kad MySQL, bet jei turite kažką panašaus Mongo tai daug gražiau. Kitas malonus dalykas, apie Mongo yra tai, kad jūsų įrašai yra tikrai "JavaScript" objektai. Nėra jokios konversijos būdu rūšiuoti, kur jums reikia imtis šių duomenų bazių eilutes ir paversti juos JavaScript objektą ir tada siųsti juos per vielos. Manau, stuff like that bus labai, labai naudinga sparčiai interneto plėtrai ateityje. [Billy] Kažkas norėčiau pridurti, kuri yra tik apskritai yra ta, kad nesinori turėtumėte išmoko visas kalbas mes aptartų iš mūsų seminare. Akivaizdu taškas yra suteikti jums tai, ką ten idėja, ir jei jūs sudomino bet ką mes minėtų galite Google juos ir skaityti apie juos. Ir kaip jau minėjau, yra keletas seminarų, kurios susijusios su būtent šių dalykų. Yra net ir daugiau seminarų, kad aš ne paminėti, kad tikriausiai patekti į ši medžiaga taip pat. Idėja yra, kad jei jūs norite dirbti su kažkuo, čia yra savo žinioje priemones. Negalima jaustis priblokšti, jei nesate tikras, ką šios priemonės daro lygiai, bet žinau, kad jie ten ir kad jūs galite plačiai pasinaudoti jų "Google". [Auditorijos narys] Kokie dalykai jums reikia padaryti, įsitikinkite, kad jūsų svetainė gerai atrodo mobiliuosiuose įrenginiuose? [Billy] Mobile yra šiek tiek sunku. Yra 2 būdai, kaip jūs galite kreiptis į jį. Pirmasis būdas yra tai, kad jūs iš tikrųjų turite mobilųjį svetainėje. Kitaip tariant, jums atlikti tam tikrus aptikimo rūšiuoti pradžioje kai naršyklė priėmimo prašymą į savo interneto svetainę, kurioje arba sako grąžinti šį vaizdą - kuris bus stalinių ar nešiojamųjų kompiuterių naršyklių vaizdas - o tai kitas vaizdas mobiliesiems prietaisams. Tai vieta, kur nuomonė yra tikrai gražus, kad jūs galite labai daug apsikeitimo du, ir turi sąsają, kuri dirba tikrai gražiai į mobiliuosius įrenginius ir turi visiškai kitokį, kad dirba gražiai ant naršyklės prietaisus. Su ta problema yra tai trunka ilgą laiką, nes tai reiškia, kad kodavimo visiškai skirtingos sąsajos. Kitas būdas, kad jūs galite padaryti, tai - šiuolaikinių telefonų aikštelė bus rodomi svetainėse ir pabandyti padaryti juos kaip naršyklė būtų, ir jie padarys viską. Galite rūšies bandyti likti šviesą į jQuery JavaScript sumą jūs naudojate kuri linkusi būti ten, kur viskas gali suklysti truputį. Tai tarsi taip, kad jūs turėtumėte naudoti, jei jūs neturite, kad daug laiko. Jei turite laiko dirbti mobiliajame sąsaja, tai akivaizdžiai jūsų geriausias variantas. Manau apskritai CS50 projektams, jūs ketinate norite pasirinkti vieną arba kitą. Kitaip tariant, jūs norite, kad mobiliojo app arba norite padaryti darbastalio svetainę. Ir tai tarsi nustato, kur jums eiti su tuo. Bet jei norite išplėsti jį vėliau, tikriausiai yra jūsų Geriausia yra padaryti kitą sąsają su kitais. Turiu šiek tiek patirties kuriant WordPress pagrįstas svetainėse. Aš surengė asmeninę svetainę į WordPress tam tikrą laiką. Tie sistemų rūšių gali būti gražus kaip labai pagrindinių dalykų. Dažnai jūs tiesiog paleisti į adaptuoti klausimais daug nors. Jūs norite turėti kažką ieškoti tam tikru būdu arba būti tam tikru būdu ir jūs tiesiog negali, nes tai laidinę į sistemą, kad tai, kaip jūs turite padaryti dalykų, kurie gali būti tiek problemų. Nuo tada aš tipo buvo labiau linkę dirbti su svetaines iš žemės. Dalykų, pavyzdžiui, blogas bazių ir kad dalykas rūšiuoti, tai tikrai nereiškia, kad sunku sukurti sistemą. Jei jūs tikrai ištemptas metu, galite žinoma naudoti kažką panašaus WordPress arba kad dalykas rūšiuoti dienoraštį. Šie rūšių dalykų, kad dienoraščiai saugoti ir padaryti yra tikrai sunku pakankamai, kad jei jūs naudojate į bet kurią iš šių rūšių dalykų, jūs tikriausiai geriausia tiesiog padaryti in-house versiją. Manau, kad apie tai, todėl dėka vėl ateina. Mes tikrai patiko kalbėtis su jumis, vaikinai, ir tikiuosi, kad jūs išmoko kai kurių dalykų. [Benas] Mes džiaugiamės galėdami kalbėti - mes turime eiti, bet mes džiaugiamės galėdami kalbėti daugiau už jei turiu kitą klausimą. Dar kartą ačiū. [Plojimai] [CS50.TV]