[Powered by Google Translate] [Seminar] [Veebiarendus: ideest teostuseni] [Ben Kuhn] [Billy Janitsch] [Harvard University] [See on CS50] [CS50.TV] [Billy] Tere, ma olen Billy ja see on Ben. >> [Ben] Tere. Me räägime veebiarendust täna. [Webdev] [Billy Janitsch ja Ben Kuhn] Natuke meist esimesena. Ben on omamoodi back-end mees. Ta teeb asjad töötavad. Ja siis ma lähen sisse ja muuta need ilusad. Olen suuresti kaasatud rohkem esiotsa topoloogia sellist kraami, ja Ben, teiselt poolt, ei tea, mida ta teeb, et ta töötab back-end kraami. Koos oleme teinud mõned asjad. Näiteks eelmisel aastal töötasime Gimblium mis on online mängu areng stuudio. See oli meie viimane projekt klass, ja sellest ajast alates oleme teinud Harvard Class mis on online raamistik sirvimine ja shopping kursused Harvardi. Me alustame selle idee meie veebilehel. Me teha Facebook, kuid kassidele. Enne kui tegelikult teha selle veebilehe ei tee seda kodulehel, sest see ei ole hea, kuid me kasutame seda raamistikuna ja minna läbi protsessi, kuidas me selle idee ja muuta see reaalne kodulehel saame kasutada. Hakkame murdes veebilehte allapoole. Nagu olete teinud ka CS50, sa tahad mõelda, millised on tegelikud osad, mis lähevad sellel veebilehel. Põhimõtteliselt keerates see idee, mis on justkui abstraktne mõiste tõeline, käegakatsutav asi, mida võiks teha. Alustame küsides mõned küsimused. Mis on selle veebilehe? Miks me muudab? Mida ta kavatseb kasutada? Sellised asjad. Juhul Facebook Kass, me põhiliselt tahavad veebilehel, mis võimaldab kassid sotsiaalne võrgustik üksteisega. Idee on selles, et nad saavad postitada teineteise seinad, nad saavad teha märkusi, et selline asi. Ja see, kui me tuleme funktsionaalsed komponendid. Meil on nüüd selline raamistik - meil on kasutajaprofiilid, meil on kommentaarid ja saame postitada. Võib-olla ühel päeval me sissevoolav meeldib ja et selline asi. Ja me nagu tahaks esikohale need funktsioonid lähen sisse Me tahame öelda, nagu, okei, see on tõesti oluline, et igaühel on profiilis ja et igaüks võib kirjutada üksteise seinad. Teisejärguline, et kommentaare oleks tore. Võibolla hiljem me sissevoolav sarnast. Niisiis, sa tahad olla idee, mida on oluline oma projekti ja mis on omamoodi üldisem funktsioon, mida saaks kasutada hiljem. Tahad omamoodi on konkreetne nimekiri meeles aga projekti, et hakkate koos ei kavatse olla projekt, mida lõpetada. Teisisõnu, asjad lähevad muuta, kui oled arenev ala, ja sa tahad jätta ruumi, et. Keeran selle üle Ben kes läheb rääkida natuke struktuur. [Ben] ma lähen rääkima rohkem tehniline pool veebi arengut. Lähme üle mõned põhitõed esimene. Kui sa teed web app, osakonnale, et sa lähed pea olema, on sa lähed on mõned asju toimub kliendi poolel - see tähendab, et kood, et sa oled brauser võtab saidilt ja JavaScript, HTML, CSS kraam. See on kõik kliendi poolel. Sa lähed on muud koodi, mis jookseb serveripoolne mis jälgib kõiki andmeid, mida inimesed saata teile otsustab, kes anda mida, midagi sellist. See on vaid mõned terminoloogia, et te olete kõik tuttavad, mida me räägime. Peale selle jagamine on hea mõelda oma web app seisukohalt paar erinevat komponenti. Kui sa teed veebi arengut üks asi, mida sa peaksid alati püüdnud teha on vähendada keerukust. Keerulisem kood on suurem võimalus on teha vigu, raskem on hiljem muuta. Niisiis, kui te ei lahku oma app mõned erinevad tegevusalad See - ja saate vähendada omamoodi summa cross-ala side - mis aitab teil palju pikemas perspektiivis, kuna need vähendavad vigu. Et olla konkreetne, tavaliselt inimesed jagavad web app - Need on omamoodi buzz sõnad nüüd, kuid nad on ikka kasulik. Te olete kuulnud inimesed räägivad mudelid, arvamusi ja kontrollerid. Mudelid on tegelikud andmed, et teie app läheb tegelema. Näiteks oma kass Facebook, oma mudeleid oleks - sa tahaks olla eeskujuks nagu postid ja mudel kasutajaprofiilid, midagi sellist. Teie seisukohad on, kuidas te esitate, et andmeid oma kasutajatele. Te võib-olla 1 vaade vaadates ühe posti ja kõik kommentaarid ja erinevat seisukohta oma seina, mis on nimekiri kõigist postitustest mis on suunatud teile, ja erinevat seisukohta teie uudistevoo - midagi sellist. Lõpuks olete juhtimise kontrollerid, mis on põhimõtteliselt, kui inimesed teile saata postitusi ja teete uudiseid oma back-end süsteem, sa juurdekasvu kamp lugejad ja mida iganes. Need on oma kontrollerid. Ma lähen räägin enamasti umbes mudeleid. Vaated on tehniliselt väga raske ja küsimus on rohkem projekteerimisel neid Kontrollerid hakkavad olema konkreetsed iganes sa oled projekteerimisel. Kuid on ka mõned päris üldine tehnikaid, mida saab kasutada teha oma mudeleid ilusam ja lihtsam töötada, et ma arvan, et on väga kasulik. See on enamasti saab olema, kuidas tegeleda oma web apps andmed kena viisil. Peamised küsimused, mille mudelid on see, et nad elavad, kui klient ja server ja sa pead mõtlema, a) kuidas neid saada - kõik asjakohased sätted - serverilt kliendile ja b) kuidas hoida neid sünkroonis. Kasutajad ei kavatse soovite teha mõned uuendused. Nad lähed tahan teha uut ametikohta. Nad lähed tahan meeldi asju ja asju, kui teil meeldib. Need on peamised tehnilised probleemid tegelevad mudeleid. Esimene asi, mis sa lähed tahan küsida on milliseid andmeid läheb see mudel ja milliseid päringuid me tahame teha - see tähendab, kuidas me vaadata mudeleid? Oma kassi Facebook näiteks Teie postitus läheb on autor sellega seotud, mõned seina post tekst ja saaja seina post. Ja siis võiksite pärida, et hunnik erinevaid viise. Sa tahaksid vaadata seda, kes kirjutas, mis pärast, poolt, kes said mis lisada, äkki kuupäeva järgi postitanud. Aga kui sa lähed seda kuupäeva, siis pead lisama teises valdkonnas oma postitus millal see oli tegelikult lähetatud. Need 2 tegurit - milliseid andmeid soovite kasutada ja kuidas sa tahad, et vaadata seda - siis peaks mõtlema kõigepealt, sest nad sõltuvad teineteisest, ja see saab olema raskem, et lisada need hiljem. Leidub muud kaalutlused. Kui sa mõtled, kuidas sa tegelema mudelid server mida soovite vaadata on - sa põhimõtteliselt tahad teha server nii lihtsaks kui võimalik. Doing asju kliendi poolel on tavaliselt palju kiiremini, kui te ei saa seda teha üksnes kliendi ei tee mingit võrgu taotluse. Idee on teha nii palju küsimusi kui võimalik kliendi. Ainus probleem on, et on see, et kui sa taotleda kõik andmed alguses siis see läheb võtab kaua aega laadida. Nii, mõte on leida kuldne kesktee vahel on piisavalt andmeid kliendi , mida saate teha enamik oma tööd seal, kuid mitte lihtsalt edev kõike korraga nii et sa saad tõesti aeglane laadimise alguses. Näiteks oma kass andmed sa ilmselt tahad tõmmata hunnik viimastel seina ametikohta. Sa ei taha, et tuua neid kõiki, sest see võiks minna tagasi paar aastat. Aga sa ei taha, et tuua neid ükshaaval sest et tooks palju võrgu koormus. See on sageli üsna raske - kui teil on andmebaas töötab - see on tihti üsna raske muuta, milliseid andmeid teil on see - see tähendab, et lisada uus andmebaas veeru või midagi - nii et üks hea strateegia on tegelikult lihtsalt hoida palju oma andmeid teksti kämp - JSON kämp - JSON on JavaScript Object esitust - Põhjusel, et see kasulik on, sest siis saad lisada uusi omadusi kõik need JSON plekid muutmata oma andmebaasi. Ainuke negatiivne külg on see, et kui sul on hunnik väljad et sa hiljem lisada - nagu peidetud, et JSON kämp - siis on raskem päringuid nende sees andmebaasis. Näiteks, kui sa hiljem - kui teil on olnud oma ametikohale, mida me arutasime varem vaid autor, saaja ja tekst - sa oleks võinud ka JSON kämp ja siis kui sa hiljem soovis lisada kuupäeva väli sa ei pea muutma oma andmebaasi. Sa võid lihtsalt lisada kuupäevad, et kogu tekst väljad. Ja siis oleks võimalik vaadata neid kliendi poolel, aga sa ei saa pärida neile serveripoolne sest see on peidetud, et tekst. Teine küsimus, et sa tahad mõelda kuidas oma kliendi ja serveri hakkavad suhtlema. Sa tavaliselt tahavad hoida seda võimalikult lihtne. Sa võid olla nagu get-mulle-andmete nõudmisel looma-a-new-objekt asi ja update-vana-objekti taotluse. Ja need oleks kõik teistsugune URLid server, et te - et brauser oleks - mida saab kasutada AJAX taotlusi kõik need ja kas saada või posti andmed. Jällegi, meie kass Facebook näiteks siis võiks olla, et URL saada individuaalset postiga ja soovid on link, et luua uue müüri post ja võibolla URL üleslaadimise oma profiili pilti, midagi sellist. Aga jälle, see on eelnevalt tõmbad enamiku oma andmed, nii et sa ei pea hoidma tegemise võrgustik taotlused. Seetõttu ei pruugi sa tahad on, et individuaalne get taotluse ühe posti ja selle asemel, siis oleks lihtsalt tahan 1 get taotlus kogu seina. Ja siis, kui sa üritad leida tasakaal, sest - see ka läheb sõltub teie taotluse. Sest kui te ootate, et inimesed on ainult 10 või 20 seina ametikohta et saab trahvi. Aga kui sa oled oodanud nad on tuhandeid siis selle taotluse võtab liiga kaua aega, ja et te võiksite lisada saan-kõik-posts-sest parameeter. Need kõik olete ilmselt läheb soovite sünkroonida andmeid JSON - JavaScript Object märke. Päris palju iga keele tegeleb JSON väga hästi. JQuery on see kena getJSON funktsioon, mis teeb kõik raske töö teile. Ja PHP seal on ka väga kena JSON kommunikatsiooni funktsioone. Niisiis, see on ilmselt parim vorm saata oma mudeleid edasi-tagasi. Näitena sellest, mida me oleme rääkinud siiani siin on näide voolu oma kassile Facebook rakendus. Ta alustab oma brauseri taotlev baasi veebilehe URL. Server ilmselt saadaks üle staatiline HTML ja mõned JavaScript ja CSS. See on tavaliselt parim mitte teha mingeid rendering serveris. Sa ilmselt ei taha - mida server ei lähe sinna läheb sätestatakse loetelu seina ametikohta ja tekitavad mõned HTML iga üks ja saates selle üle. See on tavaliselt parim, mida teha, et kliendi poolel, sest muidu iga kord, kui soovite uuesti teha midagi, mida sa pead tegema server taotluse. Ja et väga kiiresti annab teile palju kulusid. See on tavaliselt parim lihtsalt laev saadab maha staatiline HTML ja siis JavaScript ja CSS, mis teeb jäätmete käitlemise kliendi poolel. Niipea, kui see kraam tuleb, siis võib olla - JavaScript - seda saab teha taotluste seina andmed ja värki, ja pärast, et server on põhimõtteliselt lihtsalt teeme andmebaasipäringud ja kontrollimise õigust. Ainus oluline asi on see, et ei saa saata rohkem kui muud kasutajad seina ametikohta et sa ei tohi näha. See on põhimõtteliselt väga õhuke juurdepääsu kiht oma andmebaasi, ja siis kõik näitavad andmed - kõik vaated ja asjad - need võib juhtuda brauseris ja seejärel, kui sa tahad teha posti või midagi sa lihtsalt saata uue taotluse. Seal on ka mõned fancy stuff saate teha peale seda. Seoses täpsemad tehnilised andmed, arendada lihtsas JavaScript olla natuke valus, nii on mõned raamatukogud ja tööriistu, mis aitavad teil palju sellega. Ma arvan, et te olete kõik ilmselt kuulnud jQuery, mis muudab teed HTML renderdamine ja manipuleerimine on palju lihtsam - on palju fancy funktsioone pleegib sisse ja välja, ja teeme zippy animatsioone. Seal on ka see raamatukogu kutsus Underscore.js. See on palju kasulikke kasuliku funktsioone, stuff, mis te ootate JavaScript olema et see tõesti doesnt - asjad lohistades massiiv, eemaldades koopiate nimekiri, või lamedamad nimekirja nimekirju. See on vaid väike koodi proovi. Alakriips on ton neist kena funktsioone, mida soovite, et teil oleks kogu aeg. Ja siis on veel 1 raamatukogu, et tahaks veeta natuke aega nimetatakse Backbone.js sest selgroog tõesti aitab teil tegeleda mudelite kliendi poolel ja palju segadust, et see võib põhjustada. Selgroog sulle selle mõiste mudelid ja kogud JavaScript mis on põhimõtteliselt täpselt nagu JavaScript objektid JavaScript massiivid kuid neil üritustel, kui muudad oma omadused. Just nagu JavaScript, sul võib olla juhul, kui nuppu saab klõpsatud või midagi Nende selgroog mudelid ja selgroog kogud eetrisse asjad et need muutuvad. See tähendab, et saate lihtsalt kirjutada midagi sellist koodilõik siin - see ütleb, kui sa lisada midagi postitusi array te tõmmata kogu seina. Ja see oleks öelda, kui post on mitu sarnast muutub, sa teavitab kasutajat, et keegi tahtnud oma postitus. Või kui mõni omadus post muudab sind tõmmata post. Asju, mis säästab tonni keerukus, sest muidu kui sul ei ole mõned raamistik niimoodi siis iga kord oma koodi, et sa muudad midagi postitus, sa pead meeles pidama, ise helistada kõik muudavad funktsioonid ja värki, ja kui sa tahad lisada midagi uut, mis juhtus iga kord, kui modifitseeritud post sa pead läbi minema iga koht oma koodi, mida muudeti pärast ja lisada, et uus asi. Raamistik, nagu see eemaldab palju, et vahel kiht side mis muudab teie kood keeruline ja raske säilitada. Seal on natuke vaateid ka. Ma jätan kõige selle Billy, sest nad on tehniliselt väga raske. Kasuta jQuery oma seisukohti. See on praktiliselt nagu vajadus selles punktis. See muudab kõik palju lihtsamaks. Seal on palju raamatukogusid. Kui teil on keeruline kasutajaliides elemente, kui sa tahad auto-complete asi või nagu üks neist fancy multi-valijad - kui sa tahad midagi sellist, siis tuleb ilmselt lihtsalt otsida umbes ja leiad hea raamatukogu, mis teeb seda, mida sa tahad. Billy selgitan lähemalt tegelikult raske osade vaatamist. Samuti, nagu pool tähele, selgroog on mõned funktsioonid tegemise seisukohti suhelda kenasti mudelid - pilk dokumentatsiooni kõik need raamatukogud, tegelikult. Lihtsalt pilk docs. Nad on väga hästi kirjutatud ja lihtne järgida. Üldiselt saab päris palju just Google, kui teil on probleeme. Seal on palju inimesi, kasutades neid. Ma arvan, et see on viimane märkus. On ka mõned täpsemad asjad, mida saate teha kui te otsite, et muuta oma web app ekstra vinge. Seda saab teha - uus HTML5 spetsifikatsiooni on palju väljamõeldud asju saab teha. Kohalik ladustamine - mis on saate andmete salvestamiseks brauseris - selle asemel, et minna tagasi ja uurida server kõike, saate hoida mõned ta kliendi ja et isegi võimaldab inimestel - mõnel juhul võib see isegi saate kasutada veebilehe offline. Seal on see asi, mida nimetatakse websockets mis on teistsugust võrgu side kus selle asemel, et lihtsalt teed ühe taotluse, saad vastuse ja sa oled teinud, hoiate avada ühendus serveriga ja nii saate teha asju reaalajas. Niisiis, kui sa püüad teha chat app, sa võiksid kasutada websockets suhelda edasi-tagasi, nii et sa ei pea pidama, taotledes "Oh, server, kas keegi saata mulle chat?" iga 10 sekundit või midagi. Seal on ka huvitav HTML5 funktsioon, kus saab teha see välja näeb lehekülje URL on muutumas ilma kunagi tegelikult uuesti laadida. Võite kasutada edasi ja tagasi nupud tegemata kamp võrgustik taotlused. Asju, mis on väga kasulik, eesmärgiga muuta see kiire, kuid ka tööd nagu web app peaks. Seal on ka see asi, mida nimetatakse CoffeeScript. CoffeeScript on erinev keel, tegelikult, et koostab alla JavaScript. Sa oleks kirjutada kõik oma koodi CoffeeScript ja siis sa jooksed selle koostaja, ja ta sülitab välja JavaScript fail, mida saate lisada oma veebilehel. Põhjusel, et CoffeeScript on tore on, sest see läheb lahti palju imelik juhtumid, et JavaScript on kui võrdne võrdsete, ja võrdne võrdsete teha erinevaid asju, või meeldib - see on ilusam süntaks tegelemiseks massiivid ja funktsioonid. See on väike väljavõte CoffeeScript mis toodab loetelu väljakud 10 ^ 2-1 ^ 2 vastupidises järjekorras. Nagu näete, CoffeeScript sageli saab väljendada 1 rida mis võtaks 5 rida JavaScript. Seda saab teha asju palju lihtsam. See on natuke uus süntaks õppida alguses, kuid kindlasti teeb sind tootlikumaks pikemas perspektiivis. Võite kasutada ka muid keeli server kui PHP - keeltes nagu Ruby, Python, või pole isegi projekti nimega node.js mis võimaldab teil kasutada JavaScripti serveris. Isiklikult ma tõesti vihkan PHP. Ma lihtsalt ei meeldi töö sellega. Kui sind ka, arvan, et see on kohutav cluge keele, siis saate kasutada üks neist asemel. Üldiselt, kui sa tahad midagi teha ja sa ei tea, kuidas sa seda teed, lihtsalt otsida internetist. On tonni ja tonni ressursse eriti - StackOverflow on suur. See on see veebileht, kus programmeerijad küsida üksteiselt küsimusi. Te olete sattunud, kui sa olid võttes hädas CS50 probleem komplekti. Ja seal on tonni raamatukogud teevad päris palju midagi, mida tahaks. Kui sa tahad midagi teha ja sa ei tea, kuidas seda teha, ei saa eeldada, et see on võimatu. Lihtsalt vaata ringi ja te võite leida mõned head vahendid. Üldise pakkima, Peamine takeaways on hoida asjad lihtsad. Keerulisem kood on alguses ja mida rohkem te proovida ja teha fancy stuff, seda kauem võtab, et saada midagi tegelikult funktsionaalne ja seda raskem on muuta hiljem. Niisiis, teha asju, loll, lihtne viis esimest. Selleks, et minna koos, et ei karda viskamine ära vana kood või puhastamist kuni palju. Üldiselt, kui sa tegelikult midagi töö, see on palju lihtsam mõelda kui, kui sa oled ikka esireas kuidas ma saan panna see kõik koos. See on kõige parem teha lollim võimalik disain, mis töötab ja siis seda parandada korduvalt kui üritavad kõik esimese korraga õigesti. Seoses klient-server jagamine, proovige ja hoida oma server väga lihtne - vaid andmebaasi ja mõned autentimise ja ei tee ühtegi rasket tööd seal. Kas kõik teie keeruline värk kliendi poolel brauseris JavaScript nii palju kui saate. Vaata ringi raamatukogudes, et muuta oma elu paremaks. Alati on parem kasutada koodi, et keegi kirjutas kui te - ja mitte kirjutada ise. Seal on palju asju internetis. Google on su parim sõber. Google on programmeerija parim sõber. Jah, kindlasti ärge kartke vaadata enda ümber asju. Hea küll. Ja üle Billy. [Billy] Tegelikult, enne kui ma alustan mõned disaini värk, kas keegi on mingeid küsimusi Ben midagi, mis ta rääkis? Okei, hästi. Jällegi, andke teada, kui midagi ei ole selge, või kui soovite, et minna üle midagi natuke rohkem. Ma lähen tagasi astuda natuke ja rääkida rohkem põhilisi osi disain. Ben mainitud mudeli nimega - sorry, mudel kontroller vaade süsteem mis on omamoodi tehniline aspekt, nii et ma lähen vaatama seisukohti konkreetselt ja ma lähen alustada, kuidas soovite töötada, et tundub kena. Siin on natuke tõesti põhi malli meie kass Facebook. Ma arvan, et seal on mõned põhialuste kaasaegse UI disain mis on väärt pealevõtmine. Võite märgata, et on palju tühja ruumi kogu lehe palju ruumi asja. Ei tunne nagu teil on squash asjad lehel. Sa tahad jätta palju ruumi avatud, ja kui te lähete peaaegu iga kaasaegse veebisaidi näete seal on valge kõikjal. Seal on valge kohati sa ei oota. Sul on see värvipalett, ja see on mõistlik alguses valida värvipalett, et sa lähed, et töötada ja arendada. Sul on ka - see aitab valida kirjatüüp ja et kuidas sa omamoodi koostööd nende konkreetsete põhialuste disaini. Sul on tüüp, sul on värvid, ja siis saab objekti sobivad kõik muu, kui vaja. Nii, nagu ma ütlesin, koos oma värvilahendused, mida soovite kasutada julgemaid värve oma värvilahendused säästlikult. Päised on kena. Nupud on tore, et on tõesti suur, kriiskav värvid. Aga üldiselt, kui teil on veebileht, mis on värvid kõikjal kõik jõllis sulle näkku, see lihtsalt tundub täis, ja see ei ole hea. Tahad üldiselt kasutada valguse värvi. Proovi uuesti, vali päris ühtset värviskeemi. Sul võib olla neid vähe pritsmete palju värvi - mida saab vaadata päris kena, kuid soovite kasutada neid üsna säästlikult. Nagu ma ütlesin, et sa tahad olla minimaalne. Vähem on peaaegu alati rohkem. Kui te ei näidata midagi või ei näidata midagi, ja sa oled selline kindel, kas see peaks olema seal vaikimisi - ilmselt sa oled parim välja jättes välja. Võite alati lisada see hiljem. Jah, et hoida asjad lihtsad. Aga mis kõige tähtsam, mida soovite uurida mitme designs. Ärge arvake, et kui te teete koha, teil on see oma peaga, et sa lähed teha saidi teatud viisil, ja see läheb välja täpselt niimoodi. See saab olema sinine header ülaosas ja sinine pool baari ja siis kollane sub-header asi. Sa tahad teha mitu malle. Võite - kui sa oled hea Photo Shop, võite selle lahti ja omamoodi disain veebilehe, kui soovite seda vaadata. Kui ei, siis võid kasutada paberit ja pliiatsit, kuid tühjalt kuni mitme designs. Sa tahad põhimõtteliselt on loodud, kus teil on palju erineva kujundusega, ja kui üks jõuab töö, siis see on suurepärane. Kui üks jõuab suuda, siis sul on alati veel üks pöörduda. Üldiselt ei tunne teid tuleb piiratud et olenemata disaini sa esialgu otsustada. Disainilahendused on väga muutuv ning osa tähtsust mudel kontroller vaade süsteem on, et saate vahetada ja sealt erinevaid arvamusi, mida soovid. Võite kõikuma andmed üks viis, ja siis otsustada, oh, tegelikult, see ei tööta hästi. Ma arvan, et see on nagu liiga keeruliseks või seal osa siin, mis ei ole tegelikult töötab, nii et ma olen lihtsalt läheb täielikult loobuda seda seisukohta ja swap täiesti uuega. Me saame siiski kasutada vanade mudelite ja vana kontrollerid. Me saame teha kõike server ja klient, sest me oleks varem. Kuid tegelik laine andmeid kuvatakse läheb veidi erinev. Niipalju kui tegelikult rakendatakse disain, mida soovite, kui sul on mõni kujunduse töötas välja paberil või Photo Shop või mis iganes, seal on mitmeid vahendeid, mis on kättesaadavad teile. Esiteks sa oled väga tuttav, mis on oma HTML, PHP, või mis iganes keelt te kasutate ainult koodi staatilise veebisaidi lehekülgedel. Sa oled teinud palju HTML millist annab teile neid silte , mida saab panna asju, ja põhimõtteliselt on see viis, kuidas korraldada oma sisu. Näiteks, teil on päis seal, et sa lähed on header tag, ja see saab olema mingi teksti sees see, mis on ilmselt saab olema teises tag. Siis on vasaku võibolla mõned erinevad lingid ja need lähevad kõik olema eraldamiseks. Niisiis, põhimõtteliselt HTML keskmes on viis jagamisel lehe kuidas sa lõpuks soovite vormindada. Nii et taas, sa oled seda varem näinud. Sa oled päris rahul sellega töötamist nüüd arvestades, et sa oled teinud viimase pset loodetavasti nii et ei tohiks olla probleem. Siis on CSS, mis põhiliselt tegeleb kogu disain staatiline aspekte. Oleks hakkama kõik värvid, kõik positsioneerimine eri elementidest kus nad lähevad üksteise suhtes, kui suured need on, erinevaid positionings et teil oleks - Teisisõnu, võite lasta asjad kinnitatud nii, et kui sa keri nad jäävad, või siis on asjad võrreldes teiste elementidega. Kõik seda sorti asjad on CSS. Lisaks saab teha erinevaid kaunistusi, võite lasta teksti värve, teksti mõju, kõik sellised asjad. Ben andis tõesti hea seminar sellel nädalavahetusel, ja nii ma kindlasti seda kontrollima, kui te kavatsete olla teeme mõned fancy asju CSS. CSS3 on tegelikult uusim versioon CSS, ja seda saab teha igasuguseid tõesti ilusaid asju. Seda saab teha kalded; teil on kena, ümarate nurkadega, mida saab teha igasuguseid asju teha oma kodulehel vaadata moodsam ja fancy. Järgmiseks töövahendiks on JavaScript ja jQuery mis Ben rääkis natuke, aga ma saan veidi sügavamale. JavaScript, kui olete töötanud koos sellega natuke, või vähemalt seda näinud loengu on selline viis dünaamiliselt teeme asju HTML. HTML, nagu te teate, on püsiv, nii et kui teil on HTML te ei saa seda muuta. Aga JavaScript, mõnes mõttes on viis olla võimelised muutma HTML. Nii saad teha seda, ja see on tore, aga JavaScript on tõesti valu töötada. See on nii pikk ja nüri ja teha isegi kõige lihtsamaid asju nõuab palju ridu JavaScript. Niisiis, jQuery on põhimõtteliselt raamatukogu JavaScript, mis lihtsustab kõike seda. Ta ütleb, okei, kui sa tahad olla kandiline kast tulla vasakult ja fade lehel, et see on keset, JavaScript, mis võtab - Ma ei tea, sada read teha ja oleks valu, ja sa tuled sellest välja vihkab kõike veebi programmeerimine. JQuery siis põhimõtteliselt on element-dot-fade-in, või midagi sellist. Niisiis, väga, väga lihtne funktsioone, mis laseb sul igasuguseid cool animatsioone ja selline asi. Teine asi, et need 2 on tegelikult hea on lihtsalt teed dünaamiline asjad veebilehel. Niisiis, selle asemel et lihtsalt võttes oma HTML-lehe - mis kuvab teatud andmed, kuid tegelikult ei midagi teha - JavaScript ja jQuery lasen sul nupud, saate klõpsata, saab tõmmata elemente ja re-order neile peale ja sorteeri need ja on uusi elemente lisada või eemaldada. Saate lisada-kustutada, et selline asi. Niisiis, jQuery teeb tonni lahedaid asju. Ja Vipul tegelikult annab seminari ta täna, ma usun, 5-kell, nii et kui sa ei jääda umbes nii kaua, et oleks - 5 või 4? Neli. Vabandust. See on tegelikult õige pärast seda, nii et ma soovitaks kinni umbes see, kui saad. JQuery on super, super kasulik, ja sa pead olema võimeline tegema palju tore asju teha päris palju iga web arendusprojekti. Nüüd ma lähen sattuda selline eristamine. Olen rääkinud põhimõtteliselt umbes kasutajaliides. Kasutajaliides on lihtsalt disain saidile. Aga seal on mingi teine ​​mõiste, mis on kasutaja kogemus. Need kaks on väga erinevad. Interface on kindlasti üks osa elamusest. Teisisõnu, kui sa lähed kodukale, te vaatate liides. See on osa sellest, kuidas teil tekib kohas. Aga kasutaja kogemus on rohkem. Kasutaja kogemus on, mida tundub, et kasutaja saab oma saidi. Niisiis, on ilmne, kasutajaliides on osa sellest. Ja see on kindlasti vajalik osa, kuid see ei ole piisav. Teisisõnu, kui teil on kena kasutajaliides, ja see on ilus ja värviline ja kõik see, See on tore, aga kui kasutaja läheb saidile, näeb ilus kujundus ja see on segaduses kõik, ei tea, kuidas midagi teha, siis ilmselt olete teinud tõesti vaene veebilehel. See on omamoodi kus kasutaja kogemus on sisse Ma lähen rääkida natuke UX disain - UX on lühike kasutaja kogemus - ja selline, kuidas saab tagada, et teil on hea kasutaja kogemus. Esimene punkt on see, et võite kujundada veebilehe, kus kasutaja ei saa midagi teha, et et kasutaja võib-olla tahab. Aga kui kasutaja ei saa aru, kuidas teha neid asju - Teisisõnu, kui kasutaja ei ole hea mõte, kui nad lähevad oma veebilehel, "Oh, kui ma tahan uuendada oma profiili, siis ma vajutan seda nuppu, või kui ma tahan postitada kellegi seina, siis ma lähen oma seina ja kliki väikest kasti. " Kui kasutaja ei tea, et siis sa tegelikult ei ole tegelikult rakendada, et selle funktsionaalsuse õigesti. Osa rakendamise funktsioon on see, et kasutajad on tegelikult võimalik seda kasutada. Ja see võib olla heidutav - võite teha kodukale, ja seda saab teha igasuguseid imelisi asju, kuid siis pead inimesi testida ja öelda: "Ta ei saa seda teha. Miks ei võiks ta seda teha? "Ja saate öelda neile tagasi, "Noh, see on võimalik. Sa lihtsalt pead minema 7. rippmenüüst selle varja leht, vaid leitakse link allosas paremas nurgas "või midagi. Ilmselt sa ei taha seda. Sa tahad, et see oleks selge, et oma kasutajatele, mida nad peaksid tegema, ja see peaks olema lihtne ja intuitiivne neid. Teine asi, et sa tahad proovida teha on, kui keegi läheb, et minna saidile ja 9 out of 10 korda teha tegevust, ja 1 out of 10 korda teha hagi B sa ilmselt tahad keskenduda oma kogemusi hagi A. Teisisõnu, sa tahad teha väga, väga selge, kuidas seda teha A. Peaks olema ees-ja center - saidile minna, näha, oh, see on seal. Arvestades B ilmselt tahad olla selge, kuid võite jätta veidi rohkem taustal. David annab hea näide selle kohta loeng, mis on Boston T süsteemi. Kui te lähete Boston T ja soovite osta pilet, teil sattuda 5 menüüd enne saate tegelikult osta pilet eest $ 2, $ 2,50 väärtus, mis on, kui palju kulub sõita metroos ühes suunas. See on probleem, sest enamik inimesi, kes sõidavad metrooga ilmselt tahad minna ühes kohas, osta oma pileti, mine kohe. See ei ole loogiline, et nad peavad minema läbi palju erinevaid menüüsid sinna jõuda. Parem kasutaja kogemus oleks kiire nupule esilehel et lihtsalt ütleb, "osta ühe suuna pilet," ja et paneks kõik standard vaikeväärtusi ja siis, kui keegi tahab osta erineva pileti peale, nad ikka, muidugi on võimalus, kuid sa oled optimeeritud ühise kasutamise puhul, mis on tõepoolest oluline. Näete näiteid Facebookis, eks? Kui te lähete Facebook ja soovid postitada staatus, see õigus ülaosas, mis on see, mida sageli teha tahad. Niipea, kui sisestate lehel saate teha levinumaid asju, mida sa teha tahad. Kui sa tahad teha veidi keerulisem asju, et ma tahan minna oma sõbra seina ja lisada pilt peal - mis ma tahan teha sageli, kuid mitte nii tihti, kui postitad staatuse uuendusi - nii sel juhul, writing oma nime ülaosas nuppu oma profiili, ja siis veel, et see on õige ülaosas on, kui ma olen saanud oma profiili. Jällegi, ma olen optimeeritud prioriteediks kõige levinum kasutada juhtudel. Teine oluline asi on see, et sageli inimesed justkui üritavad ümber öelda, olgu, nii et ma tegin saidi ja inimesed on leida see segane, ja see on probleem, eks? Loomulikult, ma ei taha, et inimesed segi sisu sivustoni. Kuid viis, kuidas lahendada, et ei ole midagi avanes öeldes Hei, ma lähen õpetada teile, kuidas kasutada seda veebisaiti. Samm 1 - klõpsake seda nuppu. 2. samm - minna siin. Muidugi, see on nii ümber - see on nii, et võid öelda inimestele, mida teha, kuid see on tõesti ei optimaalselt. Kui ma minna veebilehel ja äkki ma olen pommitatakse selle juhendaja, et on mulle mida teha ja kuhu minna, ja kõik see, mis ei ole lõbus minu jaoks. See ei ole hea kogemus minu jaoks. See on selline valu. Tahan lihtsalt alustada tehes asju. Inimesed hakkavad sulgeda oma dialoogiboksis või tulla juhendaja, ei tea, mida teha, ja siis kurdavad, sest sa ei öelnud neile, mida teha. Viis lahendada seda ei ole, andes mingeid juhendaja või suunas - midagi sellist. Nii palju kui saate vältida seda, sa tõesti tahad, et näidata kasutajale, mida teha lihtsalt laadi, kuidas veebileht on sätestatud. Teisisõnu, kui ma lähen Facebook ilma sisse logimata, Esimene asi, mida ma näen pealehel - see on natuke login kasti. Niisiis, duh. Ma pean sisse logida See on seal. Arvestades, et kui ma läksin Facebook ja ma pidin kliki vähe link allosas mis ütles "sisse" ja ülejäänud leht oli lihtsalt mingi pilt või midagi, Ma tõesti ei tea, mida teha, eks? Ma segi ajada. Niisiis, see võiks mulle öelda, et mine sinna ja vajuta nuppu, et logida sisse, või log in nupp võiks olla õigus ülaosas, kuhu ma lähen, et seda näha. Tahad alati näidata kasutajale, mida teha, ja mis peaks olema omane leht ise. Kui sa mõtled kujunduse ja pilkav up erinevaid viise väljendades oma kodukale, sa tõesti tahad, et mõelda, mida kasutajad hakkavad teeme ja kuidas te saate näidata neile, mida teha. Üks viimane asi on testimine on tõesti oluline. On suurepärane, et saada keegi - saada sõber saada, keda sa ei tea isegi - kes pole kunagi näinud kohapeal enne saiti kasutada. Kuna olete töötanud saidi tundi, sa oled jõllis see, ja sa tead täpselt, mida teha, et ilmselt sa lähed testime asju, mida olete töötanud ja et te teate töö. Aga kui keegi tuleb mööda ja kasutab ala, mis ei ole kunagi kasutanud seda varem, see on unikaalne kogemus, sest sul on keegi, kes ei ole eelnevalt teatavaks ala laskumist see, et nad ei kavatse on tegelikult ei tea, mida teha või millist kasutada juhtudel esineb neid. See on tore. See on unikaalne, sest nad on oma olemuselt isiku tühjaks meelt. Nad võivad öelda, kui midagi on segane või ebaselge. Nad võivad anda teile idee, just see, mida kasutaja kogemus saidil on. See võib olla väga raske öelda, et ise, nii et kindlasti kutsun teid kui sa arendada oma projekte - kui sa teed veebipõhine projekte - saada inimesi kasutades saidi juba sul mingi funktsionaalne demo. Nüüd ma lähen rääkida natuke sellest, kuidas hallata web arendusprojekti. Me oleme läinud üle, kuidas seda teha tehniline back-end side, kuidas saab kujundada tõesti hea koht, ja see on tore, kui te töötate ise, vaid - isegi kui te töötate ise ja eriti kui te töötate meeskond projektijuhtimine muutub suur probleem. Sa oled justkui kuulnud projektijuhtimise erinevates vormides alates algkooli, kui sa olid rääkinud grupitöö. Sa pead tegema, suhelda, kõike seda. See kõik kehtib endiselt siin, kuid on olemas mõned unikaalsed asjaolud arvutiteadus, et sa tahad olla teadlik, ja sa tahad teha kindel, et sa sellega hakkama ka. Räägin kõigepealt natuke meeskond, et saate sisse On väga oluline, et valida õige suurusega meeskonna kallal, ja teie lõplik projekt ma arvan teil on võimalus valida 1 kuni 4 inimest, kas ma olen õige. Sa tahad teha kindel, et sa ei ole lihtsalt valida inimeste arv et te soovite töötada, sest nad on oma sõpradele. Tahad valida meeskond, kes on hea suurus ja mis saab tööd teha. Seal on kaubandus-off, millel rohkem inimesi versus vähem inimesi. Kui teil on rohkem inimesi, ilmselt rohkem tööd saab teha sest teil on palju inimesi, palju koodi, palju ideid, ja see on kõik suurepärane. Aga see nõuab ka palju rohkem juhtimise ja palju suhtlemist. Teisisõnu, kui teil on 4 inimest töötavad sama projekti ja nad kõik toimetamine sama kood, rohkem või vähem nad igasugu vaja teada mis toimub nii ta vajab sind - Kui lisate mõne uue funktsiooni on justkui öelda inimestele - Ma lisada see, Muudan seda sel viisil - eriti kui sa sattuda tõesti sügav värk nagu mudelid ja kontrollerid, mis on tegelikult läheb mõjutada, kuidas sait töötab. Kogu meeskond peab olema teadlik sellest, nii et sa pead veenduge, et olete mitte valida liiga suur meeskond, et see saab olema raske et muuta see side. Sa ka ei taha valida piisavalt väike meeskond, et sa ei kavatse olema võimeline suhtlema, sest see on lihtsalt teile. Teine asi, mida kaaluda, on see tasakaal, kus inimeste oskused on. On tore, kui sa oled kõik väga head programmeerijad. Aga kui sa oled kõik back-end inimesed, siis teie sait ei kavatse vaadata väga hea sest sul on see suur andmebaas ning see super-kiire otsing päringud - mis on suurepärane - aga kui sa lähed, see on nagu 1990 saidi punane ja sinine kõikjal, ja see ei ole hea. Pange tähele, et Ben ja ma meeskonnana on väga tore, sest ma olen omamoodi rohkem esiotsa, me mõlemad suhelda keset lõpu ja Ben on tõesti hea back-end stuff, nii et toimib tõesti hästi, sest meil on võimalik kujundada mistahes kohas ja põhimõtteliselt augud selles kohas, mis peavad olema täidetud saab täita kas üks meist, või ka mõlemad. Sa tahad teha kindel, et ei ole auke oma meeskond. See on okei, kui seal on natuke kattuvad. Teisisõnu, kui teil on 2 inimest, mis on nii hea, kolp, , mis võib olla hea, kui hästi, sest nad saavad üksteist aidata probleemidega et nad on. See võib olla probleem, kui sul on ainult 1 isik, kes on vastutav teatud asi ja nad joosta probleem, et sa ei taha olla natuke kattuvad aga kõige tähtsam soovite veenduda, et kõik on võimalik auke täis. Viimane asi - ja see peaks olema selge, kuid see ei ole sageli. Sa tõesti tahad olla lõbus. Punkt selle lõplik projekt CS50 ja sageli punkt veebiarendust üldiselt ei ole lihtsalt seda tööd tegema, sest see peab tegema. Sa tõesti tahad olla lõbus, ja sa tahad olla teha midagi mis on motiveeriv te tööd selle kallal. Kui iganes sa teed on valu istuda ja tööd, siis sa ei ole õigete projekti. Kas sa tahad valida midagi, mis sind huvitavad, sa tõesti tahad, et näha tulemust, sa oled põnevil, kui sa saad uue ettekujutuse midagi, mida võiks teha - nii on igasuguseid projekte seal, et ma olen kindel, leiad - igaühel on midagi, mis tõesti intriig neid kui nad teevad veebipõhine projekt. Ma ütlen kohe uuesti. Kui projekt tundub valu ja te ei taha töötada see, Vali teine ​​projekt. Vali midagi, mis tegelikult sind inspireerib. Ben mainis seda mõistet iteratsiooni natuke, ja ma tahan minna üle natuke. See on tõesti oluline teha Puuskittain kus teil saada midagi funktsionaalne. See võib olla hea, kui teil on selle kava kodulehel, et kavatseb teha A, B, ja C, ja varsti see sinna. Aga sa oled ummikus selles faasis, kus te töötate, ja selle kallal, kuid midagi ei saada teha. Sul ei ole midagi näha ja käegakatsutav, funktsionaalne asi. Mida sa tõesti tahad teha nii palju kui tundub selline valu mõnikord tööd midagi ja siis mingi kork ära, et see on vähemalt stabiilne, töötab versioon, isegi kui see ei ole kõik omadused, mida te soovite. Ja võib-olla on mõned funktsioonid, mida sa tõesti tahad, et lisada kuid sa lihtsalt ei saa sest sa tahad saada selle saidi funktsionaalsest aspektist. Ja et sa tahad sellist on kogu arengu protsessi selline. Tahad alustada kusagil funktsionaalne - või sisuliselt alustada midagi - aga sa tahad kuhugi jõuda väga lihtne ja funktsionaalne. Ja siis jälle, teha omamoodi hüpata ja kuhugi funktsionaalne uuesti. Sul aeglaselt ehitada, ja see võib minna veidi aeglasem kui muidu, kuid pikemas perspektiivis, kui sa oled pidevalt ummikus seda eikellegimaad faas, kus sa Tegelikult ei ole midagi töötab, siis võib olla tõesti suur pettumus töötada oma projekti, sest sa oled alati nii lähedal, et saada see töö, ja see pole kunagi tegelikult töötavad. Sa tahad töötada nende funktsionaalsete Puuskittain ja sa ka tahad teha mõned peegeldus pärast igaüks. Teisisõnu, kui sa oled olukorras, kus sait töötab nüüd - see ei ole kõik, mida soovite, kuid see mõned asjad - soovite arvan, okei, see sait saavutamas eesmärki, mida ma sätestatud, mida teha? Teisisõnu, kui sait läheb tegema X, on see, mida ma olen töötab selles suunas, et X? Kas kõik funktsioonid, et ma tahtsin sinna? Ja pealegi on see teenib üldist eesmärki, mida ma tahan? Kui sa leiad, et teie sait on hakanud kalduma teises suunas või äkki asjad lihtsalt selline ei toimi, võib seda aega käigu natuke. Teisisõnu, see on seda väärt, arvestades - see on väärt visata ideid vajadusel ning arvestades olen ma tõesti tööd, mida ma tahan olla. Ma usun, et mu järgmine punkt. Ära karda loobuda ideid. Lihtsalt, sest sa kulutanud palju tunde tööd funktsioon ja lõpuks sain ta töötab, kuid see tõesti ei lähe nii hästi - nagu see ei ole nii kasulik või kasutajad on probleeme, kasutades seda -, et selline asi - ärge kartke see ära visata. See imeb, et olete kulutanud palju aega selle kallal, kuid lõpuks sa ei taha veebilehekülg, mis on kuidagi kokku panna need tükid, mis omamoodi töö, kuid ei ole, et hästi teeninud. Samuti ärge kartke omaks uusi ideid. Kui keegi tuleb ja ütleb: hei, see sait tundub tõesti lahe, kuid kas ei oleks isegi tore, kui ta ka seda tegi? Lihtsalt sellepärast, et on midagi, mida sa ei kavatse ja midagi, mis ei ole teie specs, midagi, mida sa ei ole sätestatud, mida teha, ärge kartke, et võtta seda ja siis tööd teha. Sest tihti ideid, mida joosta vältel areng lõpuks on lahedaid funktsioone veebilehel. Ma olen seda ka varem öelnud. Ma ütlen, see uuesti. Katsetajate on super, super kasulik. Püüa saada inimesed, kes on kunagi näinud kohapeal enne sisse logida ja vaata, mis toimub sest nad ei saa ainult katse kasulikkuse saidi ja kasutaja kogemus, kuid nad võivad ka testida funktsionaalsuse võimalusi, et sa ei saa. Kui teete mõne funktsiooni, mis teeb teatud asi ja te teate, et see saab teha sama asja õigesti iga kord, see on suurepärane. Aga see võib sageli olla raske moodustavad nurgas juhtudel võib kasutaja kirjuta midagi, et te ei oodanud - just seetõttu, et te määratletud funktsioone ise. Nii, et keegi tulema, kes ei tea, kuidas kasutada lehe ja lihtsalt katki mis tahes viisil nad saavad teha, on tõesti kasulik, sest sa saada idee täiesti erinevast vaatenurgast, mida saidil on töö ja mis vajab remonti. Lõpuks ma rääkida mõned üldised head tavad ja sa oled näinud palju neid CS50, kuid nad ka tõesti kohaldatakse projekti keskkonnas. Üks on kommentaare. Alati kommenteerida oma kood, eriti kui te töötate suur meeskond. See võib olla nii tüütu, et pead lihtsalt hiiglane ploki koodi, et keegi on kirjutanud ja võibolla see toimib, võib-olla see ei ole, kuid sul pole aimugi, mida ta teeb, nii et sa ei tea, kas see on kasulik või mitte, või kas see peaks seal olema või mitte, ja kui te töötate midagi muud see on isegi võimalik, et te töötate sama asi, lihtsalt väga, väga ettevaatlik olema hoolivad oma partnerit ja kirjutada koodi, mis on hästi dokumenteeritud. Sa ei pea minema nii kaugele, et teha kogu asi, kui meeldib, kui sa juurdekasvu counter on kommentaar, mis ütleb, et ma lisades 1 kuni see counter. See ei pea olema detailne, kuid iga funktsioon, et sa kunagi kirjutamise siis peaks olema mõned dokumendid, mida see funktsioon täpselt juhtub, mida selle sisendite, ja mida ta peaks tagasi. Nii saate kasutada teiste inimeste komponentide koha ja saab tööd, et rajada midagi suurt. Teine oluline asi on see, mida sa teha tahad regulaarne puhas-ups. Kood muutub segaseks. Ei tunne halb, kui teie kood on lihtsalt täiesti loetamatu ja hiiglaslik segadus. See juhtub veebiarendust alati. Sa lisades uusi funktsioone, eemaldades vanad. Stuff saab olema seal, et ei tohiks olla. See on hea, kuid sa tahad teha kindel, et tegeleda regulaarselt. Sa ei taha lasta ehitada kuni punktini, kus te lihtsalt ei leia midagi oma koodi ja sa ei tea, mida kõike teeb. See on nii HTML. Mõnikord saate lõpuks esemetega, mis ei sisalda midagi, ja sa tahad, et saada lahti neist. CSS, võite olla viitavate elementide, mis ei ole enam seal, nii et sa tahad lahti saada, et kood. Javascript, võiksite eemaldanud midagi HTML. Niisiis, sa tahad teha kindel, et sa oled alati puhastamiseks, teha asju päris nii palju kui saate regulaarselt. Teine väga kasulik asi, mida ma ei usu, et on esitatud väga palju CS50 kuid see on väärt sattumist on versiooni kontrolli. Idee versiooni kontrolli on, kui sa oled põhiliselt jälgida kõik edu olete teinud suunas saidile ja kui mis tahes hetkel sa mõistad, oh, see töötas aega tagasi, kuid see ei tööta enam, võid minna tagasi eelmiste versioonidega ja vaata, mis on sellest ajast muutunud ja sellist asja. Esmane viis seda teha on koos Git ja Git on kogu selline süsteem, et Usun Tommy MacWilliam andis seminaril eelmisel aastal. Kui te lähete CS50 seminarid 2011, näete oma seminaril, et. Idee Git on põhimõtteliselt, et regulaarselt sa üritad neid kohustusi mis võimalusi öelda saidi kohta üsna stabiilne versioon kohe nii Ma pakendamisel üles ja saates selle ära server, ja siis võid minna, et server ja vaadata kõigi varasemate versioonide kood ja näha, kuidas see edenenud ja kõik, mis omamoodi hea kraam. Nii, et põhimõtteliselt on. Niipalju kui veebi arengut, me oleme õnnelikud, et jääda umbes ja vastata kõikidele küsimusi nii palju kui meie esitlus. Nii see on. Aitäh. >> [Ben] Aitäh. [Aplaus] [Billy] Töötajad, kas keegi on mingeid küsimusi selle kohta, mida, kui oleme kaetud või asju, mida me pole kaetud, et nad loodavad, et me tahaks katta? Me tahaks olla õnnelik, et vastata neile. Keegi? [Publik] Millised on plusse ja miinuseid, kasutades Ruby või kasutades Python? [Ben] küsimus oli, millised on plusse ja miinuseid, kasutades Ruby või Python asemel nagu PHP. Plusse on, et Ruby ja Python on palju parem keeles kui PHP. Vähemalt minu arvates, ja ma arvan, et palju teiste inimeste arvamusi ka. Nad olid mõeldud rohkem teed keeruline värk, ja vähem ilmatu kokku veebilehti tõesti kiiresti natuke dünaamiline sisu. Miinuseid on, et seal on natuke - seal on rohkem õppimiskõver saada neile loodud. See tähendab, nagu PHP, saate lihtsalt HTML-faili ja te kirjutada vähem kui, küsimärk, ja siis kirjutada mõned kood, ja siis kirjutada küsimärk suurem-kui ja siis sa oled teinud. Teistes keeltes nagu Ruby või Python, sa pead läbi minema natuke rohkem tööd, et saada esialgse saidi töötab. Seal on ka - vähemalt see, mida kasutatakse juhul, - et seal on rohkem dokumentatsioon saadaval PHP lihtsalt, sest seal on rohkem inimesi kasutab seda. Ma arvan, et ei ole nii suur probleem enam. Seal on kindlasti väga hea dokumentatsioon asju Ruby on Rails või Django Pythoni on samaväärne. PHP on üks, et igaüks on kasutanud juba aastaid, ja sa tead, kuidas see töötab. Ruby ja Python on natuke vähem küps. [Publik] Kui sa olid valida üks neist õppida või korja, mis te eelistate? Ausalt, ma arvan, et sõltub inimesest. Vabandust. Küsimus oli, mida sa valiks keegi õppida? Ma leian, Python nicest isiklikult. Seal on palju inimesi, kes - ma tegin oma esimese web dev projekti Python ja Django. Seal on palju inimesi, kellele meeldib Ruby on Rails ka. Ilmselt rohkem inimesi, kes teavad, Ruby on Rails. Ausalt, ma lihtsalt minna iganes inimesed sinu ümber teavad nii et teil on inimestel küsimusi küsida. Küsimus oli - jagatud serverites on see selline raske töö Python? See sõltub teie hosting. On mitmeid web hosts, mis lisada Python kraam. WebFaction teeb seda, eks? WebFaction on selline, et Billy ja olen kasutanud juba mõned projektid. Nad on tõesti suur. Nad toetavad enamik keeli. Aga see on tõsi, et PHP on palju laiemalt toetada. Niisiis, kui sa oled ummikus veebi, mis ainult ei PHP, see on hea põhjus kasutada PHP. [Publik] ma sain õppida, kuidas päringuid mõned andmebaasid ja ma tean, et minu SQL on kogu koht, kuid ma hiljuti sain kokku puutunud - ja sa märkis ta välja. Näete JSON ja laiendatav andmebaase. My SQL on veel kõikjal. Millisena näete mis juhtub? Kas seal saab olema üha kasvavat tendentsi rohkem laiendatav (kuuldamatu)? Küsimus oli - ma arvan, et see saab olema tendents mitte-SQL andmebaase. Näiteks nagu MongoDB. Ma arvan, et see on kindlasti tõsi. Minu nõuanne on enamasti MySQL seotud siin ainult sellepärast, et MySQL on tööstusharu standard. Isiklikult ma eelistan andmebaasid ei ole schemos nagu MongoDB kui sul ei ole küsimus, oh, mul on vaja lisada veel kolonni. Häda mulle, nagu mis iganes ma teen? See on väga raske teha seda MySQL, kuid kui sul on midagi nagu Mongo see on palju ilusam. Teine tore asi Mongo on see, et teie andmed on tegelikult JavaScript objektid. Pole mingi kõneetapp kus pead võtma need andmebaasi rida ja muuta need JavaScript objekti ja seejärel saata neid üle traadi. Ma arvan, et selliseid asju saab olema väga, väga kasulik kiire veebi arengut tulevikus. [Billy] Midagi ma lisaksin, mis on lihtsalt üldine küsimus on, et ei tunne, siis peaks olema õppinud kõik Euroopa keeltes me oleme arutanud meie seminar. Ilmselt asi on selles, et anda teile aimu, mis seal toimub, ja kui sa oled mõelnud mis tahes asju oleme mainitud saate Google neid ja lugeda üles neid. Ja nagu ma mainisin, on mõned seminarid, mis tegelevad just neid asju. On isegi rohkem seminare, et ma ei maininud, et tõenäoliselt sattuda see kraam ka. Mõte on selles, et kui sa tahad teha midagi, siin on vahendid teie käsutuses. Ärge tunduda, kui sa ei ole päris kindel, mida need vahendid teha täpselt, kuid tean, et nad on olemas ja et saate laialdaselt kasutada neid Google. [Publik] Milliseid asju sa pead tegema, et veenduda oma kodulehel näeb hea mobiili? [Billy] mobiilseadmed on natuke raske. Seal on 2 võimalust võite läheneda ta. Esimene võimalus on, et sa tegelikult mobiiltelefoni veebilehel. Teisisõnu, te täidab mingi detekteerimine alguses kui brauser taotluse esitanud veebisaidile, mis kas ütleb tagasi seda seisukohta - mis on vaade lauaarvuti või sülearvuti brauserid - ja see teine ​​vaade mobiilseadmete jaoks. See on koht, kus vaated on tore, et saate päris palju swap kaks ja on liides, mis töötab tõesti kenasti mobiilseadmete ja on täiesti erinev, mis töötab ilusti brauser seadmetega. Probleem, et see võtab kaua aega, sest see tähendab kodeeriv täiesti erinev kasutajaliides. Teine võimalus, mida saate teha on - palju tänapäeva telefonid kuvab veebilehed ja püüda muuta neid seadistusi oleks ja nad teevad oma parima. Võite liiki proovige jääda valgust summa jQuery JavaScript te kasutate mis kipub olema, kus asjad võivad minna valesti natuke. See on justkui nii, et sa peaksid kasutama, kui sul ei ole nii palju aega. Kui sul on aega, et töö mobiilne liides, mis on ilmselt oma parim valik. Ma arvan, et üldiselt CS50 projekte, sa lähed, et tahad valida kas üks või teine. Teisisõnu, sa tahad teha mobiili app või tahad teha desktop veebilehel. Ja seda sorti määrab, kuhu te lähete, et. Aga kui sa tahad, et laiendada seda hiljem, tõenäoliselt teie parim panus on teha uue liidese vahel. Mul on natuke kogemusi, et arendada WordPress põhinev saitidel. I võõrustas isiklik veebileht WordPress mõnda aega. Need liiki raamistikud võivad olla kena nagu väga põhilised asjad. Sageli sa lihtsalt joosta palju kohandatav küsimusi küll. Sa tahad midagi vaadata teatud viisil või olla teatud viisil ja sa lihtsalt ei saa, sest see on juhtmega süsteemi, et see on, kuidas sa pead tegema asju, mis võivad olla natuke probleemiks. Sellest ajast alates olen selline olnud rohkem valmis töötama koos saite maapinnalt. Asjad nagu blogi andmebaaside ja et selline asi see on tõesti ei ole nii raske ehitada raamistik. Kui sa tõesti venitatakse aega, võite muidugi kasutada midagi WordPress või et selline asi blogi. Asju, et blogid poodi ja teha ei ole tõesti piisavalt kõvasti, et kui näed ühessegi neist asju, oled ilmselt parim lihtsalt teha in-house versioon. Ma arvan, et see on midagi, nii et tänan jälle tulemas. Me tõesti nautisin räägib teiega ja loodan, et olete õppinud mõned asjad. [Ben] Me oleme õnnelikud, et rääkida - me peame minema, kuid me oleme õnnelikud, et rääkida rohkem väljaspool Kui teil on teine ​​küsimus. Tänan. [Aplaus] [CS50.TV]