[Powered by Google Translate] [Seminar] [Web Development: Frá hugmynd til framkvæmdar] [Ben Kuhn] [Billy Janitsch] [Harvard University] [Þetta er CS50] [CS50.TV] [Billy] Hæ, ég er Billy og þetta er Ben. >> [Ben] Hi. Við erum að fara að vera að tala um þróun vefnum í dag. [Webdev] [Billy Janitsch og Ben Kuhn] A hluti um okkur fyrst. Ben er tegund af bak-endir strákur. Hann gerir hlutina ganga. Og þá fer ég í og ​​gera þá nokkuð. Ég er að mestu í tengslum við fleiri andlit-endir skipulag hönnun hvers konar efni, og Ben, hins vegar, veit hvað hann er að gera svo hann vinnur á bak-endir efni. Saman höfum við gert ýmislegt. Til dæmis, í fyrra unnum við Gimblium sem er online leikur þróun stúdíó. Það var lokaverkefni okkar fyrir bekkinn, og síðan þá höfum við gert Harvard Class sem er á netinu ramma fyrir beit og versla námskeið í Harvard. Við ætlum að byrja með þessa hugmynd fyrir vefinn okkar. Við erum að fara að gera Facebook, en fyrir ketti. Áður en þú gerir í raun þessa vefsíðu, ekki gera þetta vefsvæði vegna þess að það er ekki gott, en við munum nota það sem ramma og fara í gegnum ferlið við hvernig við tökum þessa hugmynd og snúa það inn í a raunverulegur website við getum notað. Við munum byrja á því að brjóta website niður. Eins og þú hafir verið að gera í CS50, þú vilt að hugsa um hvað eru raunverulegir þættir sem fara inn á þetta vefsvæði. Grundvallaratriðum beygja það frá hugmynd sem er bara tegund af abstrakt hugtak í alvöru, áþreifanlegur hlutur sem þú gætir gert. Við byrjum á því að spyrja nokkurra spurninga. Hvað er þetta vefsíða? Hvers vegna erum við að gera það? Hvað er það að fara til vera notaður fyrir? Þessi tegund af hlutur. Þegar um er að ræða Facebook Cat, við viljum í grundvallaratriðum a website þessi lets kettir félagslega net með hvert öðru. Hugmyndin er sú að þeir geta sent á veggjum hvors annars, þeir geta gert athugasemdir, þessi tegund af hlutur. Og það er þar sem við komum inn í hagnýtur hluti. Við höfum nú svona ramma - við höfum notandi snið, við höfum athugasemdir, og við getum sent. Kannski einhvern tíma við munum streymir gaman af og þessi tegund af hlutur. Og við viljum konar að forgangsraða þessar aðgerðir fara inn Við viljum að segja eins, allt í lagi, það er mjög mikilvægt að allir hafi snið og að allir geti sent á veggjum hvors annars. Secondary til að ummælin væri gott. Kannski síðar við munum streymir eins. Svo, þú vilt að hafa hugmynd um hvað er grundvallaratriði til verkefnið og hvað er tegund af almennari lögun sem hægt væri að beita síðar. Þú vilt svoleiðis hafa sérstaka lista í huga, en verkefnið sem þú byrjar með er ekki að fara að vera verkefni sem þú ert búin. Með öðrum orðum, eru hlutirnir að fara að breytast á meðan þú ert að þróa síðuna, og þú vilt að yfirgefa herbergi fyrir það. Ég snúa það yfir til Ben sem er að fara að tala aðeins um uppbyggingu. [Ben] Ég ætla að vera að tala um meira tæknilega hlið af þróun á vefnum. Förum yfir nokkur grunnatriði fyrst. Þegar þú ert að gera a vefur app, helstu deild sem þú ert að fara að þurfa að hafa er þú ert að fara að hafa smá dót í gangi í viðskiptavinur hlið - það er kóðinn sem þú ert vafrinn tekur frá síðunni og JavaScript, HTML, CSS efni. Það er allt á the viðskiptavinur hlið. Þú ert að fara að hafa öðrum kóða sem keyrir á miðlara megin sem heldur utan um öll gögn sem fólk senda í þér, ákveður hver á að gefa hvað, eitthvað svoleiðis. Þetta er bara einhver hugtök svo að þið erum öll kunnugur hvað við erum að tala um. Handan þeirri deild það er gott að hugsa um vefur app í skilmálar af a par af mismunandi hlutum. Þegar þú ert að gera vefur þróun einn af þeim hlutum sem þú ættir alltaf að reyna að gera er að draga úr margbreytileika. Flóknari kóða er þeim mun meiri líkur er að gera galla, því erfiðara er að breyta síðar. Svo, ef þú getur brjóta upp app inn nokkrar mismunandi hagnýtur svæði sem vilja - og þú getur dregið tegund af magn af kross-svæðinu samskipti - sem mun hjálpa þér mikið í the langur hlaupa í skilmálar af minnka galla. Að nota steypu, yfirleitt fólk skipta upp vefur app inn - þetta eru eins konar suð orð núna, en þeir eru enn gagnlegt. Þú gætir hafa heyrt fólk tala um módel, skoðanir og stýringar. Líkön eru raunveruleg gögn sem app er að fara að takast á við. Til dæmis, í kötturinn þinn Facebook, líkan væri - þú vilt hafa fyrirmynd eins og færslur, og fyrirmynd fyrir snið notandi, solls. Skoðanir þínar eru hvernig þú kynna þessi gögn til notenda. Þú gætir hafa 1 skoða fyrir að horfa á einni færslu og allar athugasemdir og aðra sýn fyrir vegginn sem hefur a listi af öllum innlegg sem eru beint til þín, og aðra sýn fyrir fréttastraumi þína - eitthvað svoleiðis. Að lokum, þú stýringar sem eru í grundvallaratriðum þegar fólk senda þér innlegg og þú gerir uppfærslur bak-endir kerfi þínu, þú vöxtur fullt af gegn, og hvað sem er. Þeir eru stýringar þinn. Ég ætla að vera að tala aðallega um líkan. Skoðanir eru tæknilega ekki að erfitt og málið er meira með hanna þá Stýringar eru að fara að vera nákvæm til hvað sem þú ert að hanna. En það eru sumir laglegur almennar aðferðir sem þú getur notað að gera líkan þínum betur og auðveldara að vinna með það sem ég held að séu mjög hjálpsamur. Þetta er að mestu leyti að fara að vera um hvernig á að takast á við vefforrit gögnunum í a ágætur vegur. Helstu mál með módel eru að þeir lifa á viðskiptavininn og miðlara og þú verður að reikna út a) hvernig á að fá þá - allar viðeigandi sjálfur - frá the framreiðslumaður til the viðskiptavinur, og b) hvernig á að halda þeim í sync. Notendur þínir eru að fara til að vilja gera nokkrar uppfærslur. Þeir eru að fara til að vilja ganga ný innlegg. Þeir eru að fara til að vilja eins og hluti og efni ef þú ert eins. Þeir eru helstu tæknilegar áskoranir að takast á við líkan. The fyrstur hlutur þessi þú ert að fara að vilja að spyrja sjálfan þig er hvers konar gögn fer í þetta líkan og hvers konar fyrirspurnir eru við að fara að vilja að gera - það er, hvað við erum að fara að horfa á módel? Fyrir köttinn Facebook dæmi þitt, staða þín er að fara að hafa höfund sem tengist því, sumir vegg staða texta, og viðtakandi vegg staða. Og þá þú might vilja til að fyrirspurn að í fullt af mismunandi vegu. Þú vilt að líta á það með því að hver skrifaði hver staða, eftir sem fékk sem staða, ef til vill með þeim degi sem þeir voru settar. En ef þú ert að fara að gera það eftir dagsetningu, þá verður þú að bæta við öðru sviði til þinn staða um þegar það var í raun staða. Þessir 2 þættir - hvaða gögn þú vilt nota og hvernig þú vilt að skoða það - þú ættir að hugsa um þá fyrst því þeir ráðast á hvor aðra, og það er að fara að vera erfiðara að bæta þeim síðar. There ert sumir aðrir þættir. Þegar þú ert að hugsa um hvernig þú takast á við gerðum á þjóninum hvað þú vilt líta á er - þú vilt í rauninni að gera þjóninum eins einfalt og mögulegt er. Gera efni á the viðskiptavinur hlið er almennt mun hraðar ef þú getur gert það eingöngu á viðskiptavininn án þess að gera hvers konar beiðni net. Hugmyndin er að gera eins og margir af þeim fyrirspurnum sem þú getur á viðskiptavininn. The eini vandamál með að er að ef þú biður öll gögn í upphafi þá það er að fara að taka langan tíma að hlaða. Svo hugmyndin er að slá hamingjusamur miðill milli hafa næg gögn á the viðskiptavinur að þú getur gert mest af vinnu þinni þar, en ekki bara að sækja allt í einu þannig að þú færð mjög hægur hlaða sinnum í upphafi. Til dæmis, fyrir köttinn gögnum þú vildi sennilega vilja til að ná í fullt af nýlegum vegg innlegg. Þú myndir ekki vilja til að ná þeim öllum vegna þess að það gæti farið aftur a par af ár. En þú vilt ekki að sækja þá einn í einu vegna þess að það myndi koma mikið af net kostnaður. Það er oft alveg erfitt - þegar þú ert með gagnagrunni gangi - það er oft alveg erfitt að breyta hvaða gögn þú hefur í það - það er bætt við til nýjan gagnagrunn dálki eða eitthvað - svo einn góður stefnu er í raun bara að halda mikið af gögnum í texta blob - A JSON Blob - JSON vera JavaScript Object Ritháttur - Ástæðan sem er gagnlegt er því þá er hægt að bæta við nýjum eiginleikum til allra þessara JSON dropar án þess að breyta gagnagrunninn. The eini hæðir til það er að ef þú ert með fullt af sviðum að þú bætt við síðar á - eins og falinn í því JSON blob - þá er það erfiðara að fyrirspurn þá inni í gagnagrunninum. Fyrir dæmi, ef þú síðar - ef þú hefðir staða líkan sem við ræddum áðan með aðeins höfundar, viðtakanda og texta - þú gætir einnig haft JSON Blob og þá ef þú vildir síðar að bæta við dagsetningu sviði þú vilt ekki að breyta gagnagrunninn. Þú getur bara bætt inn dagsetningu og öllum texta sviðum. Og þá þú vildi vera fær til horfa á þá á the viðskiptavinur hlið, en þú vildi ekki vera fær um að fyrirspurn þá á miðlara megin því það er falið inni þeim texta. Önnur mál sem þú vilt að hugsa um er hvernig viðskiptavinur þinn og miðlara eru að fara að hafa samskipti. Þú vilt yfirleitt að halda þetta eins einfalt og mögulegt er. Þú getur bara hafa eins fá-mér-þessum gögnum beiðni, A Búa-a-new-mótmæla hlutur, og beiðni Uppfæra-óákveðinn greinir í ensku gamall-mótmæla. Og þetta myndi allt vera mismunandi vefslóðir á netþjóni sem þú - að vafrinn vildi - þú getur notað AJAX beiðnir um allar þessar og annaðhvort á móti eða Senda gögn. Aftur, fyrir köttinn Facebook dæmis okkar, þú gætir hafa þessi slóð til að fá einstaka færslu, og þú vilt hafa slóðina til að búa til nýja vegg færslu og kannski URL fyrir að hlaða prófíl mynd þína, eitthvað svoleiðis. En aftur, það er til pre-ná mest af gögnunum þannig að þú þarft ekki að halda gerð net beiðnir. Af þeirri ástæðu, þú might ekki vilja til að hafa þessi einstaklingur fá beiðni fyrir einni færslu, og í staðinn þú vildi bara 1 fá beiðni um múrinn. Og þá ef þú ert að reyna að slá a jafnvægi á því - þetta er líka að fara að ráðast á umsókn þinni. Vegna þess að ef þú ert að búast við að fólk hafi aðeins 10 eða 20 póstar á vegg sem verður fínt. En ef þú ert að búast við að þeir ætla hafa þúsundir þá beiðni myndi taka of langan tíma, og svo þú might vilja til að bæta við fá-allt-innlegg-síðan breytu. Fyrir allar þessar sem þú ert líklega að fara að vilja til að samræma gögn í JSON - JavaScript Object Ritháttur. Nánast hvert tungumál fjallar JSON mjög vel. JQuery hefur þetta ágætur getJSON aðgerð sem gerir allt af the harður vinna fyrir þig. Og á PHP það er líka mjög gott aðgerðir JSON samskipti. Svo, það er líklega besta formi til að senda módel fram og til baka. Sem dæmi um það sem við höfum talað um hingað til, hér er dæmi rennsli fyrir Cat Facebook umsókn þína. Það byrjar með vafranum þínum óskaði stöð vefslóð. The framreiðslumaður myndi líklega senda yfir truflanir HTML og smá JavaScript og CSS. Það er yfirleitt best að gera allir flutningur á þjóninum. Þú vilt sennilega ekki að - hvað framreiðslumaður er ekki að gera það er að fara niður lista yfir Wall Posts og búa til nokkrar HTML fyrir hvert og eitt og senda það yfir. Það er yfirleitt best að gera það á the viðskiptavinur hlið því annars hvert skipti sem þú vilt gera það aftur teikna eitthvað, þú þarft að gera miðlara beiðni. Og það mjög fljótt gefur þér mikið af kostnaður. Það er yfirleitt best bara að skipið sendir niður truflanir HTML og þá JavaScript og CSS sem mun gera flutningur á the viðskiptavinur hlið. Um leið og þessi efni koma í, þá er hægt að hafa - í JavaScript - þú getur gert beiðni fyrir vegg gögn og eitthvað svoleiðis, og eftir þessi the framreiðslumaður er í grundvallaratriðum bara að gera gagnagrunn fyrirspurnir og stöðva heimildir. Einungis mikilvægur hlutur er að það er ekki hægt að senda yfir nokkur Aðrir notendur vegg innlegg að þú ert ekki leyft að sjá. Það getur í rauninni verið mjög þunnt aðgang lag við gagnagrunninn, og þá allt í sýna gögn - allar skoðanir og efni - þá getur gerst í vafranum þínum, og svo þegar þú vilt gera a staða eða eitthvað þú sendir bara ný beiðni. Það er einnig nokkur ímynda sér efni sem þú getur gert á toppur af þessu. Hvað varðar nákvæmari tæknilegar upplýsingar, þróa í látlaus JavaScript getur verið svolítið sársaukafull, þannig að það eru nokkur bókasöfn og tól sem hjálpa þér mikið með það. Ég held að þú hafir öll líklega heyrt um jQuery sem gerir gera HTML flutningur og meðferð mun auðveldara - hafa hellingur af fínum störfum fyrir fading inn og út, og gera Zippy fjör. Það er líka þetta bókasafn kallast Underscore.js. Það hefur a einhver fjöldi af gagnlegur virka gagnsemi, efni sem þú vildi búast JavaScript til að hafa að það hjartarskinn raunverulega - hluti eins og uppstokkun á fjölbreytta, fjarlægja afrit af lista, eða fletja lista af listum. Þetta er bara lítill kóða sýni. Undirstrik hefur tonn af þessum fallegu aðgerðir sem þú vilt og þú vildi hafa allan tímann. Og þá er það 1 fleiri bókasafn sem mig langar að eyða smá tíma á heitir Backbone.js því Backbone virkilega hjálpar þér að takast á við gerðum á the viðskiptavinur hlið og mikið um rugling sem það getur valdið. Burðarás gefur þér þessa hugmynd af gerðum og söfn JavaScript sem eru í grundvallaratriðum nákvæmlega eins og JavaScript hlutum í JavaScript fylki en þeir hafa viðburðir þegar þú breyta eiginleikum þeirra. Rétt eins og í JavaScript, getur þú ert með atburði þegar hnappur gets smellt eða eitthvað þessi burðarás módel og burðarás söfn mun útvarpa hluti eins að þegar þeir breytast. Það þýðir að þú getur bara skrifað eitthvað eins og þessa runu af kóða hér - þetta segir, þegar þú bæta neinu við innlegg array þú uppkast allan vegginn. Og þetta myndi segja þegar fjöldi A eftir er af eins breytist, þú tilkynna notanda sem einhver líkaði staða þeirra. Eða þegar allir eign staða breytist þú redraw færslu. Eitthvað svoleiðis mun spara þér tonn af flókið því annars ef þú ert ekki með einhverja ramma eins og þetta þá í hvert skipti í númerið þitt sem þú breyta neitt um færslu, vilt þú að muna þig að hringja í öll bakið aðgerðir og eitthvað svoleiðis, og ef þú vilja til bæta eitthvað nýtt sem gerðist hvert skipti sem þú breytt innleggi sem þú vilt verða að fara í gegnum hvert stað í þínu númer sem þú breytt staða og bæta við að nýr hlutur. A ramma eins og þetta mun fjarlægja mikið af því á milli-lag samskipti sem gerir númerið þitt flókið og erfitt að halda. There 'a lítill hluti um skoðanir líka. Ég ætla að láta mest af þessu til Billy því þeir eru tæknilega ekki mjög erfitt. Nota jQuery fyrir skoðanir þínar. Það er nánast eins og nauðsyn á þessum tímapunkti. Það gerir bara allt svo miklu auðveldara. There ert a einhver fjöldi af bókasöfnum. Ef þú hefur flókinn notandi-tengi atriði, ef þú vilt sjálfvirkt heill hlutur eða eins og einn af þessum fínum multi-selectors - ef þú vilt eitthvað svoleiðis, þú ættir sennilega bara að leita í kring og þú getur fundið góða bókasafn sem mun gera það sem þú vilt. Billy mun útskýra meira um raunverulega erfiðum hlutum útsýni. Einnig, eins og a hlið minnispunktur, burðarás hefur einhverja virkni fyrir gerð skoðanir samskipti fallega með módel - líta á the heimildasöfnun fyrir öllum þessum bókasöfnum, reyndar. Bara líta á docs. Þeir eru mjög vel skrifuð og auðvelt að fylgja á eftir. Almennt, getur þú nokkurn veginn bara Google ef þú átt í vandræðum. There ert a einhver fjöldi af fólk að nota þær. Ég held að þetta sé eins og endanleg huga. There ert einnig sumir fleiri háþróaður hluti sem þú getur gert ef þú ert að leita að vefur app auka ógnvekjandi. Þú getur gert - nýja HTML5 forskrift hefur mikið af fínum hlutum sem þú getur gert. Sveitarfélaga geymslu - sem er að þú getur geymt gögn í vafranum - frekar en að þurfa að fara til baka og lesa the framreiðslumaður fyrir allt, þú getur haldið eitthvað af því á viðskiptavininn og að jafnvel lætur fólk - í sumum tilfellum getur það jafnvel leyfa þér að nota webpage tengingar. Það er þetta hlutur sem kallast websockets sem eru öðruvísi net samskipta þar sem í stað þess að bara þú gerir eina beiðni, þú færð svar og þú ert búinn, þú halda opna á tengingu við miðlara og svo þú getur gert hlutina eins rauntíma uppfærslur. Svo, ef þú varst að reyna að gera spjall app, getur þú notað websockets að miðla og til baka þannig að þú viljir ekki að halda biðja, "Ó, framreiðslumaður, var einhver senda mér spjall?" á 10 sekúndna fresti eða eitthvað. Það er einnig áhugavert HTML5 lögun þar sem þú getur gert það líta út eins og slóðin á síðuna er að breytast án þess að þurfa að raunverulega endurhlaða hana. Þú getur notað aftur og áfram hnappur án þess að gera fullt af net beiðnir. Eitthvað svoleiðis er raunverulega gagnlegur í skilmálar af því að gera það skjótur en einnig vinna eins og a vefur app ætti. Það er líka þetta kallast CoffeeScript. CoffeeScript er mismunandi tungumál, reyndar, sem safnar niður JavaScript. Þú myndi skrifa allan kóðann þinn í CoffeeScript, og þá keyra þessa þýðanda, og það spits út JavaScript skrá sem þú getur meðal annars í vefsíðuna þína. Ástæðan fyrir því að CoffeeScript er ágætur er því það gets losa af a einhver fjöldi af undarlegt mál sem JavaScript hefur þar jafnt jafnfætis, og jafngildir jafningjar gera mismunandi hluti, eða eins og - það hefur ágætur setningafræði til að takast á við fylki og aðgerðir. Þetta er smá bút af CoffeeScript sem framleiðir lista yfir alla ferninga frá 10 ^ 2 til 1 ^ 2 í öfugri röð. Eins og þú geta sjá, CoffeeScript leyfir oft þú tjáir í 1 línu hvað myndi taka 5 línur af JavaScript. Það er hægt að gera hlutina mun auðveldara. Það er a lítill hluti af nýja setningafræði til að læra í fyrstu, en það ákveðið verður að gera þér afkastamikill fleiri í the langur hlaupa. Þú getur líka notað önnur tungumál á þjóninum en PHP - tungumálum eins og Ruby, Python, eða það er jafnvel verkefni sem kallast node.js sem mun leyfa þér að nota JavaScript á þjóninum. Persónulega, ég virkilega, virkilega hata PHP. Ég bara njóta ekki að vinna með það. Ef þú líka, held að það sé ansi cluge af tungumál, þá getur þú notað einn af þessum stað. Almennt, ef þú vilt gera eitthvað og þú í raun ekki vita hvernig þú myndir gera það, bara leita á Internetinu. Það eru tonn og tonn af auðlindum sérstaklega á - StackOverflow er a mikill einn. Það er þetta vefsíða þar forritarar spyrja hvert annað spurninga. Þú gætir hafa keyrt inn í það ef þú værir í vandræðum á CS50 vandamál setur. Og það eru tonn af bókasöfnum til að gera nánast hvað sem þú vilt. Ef þú vilt gera eitthvað og þú veist ekki hvernig á að gera það, ekki ráð fyrir að það er ómögulegt. Bara líta í kring og þú gætir fundið nokkrar góðar auðlindir. Sem almennt sett upp, Helstu takeaways eru að halda hlutum einfalt. Flóknari númerið þitt er í upphafi og því meira sem þú reynir að gera ímynda sér efni, því lengur sem það tekur að fá eitthvað raunverulega hagnýtur og því erfiðara verður að breyta síðar. Svo, gera hlutina á heimsk, auðveld leið fyrst. Til að fara með það, ekki vera hrædd við að henda burt gamla númerið eða hreinsa það upp a einhver fjöldi. Almennt, þegar þú hefur í raun eitthvað að vinna, það er miklu auðveldara að hugsa um en þegar þú ert enn á undirbúningsstigi um hvernig set ég þetta allt saman. Það er best að gera dumbest mögulegu hönnun sem virkar og þá bæta það iteratively en að reyna að fá allt rétt í fyrsta skipti. Hvað varðar viðskiptavinur-framreiðslumaður deild, reyna að halda netþjóninn mjög einföld - bara gagnagrunn og sumir staðfesting og gera ekki allir harður vinna þar. Gert allt flókið dótið þitt á the viðskiptavinur hlið í vafranum JavaScript eins mikið og þú getur. Horfðu í kring fyrir bókasöfn sem gera líf þitt betra. Alltaf betra að nota kóða sem einhver annar skrifaði ef þú - og ekki að skrifa það sjálfur. There 'a einhver fjöldi af efni á Netinu. Google er besti vinur þinn. Google er besti vinur sem forritari er. Já, örugglega ekki vera hræddur við að líta í kring fyrir efni. Allt í lagi. Og yfir til Billy. [Billy] Reyndar, áður en ég byrja á einhverju hönnun efni, Hefur einhver hefur einhverjar spurningar fyrir Ben um eitthvað sem hann talaði um? Allt í lagi. Aftur, láttu okkur vita ef eitthvað er ekki ljóst eða ef þú vilt okkur að fara yfir eitthvað aðeins meira. Ég ætla að stíga til baka svolítið og tala um fleiri grundvallar hluta af hönnun. Ben getið líkan sem kallast - því miður, en fyrirmynd stjórnandi View System sem er tegund af tæknilegu hlið, þannig að ég ætla að líta á skoðanir sérstaklega, og ég ætla að byrja með hvernig þú vilt hanna skoðun sem lítur ágætur. Hér er góður af a mjög undirstöðu sniðmát fyrir köttinn okkar Facebook. Ég held að það séu nokkur grundvallaratriði í nútíma UI hönnun sem eru þess virði að tína upp. Þú getur tekið eftir að það er mikið af hvítum rúm allt á síðunni, nóg pláss fyrir hluti. Ekki finnst eins og þú þarft að koma höggi hlutina inn á síðu. Þú vilja til leyfi fullt af herbergi opinn, og ef þú ferð að nánast allar nútíma website þú munt sjá að það er hvítt alls staðar. Það er hvítt á stöðum sem þú myndir ekki búast við. Þú hefur þetta litavali, og það er skynsamlegt í upphafi að velja litatöflu sem þú ert að fara að vinna með og þróa. Þú líka - það hjálpar til við að velja leturgerð, og þannig að þú ert svona að vinna með þessir steypu grundvallaratriði hönnunar. Þú hefur tegund, hefur þú liti, og þá getur þú konar passa allt annað í eins og þarf. Svo, eins og ég sagði, með litaþema sem þú vilt nota bolder litum litaþema sparlega. Haus eru ágætur. Hnappar eru gott að hafa mjög stór, áberandi litum. En almennt, ef þú hafa a website þessi hefur liti alls staðar, allt að glápa þig í andlitið, það lítur bara ringulreið, og það er ekki gott. Þú vilt yfirleitt nota ljós litum. Reyna að, aftur, velja nokkuð heildstæða litasamsetningu. Hægt er að hafa þessa litlu splashes af fullt af lit - sem getur að líta nokkuð ágætur, en þú vilt nota þá ansi sparlega. Eins og ég sagði, þú vilt vera í lágmarki. Minna er næstum alltaf meira. Ef þú getur birt eitthvað eða ekki að birta eitthvað, og þú ert góður af vafa um hvort það ætti að vera þar sjálfgefið - sennilega þú ert bestur burt fara það út. Þú getur alltaf bætt við það í seinna. Já, halda hlutum einfalt. En mest um vert, þú vilja til íhuga marga hönnun. Ætlið ekki, að þegar þú hefur komið á síðuna, hefur þú það í höfuðið að þú ert að fara að gera síðuna á vissan hátt, og það er að fara að líta nákvæmlega eins og þetta. Það er að fara að hafa bláa haus efst og bláa hlið bar og þá gula undir-haus hlutur. Þú vilt gera margar sniðmát. Þú getur annaðhvort - ef þú ert góður með Photo Shop, þú getur opnað það upp og svoleiðis hönnun a website og þú vilt það til að líta. Ef ekki, getur þú bara notað penna og pappír, en klóra upp margar hönnun. Þú vilt í rauninni hafa sett upp þar sem þú hefur fullt af mismunandi hönnun, og ef maður endar að vinna, þá er þessi frábær. Ef einn endar öðrum kosti, þá hefur þú alltaf annað til að snúa sér til. Almennt, finnst ekki eins og þú ættir að vera bundnar til hvað hönnun þú ákveður fyrst á. Hönnun eru mjög breytilegir og hluti af mikilvægi líkansins stjórnandi útsýni kerfi er að þú getur skipti inn og út mismunandi skoðanir sem þú vilt. Þú getur sveifla gögn einn veg, og þá ákveða, ó, í raun, það virkar ekki það vel. Ég held að það er góður af of flókið eða það er hluti hér sem er ekki í raun að vinna, þannig að ég ætla bara að fara að algerlega yfirgefa þessa skoðun og skipti í algerlega nýjan. Við getum samt notað gamla módel og gamla stýringar. Við getum gert allt á miðlara og biðlara eins og við hefðum áður. En raunverulegt bylgja gögn sem birt er að fara að vera örlítið öðruvísi. Eins og langt eins og raun útfæra hönnun sem þú vilt, þegar þú hefur nokkrar hönnun stillt upp á pappír eða á ljósmynd búð eða hvað, there ert a tala af verkfæraskúr sem eru í boði fyrir þig. Fyrst þú ert mjög kunnugur sem er HTML, PHP, eða hvað tungumál sem þú ert að nota bara að kóða truflanir síður á vefsvæðinu þínu. Þú hefur unnið mikið með HTML sem eins konar gefur þér þessi tög sem þú getur sett eitthvað inn, og í rauninni er það leið til að skipuleggja efni þitt. Til dæmis, hefur þú haus þarna uppi, þannig að þú ert að fara að hafa haus tag, og það er að fara að hafa einhvern texta inni af því sem er líklega að fara að vera í öðru merki. Þá þú hafa a skenkur kannski með nokkrum mismunandi tengla, og þeir eru að fara að vera öll í að aðskilja tags. Svo, í grundvallaratriðum HTML á hjarta sínu er leið að deila upp á síðunni hvernig þú vilt að lokum að forsníða hana. Svo aftur, hefur þú séð það áður. Þú ert ansi ánægð með að vinna með það núna í ljósi þess að þú hefur gert síðustu pset vonandi, svo sem ætti ekki að vera vandamál. Síðan sem þú ert CSS sem í grundvallaratriðum annast allt hönnun truflanir þætti. Það myndi höndla alla liti, ekki minna en því er komið fyrir í mismunandi þætti, þar sem þeir fara með tilliti hvors til annars, hversu stór þau eru, mismunandi tegundir af positionings sem þú þyrftir - í öðrum orðum, getur þú hafa allt fast svo að þegar þú flettir niður að þeir halda, eða þú getur haft það í samanburði við aðra þætti. Öll þessi tegund af efni er í CSS. Enn fremur getur þú gert mismunandi skreytingar, getur þú hefur texta litum, áhrif texti, allt þess konar efni. Ben gaf mjög gott námskeið á þessum síðustu helgi, og svo ég myndi örugglega kíkja á ef þú ætlar að vera að gera sumir ímynda sér hluti með CSS. CSS3 er í raun nýjasta útgáfa af CSS, og það getur gert alls konar mjög skemmtilegt. Það getur gert blöndun, þú getur haft ágætur, ávöl horn, þú getur gert alls konar efni til að gera vefsíðu þína líta meira nýtískuleg og flott. Næsta tól er JavaScript og jQuery sem Ben talaði svolítið um, en ég ætla að fá smá lengra inn. JavaScript, sem þú hefur unnið við það smá, eða að minnsta kosti séð það í fyrirlestri, er eins konar leið af breytilega gera efni í HTML. HTML, eins og þú veist, er fast, svo þegar þú hefur HTML þú getur ekki breytt því. En JavaScript, í sumu leyti, er leið til að vera fær um að breyta HTML. Svo þú getur gert það, og það er frábært, en JavaScript er eiginlega bara með verk til að vinna með. Það er svo langur og gleiðhyrndur og til að gera jafnvel einföldustu hluti krefst hellingur af línum JavaScript. Svo, jQuery er í grundvallaratriðum a bókasafn fyrir JavaScript sem einfaldar allt um það. Það segir, allt í lagi, ef þú vilt hafa ferningur kassi koma úr vinstri og hverfa inn á síðuna þannig að það er í miðjunni, í JavaScript sem myndi taka - Ég veit ekki, hundrað línur til að gera, og það myndi vera a sársauki, og þú kemur út af því að hata allt um forritun á vefnum. JQuery þú hefur í rauninni þáttur-punktur-hverfa-í, eða eitthvað svoleiðis. Svo mjög, mjög einfaldar aðgerðir sem leyfir þér að gera alls konar flottum fjör og þannig hlutur. The annar hlutur sem þessir 2 eru virkilega gott fyrir er bara að gera dynamic hluti með heimasíðu. Svo, frekar en bara að hafa HTML síðuna þína - sem sýnir sumir gögn en ekki í raun gera neitt - JavaScript og jQuery vilja láta þig hafa hnapp sem þú getur smellt á, og þú getur dregið þætti og Re-röð þá og raða þeim, og hafa nýja þætti bætt við eða fjarlægt. Þú getur bætt-eyða, þessi tegund af hlutur. Svo, jQuery er tonn af flottum hlutum. Og Vipul er í raun að gefa námskeið um það í dag, ég tel, á 5-o'clock, þannig að ef þú getur stafur í kring fyrir það langan tíma, það vildi - 5 eða 4? Fjórir. Sorry. Það er í raun rétt eftir þetta, þannig að ég mæli með stafur í kring um það ef þú getur. JQuery er frábær, frábær gagnlegur, og þú munt vera fær um að gera fullt af fallegu hlutum með það fyrir nánast hvaða vefur þróun verkefnisins. Nú er ég að fara að fá inn í konar sóma. Ég hef verið að tala í grundvallaratriðum um notendaviðmóti. Notendaviðmót er bara hönnun á vefnum. En það er tegund af annar hugtak sem er notandi reynsla. Tveir eru mjög ólíkir. Tengi er örugglega hluti af reynslu. Með öðrum orðum, þegar þú ferð á síðuna, þú horfir á the tengi. Það er hluti af því hvernig þú upplifir síðuna. En notandi reynsla er meira en það. Notandi reynsla er um það til kynna að notandinn fær frá síðunni þinni er. Svo, augljóslega, tengi er hluti af því. Og það er örugglega nauðsynlegur hluti, en það er ekki nóg. Með öðrum orðum, ef þú hafa a ágætur tengi, og það er falleg og litrík og allt það, sem er frábært, en ef notandinn fer inn á síðuna þína, sér nokkuð skipulag og það er ruglað saman við allt, hefur ekki hugmynd um hvernig á að gera neitt, þá augljóslega þú hefur gert mjög léleg heimasíðu. Það er tegund af þar sem reynsla notandi kemur inn Ég ætla að tala svolítið um UX hönnun - UX er stytting á reynslu notenda - og tegund hvernig þú getur gert úr skugga um að þú sért með góða reynslu notenda. Fyrsta lið er að þú getur hanna vefsíðu þar sem notandi getur gert neitt sem sem notandinn hugsanlega vill. En ef notandi getur ekki fundið út hvernig á að gera þá hluti - í öðrum orðum, ef notandi hefur ekki góða hugmynd þegar þeir fara á síðuna þína á, "Ó, ef ég vil að uppfæra upplýsingar um mig, þá er ég smella á þennan hnapp, eða ef ég vil að skrifa á vegg einhvers, þá fer ég að vegg sínum og smelltu á litla kassa. " Ef notandinn veit ekki það, þá ertu í raun ekki í raun útfærð þessi virkni rétt. Liður í að innleiða með virkni er að notendur eru í raun fær um að nota það. Og það gæti verið pirrandi - þú gætir komið á síðuna, og það er hægt að gera alls konar frábæra hluti, en þá munt þú hafa fólk prófa það og segja: "Það er ekki hægt að gera þetta. Hvers vegna getur það ekki gert þetta? "Og þú munt segja aftur til þeirra, "Jæja, það getur. Þú verður bara að fara í 7. fellilistanum á þetta dimmur síðu sem aðeins er að finna með tengil neðst í hægra horninu "eða eitthvað. Vitanlega, þú vilt ekki. Þú vilt það til að vera ljóst að notendur sem þeir eiga að gera, og það ætti að vera einfalt og innsæi fyrir þá. Annað sem þú vilt að reyna að gera er að, ef einhver er að fara að fara á síðuna þína og 9 af 10 sinnum gera Aðgerð a, og 1 af 10 sinnum gera aðgerð B, þú vilt sennilega að einbeita reynslu sína á aðgerð A. Með öðrum orðum, þú vilt gera það mjög ljóst hvernig á að gera A. A ætti að vera andlit-og-miðstöð - til að fara á síðuna, sjá það, ó, þá hægri þar. En B augljóslega þú vilt vera skýr, en þú getur skilið það aðeins meira í bakgrunni. David gefur gott dæmi um þetta í fyrirlestri, sem er Boston T kerfi. Þegar þú ferð til Boston T og þú vilt að kaupa miða, þú þarft að komast í 5 valmyndir áður en þú getur raunverulega kaupa miða fyrir $ 2, $ 2,50 gildi, sem er hversu mikið það tekur að ríða í neðanjarðarlestinni í eina átt. Það er vandamál vegna þess að flestir sem eru að ríða í neðanjarðarlestinni sennilega bara að fara í einn stað, kaupa miða sína, fá á strax. Það er ekki skynsamleg að þeir verða að fara í gegnum fullt af mismunandi matseðlum til að komast þangað. A betri reynslu notenda myndi vera fljótur hnappur á fyrstu síðu sem bara segir, "kaupa einn-vegur miða," og það myndi setja í öllum stöðluðum sjálfgefin gildi, og síðan ef einhver vill kaupa annan miða en þessi, þeir enn, að sjálfsögðu, hafa möguleika á að, en þú hefur bjartsýni fyrir sameiginlegur-nota málið sem er mjög mikilvægt. Þú getur séð dæmi um þetta á Facebook, ekki satt? Ef þú ferð á Facebook og þú vilt koma einhverju á stöðu, það er rétt efst, sem er það sem þú vilt oft til að gera. Um leið og þú slærð inn á síðuna, getur þú gert algengustu hluti sem þú vilt gera. Ef þú vilt gera örlítið flóknara hluti eins og segja að ég vil fara að vegg vinkonu minnar og sent mynd á það - sem ég mun vilja gera oft, en ekki eins oft og staða stöðu uppfærslur - svo í því tilfelli, ég gerð nafn sitt í reitinn efst, smelltu á uppsetningu þeirra, og þá, samt, er það rétt efst þar þegar ég hef fengið að uppsetningu þeirra. Aftur, ég hef bjartsýni í forgang fyrir algengustu-nota tilvikum. Annar mikilvægur hlutur er þessi oft fólk mun konar reyna að komast í kringum þetta með því að segja, allt í lagi, svo ég hef gert á síðuna og fólk eru að finna það ruglingslegt, og það er vandamál, ekki satt? Vitanlega, ég vil ekki að fólk sé ruglað saman við efni á síðuna mína. En leiðin til að leysa það er ekki að hafa eitthvað skjóta upp orðatiltæki, hey, ég ætla að kenna þér hvernig á að nota þessa síðu. Skref 1 - smelltu á þennan hnapp. Skref 2 - fara hér. Jú, það er leið í kringum það - það er leiðin sem þú getur sagt fólki hvað ég á að gera, en það er raun ekki ákjósanlegur leið. Ef ég fer inn á vefsíðu og skyndilega ég sprengjuárás með þessum einkatími sem er að segja mér hvað á að gera og hvar á að fara og allt það, það er ekki gaman fyrir mig. Það er ekki góð reynsla fyrir mig. Það er góður af a sársauki. Ég vil bara byrja að gera efni. Fólk er að fara að loka út af valmynd þeirra, eða fá út af the einkatími, ekki vita hvað ég á að gera, og þá kvarta vegna þú hefur ekki sagt þeim hvað á að gera. The leiðin til að leysa þetta er ekki með því að gefa hvers konar einkatími eða áttir - eitthvað svoleiðis. Eins mikið og þú getur forðast það, þú vilt virkilega til að sýna notandanum hvað á að gera bara eftir eðli hvernig vefsíða er sett fram. Með öðrum orðum, ef ég fer til Facebook án skógarhögg í, það fyrsta sem ég sé á aðalsíðu - það er lítið innskráningu kassi. Svo, duh. Ég verð að skrá þig inn Það er rétt þarna. En ef ég fór á Facebook og ég þurfti að smella smá tengil neðst sem sagði "skráir þig inn 'og afgangurinn af síðunni var bara einhvers konar mynd eða eitthvað, Ég væri í raun ekki vita hvað ég á að gera, ekki satt? Ég vildi að rugla saman. Svo gæti það sagt mér að fara þangað og smelltu á hnappinn til að skrá þig inn, eða skráð þig inn í hnappinn gæti verið rétt fyrir ofan þar sem ég ætla að sjá hana. Þú vilt alltaf vera að sýna notandanum hvað á að gera, og það ætti að vera sem felst í síðunni sjálfri. Þegar þú ert að hugsa um hönnun og mocking upp mismunandi leiðir tjá síðuna þína, þú vilt virkilega til að hugsa um hvað notendur eru að fara að vera að gera og hvernig þú getur sýnt þeim hvað á að gera. Einn síðastur hlutur er próf er mjög, mjög mikilvægt. Það er frábært að fá einhvern - fá vin, fá einhvern sem þú þekkir ekki einu sinni - sem hefur aldrei séð síðuna áður á að nota síðuna. Þar sem þú hefur verið að vinna á síðuna tímunum, þú hefur verið að glápa á það, og þú veist nákvæmlega hvað ég á að gera svo augljóslega þú ert að fara að vera að prófa hlutir sem þú hefur verið að vinna og að þú veist vinnu. En ef einhver annar kemur með og notar síðuna sem hefur aldrei notað það áður, sem er einstök upplifun þar sem þú hefur einhvern sem hefur enga fyrri þekkingu svæðisins fara inn í það, svo þeir eru að fara að hafa í raun ekki hugmynd um hvað ég á að gera eða hvers konar notkun tilvikum eru til staðar fyrir þá. Það er frábært. Það er einstakt vegna þess að þeir eru fyrst og fremst maður með autt fyrir huga. Þeir geta sagt þér ef eitthvað er ruglingslegt eða óljós. Þeir geta gefið þér hugmynd um einmitt það sem notandi reynsla á síðuna þína er. Það getur verið mjög erfitt að segja að þér, svo ákveðið að ég myndi hvetja þig eins og þú ert að þróa verkefni þín - ef þú ert að gera vefur-undirstaða verkefnum - til að fá fólk nota síðuna eins fljótt og þú hefur einhvers konar hagnýtur kynningu. Nú ætla ég að tala svolítið um hvernig á að stjórna vefnum þróunarverkefni. Við höfum farið yfir hvernig þú getur gert tæknilega bak-endir hlið, hvernig er hægt að hanna mjög góður staður, og það er frábært ef þú ert að vinna með sjálfan þig en - jafnvel ef þú ert að vinna með sjálfan þig og þá sérstaklega ef þú ert að vinna á lið, verkefnastjórnun verður stór mál. Þú hefur konar heyrt um verkefnastjórnun í mismunandi formum síðan grunnskóla þegar þú varst að segja á hópvinnu. Þú þarft að vinna, senda, allt um það. Það gildir allt ennþá hérna, en það eru nokkrar einstakar aðstæður með tölvunarfræði sem þú vilt vera meðvitaðir um, og þú vilt tryggja að þú séð vel. Ég tala fyrst svolítið um liðið að þú munt vera inn Það er mjög mikilvægt að velja rétta stærð af a lið til að vinna á, og í lokaverkefni þínu Ég held að þú hafir möguleika á að velja á milli 1 og 4 manns ef ég hef rétt. Þú vilt tryggja að þú sért ekki bara að velja úr fjölda fólks sem þú vilt vinna með vegna þess að þeir eru vinir þínir. Þú vilt að velja lið sem er góð stærð og það mun fá the starf. Það er a viðskipti burt í að hafa fleira fólk á móti minna fólk. Ef þú ert með fleiri fólk, augljóslega meiri vinna er hægt að gera vegna þess að þú hefur fullt af fólki, fullt af kóða, fullt af hugmyndum, og það er allt frábært. En það þarf líka miklu meira stjórnun og margt fleira samskipti. Með öðrum orðum, ef þú ert 4 sem vinna að sama verkefni og þeir eru allir að breyta sama kóða, meira eða minna þeir alls konar þörf til vita hvað er að gerast svo það krefst þess að þú - ef þú bæta nokkrum nýjum virka þú ert svoleiðis að segja fólki - Ég bæta þetta, Ég er að breytast þetta á þennan hátt - sérstaklega ef þú kemst inn í mjög djúpt efni eins og módel og stýringar sem eru í raun að fara að hafa áhrif á hvernig staður virkar. Allt liðið þarf að vera meðvitaðir um það, svo þú þarft að ganga úr skugga um að þú sért ekki að velja of stórt lið sem er að fara að vera erfitt að gera þessi samskipti. Þú getur einnig vil ekki að velja nógu lítill lið sem þú ert ekki að fara að vera fær um að miðla því það er bara þú. Annar hlutur til íhuga er jafnvægi þar færni fólks eru. Það er frábært ef þú ert voða gott forritari. En ef þú ert alla bak-endir fólk, þá síðuna þína er ekki að fara að líta mjög vel vegna þess að þú hefur þessa miklu gagnagrunn, og það gerir frábær-fljótur leitarfyrirspurnir - sem er frábært - en þegar þú ferð að því, það er eins og a staður með 1990 er rauður og blár alls staðar, og það er ekki gott heldur. Takið eftir að Ben og ég að vinna sem lið eru mjög gott af því að ég er svona meira í framan enda, samskipti við bæði í miðju-endir, og Ben er mjög góður með bak-endir efni, svo sem virkar mjög vel vegna þess að við getum hönnun hvaða staður og í rauninni holur í þessi staður sem þarf að vera fyllt er hægt að fylla með annaðhvort einn af okkur, eða hugsanlega bæði. Þú vilt tryggja að það eru engar holur í liðinu þínu. Það er allt í lagi ef það er hluti af skarast. Með öðrum orðum, ef þú ert 2 manns sem eru bæði góð með bak endir, sem getur verið góð og vel vegna þess að þeir geta hjálpað hver öðrum með vandamál sem þeir eru með. Það getur verið vandamál ef þú hefur aðeins 1 manneskja sem er ábyrgur fyrir ákveðnum hlut og þeir hlaupa inn í vandamál, svo þú vilt hafa smá skarast en þú vilt mest um vert að tryggja að allar hugsanlegar holur eru fylltar. The síðastur hlutur - og þetta ætti að vera augljóst, en það er oft ekki. Þú vilt virkilega að vera að hafa gaman. Tilgangur þessa lokaverkefnis í CS50 og oft að benda á þróun vefur í almennt er ekki bara að gera starf vegna þess að það þarf að gera. Þú vilt virkilega að vera að skemmta sér, og þú vilt vera að gera eitthvað sem er að hvetja þig til að vinna á það. Ef hvað þú ert að gera er sársauki til að setjast niður og vinna, þá þú ert ekki að velja rétt verkefni. Þú vilt að velja eitthvað sem þér finnst áhugavert, þú vilt virkilega til að sjá niðurstöðuna, þú ert spenntur þegar þú færð nýja sýn á eitthvað sem þú gætir gert - svo er það alls konar verkefnum þar sem ég er viss um þú getur fundið - allir hafa eitthvað sem myndi virkilega Intrigue þeim ef þeir eru að gera a vefur-undirstaða verkefnisins. Ég segi það aftur núna. Ef verkefnið virðist eins og sársauka og þú vilt ekki að vinna á það, velja annað verkefni. Veldu eitthvað sem raunverulega hvetur þig. Ben nefndi þetta hugtakið endurtekning a hluti, og ég vil fara yfir það aðeins. Það er mjög mikilvægt að vinna í spurts þar sem þú fengið eitthvað hagnýtur. Það getur verið mikill ef þú hefur þessa áætlun fyrir a website þessi er að fara að gera A, B og C, og að lokum það munum komast þangað. En þú ert fastur í þessum áfanga þar sem þú ert að vinna á það og vinna á það, en ekkert er farin að gera. Þú þarft ekki neitt að sjá og áþreifanlega, hagnýtur hlutur. Það sem þú raunverulega vilja til gera eins mikið og það virðist eins konar sársauka stundum til vinna á eitthvað og þá tegund af Cap það burt svo að það er að minnsta kosti stöðugt, hlaupandi útgáfa jafnvel ef það hefur ekki allar aðgerðir sem þú vilt. Og kannski eru sumir lögun þessi þú vilt virkilega að bæta en þú getur bara ekki vegna þess að þú vilt fá þessa síðu til að virka lið. Og svo þú vilt konar hafa allt þróunarferli líta út eins og þessi. Þú vilt að byrja einhversstaðar hagnýtur - eða í raun að byrja með ekkert - en þú vilt fá eitthvað mjög grunn og hagnýtur. Og þá aftur, gera eins konar stökk og fá einhvers staðar hagnýtur aftur. Þú munt hægt að byggja upp, og það gæti farið svolítið hægar en ella, en í the langur hlaupa ef þú ert stöðugt fastur í þessari miðja jarðar stig hvar þú raun ekki að hafa neitt að vinna, það geta vera a mjög stór hindrun að vinna á verkefnið vegna þess að þú ert alltaf svo nálægt því að fá það að vinna, og það er aldrei í raun að vinna. Þú vilt vinna í þessum hagnýtur spurts, og þú vilt einnig að gera sumir íhugun eftir hverjum og einum. Með öðrum orðum, þegar þú ert á stað þar sem síða er nú að vinna - það hefur ekki allt sem þú vilt en það gerir sumt - þú vilt að hugsa, allt í lagi, er þetta síða inna markmið sem ég ákvað að gera? Með öðrum orðum, ef staður er að fara að gera X, er það sem ég hef að vinna í átt að X? Eru allar virkni sem ég vildi þarna? Og að auki er það að þjóna heildar tilgangi sem ég vil? Ef þú ert að finna að vefsvæði þitt er að byrja að veer í aðra átt eða kannski það bara svona eru ekki að virka út, getur það verið kominn tími til að skipta gír svolítið. Með öðrum orðum, það er þess virði að íhuga - það er þess virði að henda út hugmyndir ef þörf krefur og miðað er ég að vinna í raun að það sem ég vil vera. Ég tel það er næsta lið mitt. Ekki vera hræddur við að yfirgefa hugmyndir. Bara vegna þess að þú eytt fullt af tíma að vinna á lögun og að lokum fékk hún að vinna en það raunverulega er ekki að fara svo vel - eins og það er ekki að gagni eða notendur eru í vandræðum með það - þessi tegund af hlutur - ekki vera hræddur við að henda henni. Það sýgur að þú hafir eytt miklum tíma að vinna á það, en á endanum þú vilt ekki síðuna sem er eins konar sett saman af þessum stykki sem konar vinnu en eru ekki að vel þjónað. Einnig, dont 'vera hræddur til að faðma nýjar hugmyndir. Ef einhver kemur með og segir, hey, þessi síða lítur mjög kaldur en myndi það ekki vera jafnvel mikill ef það gerði líka þessa? Bara vegna þess að það er eitthvað sem þú ætlar ekki og eitthvað sem er ekki á þínu sérstakur, eitthvað sem þú hefur ekki sett fram til að gera, ekki vera hræddur við að taka á því og þá að vinna með það. Vegna þess að oft hugmyndir sem þú keyra með gegn the rás af þróun enda sé raunverulega kaldur lögun af the website. Ég hef sagt þetta áður. Ég segi það aftur. Prófunartæki eru frábær, frábær gagnlegt. Reyna að fá fólk sem hefur aldrei séð síðuna áður að skrá þig inn á og sjá hvað er að gerast vegna þess að þeir geta ekki aðeins prófa notagildi svæðisins og reynslu notenda, en þeir geta einnig prófa virkni á þann hátt að þú getur ekki. Ef þú gera sumir lögun þessi hjartarskinn a viss hlutur og þú veist það er að fara að gera það það sama rétt í hvert einasta skipti, sem er frábært. En það getur oft verið erfitt að gera grein fyrir horn tilvikum þar sem notandi gæti skrifar eitthvað sem þú áttir ekki von - einmitt vegna þess að þú skilgreindir aðgerðir sjálfur. Svo, til að hafa einhver koma á sem hefur ekki hugmynd um hvernig á að nota síðuna og bara brjóta það í hvaða hátt sem þeir geta gert er mjög gagnlegt því þú fá hugmynd frá allt öðru sjónarhorni hvað á síðuna þína er að vinna og hvað þarf viðgerð. Síðast, ég ætla að tala um einhverja almenna góða starfshætti, og þú hefur séð mikið af þessum í CS50, en þeir einnig virkilega, virkilega eiga í verkefninu stilling. Einn er athugasemdir. Alltaf comment númerið þitt sérstaklega ef þú ert að vinna að stóru liði. Það getur verið svo pirrandi að bara risastór blokk af kóða sem einhver er skrifað og kannski virkar það, kannski er það ekki, en þú hefur ekki hugmynd um hvað það gerir, svo þú hefur enga hugmynd um hvort það er gagnlegt eða ekki eða hvort það ætti að vera þarna eða ekki, og ef þú ert að vinna við eitthvað annað það er jafnvel mögulegt að þú ert að vinna á það sama, svo bara að vera mjög, mjög varkár að taka tillit til jafningja þinn og skrifa kóða sem er vel skjalfest. Þú þarft ekki að ganga svo langt að gera allt hlutur þar Eins ef þú stighækkun teljari hefur athugasemd sem segir, ég er að bæta 1 við þennan teljara. Það þarf ekki að vera að nákvæmar, en fyrir hvaða aðgerð sem þú ert alltaf að skrifa þú ættir að hafa sumir gögn um hvað þessi aðgerð nákvæmlega er, hvað inntak hennar eru, og hvað það ætti að skila. Þannig að þú getur notað aðra hluti fólks á vefnum og þú getur unnið að byggja eitthvað stórt. Annar mikilvægur hlutur er að þú vilt gera reglulega hreinn-ups. Code fær sóðalegur. Ekki líður illa ef númerið þitt er bara algerlega ólæsileg og risastór óreiðu. Sem gerist í þróun vefur alltaf. Þú ert að bæta við nýjum eiginleikum, fjarlægja gömlu. Efni er að fara að vera það sem ætti ekki að vera. Það er fínn, en þú vilt vera viss um að takast á við það reglulega. Þú vilt ekki að láta það byggja upp að þeim stað þar sem þú bara getur ekki fundið neitt í kóðanum þínum, og þú hefur ekki hugmynd um hvað eitthvað er. Það er málið með HTML. Stundum þú munt enda með hlutum sem innihalda ekki neitt, og þú þarft að losna við þá. Í CSS er hægt að vera að vísa til þátta sem eru ekki þar lengur, svo þú vilt losna við að kóða. Í JavaScript, þú might hafa fjarlægt eitthvað frá HTML. Svo, þú vilt tryggja að þú ert alltaf að þrífa upp, sem gerir hlutina nokkuð eins mikið og þú getur með reglulegu millibili. Annar mjög gagnlegur hlutur sem ég held ekki er lýst mjög mikið í CS50 en það er þess virði að fá inn í er stjórn útgáfa. Hugmyndin um stjórn útgáfa er þegar þú ert í rauninni að halda utan um allar framfarir þú hefur gert í átt síðuna þína og ef allir benda þér grein fyrir, ó, þetta var að vinna fyrir nokkru síðan en það er ekki að virka lengur, getur þú farið aftur til fyrri útgáfum og sjá hvað hefur breyst síðan þá og þessi tegund af hlutur. Aðal leiðin til að gera sem er með Git og Git er þetta allt eins konar kerfi sem Ég tel Tommy MacWilliam gaf námskeið um síðustu ár. Ef þú ferð inn í CS50 námskeiðum fyrir 2011, er hægt að sjá námskeið hans um það. Hugmyndin um Git er í grundvallaratriðum að á reglulegu millibili sem þú ert að gera þessar skuldbindingar sem eru leiðir til að segja að síða er í ansi stöðuga útgáfu núna svo Ég er umbúðir það upp og senda það burt til a framreiðslumaður, og þá getur þú farið til þess miðlara og líta á allar fyrri útgáfur af kóðanum þínum og sjá hvernig það er gengið og allt sem svoleiðis gott. Svo, það er í grundvallaratriðum það. Eins og langt eins og vefur þróun, erum við fús til að vera kyrr og svara einhverju spurningar eins langt og kynningu okkar. Það er það. Takk. >> [Ben] Takk. [Lófaklapp] [Billy] Starfsfólk, er einhver hefur einhverjar spurningar um það sem við höfum fjallað eða hlutir sem við höfum ekki falla að þeir voru að vonast við myndum ná? Við myndum vera fús til að svara þeim. Einhver? [Áheyrandi] Hverjir eru kostir og gallar þess að nota Ruby eða nota Python? [Ben] Spurningin var, hvað eru kostir og gallar þess að nota Ruby eða Python í stað þess eins og PHP. Kostir eru að Ruby og Python eru mun betri tungumál en PHP. Minnsta kosti að mínu mati, og ég held að í fullt af skoðunum annarra eins og heilbrigður. Þeir voru hannaðir meira fyrir að gera flókna efni, og minna fyrir whacking saman vefsíður mjög fljótt með smá dynamic innihald. The gallar eru að það er svolítið af - það er meira af a læra að fá þá sett upp. Það er, eins og í PHP, getur þú bara að hafa HTML skrá og þú skrifar minna en, spurningarmerki, og þá skrifa nokkur númer, og þá skrifa spurningarmerki, meiri en áður, og þá þú ert búinn. Á öðrum tungumálum eins og Ruby eða Python, þú þarft að fara í gegnum svolítið meiri vinnu til að fá fyrstu síðuna í gangi. Það er líka - að minnsta kosti það notað til að vera raunin - að það er meira skjöl í boði fyrir PHP bara vegna þess að það eru fleiri fólk sem notar það. Ég held að það er ekki eins mikið mál lengur. Það er vissulega mjög gott skjöl fyrir efni eins og Ruby á Teinn eða Django fyrir Python jafngildir. PHP er sá sem allir er verið að nota í mörg ár, og þú veist hvernig það virkar. Ruby og Python eru svolítið minna þroskaður. [Áheyrandi] Ef þú varst að velja á milli einn af þeim til að læra eða taka upp, Hver mundir þú kjósa? Heiðarlega, held ég að ráðast á mann. Fyrirgefðu. Spurningin var hver myndir þú velja fyrir einhvern til að læra? Mér finnst Python ágætur persónulega. There ert a einhver fjöldi af fólki sem - ég gerði fyrst vefur dev verkefnið mitt í Python og Django. There ert a einhver fjöldi af fólk sem finnst Ruby á Teinn líka. Sennilega fleira fólk sem þekkir Ruby á Teinn. Heiðarlega, myndi ég bara fara með hvað fólkið í kringum þig vita þannig að þú hefur fólk til að spyrja spurninga. Spurningin var - á sameiginlegum netþjónum er það góður af harður til að vinna á Python? Það veltur á hýsingu þína. There ert a tala af vélum vefur sem mun eftir Python efni. WebFaction gerir það, ekki satt? WebFaction er eitt sem Billy og ég hef notað í sumum verkefnum. Þeir eru mjög mikill. Þeir styðja flestum tungumálum. En það er satt að PHP er miklu meira víða stutt. Svo, ef þú ert fastur á vefnum gestgjafi sem aðeins er php, það er góð ástæða til að nota PHP. [Áheyrandi] Ég fékk bara í að læra hvernig á að fyrirspurn Sum gagnasöfn, og ég veit SQL minn er út um allt, en ég nýlega fengu snertingu við - og þú bent á það af. Þú sérð JSON og stækkanlegt gagnagrunna. SQL minn er enn út um allt. Hvernig sérð þú það að gerast? Er að fara að vera vaxandi tilhneiging til að fá meiri stækkanlegt (inaudible)? Spurningin var - ég held að það er að fara að vera tilhneiging til non-SQL gagnagrunnum. Til dæmis, eins og MongoDB. Ég held að það sé örugglega satt. Mitt ráð var að mestu mySQL tengdum hér aðeins vegna mySQL er iðnaður staðall. Persónulega, ÉG vilja mikið gagnagrunna sem hafa ekki schemos eins MongoDB þar sem þú ert ekki með útgáfu, ó, ég þarf að bæta við annan dálk. Vei mér, eins og hvað á ég að gera? Það er mjög erfitt að gera það á MySQL, en þegar þú ert eitthvað eins og Mongo það er miklu betur. Hin ágætur hlutur óður í Mongo er að færslur þínar eru í raun JavaScript hlutum. Það er engin tegund af viðskipti skref þar sem þú þarft að taka þessum gagnagrunni raðir og snúa þeim í JavaScript hlut og þá senda þá yfir vírinn. Ég held eitthvað svoleiðis er að fara að vera mjög, mjög gagnlegt fyrir hraðri þróun vefur í framtíðinni. [Billy] Eitthvað sem ég myndi bæta við sem er bara almenn atriði er að finnst eins og þú ættir að hafa lært allt af þeim tungumálum sem við höfum rætt frá málþingi okkar. Vitanlega málið er að gefa þér hugmynd um hvað er þarna úti, og ef þú ert ráðabrugg við eitthvað af því sem við höfum getið þú getur google þá og lesa upp á þeim. Og eins og ég nefndi, það eru nokkur námskeið sem fjalla einmitt þessum hlutum. Það eru jafnvel fleiri námskeið sem ég hef ekki getið að líklega fá inn þetta dót eins og heilbrigður. Hugmyndin er sú að ef þú vilt vinna við eitthvað, hér eru verkfæri til ráðstöfunar þinn. Ekki finnst óvart ef þú ert ekki viss um það sem þessi verkfæri gera nákvæmlega, en veit að þeir eru þarna úti og að þú getur búið almennri notkun þeirra Google. [Áheyrandi] Hvaða góður af hlutur þú þarft að gera til að tryggja að vefsvæði þitt lítur vel út á farsímum? [Billy] Farsímar eru svolítið erfitt. Það er 2 leiðir sem þú getur nálgast það. Fyrsta leiðin er að þú hafir í raun hreyfanlegur website. Með öðrum orðum, framkvæma þú einhverskonar greiningu í upphafi Þegar vafrinn er að gera beiðni á vefsvæðið þitt sem annaðhvort segir aftur þetta sjónarmið - sem verður útsýnið fyrir skrifborð eða laptop vafra - og þetta sinnis fyrir farsíma. Það er staður þar sem skoðanir eru mjög gott í því að þú getur nokkurn veginn skipta um tveir og hafa viðmót sem virkar mjög vel á farsímum og hafa a fullkomlega ólíkur einn sem virkar vel á bókamerki tækjum. Vandinn við það er að það tekur langan tíma því það þýðir kóðun allt öðruvísi tengi. Hin leiðin sem þú getur gert það er - A einhver fjöldi af nútíma símum mun birta vefsíður og reyna að láta þá sem vafrinn vildi, og þeir gera sitt besta. Þú getur konar reyna að vera ljós á the magn af jQuery JavaScript þú ert að nota sem hefur tilhneigingu til að vera þar sem hlutirnir geta farið úrskeiðis svolítið. Þetta er tegund af leiðinni sem þú ættir að nota ef þú þarft ekki að mikill tími. Ef þú hefur tíma til að vinna á a hreyfanlegur tengi, sem er augljóslega besti kosturinn þinn. Ég held almennt að CS50 verkefni, ætlar þú að fara að vilja til að velja einn eða annan. Með öðrum orðum, þú vilt gera a hreyfanlegur app eða þú vilt gera a skrifborð website. Og því um ákvarðar hvar þú ferð með það. En ef þú vilt auka það út seinna, sennilega þinn bestur veðmál er að gera annað tengi fyrir aðra. Ég hef smá reynslu í að þróa WordPress-undirstaða Sites. Ég hýst persónulega vefsíðu á WordPress um hríð. Þeir konar ramma geta vera ágætur bara eins einfaldar hlutina. Oftsinnis þú munt bara hlaupa inn í a einhver fjöldi af customizability málefni þó. Þú þarft að hafa eitthvað að líta ákveðinn hátt eða vera ákveðin leið og þú getur bara ekki vegna þess að það er erfitt-hlerunarbúnað inn í kerfið þetta er hvernig þú þarft að gera hluti sem geta vera a hluti af a vandamál. Síðan hef ég svona verið meira hneigðist til að vinna með síður frá grunni. Fyrir hluti eins og blogg gagnagrunna og þessi tegund af hlutur það er í raun ekki þessi harður til að byggja upp ramma. Ef þú ert virkilega rétti fyrir tíma, þú getur að sjálfsögðu notað eitthvað eins og WordPress eða þessi tegund af hlutur á blogg. The konar hluti sem blogg geyma og gera eru í raun ekki nógu erfitt að ef þú ert að keyra inn eitthvað af þessum tegundum af hlutum, ert þú sennilega best bara að gera í húsinu útgáfu. Ég held að það er um það, svo takk aftur fyrir að koma. Við naut virkilega að tala við ykkur og vona að þú lært smá dót. [Ben] Við erum fús til að tala - við erum að fara en við erum fús til að tala meira fyrir utan ef þú ert með aðra spurningu. Takk aftur. [Lófaklapp] [CS50.TV]