[Powered by Google Translate] [Seminārs] [Web Development: No idejas līdz īstenošanai] [Ben Kuhn] [Billy Janitsch] [Harvard University] [Tas ir CS50] [CS50.TV] [Billy] Sveiki, es esmu Billy, un tas ir Ben. >> [Ben] Hi. Mēs ejam runāt par interneta attīstību šodien. [Webdev] [Billy Janitsch un Ben Kuhn] Mazliet par mums vispirms. Ben ir sava veida back-end puisis. Viņš padara lietas strādā. Un tad es iet un dara to diezgan. Es esmu lielā mērā iesaistīties ar lielāku front-end maketēšana veida stuff, un Ben, no otras puses, zina, ko viņš dara, viņš strādā par back-end stuff. Kopā mēs esam veikuši dažas lietas. Piemēram, pagājušajā gadā mēs strādājām pie Gimblium kas ir tiešsaistes spēļu izstrādes studija. Tas bija mūsu gala projekts klasē, un kopš tā laika mēs esam padarījuši Hārvardas Class kas ir tiešsaistes sistēma pārlūkošanu un iepirkšanās kursus Harvard. Mēs ejam, lai sāktu ar šo ideju mūsu mājas lapā. Mēs ejam, lai padarītu Facebook, bet kaķiem. Pirms jūs faktiski padara šo tīmekļa vietni, nepadara šo tīmekļa vietni, jo tas nav labi, bet mēs izmantosim to kā sistēmu un iet caur procesu, kā mēs šo ideju un pārvērst to par īstu mājas lapā, mēs varam izmantot. Mēs sāksim ar laužot mājas lapā uz leju. Kā jūs esat darījuši CS50, Jūs vēlaties, lai padomātu par to, kādi ir faktiskie sastāvdaļas, kas iet uz šajā tīmekļa vietnē. Būtībā pagriežot to no idejas, kas ir tikai sava veida abstrakts jēdziens par reālu, taustāmu lieta, ka jūs varētu veikt. Mēs sākam, uzdodot dažus jautājumus. Kas ir šī mājas lapa? Kāpēc mēs padarot to? Ko tas gatavojas izmantot? Ka veida lieta. Attiecībā uz Facebook Cat, mēs būtībā vēlas mājas lapā, kas ļauj kaķi sociālo tīklu ar otru. Ideja ir tāda, ka viņi var ievietot viens otram uz sienām, viņi var izteikt komentārus, ka veida lieta. Un tas ir, ja mēs nākam uz funkcionālajām sastāvdaļām. Mums tagad ir šāda veida ietvaros - mēs esam lietotāju profilus, mums ir komentāri, un mēs varam ievietot. Varbūt kādu dienu mēs pieteka patīk un ka veida lieta. Un mēs veida vēlaties prioritāti šīs funkcijas iet iekšā Mēs gribam teikt, piemēram, labi, tas ir ļoti svarīgi, lai ikvienam ir profils un ka ikviens var nosūtīt viens otram uz sienām. Sekundāri, ka komentāri būtu jauki. Varbūt vēlāk mēs pieteka patīk. Tātad, jūs vēlaties, lai ir ideja par to, kas ir būtiska, lai jūsu projektu un kas ir sava veida vispārīgāka funkcija, kas varētu piemērot vēlāk. Jūs vēlaties, lai veida ir īpašs sarakstu prātā, bet projekts, kas jūs sākat ar ir nav būs projekts, kas esat pabeidzis ar. Citiem vārdiem sakot, lietas gatavojas mainīt, kamēr jūs attīstīt šo vietu, un jūs vēlaties, lai atstātu iespēju par to. Es savukārt to pa Ben kurš gatavojas runāt mazliet par struktūru. [Ben] es esmu gatavojas runāt par vairāk tehnisko pusi interneta attīstību. Pieņemsim tikai iet pa dažiem pamatus pirmās. Kad jūs darāt web app, Galvenais dalījums, ka jūs gatavojas, lai ir, ir jūs gatavojas ir dažas lietas notiek klienta pusē - tas ir, kodu, kas tu esi pārlūku ņem no vietas un JavaScript, HTML, CSS sīkumi. Tas ir viss, uz klienta pusē. Jūs esat nāksies citu kodu, kas darbojas uz servera pusē kas seko līdzi visiem datiem, ka cilvēki sūtīt jums, izlemj, kurš dot to, ko, piemēram, ka stuff. Tas ir tikai daži terminoloģija, lai jūs guys visi esam iepazinušies ar to, ko mēs runājam. Tālāk par šo sadalījumu ir labi domāt par savu tīmekļa lietotnes ziņā pāris atšķirīgas sastāvdaļas. Kad jūs darāt interneta attīstību viena no lietām, kas jums ir vienmēr cenšas darīt, ir, lai samazinātu sarežģītību. Sarežģītāka jūsu kods ir lielāka iespēja ir padarīt kļūdas, grūtāk ir mainīt vēlāk. Tātad, ja jūs varat pauze jūsu app vērā daži atšķirīgās funkcionālās zonās kas būs - un jūs varat samazināt veida apmēra pārrobežu zonas komunikācijas - , kas palīdzēs jums daudz ilgtermiņā ziņā, samazinot kļūdas. Jābūt konkrētai, parasti cilvēki sadalīt web app par - tie ir sava veida buzz vārdus tagad, bet viņi joprojām ir noderīgs. Jūs varētu būt dzirdējis cilvēkus runājam par modeļiem, viedokļi un kontrolieri. Modeļi ir faktiskie dati, ka jūsu app ir gatavojas, lai risinātu ar. Piemēram, jūsu Cat Facebook, jūsu modeļi varētu būt - jūs ir modelis, piemēram, amatu, kā arī modeli, lietotāju profilus, piemēram, ka stuff. Jūsu viedoklis ir tas, kā jūs iesniegt minētos datus lietotājiem. Jums varētu būt 1 skatu apskatot vienā amatā un visus komentārus un atšķirīgs skats sienas, kas ir saraksts ar visiem posts , kas ir vērsta uz jums, un atšķirīgs viedoklis par jūsu ziņu barību - piemēram, ka stuff. Visbeidzot, jums ir kontrolieri, kas ir pamatā, kad cilvēki jums nosūtīt ziņojumus un jūs veicat atjauninājumus jūsu back-end sistēmas, Jūs pieauguma ķekars skaitītāji, un neatkarīgi. Tie ir jūsu kontrolieri. Es esmu gatavojas runāt galvenokārt par modeļiem. Skati tehniski nav tik grūti, un jautājums ir vairāk, izstrādājot tos Kontrolieriem būs īpaša, lai kāds jūs projektēšana. Bet ir daži diezgan vispārīgi paņēmienus jūs varat izmantot , lai jūsu modeļiem patīkamāku un vieglāk strādāt ar to es domāju, ka ir ļoti noderīga. Tas galvenokārt būs par to, kā tikt galā ar savu Web Apps datiem jauks veids. Galvenās problēmas, ar modeļiem ir tas, ka viņi dzīvo uz klientu un serveri, un jums ir izdomāt ), kā iegūt tos - visus attiecīgos tiem - no servera uz klientu, un b) to, kā saglabāt tos sinhronizēti. Jūsu lietotāji gatavojas vēlaties veikt dažus atjauninājumus. Viņi gatavojas vēlaties veikt jaunus amatus. Viņi gatavojas vēlaties, lai, piemēram, lietas un stuff, ja jums ir patīk. Tie ir galvenie tehniskas problēmas, kas nodarbojas ar modeļiem. Pirmā lieta, ka jūs gatavojas vēlaties uzdot sevi ir kāda veida dati iet šo modeli un kāda veida vaicājumu mēs gatavojas vēlaties darīt - tas ir, kā mēs gatavojamies apskatīt modeļiem? Jūsu Cat Facebook, piemēram, Jūsu sūtījums ir nāksies autors saistīts ar to, dažas sienas post tekstu, un saņēmējs sienas amata. Un tad jūs varētu vēlēties, lai vaicājumu, ka ķekars dažādos veidos. Jūs vēlaties aplūkot to, ko kurš uzrakstīja kura amatu, ko kurš saņēmis kuru pēc, varbūt pēc datuma, kad tie tika norīkoti. Bet, ja jūs gatavojas to darīt pēc datuma, tad jums ir pievienot vēl vienu lauku savu amatu gada, kad tā faktiski tika publicēta. Šie 2 faktori - kādus datus vēlaties izmantot, un to, kā jūs vēlaties, lai to aplūkotu - Jums vajadzētu domāt par to vispirms, jo tie ir atkarīgi viens no otra, un tas būs grūtāk, lai pievienotu tos vēlāk. Ir daži citi apsvērumi. Kad jūs domājat par to, kā jūs galā ar modeļiem serverī , ko vēlaties apskatīt, ir - Jūs būtībā vēlas, lai padarītu serveri kā vienkāršu, cik iespējams. Darot stuff par klienta pusē parasti ir daudz ātrāk, ja jūs varat darīt to tikai uz klienta bez darot jebkādu tīkla pieprasījuma. Ideja ir darīt, jo daudzi no vaicājumiem, kā jūs varat par klientu. Vienīgā problēma ar šo ir tas, ka, ja jūs lūgt visus savus datus sākumā tad tas būs vajadzīgs ilgs laiks, lai slodze. Tātad, ideja ir panākt laimīgs vidēja starp kuriem pietiekami daudz datu par klientu ka jūs varat darīt lielāko daļu savu darbu tur, bet ne tikai pievilcīgs visu uzreiz tā, ka jums patiešām lēns slodze reizes sākumā. Piemēram, jūsu kaķis datiem Jūs, iespējams, vēlaties, lai atnest ķekars nesen sienas amatu. Jūs negribētu, lai atnest viņiem visiem, jo ​​tas varētu iet atpakaļ pāris gadiem. Bet jūs nevēlaties ielādēt tos pa vienam jo tas ievieš daudz tīklu gaisvadu. Tas bieži vien ir diezgan grūti - pēc tam, kad jums ir datu bāze darbojas - tas bieži vien ir diezgan grūti mainīt, kādi dati jums ir tā - tas ir, pievienot jaunu datu bāzes kolonnu, vai kaut kas - tā viena laba stratēģija ir faktiski tikai, lai saglabātu daudz jūsu datu teksta lāse - JSON lāse - JSON ir JavaScript Object notāciju - Iemesls, kas ir noderīga, ir tāpēc, ka tad jūs varat pievienot jaunas īpašības Uz visiem šiem JSON burbuļus nemainot savu datu bāzi. Vienīgais negatīvie ir tas, ka, ja jums ir ķekars laukiem ka esat pievienojis vēlāk - tāpat slēpjas šajā JSON lāse - tad tas ir grūtāk, lai vaicājumu tās iekšpusē datu bāzē. Piemēram, ja vēlāk - ja Jums ir bijusi jūsu post modeli, ko mēs apspriedām iepriekš tikai ar autoru, saņēmēja un tekstu - jūs varētu arī būt JSON lāse, un tad, ja vēlāk gribēja pievienot datuma lauku jums nebūtu mainīt savu datu bāzi. Jūs varētu vienkārši pievienot datumus, lai visiem teksta laukiem. Un tad jūs varētu apskatīt tos uz klienta pusē, bet jūs nevarētu vaicājumu tos uz servera pusē jo tas ir paslēpies šo tekstu. Cits jautājums, ka jūs vēlaties, lai padomātu par ir tas, kā jūsu klients un jūsu servera gatavojas sazināties. Jūs parasti vēlas, lai saglabātu to kā vienkāršu, cik iespējams. Jūs varat būt kā get-me-šā informācijas pieprasījumu, izveidot-a-new-objektu lieta, un update-vecs-objektu pieprasījuma. Un tie visi būs dažādi URL uz servera, ka jūs - ka pārlūks būs - jūs varat izmantot AJAX pieprasījumus visiem šiem un vai nu saņemt vai post dati. Atkal, mūsu Cat Facebook, piemēram, Jums varētu būt, ka URL, lai iegūtu individuālu amatu, un jūs ir URL, lai izveidotu jaunu sienu amatu un varbūt URL augšupielādējot savu profila bildi, sīkumi, piemēram, ka. Bet atkal, tas ir iepriekš atnest lielākā daļa no jūsu datiem, lai jums nav, lai saglabātu padarot tīkla pieprasījumiem. Šī iemesla dēļ, jūs, iespējams, nevēlaties, lai būt, ka individuāla get pieprasījumu par vienu amatu, un tā vietā jūs vienkārši vēlaties 1 GET pieprasījumu par visu sienu. Un tad, ja jūs mēģināt atrast līdzsvaru, jo - tas arī būs atkarīgs no jūsu pieteikumu. Jo, ja jūs gaida, ka cilvēki ir tikai 10 vai 20 sienu amatus ka būs labi. Bet, ja jūs gaida viņi ir tūkstošiem, tad šis lūgums būtu pārāk garš, un lai jūs varētu vēlēties, lai pievienotu Get-all-ziņojumus, jo parametrs. Attiecībā uz visiem šiem jūs, iespējams, gatavojas vēlaties sinhronizēt datus JSON - JavaScript Object notāciju. Diezgan daudz ik valodas nodarbojas ar JSON ļoti labi. JQuery ir šāda jauka getJSON funkcija, kas darīs visu smago darbu jūsu vietā. Un PHP tur ir arī ļoti jauki JSON sakaru funkcijas. Tātad, tas ir iespējams, labākais formāts, lai nosūtītu savus modeļus un atpakaļ. Kā piemērs tam, ko mēs esam runājuši par līdz šim, šeit ir piemērs plūsmas jūsu Cat Facebook pieteikumu. Tas sākas ar pārlūkprogrammu, kas pieprasa bāzes tīmekļa vietnes URL. Serveris, iespējams, varētu sūtīt pa statisku HTML, un daži JavaScript un CSS. Tas parasti ir labākais, nav darīt jebkādu sniegšanu uz servera. Jūs, iespējams, nevēlaties, lai - ko serveris nedara tur iet uz leju sarakstu sienas amatu un radot sava HTML par katru vienu un nosūtīšanu, kas vairāk. Tas parasti ir labākais, lai izdarītu uz klienta pusē, jo pretējā gadījumā katru reizi, kad jūs vēlaties, lai atkārtoti izdarīt kaut ko, jums ir veikt servera pieprasījumu. Un tas ir ļoti ātri, sniedz jums daudz virs galvas. Tas parasti ir labākais, tikai kuģis sūta uz leju statisku HTML un tad JavaScript un CSS, kas darīs izciršanas uz klienta pusē. Tiklīdz šī sīkumi nāk, tad jums var būt - JavaScript - jūs varat darīt pieprasījumus sienas datiem un sīkumi, piemēram, ka, un pēc tam serveris ir būtībā tikai darot datu bāzes vaicājumu un pārbaudot atļaujas. Vienīgais svarīga lieta ir tā, ka nevar nosūtīt pa kādu citu lietotāju sienu posts ka jūs nav atļauts redzēt. Pamatā var ļoti plānas piekļuves slānis ar savu datu bāzi, un tad visi parāda datus, - visus viedokļus un stuff - tie var notikt jūsu pārlūkprogrammā, un tad, kad jūs vēlaties, lai pastu vai kaut ko jūs vienkārši nosūtīt citu pieprasījumu. Tur ir arī dažas fancy stuff, jūs varat darīt, virsū to. Runājot par detalizētāku tehnisko informāciju, attīstās vienkāršā JavaScript var būt nedaudz sāpīgi, tāpēc ir dažas bibliotēkas un rīkus, kas palīdzēs jums daudz ar to. Es domāju, ka jūs visi esam dzirdējuši par jQuery, kas padara darot HTML izciršanas un manipulācijas daudz vieglāk - ir daudz iedomātā funkcijām izbalēšanu iekšā un ārā, un darot enerģisks animācijas. Tur ir arī šī bibliotēka sauc Underscore.js. Tā ir daudz noderīgu komunālo funkciju, sīkumi, ka jūs varētu sagaidīt JavaScript lai būtu ka tas tiešām doesn't - lietas, piemēram, shuffling masīvs, noņemot dublikātus no saraksta, vai līdzināšanas sarakstu sarakstos. Šis ir tikai neliels koda paraugs. Pasvītrojums ir ton šo jauku funkcijas, kuras vēlas jums būs visu laiku. Un tad tur ir 1 bibliotēka, ka es gribētu pavadīt mazliet laika sauc Backbone.js jo mugurkauls tiešām palīdz jums tikt galā ar modeļiem klienta pusē un daudz neskaidrības, kas var izraisīt. Mugurkauls dod jums šo jēdzienu modeļu un kolekcijas JavaScript kuras pamatā tieši tāpat JavaScript objektu JavaScript masīvi, bet tie ir notikumi, kad jūs mainīt savas īpašības. Tāpat kā JavaScript, jums var būt gadījumā, kad poga izpaužas noklikšķinājuši vai kaut ko šie mugurkaulu modeļi un mugurkaulu kolekcijas raidījums lietas, piemēram, ka tad, kad tās mainās. Tas nozīmē, ka jūs varat vienkārši rakstīt kaut ko līdzīgu šo koda fragmentu šeit - tas saka, kad jūs pievienot kaut ko amatiem masīva jūs ievilktu visu sienu. Un tas būtu teikt, kad amatu ir vairāki patīk mainās, Jums paziņot lietotājam, ka kāds patika viņu amatu. Vai tad, ja kāds īpašums amatu izmaiņas jūs ievilktu pa pārliktni. Sīkumi, piemēram, ka ietaupīs jums t sarežģītības, jo pretējā gadījumā ja jums nav dažus tiesiskā regulējuma kā šis, tad katru reizi, kad jūsu kodu, ka jūs mainīt kaut ko par amatu, jūs ir jāatceras sevi, lai izsauktu visus padara funkcijas un sīkumi, piemēram, ka, un, ja vēlaties pievienot kaut ko jaunu, kas notika katru reizi, kad pārveidots amatu jūs iet caur katru vietu savā kodu, kas jums modificēta pastu un piebilst, ka jauna lieta. Regulējums, piemēram, tas noņems daudz, ka starp slānim komunikācijas kas padara jūsu kods sarežģīta un grūti saglabāt. Tur ir mazliet par viedokļiem arī. Es esmu gatavojas atstāt lielāko daļu no to Billy jo viņi tehniski nav ļoti grūti. Izmantot jQuery jūsu viedokli. Tas ir gandrīz kā nepieciešamību šajā brīdī. Tas tikai padara visu tik daudz vieglāk. Ir daudz bibliotēku. Ja jums ir sarežģīta lietotāja interfeisa elementus, ja jūs vēlaties, auto-pilnīgs, kaut vai, piemēram, vienu no šiem iedomātā vairāku selektori - Ja jūs vēlaties kaut ko, piemēram, ka, jums, iespējams, vienkārši meklēt ap un jūs varat atrast labu bibliotēku, kas darīs to, ko jūs vēlaties. Billy izskaidros vairāk par faktiski grūtajos daļas viedokli. Tāpat kā sānu piezīmi, mugurkauls ir dažas funkcijas, lai padarītu viedokli zināmu labi ar modeļiem - apskatīt dokumentāciju visiem šiem bibliotēkām, faktiski. Paskatieties docs. Viņi ir ļoti labi uzrakstīts un viegli sekot. Vispār, jūs varat diezgan daudz tikai Google, ja jums ir problēmas. Ir daudzi cilvēki, izmantojot tos. Es domāju, ka tas ir gala piezīmi. Ir arī dažas īpašas lietas, ko jūs varat darīt, Ja jūs meklējat, lai padarītu jūsu mājas app papildus awesome. Jūs varat darīt - jaunā HTML5 specifikācija ir daudz iedomātā lietas jūs varat darīt. Vietējā atmiņa - kas var glabāt datus pārlūkā - nevis doties atpakaļ un iepazīties serveri par visu, Jūs varat saglabāt dažus no tā uz klientu un ka pat ļauj cilvēkiem - Dažos gadījumos tas var pat ļauj jums izmantot tīmekļa lapas bezsaistē. Tur tas ir lieta, ko sauc WebSockets kas ir dažāda veida tīkla komunikācija kurā vietā, tikai jūs veicat vienu pieprasījumu, jūs saņemsiet atbildi, un tas ir paveikts, jūs turēt atvērtu savienojumu ar serveri, un lai jūs varētu darīt lietas, piemēram, reālā laika atjauninājumus. Tātad, ja jūs mēģināt veikt tērzēšanas app, jūs varētu izmantot WebSockets komunicēt un atpakaļ, lai jūs nebūtu, lai saglabātu pieprasot, "Ak, serveris, vai kāds sūtīt man čatu?" Ik pēc 10 sekundēm vai kaut ko. Tur ir arī interesanta HTML5 funkcija, kur jūs varat padarīt to izskatās URL lapas mainās, nekad ņemot patiešām ievietojiet to. Jūs varat izmantot atpakaļ un uz priekšu pogas bez darot ķekars tīkla pieprasījumiem. Sīkumi, piemēram, ka ir ļoti noderīga, lai padarītu to ātri, bet arī strādāt kā web app vajadzētu. Tur ir arī šī lieta, ko sauc CoffeeScript. CoffeeScript ir atšķirīga valoda, patiesībā, kas apkopo līdz JavaScript. Jūs varētu rakstīt visu savu kodu CoffeeScript, un tad palaist šo kompilatoru, un tas atklepo JavaScript failu, jūs varat iekļaut savā mājas lapā. Iemesls, ka CoffeeScript ir jauki, jo tas izpaužas atbrīvoties no daudz dīvaini gadījumi, ka JavaScript ir kur vienāds vienāds, un vienāds vienāds darīt dažādas lietas, vai patīk - tas ir nicer sintakse, kas nodarbojas ar masīviem un funkcijām. Tas ir nedaudz fragments CoffeeScript kas ražo sarakstu ar visiem kvadrātu no 10 ^ 2 pret 1 ^ 2 apgrieztā secībā. Kā jūs varat redzēt, CoffeeScript bieži ļauj izteikt 1 rindā ko varētu veikt 5 rindiņas JavaScript. To var darīt lietas daudz vieglāk. Tas ir mazliet par jaunu sintakses mācīties sākumā, bet tas noteikti dos jums vairāk produktīvu ilgtermiņā. Jūs varat arī izmantot citas valodas uz servera, nekā PHP - valodas, piemēram, Ruby, Python, vai tur pat projekts ar nosaukumu node.js , kas ļaus jums izmantot JavaScript uz servera. Personīgi, es tiešām, tiešām ienīst PHP. Man vienkārši nepatīk strādāt ar to. Ja arī jūs domājat, ka tas ir šausmīgs cluge no valodas, tad jūs varat izmantot vienu no šiem vietā. Vispār, ja jūs vēlaties darīt kaut ko, un jums nav tiešām zināt, kā jūs varētu darīt to, tikai meklēt internetā. Ir tonnas un tonnas resursu, jo īpaši attiecībā uz - StackOverflow ir liels vienu. Tā tas ir mājas, kur programmētāji uzdot viens otram jautājumus. Jums varētu būt uzskriet tā, ja jums bija, kam problēmas par CS50 problēmu kopas. Un tur ir t bibliotēkās dara diezgan daudz kaut ko jūs vēlaties. Ja jūs vēlaties darīt kaut ko, un jūs nezināt, kā to izdarīt, neuzskatiet, ka tas ir neiespējami. Paskatieties apkārt un jūs varētu atrast dažas labas resursus. Kā vispārējs satīt, galvenie takeaways ir saglabāt lietas vienkārši. Sarežģītāka jūsu kods ir sākumā un vairāk jūs mēģināt un darīt fancy stuff, ilgāk tā veiks, lai saņemtu kaut ko reāli funkcionējošu un grūtāk būs mainīt vēlāk. Tātad, darīt lietas, mēms, vienkāršu veidu pirmās. Lai iet kopā ar to, nav bail no throwing prom veco kodu vai tīrīšanas to daudz. Parasti, kad jūs faktiski ir kaut kas strādā, tas ir daudz vieglāk domāt par to, kā tad, kad jūs vēl sākuma stadijā par to, kā es varu īstenot šo visu kopā. Tas ir labākais, lai radītu pēc iespējas dumbest dizainu, kas strādā un tad uzlabot iteratīvi nekā mēģināt iegūt viss labi pirmo reizi. Attiecībā uz klienta-servera rajons, izmēģināt un saglabāt savu serveri ir ļoti vienkāršs - tikai datubāzes un daži autentifikācijas un nerāda nekādu smago darbu tur. Darīt visu jūsu sarežģīta stuff klienta pusē pārlūkā JavaScript, cik vien iespējams. Paskatīties uz bibliotēkām, kas padara jūsu dzīvi labāku. Vienmēr labāk izmantot kodu, kāds cits rakstīja Ja jums - un nevis rakstīt pats. Tur ir daudz stuff internetā. Google ir jūsu labākais draugs. Google ir programmētāja labākais draugs. Jā, noteikti nav jābaidās paskatīties uz lietām. Labi. Un pār Billy. [Billy] Patiesībā, pirms es sāku ar kādu dizaina sīkumi, Vai kāds ir kādi jautājumi par ben par kaut ko, ka viņš runāja par to? Labi, labi. Atkal, ļaujiet mums zināt, ja kaut kas nav skaidrs, vai, ja jūs vēlaties, lai mēs iet pār kaut ko nedaudz vairāk. Es esmu gatavojas soli atpakaļ mazliet, un runāt par to vairāk pamata daļas dizains. Ben minēja modeli sauc - sorry, modelis kontrolieris skats sistēma kas ir sava veida tehnisko aspektu, tāpēc es esmu gatavojas apskatīt skatiem īpaši, un es esmu gatavojas sākt ar to, kā jūs veidot viedokli, ka izskatās jauki. Šeit ir sava veida ļoti pamata veidni mūsu Cat Facebook. Es domāju, ka ir daži pamati mūsdienu UI dizaina ka ir vērts pacelt. Jūs varat pamanīt tur ir daudz balto laukumu visā lapā, daudz vietas lietām. Nav justies kā jums ir skvošs lietas vērā lapā. Vēlaties atstāt daudz vietas atvērtas, un, ja jūs doties uz gandrīz jebkuru mūsdienu mājas lapā jūs redzēsiet tur ir balta visur. Tur ir balta vietās jūs nevarētu gaidīt. Esat šo krāsu paleti, un tas ir gudrs sākumā izvēlēties krāsu paleti, kas jūs gatavojas strādāt un attīstīties. Jūs arī - tas palīdz izvēlēties burtveidolu, un tādā veidā jūs esat veida darbam ar šie konkrētie pamati dizainu. Jums ir savu veidu, jums ir jūsu krāsas, un tad jūs varat veida ietilptu viss cits, kā nepieciešams. Tātad, kā jau teicu, ar savu krāsu shēmu, jūs vēlaties izmantot drosmīgāki krāsas jūsu krāsu shēmu taupīgi. Galvenes ir jauki. Pogas ir jauki, ir patiešām liels, spilgts krāsu. Bet vispār, ja jums ir mājas lapā, kas ir krāsas visur, visi skatās jūs sejas, tas tikai izskatās pārblīvēta, un tas nav labi. Jūs vēlaties parasti izmanto gaišos toņos. Mēģiniet vēlreiz, izvēlēties diezgan saskaņotu krāsu shēmu. Jūs varat būt šo maz šļakatu daudz krāsu - tas var izskatīties diezgan jauki, bet jūs vēlaties, lai tos izmantotu diezgan taupīgi. Kā jau es teicu, jūs vēlaties būt minimāla. Mazāk ir gandrīz vienmēr ir vairāk. Ja jūs varat parādīt kaut vai nerāda kaut ko, un jūs esat veida pārliecināts, vai tas ir tur pēc noklusējuma - iespējams, jūs esat labākais off atstājot to ārā. Jūs vienmēr varat pievienot to vēlāk. Jā, saglabāt lietas vienkārši. Bet pats galvenais, jūs varat apsvērt vairākus dizainu. Nedomāju, ka tad, kad jūs veicat vietnes, jums ir to savā galvā, ka jūs gatavojas padarīt vietni noteiktā veidā, un tas notiek, lai izskatās tieši tāpat kā šis. Tas nāksies zilo galvenes augšā un zilā sānu joslu un pēc tam yellow sub-header lieta. Jūs vēlaties, lai vairākas veidnes. Jūs varat vai nu - ja jūs esat labs ar Photo Shop, jūs varat atvērt, kas veido un veida dizains mājas lapā, kā jūs vēlaties to apskatīt. Ja ne, jūs varat izmantot pildspalvu un papīru, bet ieskrāpēt up vairākus dizainu. Jūs vēlaties, lai būtībā ir izveidot, ja jums ir daudz dažādu dizainu, un, ja kāds nonāk darba, tad tas ir lieliski. Ja viens beidzas nesekmīgi, tad jūs vienmēr ir vēl viens pie kā vērsties. Vispār, nav justies kā jums ir ierobežots lai neatkarīgi no dizaina jūs sākotnēji izlemt par. Dizains ir ļoti mainīgs, un daļa no to, cik svarīgi modeļa kontrolieris viedoklis sistēma ir, ka jūs varat mijmaiņas un dažādus viedokļus, ko vēlaties. Jūs varat šūpoties uz datiem vienā virzienā, un tad izlemt, ak, patiesībā, tas nedarbojas, ka labi. Es domāju, ka tas ir sava veida pārāk sarežģīts vai tur daļa, šeit, ka nav īsti strādāt, tāpēc es esmu tikai gatavojas pilnībā atteikties no šo viedokli un mijmaiņas ar pilnīgi jaunu. Mēs joprojām varam lietot veco modeļus un veco kontrolieriem. Mēs varam darīt visu uz servera un klientu, kā mēs to agrāk. Bet faktiskais vilnis datu kā redzams būs nedaudz atšķirīga. Ciktāl faktiski īsteno dizaina, kuru vēlaties, pēc tam, kad jums ir dažas dizaina ieskicēts uz papīra vai Photo Shop vai kāds, ir vairāki instrumenti, kas ir pieejami Jums. Pirmais jūs esat ļoti labi pārzina, kas ir jūsu HTML, PHP, vai kāds valodu jūs izmantojat tikai kodu statiskās lapas jūsu mājas lapā. Jūs esat strādājis daudz ar HTML, kāds dod jums šos tagus ka jūs varat ielikt lietas, un būtībā tas ir veids, kā organizēt savu saturu. Piemēram, jums ir galveni tur, tāpēc jums nāksies galvenes tagu, un tā nāksies kādu tekstu iekšpusē no tā, kas ir iespējams, būs citā tag. Tad jums ir sānjoslas varbūt ar dažiem dažādas saites, un tiem gatavojas visi ir atsevišķās tagus. Tātad, būtībā HTML savā sirdī, ir veids, kā sadalīt lapu, kā Jūs, iespējams, vēlaties formatēt to. Tātad atkal, jūs esat redzējis, ka pirms tam. Tu esi diezgan apmierināti ar darbu ar to tagad ņemot vērā, ka jūs esat darījuši pēdējo PSET cerams, tā, ka nevajadzētu būt problēmu. Tad jums ir CSS, kas būtībā rīkojas visas konstrukcijas statisko aspektiem. Tas rokturis visas krāsas, visas pozicionēšanai dažādiem elementiem, kur tie pāriet attiecībā viens pret otru, cik lielas tās ir, dažāda veida positionings, ka jūs varētu būt - citiem vārdiem sakot, jums var būt lietas, nostiprināti tā, ka tad, kad jūs ritiniet uz leju tie paliek, vai arī jums var būt lietas, salīdzinājumā ar citiem elementiem. Visi šāda veida stuff ir CSS. Turklāt, jūs varat darīt dažādas rotājumi, jums var būt teksta krāsas, teksta efekti, visi šāda veida stuff. Ben deva patiešām labu semināru par šī pēdējā nedēļas nogalē, un tāpēc es noteikti pārliecinieties, ka, ja jūs plānojat darīt dažas fancy lietas ar CSS. CSS3 ir faktiski jaunākā versija CSS, un to var darīt visu veidu patiešām labas lietas. To var darīt, slīpumi, jums var būt jauka, noapaļoti stūri, jūs varat darīt visu veidu lietas , lai jūsu mājas izskatās vairāk moderns un iedomātā. Nākamais rīks ir JavaScript un jQuery, kas Ben runāja mazliet par to, bet es nopirkšu mazliet dziļāk. JavaScript, kā jūs esat strādājis ar to mazliet, vai vismaz redzējis to lekciju, ir sava veida veids, kā dinamiski darīt lietas HTML. HTML, kā jūs zināt, ir nemainīga, tāpēc, kad jums ir HTML Jūs nevarat mainīt to. Bet JavaScript, dažos veidos, ir veids, lai varētu mainīt HTML. Tātad jūs varat darīt, un tas ir lieliski, bet JavaScript tiešām ir sāpes, lai strādātu ar. Tas ir tik garš un plats un darīt pat visvienkāršākās lietas prasa daudz līniju JavaScript. Tātad, jQuery pamatā bibliotēka JavaScript, kas vienkāršo visu to. Tajā teikts, labi, ja jūs vēlaties, lai būtu kvadrātveida kastē nāk no kreisās puses un izbalināt uz lapu, lai tā ir pa vidu, JavaScript, kas būtu jāveic - Es nezinu, simts līnijas to darīt, un tas varētu būt sāpes, un jūs iznākt no tā ienīst visu par web programmēšanu. JQuery jūs būtībā ir elements-dot-fade-in, vai kaut kas tamlīdzīgs. Tātad, ļoti, ļoti vienkāršas funkcijas, kas ļaus jums darīt visu atdzist animācijas veidu un ka veida lieta. Otra lieta, ka šie 2 ir patiešām labs ir tikai dara dinamisku lietas ar mājas lapā. Tātad, nevis tikai ar savu HTML lapu - kas parāda dažus datus, bet tas nav reāli kaut ko darīt - JavaScript un jQuery ļaus jums ir pogas, ka jūs varat noklikšķināt uz, un jūs varat vilkt elementus un atkārtoti pasūtīt un šķirot tos, un ir jauni elementi pievienot vai noņemt. Jūs varat pievienot, dzēst, ka veida lieta. Tātad, jQuery tas tonnas atdzist lietas. Un Vipul faktiski dod semināru par to šodien, es uzskatu, 5-pulksten tādēļ, ja jūs varat stick apmēram, ka ilgi, lai būtu - 5 vai 4? Četri. Piedodiet. Tas ir faktiski uzreiz pēc tam, tāpēc es ieteiktu uzlīmēšanu ap to, ja tas ir iespējams. JQuery ir super, super noderīga, un jūs varētu darīt daudz patiešām labas lietas, ar to diezgan daudz jebkuru interneta attīstības projektu. Tagad es esmu gatavojas nokļūt veida atšķirību. Es esmu runājis būtībā ir par lietotāja interfeisu. Lietotāja interfeiss ir tikai konstrukcija vietā. Bet tur ir sava veida cita koncepcija, kas ir lietotāju pieredzi. Abi ir ļoti atšķirīgi. Saskarne ir noteikti daļa no pieredzes. Citiem vārdiem sakot, ja jūs doties uz vietni, paskatās interfeisu. Tas ir daļa no tā, kā jūs pieredzi vietā. Bet lietotāju pieredzi, ir vairāk nekā to. Lietotāju pieredze ir par to, ko iespaids, ka lietotājs saņem no jūsu vietā ir. Tātad, protams, interfeiss ir daļa no tā. Un tas noteikti ir nepieciešama daļa, bet tas nav pietiekami. Citiem vārdiem sakot, ja jums ir jauka interfeiss, un tas ir diezgan un krāsains, un visu to, tas ir lieliski, bet, ja lietotājs iet uz jūsu vietni, redz diezgan izkārtojumu un tas mulsina viss, nav ne jausmas, kā kaut ko darīt, tad protams, jūs esat veikuši patiešām slikta mājas lapā. Tas ir sava veida, kur lietotājs pieredze nāk collas Es esmu gatavojas runāt mazliet par UX dizains - UX ir īss lietotāju pieredzi - un veids, kā jūs varat pārliecināties, ka jums ir laba lietotāja pieredzi. Pirmais ir tas, ka jūs varat dizains mājas lapu, kurā lietotājs var darīt jebko, ka lietotājs, iespējams, vēlas. Bet, ja lietotājs nevar izdomāt, kā to darīt tās lietas - citiem vārdiem sakot, ja lietotājs nav laba ideja, kad viņi iet uz savu vietu, "Ak, ja es gribu, lai atjauninātu savu profilu, tad es noklikšķiniet uz šīs pogas, vai, ja es vēlos ievietot kāds ir siena, tad es eju uz to sienu, un noklikšķiniet uz mazā kastīte. " Ja lietotājs nezina, ka, tad jūs faktiski ir faktiski nav īsteno šo funkcionalitāti pareizi. Daļa, īstenojot funkcionalitāti, ir tas, ka lietotāji varētu faktiski izmantot. Un tas varētu būt apgrūtinoši - jūs varētu veikt vietā, un to var darīt visu veidu brīnišķīgas lietas, bet tad jums ir cilvēki, pārbaudīt to un saka: "To nevar izdarīt. Kāpēc nevar to darīt? ", Un jums teikt atpakaļ uz tiem, "Nu, tas var. Jums tikai jādodas uz 7 nolaižamajā izvēlnē par šo neskaidra lapa, kas ir atrodama tikai ar saiti pie apakšējā labajā stūrī ", vai kaut ko. Protams, jūs nevēlaties, ka. Jūs vēlaties, lai būtu skaidrs, lietotājiem to, ko viņi vajadzēja darīt, un tā būtu vienkārša un intuitīva tiem. Vēl viena lieta, ka jūs vēlaties, lai mēģinātu to darīt, ir, ja kāds ir gatavojas iet uz jūsu vietni un 9 no 10 reizes do rīcības A, un 1 no 10 reizes do rīcības B, jūs droši vien vēlaties, lai koncentrētos savu pieredzi par rīcību A. Citiem vārdiem sakot, jūs vēlaties, lai būtu ļoti, ļoti skaidrs, kā to izdarīt A. Jābūt priekšā un centrā - doties uz vietni, redzēt to, ak, tas ir labi tur. Tā kā B protams, jūs vēlaties, lai būtu skaidrs, bet jūs varat atstāt to mazliet vairāk fonā. David sniedz labu piemēru par šo lekciju, kas ir Boston T sistēmu. Kad jūs doties uz Bostonas T, un jūs vēlaties iegādāties biļeti, Jums ir nokļūt 5 izvēlnes, pirms jūs faktiski var iegādāties biļeti par $ 2, $ 2,50 vērtībā, kas ir, cik daudz tas nepieciešams, lai braukt ar metro vienā virzienā. Tas ir problēma, jo lielākā daļa cilvēku, kas ir izjādes metro iespējams, vienkārši vēlaties doties uz vienu vietu, iegādāties savu biļeti, saņemt par uzreiz. Tas nav jēgas, ka tie iet cauri daudz dažādām izvēlnēm tur nokļūt. Labāku lietotāju pieredzi, būtu ātri pogas pirmajā lapā tas vienkārši saka, "pirkt vienvirziena biļeti", un kas liktu visās standarta standartvērtības, un tad, ja kāds vēlas nopirkt citu biļeti, nekā tas, viņi joprojām, protams, ir iespēja, bet jūs esat optimizēta kopīgā izmantošanas gadījumu, kas ir ļoti svarīgi. Jūs varat redzēt piemērus par Facebook, vai ne? Ja jūs iet uz Facebook, un jūs vēlaties, lai post statusu, tas ir labi, augšā, kas ir tas, ko jūs bieži vēlaties darīt. Tiklīdz ievadāt lapā, jūs varat darīt, visbiežāk lietām, kas jūs vēlaties darīt. Ja jūs vēlaties darīt nedaudz sarežģītākas lietas, piemēram, teikt, es gribu iet uz mana drauga sienām un post priekšstatu par to - ko es jums gribu darīt bieži, bet ne tik bieži, cik norīkošanu statusa atjauninājumus - Tātad šajā gadījumā, es ierakstiet savu vārdu lodziņā augšpusē, noklikšķiniet uz savu profilu, un tad vēl, tas ir labi, augšā tur, kad es esmu gotten savu profilu. Atkal, es esmu optimizēta prioritāti visbiežāk izmantošanas gadījumiem. Vēl viena svarīga lieta ir tā, ka bieži vien cilvēki veida mēģināt iegūt ap šo sakot, labi, tāpēc es esmu, kas vietu, un cilvēki ir atrast to mulsinoši, un tas ir problēma, vai ne? Protams, es nevēlos, lai cilvēki, kas var sajaukt ar satura manā vietā. Bet gan veids, kā atrisināt šo ir, ka nav kaut kas pop up sakot, hey, es esmu gatavojas mācīt jūs, kā izmantot šo vietni. Solis 1 - noklikšķiniet uz šīs pogas. Solis 2 - dodieties šeit. Protams, tas ir veids, kā ap to - tas ir tā, ka jūs varat pateikt cilvēkiem to, ko darīt, bet tas ir tiešām nav optimāls veids. Ja es iet uz mājas lapā, un pēkšņi es esmu bombarded ar šo pamācību, kas ir spēcīgi mani , ko darīt un kur iet un tas viss, tas nav jautri man. Tā nav laba pieredze man. Tas ir sava veida sāpes. Es gribu, lai tikai sākt darīt lietas. Cilvēki gatavojas slēgt no dialoga kasti, vai izkļūt no apmācība, nezina, ko darīt, un pēc tam sūdzēties, jo Jums nav teicis viņiem, ko darīt. Veids, kā atrisināt tas nav sniedzot jebkāda veida apmācība un virzienos - kaut kā tā. Tik daudz, kā jūs varat izvairīties no tā, jūs tiešām vēlaties, lai parādītu lietotājam ko darīt tikai ar dabu, kā mājas lapa ir izklāstīts. Citiem vārdiem sakot, ja es eju uz Facebook, bez piesakoties, Pirmā lieta, ko es redzu galvenajā lapā - tas ir mazliet pieteikšanās kastīte. Tātad, duh. Man ir, lai ieietu Tas ir labi tur. Tā kā, ja es devos uz Facebook, un man bija, noklikšķiniet uz maz saites apakšā ka teica "ieiet" un pārējā lapas bija tikai sava veida attēlu vai kaut ko, Es nebūtu īsti nezina, ko darīt, vai ne? Es varētu sajaukt. Tātad, tas varētu man pateikt, lai iet tur lejā, un noklikšķiniet uz pogas, lai pieteiktos, vai ieiet pogu varētu būt pašā augšā, kur es esmu gatavojas, lai to aplūkotu. Jūs vēlaties, lai vienmēr parādot lietotājam, ko darīt, un kas būtu raksturīgi pašas lapas. Kad jūs domājat par dizainu un dzeltenais up dažādus veidus paužot savu vietni, jūs patiešām vēlaties, lai padomātu par to, ko lietotāji gatavojas darīt un kā jūs varat parādīt viņiem, ko darīt. Viens no pēdējā lieta ir testēšana ir ļoti, ļoti svarīgi. Tas ir liels, lai iegūtu kādu - iegūt draugu, iegūt kādu jūs nezināt pat - kurš nekad nav redzējis portālu pirms izmantot vietni. Jo jūs esat strādājis uz vietas stundām, jums ir skatās uz to, un jūs zināt, tieši to, ko darīt, protams, jūs esat būs testēšanas lietas, kas jums ir, kas strādā, un, ka jūs zināt, darbu. Bet, ja kāds cits atnāk un izmanto vietā, kas nekad nav izmantots agrāk, kas ir unikāla pieredze, jo jums ir kāds, kam nav iepriekšējas zināšanas no vietnes iet uz to, lai viņi nāksies efektīvi ne jausmas, ko darīt vai kāda veida izmantošanas gadījumu ir klāt viņiem. Tas ir lieliski. Tas ir unikāls, jo viņi būtībā cilvēks ar tukšu prātu. Viņi var jums pastāstīt, ja kaut kas ir neskaidrs vai neskaidrs. Viņi var dot jums priekšstatu par tieši to lietotāju pieredzi jūsu vietnes. Tas var būt ļoti grūti pateikt, ka sevi, tāpēc noteikti es aicinu jūs, kā jūs attīstīt savu projektu, - ja jūs darāt tīmekļa projekti - lai cilvēki, izmantojot vietni, kā jau jums ir kāda veida funkcionālo demo. Tagad es esmu gatavojas runāt mazliet par to, kā vadīt web izstrādes projektu. Mēs esam aizgājuši par to, kā jūs varat darīt, tehnisko back-end pusē, kā jūs varat veidot ļoti labu vietu, un tas ir lieliski, ja jūs strādājat ar sevi, bet - pat ja jūs strādājat ar sevi, un jo īpaši, ja jūs strādājat komandā, projektu vadība kļūst liels jautājums. Jūs esat veida dzirdējuši par projektu vadību dažādās formās, kopš pamatskola, kad bija teicis grupu darbu. Jums ir sadarboties, komunicēt, tas viss. Ka viss joprojām ir spēkā šeit, bet ir dažas unikālas apstākļi datorzinātnes, ka jūs vēlaties būt informēts par, un jūs vēlaties, lai pārliecinātos, ka jūs rīkoties labi. Es ņemšu runāt vispirms mazliet par komandu, ka jūs būsiet iekšā Tas ir ļoti svarīgi izvēlēties pareizo izmēru komanda, kas strādā ar, un savu galīgo projektu, es domāju, ka jums ir iespēja izvēlēties no 1 līdz 4 cilvēkiem, ja es esmu pareizi. Jūs vēlaties pārliecināties, ka jūs esat ne tikai izvēloties cilvēku skaitu ka jūs vēlaties strādāt ar, jo viņi ir jūsu draugi. Jūs vēlaties izvēlēties komandu, kas ir labs izmērs un kas saņems darba darīts. Tur ir kompromiss, kam vairāk cilvēku, salīdzinājumā ar jaunākiem cilvēkiem. Ja jums ir vairāk cilvēku, protams, vairāk darbu var izdarīt jo jums ir daudz cilvēku, daudz koda, daudz ideju, un tas viss ir lieliski. Bet tas arī prasa daudz lielāku vadību un daudz vairāk komunikāciju. Citiem vārdiem sakot, ja jums ir 4 cilvēki, kas strādā par to pašu projektu un viņi visi rediģējot to pašu kodu, vairāk vai mazāk viņi visu veidu nepieciešams zināt kas notiek, tāpēc nepieciešams, lai jūs - Ja jūs pievienot dažas jaunas funkcijas, jums veida ir pateikt cilvēkiem - ı'm pieskaitot, Es esmu mainīt to šādā veidā - it īpaši, ja jūs nokļūt ļoti dziļā sīkumi piemēram, modeļu un kontrolieriem, kas ir faktiski gatavojas ietekmēt to, kā vietne darbojas. Visa komanda ir informēti par to, tāpēc jums ir nepieciešams, lai pārliecinātos, ka jūs neesat izvēloties pārāk liela komanda, kas būs grūti padarīt šo komunikāciju. Jūs arī nevēlaties izvēlēties nelielu pietiekami komanda, ka jūs neesat gatavojas jāspēj sazināties, jo tas ir tikai jums. Vēl viena lieta apsvērt, ir, kur cilvēku prasmes ir līdzsvars. Tas ir lieliski, ja jūs visi ļoti labi programmētāji. Bet, ja tu esi visu back-end cilvēku, tad jūsu vietne nav gatavojas izskatās ļoti labi jo jums ir šo lielo datu bāzi, un tas super-ātru meklēšanas vaicājumus - kas ir lieliski - bet, kad jūs iet uz to, tas ir tāpat kā 1990 vietnē ar sarkanā un zilā krāsā visur, un tas nav labi vai nu. Ievērojiet, ka Ben, un es strādājot komandā, ir ļoti jauki, jo es esmu veida vairāk priekšējā galā, mēs abi mijiedarboties vidū-beigās, un Ben ir tiešām laba, ar back-end stuff, lai darbojas patiešām labi, jo mēs varam izstrādāt jebkuru vietu un būtībā caurumi šajā vietā, kas ir nepieciešams, ir jāaizpilda var aizpildīt, izmantojot vai nu vienu no mums, vai, iespējams, abi. Jūs vēlaties pārliecināties, ka nav caurumu savā komandā. Tas ir labi, ja tur ir mazliet pārklāšanās. Citiem vārdiem sakot, ja jums ir 2 cilvēki, kas ir gan labi ar atpakaļ beigām, , kas var būt noderīgas kā arī, jo tie var palīdzēt viena otrai ar problēmām ka tām ir. Tas var būt problēma, ja jums ir tikai 1 cilvēks, kurš ir atbildīgs par konkrētu lietu un tie uzskriet problēmas, lai jūs vēlaties, lai būtu mazliet pārklājas bet pats galvenais vēlaties, lai pārliecinātos, ka visi iespējamie caurumi tiek piepildīti. Pēdējā lieta - un tas būtu skaidrs, bet tas bieži vien nav. Jūs patiešām vēlaties būt jautri. Šī gala projekta CS50 punkts un bieži punkts interneta attīstību kopumā ir ne tikai darīt darbu, jo tas ir nepieciešams darīt. Jūs patiešām vēlaties būt jautri, un jūs vēlaties, lai padarītu kaut ko kas ir motivēt jums, lai strādātu par to. Ja kāds jūs gūstat, ir sāpes, lai sēdēt un strādāt, tad jūs neesat izvēloties pareizo projektu. Jūs vēlaties izvēlēties kaut ko, kas jums atrast interesantu, jūs patiešām vēlaties redzēt rezultātu, jūs esat satraukti, kad jūs saņemsiet jaunu priekšstatu par kaut ko jūs varētu darīt, - tā tur ir visu veidu projektiem, kas tur, ka es esmu pārliecināts, ka Jūs varat atrast - katram ir kaut kas tiešām intriga tiem ja viņi dara tīmekļa projektu. Es jums saku vēlreiz tieši tagad. Ja jūsu projekts šķiet sāpes, un jūs nevēlaties, lai strādātu par to, izvēlieties citu projektu. Izvēlēties kaut ko, kas patiešām iedvesmo jūs. Ben minēja šo koncepciju atkārtojuma mazliet, un es gribu iet pār to mazliet. Tas ir ļoti svarīgi, lai strādātu spurts, kur iegūt kaut ko funkcionālu. Tas var būt liels, ja jums ir šo plānu, lai mājas lapā, kas ir gatavojas darīt A, B un C, un galu galā tas būs tur nokļūt. Bet jūs esat iestrēdzis šajā posmā, kur jūs strādājat, un strādā pie tā, bet nekas ir kļūst darīts. Jums nav ko redzēt un taustāms, funkcionāla lieta. Ko jūs patiešām vēlaties to darīt tik daudz, cik tas šķiet veida sāpes dažreiz strādāt par kaut ko un tad veida vāciņu to pie tā, ka tas ir vismaz stabils, darbojas versija, pat ja tas nav visas funkcijas, ko vēlaties. Un varbūt ir dažas pazīmes, ka jūs patiešām vēlaties pievienot, bet jūs vienkārši nevarat tāpēc, ka jūs vēlaties, lai iegūtu šo vietni, lai funkcionālā viedokļa. Un lai jūs vēlaties veida ir viss attīstības process izskatās, ka. Jūs vēlaties, lai sāktu kaut funkcionāla - vai būtībā sākt ar neko - bet jūs vēlaties, lai saņemtu kaut kur ļoti pamata un funkcionāla. Un tad atkal, veikt sava veida lēkt un saņemt kaut funkcionāla vēlreiz. Jūs lēnām veidot, un tas varētu iet mazliet lēnāk, nekā tas būtu citādi, bet ilgtermiņā, ja jūs pastāvīgi iestrēdzis šajā vidusceļu posmā, kur nav tiešām ir kaut kas strādā, tas var būt ļoti liela vilšanās strādāt pie sava projekta, jo jūs vienmēr esat tik tuvu, lai iegūtu tā strādā, un tas nekad nav faktiski strādā. Vēlaties strādāt ar šīm funkcionālajām spurts, un jūs arī vēlaties darīt dažas pārdomas pēc katras. Citiem vārdiem sakot, kad jūs esat vietā, kur vieta ir tagad strādā - tas nav viss, kas jums patīk, bet tas dažas lietas - Jūs vēlaties, lai padomātu, labi, tas ir vietā accomplishing mērķi, ka es noteikti, lai darīt? Citiem vārdiem sakot, ja vietne ir gatavojas darīt X, ir tas, ko es esmu strādā virzienā X? Ir visas funkcijas, ka es gribēju tur? Un turklāt tas kalpo vispārējo mērķi, ka es gribu? Ja jūs atrast, ka jūsu vietne sāk griezt citā virzienā vai varbūt lietas vienkārši veida nav darba, tas var būt laiks, lai pārslēgt pārnesumus mazliet. Citiem vārdiem sakot, tas ir vērts padomāt - tas ir tā vērts metat idejas, ja nepieciešams un ņemot vērā, es esmu patiešām strādā, lai to, ko es gribu būt. Es uzskatu, ka tas ir mans nākamais jautājums. Nebaidieties pamest idejas. Tikai tāpēc, ka jūs pavada daudz laika strādā pie viena aspekta un beidzot dabūja to darbu, bet tas tiešām nav iet tik labi - piemēram, tas nav tik noderīga vai lietotājiem ir grūtības to lietot - ka veida lieta - nevajag baidīties mest to prom. Tas sucks, ka jūs esat pavadīts daudz laika strādā pie tā, bet galu galā jūs nevēlaties, vietā, kas ir sava veida likt kopā šos gabalus, kas veida darbu, bet nav tik labi kalpoja. Tāpat nav jābaidās, lai aptvertu jaunas idejas. Ja kāds atnāk un saka, hey, ka vietne izskatās tiešām foršs, bet nebūtu tas pat būtu lieliski, ja tā arī izdarīja? Tikai tāpēc, ka tas ir kaut kas jums nav paredzējis, un kaut kas ir ārpus jūsu specs, kaut kas jums nav noteikti, lai darīt, nebaidieties ņemt to, un pēc tam strādāt ar to. Jo bieži vien idejas, ka jūs darbojas ar visu attīstības gaitā galu galā ir patiešām atdzist iezīmes mājas lapā. Es esmu teica pirms tam. Es jums saku vēlreiz. Testētājiem ir super, super noderīga. Mēģināt, lai cilvēki, kuri nekad nav redzējuši vietu, pirms pieteikties un redzēt, kas notiek tāpēc, ka viņi var ne tikai pārbaudīt lietderību vietu un lietotāju pieredzi, bet tie var arī pārbaudīt funkcionalitāti tādā veidā, ka jūs nevarat. Ja jūs veikt dažas iezīme, kas dara zināmu lieta un jūs zināt, tas ir gatavojas darīt, ka vienu un to pašu pareizi katru reizi, tas ir lieliski. Bet bieži vien tā varētu būt grūti, lai ņemtu vērā stūra gadījumiem, kad lietotājs var Tieši tāpēc, ka jums noteikts - kaut ko, kas jums nebija gaidījis tips funkcijas sevi. Tātad, lai būtu kāds nāk par to, kam nav ne jausmas, kā izmantot vietu un vienkārši lauzt jebkādā veidā viņi var darīt, ir ļoti noderīgi, jo jums iegūt priekšstatu no pilnīgi cita skatu par to, kas jūsu vietnē darbojas un ko nepieciešams remonts. Visbeidzot, es esmu gatavojas runāt par dažām vispārējām labu praksi, un jūs esat redzējis daudz šos CS50, bet tie ir arī ļoti, ļoti piemēroti projekta vidē. Viens no tiem ir komentāri. Vienmēr komentēt savu kodu, jo īpaši, ja jūs strādājat ar lielu komandu. Tas var būt tik kaitinošas, lai tikai būtu milzu bloku kods, ka kāds ir uzrakstījis un varbūt tas darbojas, varbūt tā nav, bet jums nav ne jausmas, ko tā dara, tāpēc jums nav ne jausmas, vai tas ir noderīgi vai nē, vai tai vajadzētu būt, vai ne, un, ja jūs strādājat par kaut ko citu, tas ir pat iespējams, ka jūs strādājat tas pats, tā vienkārši jābūt ļoti, ļoti uzmanīgiem būt saudzīgs jūsu vienaudžiem un rakstīt kodu, kas ir labi dokumentēta. Jums nav iet tik tālu, lai darīt visu lieta, kur, piemēram, ja jūs pieauguma skaitītājs ir komentārs, kas saka, es esmu pievienojot 1 līdz šim letes. Tai nav jābūt, ka sīku, bet par jebkuru funkciju, kas jūs esat kādreiz rakstiski jums ir kāda dokumentācija par to, kas darbojas tieši tas, kādi ir tās izejvielas, un to, ko vajadzētu atgriezties. Tādā veidā jūs varat izmantot citu cilvēku komponentus vietas un jūs varat strādāt, lai veidotu kaut ko lielu. Vēl viena svarīga lieta ir jūs vēlaties darīt regulāri tīru-ups. Kods kļūst netīrs. Nejūtos slikti, ja jūsu kods ir tikai pilnīgi lasāma un milzu haoss. Kas notiek ar interneta attīstību vienmēr. Jūs pievienojot jaunas funkcijas, noņemot vecās. Sīkumi būs tur, ka nevajadzētu būt. Tas ir jauki, bet jūs vēlaties, lai pārliecinātos, ka, lai risinātu ar to regulāri. Jūs nevēlaties, lai ļautu tai veidot līdz vietai, kur jūs vienkārši nevar atrast neko savu kodu, un jums nav ne jausmas, kas kaut ko dara. Tas ir gadījumā ar HTML. Dažreiz jūs galu galā ar objektiem, kas nesatur neko, un jūs vēlaties, lai atbrīvotos no tiem. CSS, jūs varat būt, kas attiecas uz elementiem, kas nav tur vairs, lai jūs vēlaties, lai atbrīvotos no šī koda. JavaScript, jūs varētu kliedēt kaut ko no HTML. Tātad, jūs vēlaties, lai pārliecinātos, ka jūs vienmēr sakopšanu, padarot lietas diezgan tik daudz, kā jūs varat par regulāri. Vēl viena ļoti noderīga lieta, ka es nedomāju, ka ir izklāstīts ļoti daudz CS50 bet tas ir vērts nokļūst tiek versiju kontroli. Ideja versija kontrole ir tad, kad jūs būtībā sekotu visu progresu Jūs esat veikuši uz jūsu vietni, un, ja kādā brīdī tu saproti, ak, tas bija darba Pirms kāda laika, bet tas nedarbojas vairāk, jūs varat doties atpakaļ uz iepriekšējo versiju un redzēt, kas ir mainījies kopš tā laika, un ka veida lieta. Primārais veids, kā to darīt, ir ar GIT, un Git ir visa šī veida sistēma, kas Es uzskatu, ka Tommy MacWilliam sniedza semināru par pagājušo gadu. Ja jūs iedziļināties CS50 semināriem 2011, jūs varat redzēt savu semināru par to. Ideja GIT ir būtībā, ka regulāri jūs gūstat šo saistību kas ir veids, kā pateikt vietā ir ar diezgan stabilu versiju tieši tagad, lai Es esmu iepakojuma to un nosūtot to prom uz serveri, un tad jūs varat iet uz šo serveri un apskatīt visas iepriekšējās versijas savu kodu, un redzēt, kā tas ir progresējusi un visu, kas veida labas lietas. Tātad, tas ir būtībā tas. Ciktāl web izstrāde, mēs esam laimīgi, lai stick apkārt un atbildēt uz jebkuru jautājumi, cik mūsu prezentāciju. Viss. Paldies. >> [Ben] Paldies. [Aplausi] [Billy] personāls, vai kāds ir kādi jautājumi par lietām, ko mēs esam, uz kuriem attiecas vai lietas, ko mēs esam, uz kuriem neattiecas, ka viņi cer, ka mēs gribētu segšanai? Mēs labprāt atbildētu tiem. Kāds? [Auditorijas dalībnieks] Kādi ir plusi un mīnusi, izmantojot Ruby vai izmantojot Python? [Ben] Jautājums ir, kādi ir plusi un mīnusi, izmantojot Ruby vai Python nevis, piemēram, PHP. Tur ir tas, ka Ruby un Python ir daudz labāki valodas nekā PHP. Vismaz manuprāt, un es domāju, ka ir daudz citu cilvēku viedokļus, kā arī. Tie tika izstrādāti vairāk darot sarežģītu lietas, un mazāk iemetot kopā interneta lapas tiešām ātri mazliet dinamisku saturu. Mīnusi ir, ka tur ir mazliet - tur ir vairāk par mācīšanās līkne lai saņemtu viņiem izveidot. Tas ir, piemēram, PHP, jūs varat būt HTML failu un rakstīt mazāk nekā, jautājuma zīme, un tad jūs uzrakstīt kādu kodu, un tad rakstīt jautājuma zīmi, lielāks nekā, un tad jūs esat darīts. Citās valodās, piemēram, Ruby un Python, jums ir iet cauri mazliet vairāk darba, lai iegūtu sākotnējo vietnes darbību. Pastāv arī - vismaz tas izmanto, lai būt gadījums, - ka tur ir vairāk dokumentācija pieejams PHP tikai tāpēc, ka ir vairāk cilvēku, izmantojot to. Es domāju, ka tas nav tik daudz jautājumu vairs. Ir, protams, ļoti laba dokumentācija sīkumi, piemēram, Ruby on Rails vai Django Python ir līdzvērtīgas. PHP ir viens, ka ikvienam ir bijis, izmantojot vairākus gadus, un jūs zināt, kā tā darbojas. Ruby un Python ir mazliet vājākas. [Auditorijas dalībnieks] Ja tu būtu izvēlēties vienu no tiem, lai uzzinātu, vai uzņemt, kas jūs dotu priekšroku? Godīgi sakot, es domāju, ka ir atkarīgs no personas. Piedod. Jautājums ir, kas jums izvēlēties, lai kāds, lai uzzinātu? Es uzskatu, Python jaukākais personīgi. Ir daudz cilvēku, kas - man bija mans pirmais web dev projekts Python un Django. Ir daudz cilvēku, kuriem patīk Ruby on Rails arī. Droši vien vairāk cilvēku, kuri zina, Ruby on Rails. Godīgi, es tikai iet ar kāda cilvēki ap jums zināt tā, ka jums ir cilvēki uzdot jautājumus. Jautājums bija - uz kopīgas serveriem tas ir sava veida grūti strādāt Python? Tas ir atkarīgs no jūsu hostingu. Pastāv vairākas tīmekļa mitinātājiem, kas būs pēc Python stuff. WebFaction tas, ka, labi? WebFaction ir viens, ka Billy un man ir izmantoti dažiem projektiem. Viņi tiešām lieliski. Viņi atbalsta lielāko valodu. Bet tā ir taisnība, ka PHP ir daudz plaši atbalstīta. Tātad, ja jūs esat iestrēdzis uz interneta uzņēmējas, kas tikai dara PHP, tas ir labs iemesls, lai izmantotu PHP. [Auditorija dalībnieks] Es tikko saņēmu mācīties, kā vaicājumu dažus datu bāzes, un es zinu, mans SQL ir visas vietas, bet es nesen saņēmu pakļauti - un jūs norādīja it out. Redzat JSON un paplašināms datu bāzēm. Mans SQL joprojām ir visas vietā. Kā jūs redzat, kas notiek? Vai tur būs augoša tendence vairāk paplašināms (dzirdams)? Jautājums bija - es domāju, ka tur būs tendence nav SQL datu bāzēm. Piemēram, piemēram MongoDB. Es domāju, ka noteikti ir taisnība. Mans padoms ir galvenokārt MySQL saistītu šeit, tikai tāpēc, ka MySQL ir nozares standartu. Personīgi, es daudz labprātāk datubāzes, kurām nav schemos piemēram MongoDB ja jums nav jautājumu, ak, man ir nepieciešams, lai pievienotu citu kolonnu. Bēdas man, tāpat kā neatkarīgi man darīt? Tas ir ļoti grūti izdarīt, ka MySQL, bet, ja jums ir kaut kas līdzīgs Mongo tas ir daudz jaukāk. Cita jauka lieta par Mongo ir tas, ka jūsu ieraksti ir faktiski JavaScript objekti. Nav veida pārveides posmā, kur jums ir nepieciešams veikt šīs datu bāzes rindas un pārvērst tos JavaScript objektu, un pēc tam nosūtīt tos pa vadu. Es domāju, ka sīkumi, piemēram, ka būs ļoti, ļoti noderīga straujo interneta attīstību nākotnē. [Billy] Kaut ko es gribētu piebilst, kas ir tikai vispārējs punkts ir tas, ka nav justies kā jums ir iemācījušies visas valodas, mēs esam apspriests no mūsu seminārā. Acīmredzot jautājums ir, lai dotu jums priekšstatu par to, kas ir tur, un, ja jūs ieinteresēja kādu no lietām, ko mēs esam minētajām jūs varat Google tos un lasīt līdzi tiem. Un, kā jau minēju, ir daži semināri, kas nodarbojas ar precīzi šīm lietām. Ir vēl vairāki semināri, ka man nav minēti, ka, iespējams nokļūt šis stuff, kā arī. Ideja ir tāda, ka, ja jūs vēlaties strādāt par kaut ko, šeit ir līdzekļi, kas ir jūsu rīcībā. Nav apjukt, ja jūs neesat īsti pārliecināts, ko šie līdzekļi darīt tieši, bet zinu, ka viņi tur, un, ka jūs varat plaši izmantot tos Google. [Auditorijas locekli] Kādas lietas, kas jums jādara, lai pārliecinātos, ka jūsu mājas lapā izskatās labi uz mobilajām ierīcēm? [Billy] Mobilās ierīces ir mazliet grūti. Tur ir 2 veidi, kā var tuvoties. Pirmais veids ir tas, ka jūs faktiski ir mobilais mājas lapā. Citiem vārdiem sakot, jums ir veikt dažus atklāšanas veida sākumā kad pārlūkprogramma ir padarīt pieprasījumu uz jūsu tīmekļa vietni, kas vai nu saka atpakaļ šo viedokli - kas būs skats galda vai portatīvo pārlūkprogrammām - un šī cita skatu uz mobilajām ierīcēm. Tas ir vieta, kur viedokļi ir ļoti jauki, ka jūs varat diezgan daudz swap divi, un ir saskarne, kas darbojas patiešām labi uz mobilajām ierīcēm un ir pilnīgi atšķirīgs vienu, kas darbojas labi uz pārlūka ierīcēm. Problēma ar šo ir tas aizņem ilgu laiku, jo tas nozīmē, kodēšanu pilnīgi atšķirīgu interfeisu. Citā veidā, ka jūs varat darīt, ir - daudz modernu telefonu parādīs tīmekļa vietnes, un mēģināt padarīt tās par pārlūku būtu, un viņi dara visu iespējamo. Jūs varat veida mēģināt palikt gaismā summu jQuery JavaScript jūs izmantojat kas mēdz būt tur, kur lietas var noiet greizi mazliet. Tas ir sava veida tā, ka jums vajadzētu izmantot, ja jums nav, ka daudz laika. Ja jums ir laiks strādāt pie mobilo interfeisu, tas ir acīmredzami jūsu labākais risinājums. Es domāju, ka parasti par CS50 projektiem, jūs gatavojas vēlaties izvēlēties vienu vai otru. Citiem vārdiem sakot, jūs vēlaties, lai mobilo lietotni, vai jūs vēlaties, lai darbvirsmas mājas lapā. Un ka veida nosaka, kur jums iet ar to. Bet, ja jūs vēlaties, lai paplašinātu to, vēlāk, iespējams, jūsu labākais bet ir veikt citu saskarni ar otru. Man ir mazliet pieredze, izstrādājot WordPress balstītas vietnes. Es rīkoja personīgā mājas lapā WordPress awhile. Tiem ietvaros veidi var būt jauki tikpat ļoti vienkāršas lietas. Bieži jūs vienkārši satikt daudz Customizability jautājumu though. Jūs vēlaties, lai būtu kaut ko meklēt noteiktā veidā, vai arī noteiktā veidā un jūs vienkārši nevar, jo tas ir grūti vadu sistēmā, kas tas ir, kā jums ir jādara lietas, kas var būt mazliet par problēmu. Kopš tā laika es esmu veida ir vairāk tendēti strādāt ar vietām, no zemes uz augšu. Lietām, piemēram, blogu datu bāzēm un ka veida lieta, tas tiešām nav tik grūti, lai izveidotu sistēmu. Ja jūs patiešām izstiepts uz laiku, jūs, protams, var izmantot kaut ko, piemēram, WordPress vai arī, ka veida lieta par blogu. No lietas veidu, kas blogus veikalā un tie nav īsti grūti pietiekami, ka ja jūs strādājat kādā no tādām lietām, jūs, iespējams, vislabāk vienkārši veikt in-house versiju. Es domāju, ka ir par to, tāpēc paldies vēlreiz par ierašanos. Mēs patiešām patika runāt ar jums, puiši, un ceru, ka jūs esat iemācījušies daži sīkumi. [Ben] Mēs esam priecīgi runāt - mums ir jāiet, bet mēs esam priecīgi runāt vairāk ārpus Ja jums ir cits jautājums. Paldies vēlreiz. [Aplausi] [CS50.TV]