[Powered by Google Translate] [Seminar] [Web Development: Mill Idea għall-implimentazzjoni] [Ben Kuhn] [Billy Janitsch] [Harvard University] [Dan huwa CS50] [CS50.TV] [Billy] Hi, jien Billy u dan huwa Ben. >> [Ben] Hi. Aħna ser tkun jitkellem dwar web iżvilupp illum. [Webdev] [Billy Janitsch u Ben Kuhn] A ftit dwar us ewwel. Ben huwa tip tal-back-end Guy. Huwa jagħmel affarijiet xogħol. U mbagħad I jmorru fi u jagħmluhom pretty. Jien aktar involut b'aktar front-end tip tad-disinn tqassim ta 'għalf, u Ben, min-naħa l-oħra, jaf dak li qed jagħmel hekk hu jaħdem fuq Jittieħed back-end. Flimkien ħadna ftit affarijiet. Per eżempju, is-sena ħdimna fuq Gimblium li hija żvilupp logħba studio online. Dan kien proġett finali tagħna għall-klassi, u minn dakinhar aħna ħadna Harvard Klassi li huwa qafas online għall browsing u korsijiet shopping fil-Harvard. Aħna ser tibda bil din l-idea għall-websajt tagħna. Aħna qed tmur biex tagħmel Facebook, iżda għall-qtates. Qabel ma attwalment tagħmel din il-websajt, ma jagħmlu din il-websajt għaliex mhuwiex tajjeb, imma aħna ser jużawha bħala qafas u jgħaddu mill-proċess ta 'kif nieħdu din l-idea u jibdluh website reali nistgħu nużaw. Aħna ser tibda billi tkisser il-website isfel. Bħal inti kont qed tagħmel fil CS50, inti tixtieq li jaħsbu dwar liema huma l-komponenti attwali li jmorru fis dan is-sit. Bażikament ddawwar minn idea li huwa biss tip ta 'kunċett astratt fis reali, ħaġa tanġibbli li inti tista 'tagħmel. Nibdew billi tistaqsi xi mistoqsijiet. X'inhu dan is-sit? Għaliex aħna jagħmlu dan? Liema huwa se jintużaw għall? Li tip ta 'ħaġa. Fil-każ ta 'Facebook Cat, aħna bażikament tixtieq website li tikri qtates netwerk soċjali ma 'xulxin. L-idea tkun li dawn jistgħu post fuq ħitan ta 'xulxin, huma jistgħu jagħmlu kummenti, li tip ta 'ħaġa. U li fejn aħna niġu fil-komponenti funzjonali. Issa għandna dan it-tip ta 'qafas tal - għandna profili utent, għandna kummenti, u aħna jistgħu post. Forsi someday aħna ser influwent jħobb u li tip ta 'ħaġa. U aħna tip ta 'tixtieq li jipprijoritizzaw dawn il-karatteristiċi li jmorru pulzieri Irridu ngħidu simili, okay, huwa verament importanti li kulħadd ikollu profil u li kulħadd jista 'post fuq ħitan ta' xulxin. Sekondarja għal dik kummenti ikun sbieħ. Forsi aktar tard aħna ser influwent jħobb. Allura, inti tixtieq li jkollok idea ta 'x'hemm fundamentali għall-proġett tiegħek u x'hemm tip ta 'karatteristika aktar ġenerali li jistgħu jiġu applikati aktar tard. Inti tixtieq li tip ta jkollhom lista speċifiku fil-moħħ, iżda l-proġett li inti tibda bil mhix se tkun l-proġett li inti finitura magħhom. Fi kliem ieħor, l-affarijiet se jibdlu waqt li int qed jiżviluppaw is-sit, u inti tixtieq li jħalli spazju għal dan. I ser imissu fuq li Ben li għaddej biex jitkellmu ftit dwar struttura. [Ben] jien ser jitkellem dwar il-ġenb aktar tekniku ta 'żvilupp tal-web. Ejja biss jmorru fuq xi punti bażiċi ewwel. Meta int tagħmel app web, id-diviżjoni prinċipali li int ser jkollhom huwa li jkollhom int se jkollhom xi għalf għaddejjin fil-naħa tal-klijent - jiġifieri, il-kodiċi li int browser jieħu mis-sit u l-JavaScript, HTML, CSS Jittieħed. Li kollox fuq in-naħa tal-klijent. Int ser ikollhom kodiċi oħra li timxi fuq in-naħa server li żżomm kont ta 'l-informazzjoni kollha li n-nies jibagħtu lilek, jiddeċiedi li jagħti dak, għalf bħal dik. Dan huwa biss ftit terminoloġija sabiex inti guys huma kollha familjari ma 'dak li aħna qed jitkellem dwar. Lil hinn minn dik id-diviżjoni huwa tajjeb biex jaħsbu ta 'app web tiegħek f'termini ta' koppja ta 'komponenti distinti. Meta int tagħmel web iżvilupp waħda mill-affarijiet li inti għandek dejjem tkun qed tipprova tagħmel huwa li titnaqqas il-kumplessità. L-aktar kumplessi kodiċi tiegħek hi l-aktar ċans hemm biex jagħmlu bugs, l-aktar diffiċli hija li bidla aktar tard. Għalhekk, jekk inti tista ikissru app tiegħek fis xi żoni funzjonali distinti li se - u inti tista 'tnaqqas l-tip ta' ammont ta 'komunikazzjoni trans-żona - li ser jgħinek ħafna fit-tul f'termini ta 'tnaqqis bugs. Biex ikunu konkret, normalment in-nies jaqsam kull app web fis - dawn huma tip ta 'kliem buzz issa, iżda dawn għadhom qed utli. Inti tista smajt nies jitkellmu dwar mudelli, fehmiet, u kontrolluri. Mudelli huma id-data attwali li app tiegħek se jittrattaw. Per eżempju, fil Cat tiegħek Facebook, mudelli tiegħek tkun - youd jkollhom mudell għal postijiet simili, u mudell għal profili utent, għalf bħal dik. Fehmiet tiegħek huma kif inti tippreżenta li d-data għall-utenti tiegħek. Inti jista 'jkollok 1 ħsieb għal tħares lejn post wieħed u l-kummenti u opinjoni differenti għall-ħajt tiegħek li għandu lista ta 'l-karigi li huma diretti lilek, u fehma differenti għall-għalf aħbarijiet tiegħek - għalf bħal dik. Finalment, inti għandek l-kontrolluri li huma bażikament meta n-nies inti tibgħat postijiet u inti tagħmel l-aġġornamenti għas-sistema tiegħek back-end, inti inkrement mazz ta 'counters, u tkun xi tkun. Dawk huma kontrolluri tiegħek. Jien ser tkun jitkellem aktar dwar mudelli. Views huma teknikament mhux li diffiċli u l-kwistjoni hija aktar bl tfassil magħhom Kontrolluri ser ikunu speċifiċi għal dak kollu li int tfassil. Iżda hemm xi tekniki pretty ġenerali tista 'tuża biex il-mudelli tiegħek nicer u aktar faċli li taħdem ma 'li naħseb huma utli ħafna. Dan huwa l-aktar se tkun dwar kif jittrattaw ma 'data tiegħek apps web b'mod sabiħ. Il-kwistjonijiet ewlenin b'mudelli huma li jgħixu fuq il-klijent u l-server u inti għandek figura out a) kif tikseb minnhom - dawk kollha rilevanti - mill-server lill-klijent, u b) kif jinżammu fil sync. Utenti tiegħek ser tixtieq tagħmel xi aġġornamenti. Huma qed tmur jridu jagħmlu postijiet ġodda. Huma qed tmur jridu simili affarijiet u l-għalf jekk għandek jħobb. Dawn huma l-isfidi tekniċi ewlenin li jittrattaw ma 'mudelli. L-ewwel ħaġa li int ser tixtieq li tistaqsi lilek innifsek huwa liema tip ta 'data tmur f'dan il-mudell u liema tip ta' mistoqsijiet aħna se trid tagħmel - jiġifieri, kif aħna ser tħares lejn il-mudelli? Per eżempju Cat tiegħek Facebook, post tiegħek huwa se jkollu awtur assoċjat miegħu, xi test post-ħajt, u r-riċevitur tal-post ħajt. U allura inti tista 'tixtieq li mistoqsija li mazz ta' modi differenti. Inti tixtieq li tħares lejn din minn li kiteb li post, billi li rċevew li post, forsi sad-data kienu stazzjonati. Imma jekk int ser tagħmel dan skond id-data, imbagħad inti għandek żid qasam ieħor biex post tiegħek ta 'meta kienet effettivament stazzjonati. Dawn il-fatturi 2 - liema data li trid tuża u kif inti tixtieq li tarah - għandek taħseb dwarhom ewwel għax jiddependu fuq xulxin, u li għaddej biex tkun aktar diffiċli li jiġu miżduda ma aktar tard. Hemm xi konsiderazzjonijiet oħra. Meta inti qed jaħsbu dwar kif inti jittrattaw ma 'mudelli fuq is-server dak li trid tħares lejn huwa - inti bażikament tixtieq li tagħmel l-server sempliċi kemm jista 'jkun. Nagħmlu Jittieħed fuq in-naħa klijent huwa ġeneralment ħafna aktar malajr jekk inti tista 'tagħmel dan biss fuq il-klijent mingħajr ma jsir kwalunkwe tip ta 'talba network. L-idea hija li tagħmel kif ħafna mill-mistoqsijiet kif inti tista 'fuq il-klijent. L-unika problema li hija li jekk inti titlob kollha tad-data tiegħek fil-bidu allura li għaddej biex tieħu żmien twil biex tagħbija. Għalhekk, l-idea hija li jinstab mezz kuntenti bejn li data biżżejjed dwar l-klijent li inti tista 'tagħmel ħafna ta' xogħol tiegħek hemm iżda mhux biss fetching kollox f'daqqa hekk li tikseb ħinijiet verament bil-mod fil-bidu. Per eżempju, għal data qattus tiegħek inti probabilment tixtieq li jġibu mazz ta 'postijiet tal-ħajt riċenti. Inti ma tkunx tixtieq li jġibu kull wieħed minnhom minħabba li tista 'tmur lura ftit ta' snin. Imma inti ma tridx li jġibu magħhom wieħed fi żmien minħabba li tintroduċi ħafna overhead network. Huwa spiss pjuttost diffiċli - ladarba inti għandek database running - huwa spiss pjuttost diffiċli għall-bidla liema data għandek fiha - jiġifieri, żid kolonna database ġdida jew xi ħaġa - hekk strateġija waħda tajba huwa attwalment biss biex iżommu ħafna ta 'data tiegħek fi blob test - blob JSON - JSON jkunu JavaScript Notazzjoni Għan - Ir-raġuni li utli huwa għaliex imbagħad inti tista 'żżid proprjetajiet ġodda kollha ta 'dawn blobs JSON mingħajr ma jinbidlu database tiegħek. L-uniku tnaqqis għal din hija li jekk inti għandek mazz ta 'oqsma li inti miżjud aktar tard - bħal moħbija f'dak blob JSON - allura huwa aktar diffiċli għall-mistoqsija minnhom ġewwa d-database. Per eżempju, jekk inti aktar tard - jekk kellek mudell post tiegħek li aħna diskussa aktar kmieni biss l-awtur, ir-reċipjent u t-test - inti tista 'wkoll ikollha blob JSON u mbagħad jekk inti aktar tard ried iżid qasam data inti ma jkollhomx għall-bidla database tiegħek. Inti tista 'biss żid dati kollha tal-oqsma test. U allura inti tkun kapaċi li tħares lejn dawk fuq in-naħa tal-klijent, imma inti ma tkunx kapaċi li jsaqsu minnhom fuq in-naħa server għaliex dan huwa moħbija ġewwa dak it-test. Il-kwistjoni oħra li inti tixtieq li jaħsbu dwar huwa kif klijent tiegħek u server tiegħek ser jikkomunikaw. Inti normalment trid iżomm dan sempliċi kemm jista 'jkun. Tista 'biss jkollhom bħal-me-dan get talba data, a-joħolqu-ġdid oġġett ħaġa, u talba aġġornament ta 'qodma-oġġett. U dawn se jkunu kollha URLs differenti fuq server li inti - li l-browser se - tista 'tuża t-talbiet Ajax għall kollha ta' dawn u jew jirċievu jew data post. Għal darb'oħra, għall Cat eżempju Facebook tagħna, inti jista 'jkollhom li URL tikseb post individwali, u youd jkollhom URL għall-ħolqien ta 'post ħajt ġdid u forsi URL għall-uploading stampa profil tiegħek, għalf bħal dik. Iżda għal darb'oħra, li l-pre-jġibu aktar ta 'data tiegħek sabiex inti ma għandhomx iżommu jagħmlu talbiet min-netwerk. Għal dik ir-raġuni, inti ma tista 'tixtieq li jkollhom dik it-talba nikseb individwali għal pożizzjoni waħda, u minflok inti biss irrid 1 talba get għall-ħajt kollu. U mbagħad jekk inti qed tipprova ssib bilanċ għaliex - dan huwa wkoll ser jiddependu fuq l-applikazzjoni tiegħek. Għaliex jekk inti qed jistennew li n-nies għandhom biss 10 jew 20 postijiet tal-ħajt li se tkun multa. Imma jekk inti qed jistennew dawn ser ikollhom eluf allura dik it-talba se jieħdu wisq żmien, u għalhekk inti tista 'tixtieq iżżid nikseb-postijiet kollha' sa mill-parametru. Għall kollha ta 'dawn int probabilment tmur jridu sinkronizzazzjoni tas-data tiegħek fl JSON - JavaScript Notazzjoni Għan. Pretty ħafna kull lingwa jittratta JSON tajjeb ħafna. JQuery għandha din il-funzjoni getJSON sbieħ li se tagħmel dak kollu tal-ħidma iebsa għalik. U fuq PHP hemm ukoll funzjonijiet ta 'komunikazzjoni JSON sbieħ ħafna. Allura, li probabbilment l-aħjar format biex jintbagħtu mudelli tiegħek quddiem u lura. Bħala eżempju ta 'dak konna tkellimna dwar s'issa, Hawn eżempju fluss għal Cat Facebook applikazzjoni tiegħek. Huwa jibda off mal-browser tiegħek li titlob l-URL website bażi. Il-server probabbilment jibgħat fuq HTML statiku u xi JavaScript u CSS. Huwa ġeneralment aħjar li ma tagħmel xi tirrendi fuq is-server. Inti probabilment ma jridux - dak il-server ma tagħmel hemm se jistabbilixxi l-lista ta 'postijiet tal-ħajt u jiġġeneraw xi HTML għal kull wieħed u jibgħat dak fuq. Huwa ġeneralment aħjar biex tagħmel dan fuq il-naħa tal-klijent għax inkella kull darba li inti tixtieq li terġa 'tiġbed xi ħaġa, inti għandek tagħmel talba server. U li malajr ħafna jagħtik ħafna ta 'overhead. Huwa ġeneralment aħjar biss biex bastiment jibgħat isfel statiku HTML u mbagħad JavaScript u CSS li se jagħmlu l-għoti fuq il-naħa tal-klijent. Hekk kif li Jittieħed tidħol fi, allura inti jista 'jkollhom - fir JavaScript - inti tista' tagħmel talbiet għad-data tal-ħajt u għalf bħal dik, u wara li s-server huwa bażikament biss tagħmel mistoqsijiet database u l-verifika permessi. L-unika ħaġa importanti hija li hi ma tistax tibgħat fuq xi postijiet oħra tal-ħajt utenti li int mhux permess biex tara. Hija tista 'bażikament tkun saff aċċess irqiq ħafna li database tiegħek, u mbagħad kollha tal-li juru l-data - kollha tal-fehmiet u l-għalf - dawk jista 'jiġri fil-browser tiegħek, u mbagħad meta inti tixtieq li tagħmel post jew xi ħaġa inti biss tibgħat talba oħra. Hemm ukoll xi Jittieħed fancy inti tista 'tagħmel fuq quċċata ta' dan. F'termini ta 'informazzjoni teknika aktar speċifika, iżvilupp fil-pjanura JavaScript tista 'tkun ftit uġigħ, hekk hemm xi libreriji u għodod li se jgħinek ħafna ma 'dak. Naħseb li inti stajt kollha probabbilment jinstemgħu dwar jQuery li tagħmel tagħmel tirrendi HTML u manipulazzjoni ħafna aktar faċli - jkollhom lottijiet ta 'funzjonijiet fancy għall fading u' l barra, u tagħmel animazzjonijiet zippy. Hemm ukoll din il-librerija imsejħa Underscore.js. Hija għandha ħafna ta 'funzjonijiet ta' utilità utli, Jittieħed li inti tistenna JavaScript li jkollhom li verament doesn't - affarijiet bħal jsir ċaqliq firxa, tneħħi duplikati minn lista, jew iċċattjar lista ta 'listi. Dan huwa biss kampjun kodiċi żgħir. Jtennu għandha ton ta 'dawn il-funzjonijiet sbieħ li tixtieq inti jkollok il-ħin kollu. U allura hemm 1 Librerija aktar li nixtieq li jonfqu ftit ta 'żmien fuq imsejħa Backbone.js minħabba Sinsla verament tgħinek jittrattaw mudelli fis-naħa tal-klijent u ħafna ta 'l-konfużjoni li tista' tikkawża. Sinsla jagħtik dan il-kunċett ta 'mudelli u kollezzjonijiet fl JavaScript li huma bażikament eżattament bħal JavaScript oġġetti fil arrays JavaScript iżda dawn għandhom l-avvenimenti meta inti jibdlu l-karatteristiċi tagħhom. Eżatt bħal fil-JavaScript, inti jista 'jkollhom avveniment meta buttuna gets għafast jew xi ħaġa dawn il-mudelli ta 'qofol u kollezzjonijiet xewka se jixxandru affarijiet simili li meta dawn jinbidlu. Dan ifisser li inti tista 'biss tikteb xi ħaġa bħal din snippet tal-kodiċi hawn - dan jgħid, kull meta inti żżid xejn mal-firxa postijiet inti tiġbed il-ħajt kollu. U dan ngħid kull meta numru ta 'post ta' jħobb bidliet, inti jinnotifika lill-utent li xi ħadd gustado post tagħhom. Jew kull meta kwalunkwe proprjetà ta 'post bidliet int tiġbed l-post. Għalf bħal dik se jiffrankaw tunnellata ta 'kumplessità għax inkella jekk inti ma għandekx xi qafas bħal dan mbagħad kull darba fil-kodiċi tiegħek li inti bidla xejn dwar post, youd għandek tiftakar lilek innifsek li jsejħu l-jirrendu funzjonijiet u għalf bħal dik, u jekk inti ried iżid xi ħaġa ġdida li ġara kull darba li inti modifikati post youd jkollhom jgħaddu kull post fid tiegħek kodiċi li inti modifikati post u jżidu li ħaġa ġdida. Qafas bħal dan se tneħħi ħafna ta 'dik il-komunikazzjoni bejn-saff li jagħmel kodiċi tiegħek kumplessi u diffiċli li jżommu. Hemm ftit dwar fehmiet wkoll. Jien ser tħalli aktar ta 'dan Billy għaliex qed teknikament diffiċli ħafna. Uża jQuery għall-fehmiet tiegħek. Huwa prattikament bħal neċessità f'dan il-punt. Hija biss jagħmel kollox daqstant faċli. Hemm ħafna ta 'libreriji. Jekk inti ikkomplikaw elementi user-interface, jekk inti tixtieq ħaġa auto-sħiħ jew tixtieq wieħed minn dawk multi-seletturi fancy - jekk inti tixtieq xi ħaġa bħal dik, inti għandek probabbilment biss tfittxija madwar u tista 'ssib librerija tajba li se tagħmel dak li trid. Billy se jispjega aktar dwar il-partijiet attwalment diffiċli ta 'fehmiet. Ukoll, bħala nota tal-ġenb, Sinsla għandu xi funzjonalità għal teħid fehmiet jikkomunikaw nicely ma 'mudelli - ħarsa lejn il-dokumentazzjoni għall kollha ta' dawn libreriji, attwalment. Biss ħarsa lejn il-docs. Huma qed ferm bil-miktub u faċli biex isegwu. B'mod ġenerali, inti tista pretty ħafna biss Google jekk għandek problemi. Hemm ħafna nies li jużawhom. Naħseb li dan huwa kif nota finali. Hemm ukoll xi affarijiet aktar avvanzati li inti tista 'tagħmel jekk qed tfittex li tagħmel app web tiegħek extra biża. Tista 'tagħmel - l-ispeċifikazzjoni HTML5 ġdid għandu ħafna affarijiet fancy li tista' tagħmel. Ħżin lokali - li huwa inti jista 'jaħżen data fil-browser - aktar milli jkollhom imorru lura u jaqraw b'attenzjoni l-server għal kollox, inti tista 'żżomm xi wħud fuq il-klijent u li anke jippermetti lin-nies - f'xi każijiet tista 'anki let inti tuża l-offline webpage. Hemm dan ħaġa imsejħa websockets li huma tip differenti ta 'komunikazzjoni tan-network fejn minflok sempliċiment tagħmel talba waħda, ikollok rispons u inti qed isir, inti żżomm tiftaħ konnessjoni mal-server u għalhekk inti tista 'tagħmel affarijiet simili aġġornamenti fil-ħin reali. Għalhekk, jekk inti kienu qegħdin jippruvaw jagħmlu chat app, inti tista 'tuża websockets biex jikkomunikaw u lura sabiex inti ma għandhomx iżommu rikjedenti, "Oh, server, ma xi ħadd tibgħatli chat?" kull 10 sekonda jew xi ħaġa. Hemm ukoll fattur HTML5 interessanti fejn inti tista 'tagħmel dehra l-URL tal-paġna qed tinbidel mingħajr qatt ma attwalment rikarigu dan. Tista 'tuża lura u jgħaddi buttuni mingħajr ma jsir mazz ta' talbiet min-netwerk. Għalf bħal dik hija verament utli fir-rigward ta 'li jagħmilha malajr iżda wkoll jaħdmu bħal app web suppost. Hemm ukoll dan ħaġa imsejħa CoffeeScript. CoffeeScript hija lingwa differenti, fil-fatt, li jikkompila sa JavaScript. Inti se jikteb kodiċi kollha tiegħek fil CoffeeScript, u ​​mbagħad inti tmexxi dan kompilatur, u spits out fajl JavaScript li inti tista 'tinkludi fil-webpage tiegħek. Ir-raġuni li CoffeeScript huwa sbieħ huwa minħabba li gets rid ta 'lott tal- każijiet stramb li JavaScript għandha fejn ugwali ugwali, u ugwali ugwali jagħmlu affarijiet differenti, jew simili - hija għandha sintassi nicer biex jittrattaw arrays u funzjonijiet. Dan huwa snippet ftit ta CoffeeScript li jipproduċi lista ta 'l-kwadri minn 10 ^ 2-1 ^ 2 sabiex reverse. Kif tistgħu taraw, CoffeeScript spiss ihallik jesprimu fil-linja 1 dak li jieħu 5 linji ta 'JavaScript. Hija tista 'tagħmel ħafna affarijiet eħfef. Huwa xi ftit ta 'sintassi ġdida biex jitgħallmu fl-ewwel, iżda definittivament se tagħmel inti aktar produttivi fit-tul. Tista 'wkoll tuża lingwi oħra fuq is-server minn PHP - lingwi bħal Ruby, Python, jew hemm anke proġett imsejjaħ node.js li ser tavżak tuża JavaScript fuq is-server. Personally, I really, really hate PHP. I biss ma gost naħdem magħha. Jekk inti, wisq, naħseb li din hija cluge orribbli ta 'lingwa, allura inti tista 'tuża wieħed minn dawn minflok. B'mod ġenerali, jekk inti tixtieq li tagħmel xi ħaġa u inti ma verament jafu kif inti tagħmel dan, biss tfittex l-Internet. Hemm tunnellata u tunnellati ta 'riżorsi speċjalment fuq - StackOverflow hija waħda kbira. Huwa din il-websajt fejn programmaturi jistaqsu kull kwistjonijiet oħra. Inti jista 'jkollok run fis dan jekk inti kienu trouble wara fuq settijiet problema CS50. U hemm tunnellata ta 'libreriji biex tagħmel xi ħaġa pjuttost ħafna inti tixtieq. Jekk inti tixtieq li tagħmel xi ħaġa u ma tafx kif jagħmlu dan, ma jassumu li huwa impossibbli. Just ħarsa madwar u inti tista 'ssib xi riżorsi tajbin. Bħala ġenerali nagħlaq, l-takeaways ewlenin huma żżomm affarijiet sempliċi. L-aktar kumplessi kodiċi tiegħek huwa fil-bidu u l-aktar inti tipprova tagħmel Jittieħed fancy, l-itwal li ser jieħu biex tikseb xi ħaġa fil-fatt funzjonali u aktar ikun diffiċli li se jkun li tinbidel l-aktar tard. Allura, tagħmel l-affarijiet mutu, mod faċli ewwel. Biex imorru flimkien ma 'dan, ma jkun jibża 'tarmi kodiċi antiki jew tindif it up a lott. B'mod ġenerali, ladarba inti fil-fatt ikollhom xogħol xi ħaġa, huwa ħafna aktar faċli biex jaħsbu dwar minn meta int xorta fil-istadji tal-bidu ta 'kif nista' tpoġġi dan kollu flimkien. Huwa aħjar li jagħmlu l-disinn dumbest possibbli li xogħlijiet u mbagħad tittejjeb iteratively milli tipprova tikseb kollox dritt l-ewwel darba. F'termini ta 'diviżjoni client-server, ipprova u jżommu server tiegħek sempliċi ħafna - biss database u xi awtentikazzjoni u ma tagħmel xi xogħol iebes hemmhekk. Do kollha ta 'għalf kkumplikata tiegħek fuq il-naħa tal-klijent fil-browser fl JavaScript kemm tista '. Ħares madwarek għal-libreriji li jagħmlu l-ħajja tiegħek aħjar. Dejjem aħjar li tuża kodiċi li xi ħadd ieħor kiteb jekk inti - u mhux li tikteb it yourself. Hemm ħafna ta 'għalf fuq l-Internet. Google hija aqwa ħabib tiegħek. Google hija aqwa ħabib tal-programmer. Yeah, żgur ma jibżgħux ħarsa madwar għall-għalf. Kull dritt. U aktar lil Billy. [Billy] Fil-fatt, qabel ma nibda ma xi għalf disinn, ħadd ma jkollu xi mistoqsijiet għall Ben dwar xi ħaġa li hu tkellem dwar? Okay, tajba. Għal darb'oħra, let us know jekk xejn mhux ċar jew jekk inti tixtieq magħna li jmorru fuq xi ħaġa daqsxejn aktar. Jien ser pass lura ftit u jitkellmu dwar il-partijiet aktar fundamentali ta 'disinn. Ben semma l-mudell imsejjaħ - sorry, il-mudell tas-sistema ħsieb kontrollur li huwa tip ta 'l-aspett tekniku, hekk jien ser tħares lejn fehmiet speċifiku, u jien ser tibda mal-mod kif youd disinn ħsieb li jistenna sbieħ. Hawn tip ta 'mudell verament bażiku għal Cat tagħna Facebook. Naħseb li hemm xi elementi fundamentali fid-disinn UI modern li jkunu jiswew picking up. Tista 'tinnota hemm ħafna spazju abjad madwar il-paġna, ħafna spazju għal affarijiet. M'għandekx tħoss bħal għandek squash affarijiet fil-paġna. Inti tixtieq li jħallu lottijiet ta 'kamra miftuħ, u jekk inti tmur għal kważi kull website modern tkun taf tara hemm abjad kullimkien. Hemm abjad fil-postijiet inti ma tistenna. Għandek dan paletta kulur, u huwa għaqli fil-bidu jagħżlu paletta kulur li int ser taħdem ma 'u jiżviluppaw. Inti ukoll - dan jgħin biex jagħżlu tipa, u li mod inti qed tip ta 'ħidma ma' dawn fundamentali konkreti ta 'disinn. Inti għandek tip tiegħek, inti għandek kuluri tiegħek, u allura inti tista 'tip ta' tajbin kollox fil kif meħtieġ. Allura, kif għidt, ma iskema color tiegħek inti tixtieq li tuża l-kuluri aktar kuraġġuża ta 'skema ta' kulur tiegħek kemxejn. Headers huma sbieħ. Buttuni huma sbieħ li jkollhom verament kbar, kuluri flashy. Iżda b'mod ġenerali, jekk għandek websajt li għandha kuluri kullimkien, kull tluq inti fil-wiċċ, hija biss jistenna cluttered, u huwa no tajba. Inti tixtieq li ġeneralment jużaw kuluri tad-dawl. Ipprova, għal darb'oħra, pick kulur iskema pretty koerenti. Inti jista 'jkollhom dawn titjir ftit ta' lottijiet ta 'kulur - li tista 'tfittex pretty sbieħ, iżda inti tixtieq li jużawhom pretty kemxejn. As I said, inti tixtieq li jkun minimu. Anqas hija kważi dejjem aktar. Jekk inti tista display xi ħaġa jew le juru xi ħaġa, u int tip ta 'dubju jekk għandux ikun hemm awtomatikament - probabbilment int aħjar off jħallu out. Inti tista 'dejjem żid fil aktar tard. Yeah, żżomm affarijiet sempliċi. Iżda aktar importanti, inti tixtieq li jikkunsidraw disinji multipli. Ma naħsibx li meta inti tagħmel is-sit, ikollok fir-ras li int ser tagħmel is-sit b'ċertu mod, u li għaddej biex tħares eżattament bħal dan. Huwa ser ikollhom l-header blu fil-quċċata u l-bar tal-ġenb blu u allura l-ħaġa isfar sub-header. Inti tixtieq tagħmel templates multipli. Inti tista 'jew - jekk int tajba mal Photo Shop, inti tista' tiftaħ li sa u tip ta ' disinn ta 'website kif inti tixtieq li tfittex. Jekk le, inti tista 'biss tuża pinna u l-karta, iżda scratch up disinji multipli. Inti tixtieq li bażikament jkollhom jistabbilixxu meta għandek lottijiet ta 'disinji differenti, u jekk wieħed jispiċċa tax-xogħol, allura li l-kbir. Jekk wieħed jispiċċa fin-nuqqas, allura inti dejjem ikollhom wieħed ieħor li jduru. B'mod ġenerali, ma jħossu bħal inti għandek tkun kostretta għal dak kollu disinn li inizjalment tiddeċiedi fuq. Disinni huma varjabbli ħafna, u parti mill-importanza tal-mudell sistema ħsieb kontrollur hija li inti tista 'tpartit u' l barra fehmiet differenti trid. Tista 'tbandil-data mod wieħed, u mbagħad jiddeċiedi, oh, fil-fatt, li ma taħdimx li tajjeb. Naħseb li huwa tip ta 'wisq ikkumplikati jew hemm parti hawn li mhux tassew jaħdmu, hekk jien biss se jabbandunaw totalment din il-fehma u tpartit waħda totalment ġdida. Aħna xorta jistgħu jużaw il-mudelli l-qodma u l-kontrolluri qodma. Nistgħu nagħmlu kollox fuq il-server u l-klijent kif aħna kieku qabel. Iżda l-mewġa attwali tad-dejta kif murija se tkun kemmxejn differenti. Safejn fil-fatt jimplimentaw il-disinn trid, ladarba inti għandek ftit disinji fasslet fuq karta jew fuq Photo Shop jew kwalunkwe, hemm numru ta 'għodod li huma disponibbli lilek. L-ewwel int familjari ħafna ma 'li huwa HTML tiegħek, PHP, jew kwalunkwe lingwa li inti qed tuża biss għall-kodiċi l-paġni statika fuq website tiegħek. You ħadthom ħadem ħafna ma HTML liema tip ta 'tagħtik dawn it-tags li inti tista 'tpoġġi l-affarijiet fi, u bażikament huwa mod ta' organizzazzjoni tal-kontenut tiegħek. Per eżempju, inti għandek l-header up hemm, hekk int se jkollhom tikketta header, u li għaddej biex ikollhom xi test ġewwa ta 'dan li huwa probabbilment se tkun tag ieħor. Imbagħad inti għandek sidebar forsi ma 'xi links differenti, u dawk ser ikunu kollha fl tags separati. Allura, bażikament HTML fil-qalba tagħha huwa mod ta 'qsim il-paġna kif inti eventwalment tixtieq li format. Għalhekk għal darb'oħra, inti stajt tidher li qabel. Int pretty komdu mal-ħidma ma 'issa peress li inti ghamilt l-aħħar pset wieħed jittama, b'tali mod li għandu jkun hemm ebda problema. Imbagħad għandek CSS li bażikament mankijiet kollha ta 'l-aspetti statiċi disinn. Ikun jimmaniġġjaw kollha tal-kuluri, kollha ta 'l-ippożizzjonar ta' elementi differenti, fejn imorru fir-rigward ta 'xulxin, kemm hu kbir huma, it-tipi differenti ta 'positionings li inti jkollok - fi kliem ieħor, inti jista 'jkollhom affarijiet imwaħħla b'tali mod li meta inti iscroll li jibqgħu, jew inti jista 'jkollhom affarijiet relattivi għal elementi oħra. Kollha ta 'dik it-tip ta' għalf huwa CSS. Barra minn hekk, inti tista 'tagħmel dekorazzjonijiet differenti, inti jista' jkollhom kuluri test, effetti test, kollha ta 'dak it-tip ta' għalf. Ben taw seminar verament tajjeb dwar dan l-aħħar weekend, u so I definittivament jiċċekkjaw li jekk qed tippjana li tagħmel xi affarijiet fancy ma CSS. CSS3 effettivament hija l-verżjoni aktar ġodda ta 'CSS, u tista' tagħmel kull xorta ta 'affarijiet tassew sbieħ. Tista 'tagħmel gradients; inti jista' jkollhom sbieħ, kantunieri ttundjati; inti tista 'tagħmel kull xorta ta' għalf li tagħmel website tiegħek ħarsa aktar moderna u fancy. L-għodda li jmiss huwa JavaScript u jQuery li Ben tkellmu ftit dwar, imma jien ser jiksbu ftit farther fis. JavaScript, kif inti stajt ħadem magħha ftit, jew għall-inqas jidhru fil lecture, huwa tip ta 'mod ta' dinamikament tagħmel Jittieħed HTML. HTML, kif tafu, huwa statiku, hekk darba ikollok HTML inti ma tistax timmodifika dan. Iżda JavaScript, f'ċerti modi, huwa mod li jkunu jistgħu jibdlu HTML. Allura inti tista 'tagħmel dan, u li l-kbir, iżda JavaScript verament huwa uġigħ li jaħdmu magħhom. Huwa tant twil u obtuse u biex jagħmlu anki l-affarijiet sempliċi teħtieġ lottijiet ta 'linji ta' JavaScript. Għalhekk, jQuery huwa bażikament librerija JavaScript li tissimplifika kollha ta 'dak. Hija tgħid, okay, jekk inti tixtieq li jkollhom kaxxa kwadra jiġu mix-xellug u fade fil-paġna b'tali mod li huwa fin-nofs, fl JavaScript li tieħu - I do not know, mitt linji li tagħmel, u jkun uġigħ, u inti toħroġ minnha hating kollox dwar programmazzjoni web. JQuery inti bażikament għandhom l-element dot-fade fi, jew xi ħaġa bħal dik. Funzjonijiet Allura, ħafna, sempliċi ħafna li ser tavżak tagħmel kull tip ta 'animazzjonijiet jibred u li tip ta 'ħaġa. Il-ħaġa oħra li dawn 2 huma verament tajba għall huwa biss tagħmel affarijiet dinamiċi mal-websajt. Allura, aktar milli biss jkollhom paġna HTML tiegħek - li juri xi data iżda ma attwalment tagħmel xejn - JavaScript u jQuery ser tavżak jkollhom buttuni li inti tista ikklikkja fuq, u inti tista 'ttawwal l-elementi u l-ordni mill-ġdid tagħhom u sort lilhom, u jkollhom elementi ġodda jiżdiedu jew jitneħħew. Inti tista 'żżid-tħassar, li tip ta' ħaġa. Allura, jQuery ma tunnellata ta 'affarijiet jibred. U Vipul huwa attwalment tagħti seminar fuqha llum, nemmen, fi 5-o'clock, hekk jekk inti tista 'twaħħal madwar għal dak twil, li kieku - 5 jew 4? Erbgħa. Jiddispjacini. Huwa fil-fatt dritt wara dan, so I jirrakkomanda teħel madwar għaliha jekk tista '. JQuery huwa super, super utli, u inti ser tkun tista 'tagħmel ħafna affarijiet tassew sbieħ magħha għal pretty ħafna kull proġett web iżvilupp. Issa jien se jsibu rwieħhom tip ta 'distinzjoni. Stajt ġiet jitkellem bażikament dwar user interface. User interface huwa biss id-disinn tas-sit. Iżda hemm tip ta 'kunċett ieħor li huwa utent esperjenza. It-tnejn huma differenti ħafna. Interface huwa definittivament parti mill-esperjenza. Fi kliem ieħor, meta inti tmur għal sit, inti tħares lejn l-interface. Li l-parti ta 'kif ikollok is-sit. Iżda l-esperjenza utent huwa aktar minn dak. Esperjenza utent huwa dwar dak l-impressjoni li l-utent gets mis-sit tiegħek. Allura, ovvjament, interface hija parti minn dik. U huwa definittivament parti neċessarja, iżda mhux suffiċjenti. Fi kliem ieħor, jekk għandek interface sbieħ, u huwa pretty u colorful u kollha ta 'dak, li l-kbir, imma jekk l-utent tmur għall-sit tiegħek, jara tqassim pretty u huwa konfuż minn kollox, m'għandha l-ebda idea kif tagħmel xejn, allura ovvjament inti ħadna verament website foqra. Li tip ta 'fejn l-esperjenza utent taqa pulzieri Jien ser jitkellmu ftit dwar disinn UX - UX huwa qasir għall-esperjenza utent - u tip ta 'kif tista' tagħmel ċert li inti għandek esperjenza tajba utent. L-ewwel punt huwa li inti tista 'disinn ta' website fejn utent tista 'tagħmel xi ħaġa li dak l-utent possibilment trid. Iżda jekk l-utent ma tistax figura kif tagħmel dawk l-affarijiet - fi kliem ieħor, jekk l-utent ma jkollux idea tajba meta jmorru għall-sit tiegħek, "Oh, jekk irrid li taġġorna l-profil tiegħi, imbagħad I ikklikkja din il-buttuna, jew jekk irrid post fuq ħajt ta 'xi ħadd, imbagħad I mur ħajt tagħhom u kklikkja fuq kaxxa ftit. " Jekk l-utent ma jkunx jaf dan, allura inti effettivament ma jkunux attwalment implimentata din il-funzjonalità b'mod korrett. Parti mill-implimentazzjoni ta 'funzjonalità li l-utenti huma attwalment tista' tużah. U jista 'jkun frustranti - inti tista' tagħmel is-sit, u tista 'tagħmel kull tip ta' affarijiet mill-isbaħ, iżda imbagħad inti ser ikollok nies tittestja u jgħidu, "Ma tistax tagħmel dan. Għaliex ma jista 'jagħmel dan? "U inti ser jgħidu lura lilhom, "Well, jista. Inti sempliċiment għandek tmur fis-7 menu drop-down fuq dan joskuraw paġna li biss jinstab permezz ta 'link fil-kantuniera tal-qiegħ tal-lemin "jew xi ħaġa. Ovvjament, inti ma tridx li. Inti tixtieq li jkun ċar għall-utenti tiegħek dak li qed suppost tagħmel, u għandu jkun sempliċi u intuwittivi għalihom. Ħaġa oħra li inti tixtieq li tipprova tagħmel hu li, jekk xi ħadd għaddej biex tmur sit tiegħek u 9 minn 10 darbiet tagħmel azzjoni A, u 1 minn kull 10-il darba azzjoni B, inti probabilment tixtieq li tiffoka l-esperjenza tagħhom dwar l-azzjoni A. Fi kliem ieħor, inti tixtieq li tagħmel dan kif ħafna, ċara ħafna li tagħmel A. A għandu jkun front-u-ċentru - tmur għall-sit, ara lilha; oh, huwa hemm dritt. Billi B ovvjament inti tixtieq li tkun ċara, imma int tista 'tħalli daqsxejn aktar fl-isfond. David jagħti eżempju tajjeb ta 'dan fil-lecture, li hija s-sistema Boston T. Meta inti tmur għall-T Boston u inti tixtieq tixtri biljett, għandek tikseb f'5 menus qabel ma inti tista 'attwalment tixtri biljett għal $ 2, $ 2.50 valur, li hija kemm li tieħu biex isuqu l-subway f'direzzjoni waħda. Li l-problema għaliex ħafna nies li qed riding-subway probabbilment biss jridu jmorru f'post wieħed, jixtru biljett tagħhom, jiksbu fuq id-dritt bogħod. Ma jagħmilx sens li dawn ikollhom jgħaddu lottijiet ta 'menus differenti biex naslu s'hemm. A esperjenza aħjar għall-utent ikun buttuna malajr fuq l-ewwel paġna li biss jgħid, "jixtru one-way biljett," u dan iqiegħed fil kollha ta 'l-istandard valuri awtomatiċi, u mbagħad jekk xi ħadd jixtieq jixtri biljett differenti minn dik, dawn għadhom, naturalment, l-għażla li, imma inti stajt ottimizzati għall- il-każ ta 'użu komuni li huwa verament importanti. Tista 'tara eżempji ta' dan fuq Facebook, right? Jekk inti tmur biex Facebook u inti tixtieq li post status, huwa dritt fil-quċċata li huwa dak li inti spiss trid tagħmel. Hekk kif inti tidħol il-paġna, inti tista 'tagħmel l-affarijiet aktar komuni li inti trid tagħmel. Jekk inti tixtieq li tagħmel affarijiet ftit aktar ikkumplikati simili, jgħidu Irrid immur għal ħajt ħabib tiegħi u post stampa fuqha - li jiena ser trid tagħmel spiss, imma mhux kif spiss kemm kollokament aġġornamenti istatus - hekk fil-każ, I tip isem tagħhom fil-kaxxa fil-quċċata, ikklikkja fuq il-profil tagħhom, u mbagħad, xorta, huwa dritt fil-quċċata hemm ladarba stajt gotten-profil tagħhom. Għal darb'oħra, stajt ottimizzati prijorità għall-każijiet ta 'użu komuni l-aktar. Ħaġa oħra importanti hija li ħafna drabi n-nies it-tip ta 'se nipprova nikseb madwar dan billi qal, okay, so I ħadna s-sit u n-nies qed isibuha konfużjoni, u li l-problema, id-dritt? Ovvjament, I ma jridux nies li joħolqu konfużjoni mill-kontenut ta 'sit tiegħi. Iżda l-mod biex issolvi dan ma jkollhom xi ħaġa pop up qal, ħej, jien ser jgħallem kif għandek tuża dan is-sit inti. Pass 1 - ikklikkja din il-buttuna. Stadju 2 - mur hawn. Sure, li l-mod madwar dan - huwa mod li inti tista 'tgħid lin-nies x'għandhom jagħmlu, imma hija verament mhux l-aħjar mod. Jekk immur għal websajt u f'daqqa waħda jien bbumbardjati dan tutorja li javżak me x'għandek tagħmel u fejn imorru u kollha ta 'dak, li mhux gost għalija. Mhuwiex esperjenza tajba għalija. Huwa tip ta 'uġigħ. I jridux biss tibda tagħmel Jittieħed. In-nies huma ser tagħlaq out tal-kaxxa dialog tagħhom, jew toħroġ mill-tutorja, ma jkunux jafu x'għandhom jagħmlu, u mbagħad jilmentaw minħabba int ma qaltilhom x'għandek tagħmel. Il-mod biex issolvi dan mhux billi tagħti ebda tip ta 'tutorja jew direzzjonijiet - xi ħaġa bħal dik. Kemm inti tista 'tevita dan, int verament tixtieq li juru l-utent x'għandek tagħmel biss min-natura ta 'kif il-websajt hija stabbilita. Fi kliem ieħor, jekk mmur Facebook mingħajr qtugħ fil, l-ewwel ħaġa li nara fuq il-paġna prinċipali - huwa kaxxa login ftit. Allura, duh. I jkollhom log pulzieri Huwa hemm dritt. Billi, jekk I marru għall Facebook u kelli ikklikkja rabta ftit fil-qiegħ li qal "log in" u l-bqija tal-paġna kienet biss xi tip ta 'stampa jew xi ħaġa, Jien ma verament jafu x'għandhom jagħmlu, right? Inkun konfuż. Għalhekk, din tista 'tgħidli li jmorru hemm isfel u kklikkja l-buttuna log fil, jew l-log fil-buttuna tista 'tkun id-dritt fil-quċċata fejn jien ser narah. Inti trid dejjem tkun turi l-utent x'għandek tagħmel, u li għandu jkun inerenti fil-paġna innifsu. Meta inti qed jaħsbu dwar disinji u mocking up modi differenti ta ' jesprimu sit tiegħek, int verament tixtieq li jaħsbu dwar dak li l-utenti ser tkun qiegħda tagħmel u kif inti tista 'turi x'għandhom jagħmlu. Ħaġa waħda aħħar huwa l-ittestjar huwa tassew, tassew importanti. Huwa kbir biex tikseb xi ħadd - tikseb xi ħabib, nikseb xi ħadd ma tafx anki - li qatt ma raw is-sit qabel biex jużaw is-sit. Għaliex inti ħadthom ilhom jaħdmu fuq is-sit għal siegħa, inti kont qed tluq fil dan, u inti taf eżattament x'għandhom jagħmlu dan ovvjament int ser tkun ittestjar tal- affarijiet li inti ħadthom ilhom jaħdmu fuq u li inti taf x-xogħol. Imma jekk xi ħadd ieħor jidħol tul u tuża l-sit li qatt ma użat qabel, li l-esperjenza unika għax għandek xi ħadd li għandu l-ebda għarfien minn qabel tas-sit nidħlu dan, sabiex dawn qed ser ikollhom effettivament ebda idea x'għandek tagħmel jew liema tip ta 'każijiet ta' użu huma preżenti għalihom. Li l-kbir. Dak unika għaliex qed essenzjalment persuna ma 'forma mimlija għal moħħ. Huma jista 'jgħidlek jekk xi ħaġa hija konfuża jew mhux ċari. Huma jistgħu jagħtuk idea ta 'preċiżament dak li l-utent esperjenza ta' sit tiegħek. Jista 'jkun diffiċli ħafna li tgħid li yourself, hekk definittivament nixtieq ninkoraġġukom kif int jiżviluppaw proġetti tiegħek - jekk int tagħmel proġetti fuq l-internet - sabiex in-nies jużaw is-sit kmieni kemm ikollok xi tip ta 'demo funzjonali. Issa jien ser nitkellmu ftit dwar kif immexxu proġett web iżvilupp. Imxejna marret fuq kif tista 'tagħmel l-aspett tekniku back-end, kif inti tista 'disinn sit verament tajba, u li l-kbir jekk int taħdem mill yourself iżda - anki jekk int taħdem mill-yourself u speċjalment jekk int taħdem fuq tim, ġestjoni tal-proġett isir kwistjoni kbira. You ħadthom tip ta 'jinstemgħu dwar ġestjoni tal-proġett fil-forom differenti peress iskola elementari meta inti qalulhom xogħol fi gruppi. Inti għandek biex jikkoperaw, jikkomunikaw, kollha ta 'dak. Li kollha għadhom tapplika hawnhekk, imma hemm xi ċirkostanzi uniċi bi xjenza tal-kompjuter li inti tixtieq li jkun konxju ta ', u inti tixtieq li tagħmel żgur li inti tagħmel handling tajjeb. I ser nitkellmu ewwel ftit dwar il-tim li inti ser tkun pulzieri Huwa importanti ħafna li pick-daqs dritt ta 'tim li tkun qed taħdem fuq, u fil-proġett finali tiegħek naħseb li inti għandek l-għażla li jagħżlu bejn 1 u 4 persuni jekk jien korrett. Inti tixtieq tagħmel żgur li int mhux biss jagħżlu l-għadd ta 'nies li inti tixtieq taħdem ma għaliex qed ħbieb tiegħek. Inti tixtieq li jagħżlu tim li huwa daqs tajjeb u li se x-xogħol isir. Hemm off-kummerċ li jkollhom aktar nies versus inqas nies. Jekk ikollok aktar nies, ovvjament aktar xogħol jista 'jsir għax għandek lottijiet ta 'nies, lottijiet ta' kodiċi, lottijiet ta 'ideat, u li kollox kbir. Iżda teħtieġ ukoll ħafna aktar ġestjoni u ħafna aktar komunikazzjoni. Fi kliem ieħor, jekk inti għandek 4 persuni li jaħdmu fuq l-istess proġett u dawn qed kollha editjar l-istess kodiċi, aktar jew anqas huma kollha tip ta 'bżonn tkun taf x'inhu għaddej u għalhekk teħtieġ li - jekk inti żid xi funzjoni ġdida inti tip ta 'għandek għid lin-nies - I'm żżid dan, Jien jinbidlu din b'dan il-mod - speċjalment jekk inti tikseb fis-għalf verament fil-fond bħall-mudelli u l-kontrolluri li huma attwalment għaddejjin li jinfluwenzaw kif is-sit xogħlijiet. It-tim kollu jeħtieġ li jkun konxju ta 'dan, sabiex inti għandek bżonn tagħmel żgur li int ma jagħżlu kbir wisq tim li għaddej biex tkun diffiċli li jagħmel dik il-komunikazzjoni. Inti wkoll ma tridx li tagħżel tim żgħir biżżejjed li int mhux ser ikunu kapaċi jikkomunikaw għaliex huwa biss int. Ħaġa oħra li wieħed għandu jikkonsidra huwa l-bilanċ ta 'fejn il-ħiliet tan-nies huma. Hija xi ħaġa kbira jekk int kollha programmaturi verament tajba. Imma jekk int nies kollha back-end, imbagħad is-sit tiegħek mhux ser tfittex tajba ħafna għaliex għandek dan database kbira, u ma tfittxija super fast - li huwa kbir - imma meta inti tmur magħha, huwa simili sit ta '1990 bl-aħmar u blu kullimkien, u li l-ebda tajjeb lanqas. Avviż li Ben u I jaħdmu bħala tim huma sbieħ ħafna għaliex jien tip ta 'aktar fil-tarf ta 'quddiem, kemm aħna jinteraġixxu fil-tarf tan-nofs, u Ben verament tajba ma Jittieħed back-end, b'tali mod li taħdem verament tajjeb għaliex nistgħu disinn kull sit u bażikament l-toqob f'dak is-sit li jeħtieġ li jimtlew jistax jimtela minn kull wieħed minna, jew possibilment tnejn. Inti tixtieq li tagħmel ċert li ma jkunx hemm toqob fil-tim tiegħek. Huwa okay jekk hemm daqsxejn ta 'sovrapożizzjoni. Fi kliem ieħor, jekk għandek 2 nies li huma kemm tajba mal-aħħar lura, li jista 'jkun tajjeb ukoll għaliex dawn jistgħu jgħinu lil xulxin bi problemi li huma jkollhom. Hija tista 'tkun problema jekk inti biss għandek 1 persuna li responsabbli għal ħaġa ċerta u huma mmexxija fis-problema, sabiex inti tixtieq li jkollok xi ftit ta 'overlap iżda inti aktar importanti tixtieq li tagħmel ċert li kollha tal-toqob possibbli huma mimlija. L-aħħar ħaġa - u dan għandu jkun ovvju, iżda huwa spiss mhux. Int verament tixtieq li tkun gost. Il-punt ta 'dan il-proġett finali CS50 u sikwit il-punt tat web iżvilupp b'mod ġenerali mhux biss jagħmlu xogħol minħabba li jeħtieġ isir. Int verament tixtieq li tkun gost, u inti tixtieq li jkun qed jagħmel xi ħaġa thats jimmotivaw inti biex jaħdmu fuqha. Jekk tkun xi tkun int tagħmel huwa uġigħ li joqogħdu bilqegħda u jaħdmu fuq, allura int ma jagħżlu l-proġett dritt. Inti tixtieq li jagħżlu xi ħaġa li inti ssib interessanti, int verament tixtieq li tara r-riżultat, int eċċitati meta ikollok idea ġdida dwar xi ħaġa li inti tista 'tagħmel - hekk hemm kull xorta ta' proġetti hemmhekk li jien ċert inti tista 'ssib - kulħadd għandu xi ħaġa li verament b'qerq minnhom jekk dawn qed jagħmlu proġett fuq l-internet. I ser ngħid mill-ġdid dritt issa. Jekk il-proġett tiegħek tidher qisha uġigħ u inti ma tridx li jaħdmu fuqha, jagħżlu proġett ieħor. Agħżel xi ħaġa li verament jispira int. Ben imsemmi dan il-kunċett ta 'iterazzjoni a bit, u nixtieq li jmorru fuq hija daqsxejn. Huwa tassew importanti li ssir ħidma fil spurts fejn inti tikseb xi ħaġa funzjonali. Dan jista 'jkun kbir jekk ikollok dan il-pjan għal websajt li għaddej biex tagħmel A, B, u C, u eventwalment dan ser naslu s'hemm. Imma int mwaħħla f'din il-fażi fejn qed jaħdmu fuqha u taħdem fuqu, iżda xejn jkollna jsir. Inti ma jkollhom xejn li tara u, ħaġa funzjonali tanġibbli. Dak li int verament tixtieq li tagħmel kemm jidher tip ta 'uġigħ kultant biex jaħdmu fuq xi ħaġa u mbagħad tip ta aħħarnett off b'tali mod li huwa mill-inqas fil stabbli, running Verżjoni anki jekk ma jkollux il-karatteristiċi kollha li trid. U forsi hemm xi karatteristiċi li int verament trid iżżid iżda inti biss ma tistax għaliex inti tixtieq li tikseb dan is-sit għal punt funzjonali. U għalhekk inti tixtieq li tip ta 'jkollhom il-proċess ta' żvilupp kollu look bħal dik. Inti tixtieq li tibda x'imkien funzjonali - jew essenzjalment tibda bil xejn - iżda inti tixtieq li tikseb x'imkien bażika ħafna u funzjonali. U mbagħad, tagħmel tip ta 'qabża u jiksbu x'imkien funzjonali mill-ġdid. Int ser jibnu bil-mod, u dan jista 'jmur daqsxejn kajman milli kieku, iżda fit-tul jekk int dejjem staġnati f'din il-fażi triq tan-nofs fejn inti ma attwalment jkollhom xejn tax-xogħol, jista 'jkun frustrazzjoni verament kbir biex jaħdmu fuq proġett tiegħek għax int dejjem hekk qrib jkollna xogħol, u huwa qatt ma taħdem attwalment. Inti tixtieq taħdem f'dawn spurts funzjonali, u inti wkoll trid tagħmel xi riflessjoni wara kull waħda. Fi kliem ieħor, ladarba int fil-punt fejn is-sit issa qed taħdem - ma jkollhom kollox inti simili iżda ma xi affarijiet - inti tixtieq li jaħsbu, okay, huwa dan is-sit tlesti l-għan li I stabbiliti biex jagħmlu? Fi kliem ieħor, jekk is-sit se tagħmel X, huwa dak li jien jaħdmu fid-direzzjoni ta 'X? Huma kollha tal-funzjonalitajiet li ridt hemmhekk? U barra minn hekk, huwa dan iservi l-iskop ġenerali li nixtieq? Jekk int konstatazzjoni li sit tiegħek qed tibda dur f'direzzjoni differenti jew forsi l-affarijiet biss tip ta 'ma jkunux qed jaħdmu barra, jista' jkun żmien li neqilbu gerijiet ftit. Fi kliem ieħor, huwa min jikkunsidrah - huwa min jitfa 'l-ideat jekk ikun meħtieġ u meta wieħed jikkunsidra am I really ħidma lejn dak li nixtieq li jkun. Nemmen li l-punt li jmiss tiegħi. Tibżgħux biex jabbandunaw ideat. Sempliċiment għax inti jintefqu lottijiet ta 'sigħat tax-xogħol fuq karatteristika u finalment ltqajna taħdem imma verament mhux se tant tajjeb - bħal dan m'huwiex utli jew utenti qed ikollhom problemi bl-użu dan - li tip ta 'ħaġa - tibżgħux biex armih. Hija sucks li inti stajt qattgħu ħafna ħin tax-xogħol fuqha, iżda fl-aħħar inti ma tridx sit thats tip ta jitqiegħdu flimkien minn dawn il-biċċiet li tip ta 'xogħol iżda mhumiex moqdija li tajjeb. Ukoll, tibżgħux biex iħaddan ideat ġodda. Jekk xi ħadd jidħol tul u jgħid, ħej, dak is-sit jistenna verament jibred iżda ma kienx ikun saħansitra jkun kbir jekk hija għamlet ukoll din? Just għaliex dan huwa xi ħaġa li inti ma riditx u xi ħaġa li mhux fil tiegħek specs, xi ħaġa li int ma stabbiliti biex jagħmlu, tibżgħux li teħodha fuq u mbagħad jaħdmu magħha. Minħabba li ħafna drabi l-ideat li inti tmexxi bl matul il-kors ta 'żvilupp jispiċċa jkun l-karatteristiċi verament jibred tal-websajt. Stajt qal dan qabel. I ser ngħid mill-ġdid. Testers huma super, super utli. Nipprova nikseb in-nies li qatt ma rajt is-sit qabel ma log fuq u ara x'inhu għaddej għaliex jistgħu jittestjaw mhux biss l-utilità tas-sit u l-esperjenza utent, iżda jistgħu wkoll jittestjaw il-funzjonalità b'modi li inti ma tistax. Jekk inti tagħmel xi karatteristika li ma ħaġa ċerta u inti taf li għaddej biex jagħmlu l-istess ħaġa korrett kull darba waħda, li l-kbir. Iżda ħafna drabi tista 'tkun diffiċli li jagħtu kont għall-każijiet kantuniera fejn jista utent tip xi ħaġa li inti ma kinux jistennew - preċiżament għaliex inti definit il-karatteristiċi yourself. Allura, li jkollhom xi ħadd ġejjin fuq li m'għandha l-ebda idea kif jużaw is-sit u biss din tinqasam fi kwalunkwe modi kif tista 'tagħmel huwa verament utli għaliex inti tieħu idea minn perspettiva totalment differenti minn dak fuq is-sit tiegħek qed jaħdem u dak li jeħtieġ t-tiswija. Last, jien ser jitkellmu dwar xi prattiċi tajbin ġenerali, u inti stajt tidher ħafna ta 'dawn fil CS50, iżda huma wkoll tassew, tassew japplikaw fl-iffissar tal-proġett. Wieħed huwa kummenti. Dejjem jikkummentaw kodiċi tiegħek speċjalment jekk inti qed jaħdmu fuq tim kbir. Dan jista 'jkun hekk annoying li jkollhom biss blokk ġgant ta' kodiċi li xi ħadd-miktub u forsi taħdem, forsi ma, iżda inti għandek ebda idea dak li tagħmel, hekk ikollok l-ebda idea jekk huwa utli jew le jew jekk għandux ikun hemm jew le, u jekk int taħdem fuq xi ħaġa oħra li huwa possibbli wkoll li inti qed jaħdmu fuq l-istess ħaġa, hekk biss tkun ħafna, ferm attent li tkun considerate ta 'sħabhom tiegħek u jiktbu kodiċi li s dokumentati tajjeb. Inti ma għandekx tmur safejn li jagħmlu l-ħaġa sħiħa fejn tixtieq jekk inti inkrement kontro jkollu kumment li tgħid, jien żżid 1 sa din il-kontro. Ma għandhom ikunu li dettaljati, iżda, għal kull funzjoni li int qatt bil-miktub għandu jkollok xi dokumentazzjoni ta 'dak li dik il-funzjoni eżattament ma, liema inputs tiegħu huma, u dak li għandu ritorn. B'dak il-mod inti tista 'tuża komponenti oħra tan-nies tas-sit u inti tista 'taħdem għall-ħolqien xi ħaġa kbira. Ħaġa oħra importanti hija li inti trid tagħmel nadif-ups regolari. Kodiċi gets messy. M'għandekx iħossuhom ħażin jekk il-kodiċi tiegħek hija biss totalment ma jistgħux jinqraw u mess ġgant. Li jiġri fil web iżvilupp dejjem. Int żżid karatteristiċi ġodda, tneħħi dawk qodma. Jittieħed se jkun hemm li ma għandu jkun. Li l-multa, iżda inti tixtieq li tagħmel ċert li tittratta dik regolarment. Inti ma tridx li tħalliha jibnu sal-punt fejn inti biss ma tistax issib xejn fil-kodiċi tiegħek, u inti għandek l-ebda idea dak li xejn ma. Dik hija l-każ mal-HTML. Kultant inti ser jispiċċaw ma 'oġġetti li ma fihomx xejn, u tkun taf tixtieq li jeħles ta 'dawk. Fil-CSS, inti tista 'tkun jirreferu għall-elementi li ma jkunux hemm aktar, sabiex inti tixtieq li teħles minn dan il-kodiċi. Fil JavaScript, inti jista 'jkollok jitneħħa xi ħaġa mill-HTML. Allura, inti tixtieq li tagħmel ċert li int dejjem tindif, li tagħmel affarijiet pretty kemm inti tista 'fuq bażi regolari. Ħaġa oħra verament utli li jien ma naħsibx huwa deskritt ħafna fl CS50 iżda huwa min jkollna lejn huwa verżjoni kontroll. L-idea ta 'kontroll verżjoni hija meta int bażikament iżżomm rekord ta' l-progress inti ħadna lejn sit tiegħek u jekk fi kwalunkwe punt inti tirrealizza, oh, dan kien qed jaħdem filwaqt li ilu iżda mhux maħdum kwalunkwe aktar, inti tista 'tmur lura għall-verżjonijiet preċedenti u ara dak li nbidlet minn dakinhar u li tip ta 'ħaġa. Il-mezz primarju biex tagħmel dan huwa ma 'Git, u Git hija din it-tip kollu ta' sistema li Nemmen Tommy MacWilliam taw seminar dwar l-aħħar sena. Jekk inti tmur fis-seminars CS50 għall-2011, tista 'tara seminar tiegħu fuq dan. L-idea ta Git hija bażikament dak f'intervalli regolari int tagħmel dawn l-impenji li huma modi ta 'tgħid is-sit huwa fil-verżjoni pretty stabbli dritt issa tant Jien ippakkjar it up u jibagħtuha bogħod biex server, u allura inti tista 'tmur għal dak server u tħares lejn kull verżjoni preċedenti tal-kodiċi tiegħek u tara kif huwa mexa u dak kollu li tip ta 'għalf tajba. Allura, li bażikament dan. Safejn web iżvilupp, aħna kuntenti li twaħħal madwar u tirrispondi xi mistoqsijiet safejn preżentazzjoni tagħna. Thats it. Grazzi. >> [Ben] Grazzi. [Applause] [Billy] Persunal, ħadd ma jkollu xi mistoqsijiet dwar affarijiet li aħna stajt koperti jew affarijiet li konna mhux koperti li huma kienu qegħdin jittamaw aħna'd tkopri? Aħna'd ikunu kuntenti li twieġeb dawk. Kulħadd? [Membru udjenza] X'inhuma l-vantaġġi u liżvantaġġi ta 'użu Ruby jew bl-użu Python? [Ben] Il-kwistjoni kienet, liema huma l-vantaġġi u liżvantaġġi ta 'użu Ruby jew Python minflok bħal PHP. Il-punti favur huma li Ruby u Python huma lingwi ferm aħjar minn PHP. Mill-inqas fil-fehma tiegħi, u naħseb fil-lott ta 'opinjonijiet ta' nies oħrajn ukoll. Huma kienu maħsuba b'mod aktar biex tagħmel Jittieħed kumplessi, u inqas għall whacking flimkien paġni web verament malajr ma xi ftit ta 'kontenut dinamiku. L-iżvantaġġi huma li hemm xi ftit ta '- hemm aktar ta' kurva tat-tagħlim biex tikseb minnhom stabbiliti. Dan huwa, bħal fil-PHP, inti tista 'sempliċement jkollu fajl HTML u tikteb' anqas minn, trade mark in kwistjoni, u mbagħad tikteb xi kodiċi, u mbagħad tikteb mark kwistjoni, -akbar minn, u allura inti qed isir. F'lingwi oħra bħal Ruby jew Python, ikollok tmur permezz ta 'ftit aktar xogħol biex jiksbu l-sit running inizjali. Hemm ukoll - għall-inqas li jintuża biex tkun il-każ - li hemm aktar dokumentazzjoni disponibbli għall PHP sempliċiment għaliex hemm aktar nies jużawh. Naħseb li mhux bħala ħafna ta 'kwistjoni aktar. Hemm ċertament dokumentazzjoni tajba ħafna għall-għalf bħal Ruby fuq binarji jew Django għall Python huwa l-ekwivalenti. PHP huwa dak li kulħadd qed tuża għas-snin, u inti taf kif taħdem. Ruby u Python huma ftit anqas maturi. [Membru udjenza] Jekk ġejt biex tagħżel bejn wieħed minnhom biex jitgħallmu jew pick up, li kieku inti tippreferi? Onestament, naħseb li jiddependi fuq il-persuna. Jien sorry. Il-kwistjoni kienet li kieku inti pick għal xi ħadd biex jitgħallmu? I isibu Python l-nicest personalment. Hemm ħafna nies li - I ma l-ewwel web proġett DEV tiegħi fil Python u Django. Hemm ħafna nies li jħobbu Ruby fuq binarji ukoll. Probabbilment aktar nies li jafu Ruby fuq binarji. Onestament, I se biss jmorru ma 'kwalunkwe-poplu madwar inti taf sabiex ikollok nies li jistaqsu mistoqsijiet. Il-kwistjoni kienet - fuq servers maqsuma huwa tip ta 'diffiċli biex jaħdmu fuq Python? Dan jiddependi fuq hosting tiegħek. Hemm numru ta 'web hosts li ser post Jittieħed Python. WebFaction ma li, right? WebFaction hija waħda li Billy u jien użati għal xi proġetti. Huma qed verament kbir. Huma jappoġġjaw aktar lingwi. Imma huwa veru li PHP hija ħafna aktar appoġġjata minn bosta. Allura, jekk int mwaħħla fuq web ospitanti li biss ma PHP, li l-raġuni tajba għall-użu PHP. [Membru udjenza] I biss ltqajna fis-tagħlim kif mistoqsija xi databases, u naf SQL tiegħi hija kollha fuq il-post, iżda I reċentement ltqajna esposti għall - u inti indikaw dan. You see JSON u databases espansibbli. My SQL għadu kollha fuq il-post. Kif inti tara li jiġri? Huwa hemm għaddej li hemm tendenza dejjem tikber għal aktar espansibbli (inaudible)? Il-kwistjoni kienet - do I think hemm għaddej li hemm tendenza lejn databases mhux SQL. Per eżempju, bħal MongoDB. Naħseb li huwa definittivament veru. Parir tiegħi kien l-aktar mySQL relatati mal-hawn biss minħabba mySQL hija standard industrijali. Personally, I ħafna jippreferu databases li m'għandhomx schemos bħal MongoDB fejn inti ma għandekx il-ħruġ ta ', oh, I bżonn li żżid ieħor kolonna. Woe hija me, bħal kwalunkwe nagħmel? Huwa diffiċli ħafna biex tagħmel dan fuq mySQL, imma meta jkollok xi ħaġa bħal Mongo huwa ħafna nicer. Il-ħaġa sbieħ oħra dwar Mongo huwa li r-rekords tiegħek huma attwalment JavaScript oġġetti. M'hemm l-ebda tip ta 'pass konverżjoni fejn għandek bżonn tieħu dawn ringieli database u jibdluhom fi oġġett JavaScript u mbagħad tibgħathom fuq il-wajer. Naħseb għalf bħal dik se tkun ħafna, utli ħafna għall-iżvilupp web mgħaġġel fil-futur. [Billy] Xi ħaġa nixtieq inżid li huwa biss punt ġenerali hija li ma jħossu bħal inti għandek tgħallmu kollha tal-lingwi konna diskussi minn seminar tagħna. Ovvjament l-punt hu li jagħti idea ta 'x'hemm hemmhekk, u jekk int intrigued minn xi waħda mill-affarijiet konna msemmija tista Google minnhom u aqra up fuqhom. U kif semmejt, hemm seminars ftit li jittrattaw preċiżament dawn l-affarijiet. Hemm seminars saħansitra aktar li jien mhux imsemmija li probabbilment jsibu rwieħhom dan il-għalf kif ukoll. L-idea hija li jekk inti tixtieq taħdem fuq xi ħaġa, hawn huma l-għodod għad-dispożizzjoni tiegħek. M'għandekx tħoss megħlub jekk m'intix ċert liema verament dawn l-għodod jagħmlu eżattament, imma jafu li dawn qed hemmhekk u li inti tista 'tagħmel użu wiesa minnhom minn Google. [Membru udjenza] Liema tip ta 'affarijiet li għandek bżonn tagħmel biex jagħmlu ċert website tiegħek jidher tajjeb fuq apparat mobbli? [Billy] apparati mobbli huma ftit diffiċli. Hemm 2 modi kif inti tista 'tavviċina dan. L-ewwel mod huwa li inti fil-fatt għandhom websajt mobbli. Fi kliem ieħor, inti twettaq xi tip ta 'sejbien fil-bidu meta l-browser qed jagħmel it-talba għall-website tiegħek li jew tgħid jirritorna din il-fehma - li se jkun il-fehma għal desktop jew laptop browsers - u din il-fehma oħra għal apparat mobbli. Li l-post fejn l-opinjonijiet huma verament sbieħ li inti tista pretty ħafna swap l- tnejn u jkollhom interface li taħdem verament nicely fuq apparat mobbli u jkollhom waħda kompletament differenti li taħdem nicely fuq apparat browser. Il-problema li hija hija tieħu żmien twil minħabba li dan ifisser kodifikazzjoni interface totalment differenti. Il-mod ieħor li inti tista 'tagħmel huwa - ħafna ta 'telefons moderna se display websajts u jippruvaw jagħmluhom bħala browser kieku, u jagħmlu l-aħjar tagħhom. Tista 'tip ta' tipprova li tissospendi dawl fuq l-ammont ta 'jQuery JavaScript inti qed tuża li għandu tendenza li jkun fejn l-affarijiet jistgħu imorru ħażin ftit. Dan huwa tip ta 'l-mod li għandek tuża jekk inti ma għandekx li ħafna ħin. Jekk inti ma jkollhom il-ħin biex jaħdmu fuq interface mobbli, li ovvjament aħjar għażla tiegħek. Naħseb ġeneralment għal proġetti CS50, int ser jridu jagħżlu waħda jew l-oħra. Fi kliem ieħor, inti tixtieq li tagħmel app mobbli jew inti tixtieq li tagħmel website desktop. U dik it-tip ta 'jiddetermina fejn inti tmur ma' dak. Iżda jekk inti tixtieq li jespandu it out aktar tard, probabbilment bet tiegħek aħjar huwa jagħmlu interface ieħor għall-oħra. I jkollhom ftit ta 'esperjenza fl-iżvilupp siti bbażati WordPress'. I ospitat websajt personali fuq WordPress għall awhile. Dawk it-tipi ta 'oqfsa jistgħu jkunu affarijiet daqstant bażika ħafna sbieħ. Oftentimes inti ser biss run fis-lott ta 'kwistjonijiet customizability għalkemm. Int ser ikollok tixtieq li jkollok xi ħaġa tfittex b'ċertu mod jew tkun mod ċerta u inti biss ma tistax, għaliex dan huwa hard-fili fis-sistema li dan huwa kif għandek tagħmel affarijiet li jistgħu jkunu daqsxejn ta 'problema. Minn dakinhar stajt tip ta 'kien aktar inklinati li jaħdmu ma' siti mill-art up. Għal affarijiet bħall-databases blog u dik it-tip ta 'ħaġa huwa verament mhux li diffiċli li jinbena qafas. Jekk int verament mġebbda għal darba, inti tista 'kors jużaw xi ħaġa simili WordPress jew li tip ta 'ħaġa għal blog. It-tipi ta 'affarijiet li blogs maħżen u ma huma verament iebsa biżżejjed li jekk int taħdem fi kwalunkwe ta 'dawk it-tipi ta' affarijiet, int probabilment aħjar biss biex jagħmlu verżjoni in-house. Naħseb li dwar dan, dan grazzi għal darb'oħra għall ġejjin. We really jgawdu nitkellmu miegħek guys u nisperaw li inti tgħallimt xi għalf. [Ben] Aħna kuntenti li jitkellmu - rridu mmorru imma aħna kuntenti li jitkellmu aktar barra jekk għandek mistoqsija oħra. Grazzi għal darb'oħra. [Applause] [CS50.TV]