1 00:00:00,000 --> 00:00:02,500 [Powered by Google Translate] [Seminar] [Webudvikling: Fra idé til implementering] 2 00:00:02,500 --> 00:00:04,200 [Ben Kuhn] [Billy Janitsch] [Harvard University] 3 00:00:04,200 --> 00:00:07,250 [Dette er CS50] [CS50.TV] 4 00:00:07,250 --> 00:00:10,840 [Billy] Hej, jeg er Billy, og det er Ben. >> [Ben] Hej. 5 00:00:10,840 --> 00:00:12,840 Vi kommer til at tale om webudvikling i dag. 6 00:00:12,840 --> 00:00:14,840 [Webdev] [Billy Janitsch og Ben Kuhn] 7 00:00:14,840 --> 00:00:16,840 Lidt om os først. 8 00:00:16,840 --> 00:00:19,590 Ben er en slags back-end fyr. Han gør tingene fungerer. 9 00:00:19,590 --> 00:00:21,870 Og så går jeg ind og gøre dem smukke. 10 00:00:21,870 --> 00:00:26,610 Jeg er stort set involveret med mere front-end layout design slags ting, 11 00:00:26,610 --> 00:00:31,260 og Ben, på den anden side, ved, hvad han laver, så han arbejder på back-end stuff. 12 00:00:31,260 --> 00:00:34,050 Sammen har vi gjort et par ting. 13 00:00:34,050 --> 00:00:38,710 For eksempel sidste år har vi arbejdet på Gimblium som er en online spil udvikling studie. 14 00:00:38,710 --> 00:00:40,400 Det var vores endelige projekt for klassen, 15 00:00:40,400 --> 00:00:42,780 og siden da har vi gjort Harvard Class 16 00:00:42,780 --> 00:00:47,860 som er en online ramme for browsing og shopping kurser på Harvard. 17 00:00:47,860 --> 00:00:53,180 >> Vi vil starte med denne idé til vores hjemmeside. 18 00:00:53,180 --> 00:00:57,480 Vi kommer til at gøre Facebook, men for katte. 19 00:00:57,480 --> 00:00:59,520 Før du faktisk gøre denne hjemmeside, 20 00:00:59,520 --> 00:01:02,520 gør ikke denne hjemmeside, fordi det er ikke godt, men vi vil bruge det som en ramme 21 00:01:02,520 --> 00:01:05,349 og gå gennem processen med hvordan vi tager denne idé 22 00:01:05,349 --> 00:01:07,450 og gøre det til en reel hjemmeside, vi kan bruge. 23 00:01:07,450 --> 00:01:11,940 Vi vil starte med at bryde hjemmesiden ned. 24 00:01:11,940 --> 00:01:13,190 Ligesom du har gjort i CS50, 25 00:01:13,190 --> 00:01:17,360 du ønsker at tænke på, hvad er de faktiske komponenter, der går ind i denne hjemmeside. 26 00:01:17,360 --> 00:01:21,290 Dybest set dreje det fra en idé, som er lige slags et abstrakt begreb 27 00:01:21,290 --> 00:01:23,590 til en reel, håndgribelig ting, du kunne gøre. 28 00:01:23,590 --> 00:01:25,910 Vi starter med at spørge nogle spørgsmål. 29 00:01:25,910 --> 00:01:28,070 Hvad er dette websted? Hvorfor gør vi det? 30 00:01:28,070 --> 00:01:30,670 Hvad det kommer til at blive brugt til? Den slags ting. 31 00:01:30,670 --> 00:01:33,660 I tilfælde af Facebook Cat, 32 00:01:33,660 --> 00:01:37,730 vi dybest set ønsker en hjemmeside der lader katte socialt netværk med hinanden. 33 00:01:37,730 --> 00:01:41,260 Tanken er, at de kan skrive på hinandens vægge, 34 00:01:41,260 --> 00:01:43,510 de kan gøre kommentarer, den slags ting. 35 00:01:43,510 --> 00:01:46,720 Og det er her, vi kommer ind i de funktionelle komponenter. 36 00:01:46,720 --> 00:01:51,270 Vi har nu den slags rammer - vi har brugerprofiler, 37 00:01:51,270 --> 00:01:53,990 vi har kommentarer, og vi kan sende. 38 00:01:53,990 --> 00:01:57,390 Måske en dag vil vi tilløb sympatier og den slags ting. 39 00:01:57,390 --> 00:02:00,410 Og vi slags ønsker at prioritere disse funktioner går i. 40 00:02:00,410 --> 00:02:03,340 Vi ønsker at sige ligesom, okay, det er virkelig vigtigt, at alle har en profil 41 00:02:03,340 --> 00:02:06,440 og at alle kan skrive på hinandens vægge. 42 00:02:06,440 --> 00:02:08,509 Sekundært til det, ville kommentarer være rart. 43 00:02:08,509 --> 00:02:10,180 Måske senere vi influent lide. 44 00:02:10,180 --> 00:02:13,700 Så du ønsker at have en idé om, hvad der er afgørende for dit projekt 45 00:02:13,700 --> 00:02:17,260 og hvad der er en slags mere generel funktion, der kan anvendes senere. 46 00:02:17,260 --> 00:02:20,870 Du ønsker at slags har en specifik liste i tankerne, 47 00:02:20,870 --> 00:02:24,090 men det projekt, du starter med, er ikke til at være det projekt, du er færdig med. 48 00:02:24,090 --> 00:02:27,100 Med andre ord, er tingene kommer til at ændre, mens du udvikler sitet, 49 00:02:27,100 --> 00:02:30,090 og du ønsker at give plads til det. 50 00:02:30,090 --> 00:02:34,470 Jeg vil vende det til Ben, hvem der kommer til at tale lidt om struktur. 51 00:02:34,470 --> 00:02:39,610 >> [Ben] Jeg har tænkt mig at tale om den mere tekniske side af web-udvikling. 52 00:02:39,610 --> 00:02:42,370 Lad os bare gå over nogle grundlæggende først. 53 00:02:42,370 --> 00:02:45,730 Når du laver en web-app, 54 00:02:45,730 --> 00:02:50,470 den vigtigste division, som du er nødt til at have, er 55 00:02:50,470 --> 00:02:52,700 du kommer til at have nogle ting i gang i klientsiden - 56 00:02:52,700 --> 00:02:56,700 det vil sige, den kode, du browser tager fra stedet 57 00:02:56,700 --> 00:03:01,910 og JavaScript, HTML, CSS ting. 58 00:03:01,910 --> 00:03:04,490 Det er alt på klientsiden. 59 00:03:04,490 --> 00:03:08,680 Du kommer til at have en anden kode, der kører på serveren side 60 00:03:08,680 --> 00:03:10,770 der holder styr på alle de data, som folk sender ind til dig, 61 00:03:10,770 --> 00:03:15,060 afgør, hvem der giver hvad, den slags. 62 00:03:15,060 --> 00:03:20,380 Dette er blot nogle terminologi, så du fyre er alle bekendt med, hvad vi taler om. 63 00:03:20,380 --> 00:03:28,600 Ud over at division er det godt at tænke på din web-app i form af 64 00:03:28,600 --> 00:03:32,500 et par forskellige komponenter. 65 00:03:32,500 --> 00:03:35,270 Når du laver webudvikling 66 00:03:35,270 --> 00:03:41,710 en af ​​de ting, som du bør altid forsøge at gøre, er at reducere kompleksiteten. 67 00:03:41,710 --> 00:03:45,710 Jo mere kompleks din kode er jo større chance er der for at lave fejl, 68 00:03:45,710 --> 00:03:47,710 jo sværere er det at ændre senere. 69 00:03:47,710 --> 00:03:50,140 Så hvis du kan bryde op din app i nogle bestemte funktionelle områder 70 00:03:50,140 --> 00:03:57,640 der vil - og du kan reducere den slags beløb på tværs af området kommunikation - 71 00:03:57,640 --> 00:04:03,530 som vil hjælpe dig meget i det lange løb i form af reduktion af bugs. 72 00:04:03,530 --> 00:04:07,950 >> For at være konkret, som regel folk opdele en web-app i - 73 00:04:07,950 --> 00:04:13,190 disse er slags buzz ord nu, men de er stadig nyttige. 74 00:04:13,190 --> 00:04:17,940 Du har måske hørt folk tale om modeller, synspunkter og controllere. 75 00:04:17,940 --> 00:04:23,210 Modeller er de faktiske data, som din app kommer til at beskæftige sig med. 76 00:04:23,210 --> 00:04:28,260 For eksempel i din kat Facebook, ville dine modeller være - 77 00:04:28,260 --> 00:04:35,340 ville du have en model for lignende stillinger, og en model for brugerprofiler, den slags. 78 00:04:35,340 --> 00:04:41,090 Dine synspunkter er, hvordan du præsentere disse data til dine brugere. 79 00:04:41,090 --> 00:04:46,660 Du har måske 1 view for at kigge på en enkelt post og alle kommentarerne 80 00:04:46,660 --> 00:04:51,720 og en anden visning til din væg, der har en liste over alle de stillinger 81 00:04:51,720 --> 00:04:57,170 som er rettet til dig, og en anden visning for din news feed - den slags. 82 00:04:57,170 --> 00:05:00,610 Endelig har du de controllere, som dybest set, når folk sende dig indlæg 83 00:05:00,610 --> 00:05:03,310 og du foretager opdateringer til din back-end system, 84 00:05:03,310 --> 00:05:06,400 du tilvækst en masse tællere, og hvad ved jeg. 85 00:05:06,400 --> 00:05:07,860 Det er dine controllere. 86 00:05:07,860 --> 00:05:11,030 >> Jeg har tænkt mig at være overvejende tale om modeller. 87 00:05:11,030 --> 00:05:14,030 Synspunkter er teknisk set ikke så svært, og spørgsmålet er mere med at designe dem 88 00:05:14,030 --> 00:05:22,040 Controllere vil være specifikke for hvad du designer. 89 00:05:22,040 --> 00:05:25,220 Men der er nogle temmelig generelle teknikker, du kan bruge 90 00:05:25,220 --> 00:05:30,220 for at gøre dine modellerne pænere og nemmere at arbejde med, som jeg mener er meget hjælpsomme. 91 00:05:30,220 --> 00:05:35,860 Dette er for det meste vil være om hvordan man skal håndtere dine web apps data på en pæn måde. 92 00:05:35,860 --> 00:05:40,420 De vigtigste problemer med modeller 93 00:05:40,420 --> 00:05:44,540 er, at de lever på klienten og serveren, og du er nødt til at regne ud 94 00:05:44,540 --> 00:05:51,170 a) hvordan man får dem - alle relevante dem - fra serveren til klienten, 95 00:05:51,170 --> 00:05:53,440 og b), hvordan man kan holde dem i sync. 96 00:05:53,440 --> 00:05:58,700 Dine brugere vil ønsker at gøre nogle opdateringer. 97 00:05:58,700 --> 00:06:00,470 De vil ønsker at gøre nye stillinger. 98 00:06:00,470 --> 00:06:04,800 De vil ønsker at lide ting og ting, hvis du har sympatier. 99 00:06:04,800 --> 00:06:11,490 De er de vigtigste tekniske udfordringer at håndtere modeller. 100 00:06:11,490 --> 00:06:15,680 Den første ting, du vil ønsker at spørge dig selv, er 101 00:06:15,680 --> 00:06:18,420 hvilken slags data går i denne model, og hvilken form for henvendelser vil vi ønsker at gøre - 102 00:06:18,420 --> 00:06:24,290 det vil sige, hvordan skal vi se på de modeller? 103 00:06:24,290 --> 00:06:26,940 For din kat Facebook eksempel 104 00:06:26,940 --> 00:06:31,520 dit indlæg kommer til at have en forfatter forbundet med det, 105 00:06:31,520 --> 00:06:35,660 nogle Væg tekst, og en modtager af muren indlæg. 106 00:06:35,660 --> 00:06:38,470 Og så skal du måske ønsker at forespørge, at i en masse forskellige måder. 107 00:06:38,470 --> 00:06:42,220 Du ønsker at se på det med hvem der skrev hvilke indlæg, 108 00:06:42,220 --> 00:06:46,620 ved der modtog som skrive, måske på den dato, de blev bogført. 109 00:06:46,620 --> 00:06:50,340 Men hvis du vil gøre det efter dato, så er du nødt til at tilføje et andet felt til dit indlæg 110 00:06:50,340 --> 00:06:52,490 på, når det faktisk blev skrevet. 111 00:06:52,490 --> 00:07:00,220 Disse 2 faktorer - hvilke data, du vil bruge, og hvordan du ønsker at se det - 112 00:07:00,220 --> 00:07:04,200 du skal tænke på dem først, fordi de er afhængige af hinanden, 113 00:07:04,200 --> 00:07:08,030 og det vil være vanskeligere at tilføje dem senere hen. 114 00:07:08,030 --> 00:07:12,750 >> Der er nogle andre overvejelser. 115 00:07:12,750 --> 00:07:17,540 Når du tænker på hvordan du håndtere modeller på serveren 116 00:07:17,540 --> 00:07:20,540 hvad du ønsker at se på, er - 117 00:07:20,540 --> 00:07:27,440 du dybest set ønsker at gøre serveren så enkel som muligt. 118 00:07:29,440 --> 00:07:35,500 Gør ting på klientsiden er generelt meget hurtigere, hvis du kan gøre det alene på klienten 119 00:07:35,500 --> 00:07:38,230 uden at gøre nogen form for anmodning netværk. 120 00:07:38,230 --> 00:07:47,860 Ideen er at gøre så mange af de forespørgsler, som du kan på klienten. 121 00:07:47,860 --> 00:07:51,560 Det eneste problem med, 122 00:07:51,560 --> 00:07:54,160 er, at hvis du beder om alle dine data i begyndelsen 123 00:07:54,160 --> 00:07:57,160 så der kommer til at tage lang tid at indlæse. 124 00:07:57,160 --> 00:08:02,290 Så ideen er at finde en gylden middelvej mellem at have nok data på klienten 125 00:08:02,290 --> 00:08:07,640 at du kan gøre det meste af dit arbejde der, men ikke bare hente alt på en gang 126 00:08:07,640 --> 00:08:09,710 så du får virkelig langsom load tider i begyndelsen. 127 00:08:09,710 --> 00:08:12,610 For eksempel, for din kat data 128 00:08:12,610 --> 00:08:20,340 ville du sikkert vælge at hente en masse af de seneste væg stillinger. 129 00:08:20,340 --> 00:08:23,790 Du ville ikke ønsker at hente dem alle, fordi der kunne gå tilbage et par år. 130 00:08:23,790 --> 00:08:25,470 Men du ikke ønsker at hente dem én ad gangen 131 00:08:25,470 --> 00:08:28,740 fordi det ville indføre en masse netværk overhead. 132 00:08:28,740 --> 00:08:33,620 >> Det er ofte ganske hårdt - når du har en database kørende - 133 00:08:33,620 --> 00:08:37,210 Det er ofte ganske svært at ændre, hvilke data, du har i det - 134 00:08:37,210 --> 00:08:40,510 det vil sige, tilføje en ny database kolonne eller noget - 135 00:08:40,510 --> 00:08:43,510 så en god strategi er faktisk bare at holde en masse af dine data i en tekst klat - 136 00:08:43,510 --> 00:08:53,880 en JSON klat - JSON er JavaScript Object Notation - 137 00:08:53,880 --> 00:08:58,330 Grunden, der er nyttige, fordi så kan du tilføje nye egenskaber 138 00:08:58,330 --> 00:09:01,920 til alle disse JSON klatter uden at ændre din database. 139 00:09:01,920 --> 00:09:06,860 Den eneste ulempe til dette er, at hvis du har en masse felter 140 00:09:06,860 --> 00:09:09,890 at du har tilføjet senere - ligesom skjult i denne JSON klat - 141 00:09:09,890 --> 00:09:12,850 så er det sværere at forespørge dem inde i databasen. 142 00:09:12,850 --> 00:09:17,690 For eksempel, hvis du senere - hvis du havde dit indlæg model, som vi diskuterede tidligere 143 00:09:17,690 --> 00:09:25,380 med blot forfatteren, modtager og tekst - 144 00:09:25,380 --> 00:09:29,000 du kan også have en JSON klat og derefter, hvis du senere ønsker at tilføje et datofelt 145 00:09:29,000 --> 00:09:31,000 ville du ikke nødt til at ændre din database. 146 00:09:31,000 --> 00:09:36,140 Du kan bare tilføje datoer til alle tekstfelter. 147 00:09:36,140 --> 00:09:39,640 Og så ville du være i stand til at se på dem på klientsiden, 148 00:09:39,640 --> 00:09:42,430 men du ville ikke være i stand til at forespørge dem på serveren side 149 00:09:42,430 --> 00:09:44,430 fordi det er skjult inde i teksten. 150 00:09:44,430 --> 00:09:49,920 >> Det andet spørgsmål, som du ønsker at tænke på 151 00:09:49,920 --> 00:09:52,400 er, hvordan din klient og din server kommer til at kommunikere. 152 00:09:52,400 --> 00:09:56,040 Du ønsker som regel at holde dette så simpelt som muligt. 153 00:09:56,040 --> 00:10:02,230 Du kan bare have som en get-mig-denne anmodning data 154 00:10:02,230 --> 00:10:09,140 en create-a-new-objekt ting, og en update-en-gammel-objekt anmodning. 155 00:10:09,140 --> 00:10:12,930 Og disse vil alle være forskellige webadresser på en server, som du - 156 00:10:12,930 --> 00:10:20,030 at browseren vil - du kan bruge AJAX anmodninger om alle disse 157 00:10:20,030 --> 00:10:24,000 og enten modtage eller sende data. 158 00:10:24,000 --> 00:10:26,600 Igen, for vores kat Facebook eksempel 159 00:10:26,600 --> 00:10:32,350 kunne du have denne webadresse til at få en individuel post 160 00:10:32,350 --> 00:10:39,750 og du ville have en URL til at oprette en ny mur indlæg 161 00:10:39,750 --> 00:10:45,670 og måske en URL til at uploade dit profilbillede, den slags. 162 00:10:45,670 --> 00:10:51,730 Men igen, det er til at pre-hente de fleste af dine data, så du ikke behøver at holde 163 00:10:51,730 --> 00:10:53,360 gør netværksanmodninger. 164 00:10:53,360 --> 00:10:59,030 Af denne grund, kan du ikke ønsker at have den individuelle komme anmodning om en enkelt stilling, 165 00:10:59,030 --> 00:11:03,210 og i stedet vil du bare ønsker 1 get anmodning om hele væggen. 166 00:11:03,210 --> 00:11:06,110 Og så hvis du forsøger at finde en balance, fordi - 167 00:11:06,110 --> 00:11:10,970 dette også kommer til at afhænge af din ansøgning. 168 00:11:10,970 --> 00:11:13,430 Fordi hvis du forventer, at folk kun har 10 eller 20 væg stillinger 169 00:11:13,430 --> 00:11:15,430 der vil være fint. 170 00:11:15,430 --> 00:11:17,390 Men hvis du forventer, at de vil have tusindvis da, at anmodningen ville tage for lang tid, 171 00:11:17,390 --> 00:11:23,580 og så du måske ønsker at tilføje en få-alle-indlæg-siden parameter. 172 00:11:23,580 --> 00:11:26,580 >> For alle disse du sikkert vil ønsker at synkronisere dine data i JSON - 173 00:11:26,580 --> 00:11:29,260 JavaScript Object Notation. 174 00:11:29,260 --> 00:11:34,600 Stort set hver eneste sprog omhandler JSON meget godt. 175 00:11:34,600 --> 00:11:40,880 JQuery har denne nice getJSON funktion, der vil gøre alt det hårde arbejde for dig. 176 00:11:40,880 --> 00:11:47,390 Og på PHP er der også meget rart JSON kommunikationsfunktioner. 177 00:11:47,390 --> 00:11:52,660 Så det er nok det bedste format til at sende dine modeller frem og tilbage. 178 00:11:52,660 --> 00:11:56,570 >> Som et eksempel på, hvad vi har talt om indtil nu, 179 00:11:56,570 --> 00:12:00,520 her er et eksempel flow for din kat Facebook-applikation. 180 00:12:00,520 --> 00:12:07,760 Det starter ud med din browser anmoder om basen hjemmeside URL. 181 00:12:07,760 --> 00:12:15,470 Serveren sandsynligvis ville sende over statisk HTML og nogle JavaScript og CSS. 182 00:12:15,470 --> 00:12:19,170 Det er normalt bedst ikke at gøre nogen præstationen på serveren. 183 00:12:19,170 --> 00:12:23,370 Du har sandsynligvis ikke ønsker at - 184 00:12:23,370 --> 00:12:28,360 hvad serveren er ikke at gøre der er på vej ned af listen over væg stillinger 185 00:12:28,360 --> 00:12:31,120 og generere nogle HTML for hver enkelt og sende det forbi. 186 00:12:31,120 --> 00:12:34,960 Det er normalt bedst at gøre det på klientsiden fordi ellers 187 00:12:34,960 --> 00:12:38,580 hver gang du ønsker at re-tegne noget, er du nødt til at lave en server anmodning. 188 00:12:38,580 --> 00:12:42,450 Og at meget hurtigt giver dig en masse af overhead. 189 00:12:42,450 --> 00:12:47,430 Det er normalt bedst bare at skibet sender ned statisk HTML 190 00:12:47,430 --> 00:12:50,660 og derefter JavaScript og CSS, der vil gøre rendering på klientsiden. 191 00:12:50,660 --> 00:12:56,750 Så snart, at ting kommer ind, 192 00:12:56,750 --> 00:13:03,500 så kan du få - i JavaScript - du kan gøre anmodninger om muren data 193 00:13:03,500 --> 00:13:08,740 og den slags, og efter at serveren er dybest set bare at gøre databaseforespørgsler 194 00:13:08,740 --> 00:13:10,740 og kontrol tilladelser. 195 00:13:10,740 --> 00:13:16,690 Det eneste vigtige er, at det ikke kan sende over nogle andre brugeres væg stillinger 196 00:13:16,690 --> 00:13:19,220 at du ikke får lov til at se. 197 00:13:19,220 --> 00:13:28,050 Det kan principielt være et meget tyndt lag adgang til din database, 198 00:13:28,050 --> 00:13:32,820 og så alle de viser data - alle de synspunkter og kram - 199 00:13:32,820 --> 00:13:37,280 dem kan ske i din browser, og så når du ønsker at gøre en post eller noget 200 00:13:37,280 --> 00:13:40,000 du bare sende en ny anmodning. 201 00:13:40,000 --> 00:13:45,350 >> Der er også nogle smarte ting, du kan gøre på toppen af ​​dette. 202 00:13:45,350 --> 00:13:49,550 I form af mere specifikke tekniske oplysninger, 203 00:13:49,550 --> 00:13:53,360 udvikling i almindelig JavaScript kan være en lille smule ondt, 204 00:13:53,360 --> 00:13:56,220 så der er nogle biblioteker og værktøjer, der vil hjælpe dig meget med det. 205 00:13:56,220 --> 00:14:03,690 Jeg tror, ​​du har alle sikkert hørt om jQuery, der gør laver HTML rendering 206 00:14:03,690 --> 00:14:08,890 og manipulation meget nemmere - har masser af smarte funktioner til fading ind og ud, 207 00:14:08,890 --> 00:14:12,020 og gør zippy animationer. 208 00:14:12,020 --> 00:14:13,720 Der er også dette bibliotek kaldet Underscore.js. 209 00:14:13,720 --> 00:14:20,760 Det har en masse nyttige nyttefunktioner, ting, som du ville forvente at JavaScript have 210 00:14:20,760 --> 00:14:24,740 , at det virkelig gør ikke - ting som blander et array, 211 00:14:24,740 --> 00:14:28,900 fjernelse af dubletter fra en liste, eller udfladning en liste af lister. 212 00:14:28,900 --> 00:14:30,900 Dette er blot et lille kodeeksempel. 213 00:14:30,900 --> 00:14:36,520 Understregning har et væld af disse dejlige funktioner, som du ønsker du ville have hele tiden. 214 00:14:36,520 --> 00:14:38,840 >> Og så er der 1 mere bibliotek, som jeg gerne vil bruge en lille smule tid på 215 00:14:38,840 --> 00:14:44,800 kaldet Backbone.js fordi Backbone virkelig hjælper dig med at håndtere modeller på klientsiden 216 00:14:44,800 --> 00:14:47,210 og en masse af den forvirring, det kan forårsage. 217 00:14:47,210 --> 00:14:53,550 Backbone giver dig dette koncept af modeller og samlinger 218 00:14:53,550 --> 00:14:58,300 i JavaScript, der er dybest set nøjagtig ligesom JavaScript objekter 219 00:14:58,300 --> 00:15:04,900 i JavaScript arrays, men de har begivenheder, når du ændrer deres egenskaber. 220 00:15:04,900 --> 00:15:09,090 Ligesom i JavaScript, kan du have en begivenhed, når en knap bliver klikket eller noget 221 00:15:09,090 --> 00:15:14,800 disse Backbone modeller og Backbone samlinger vil udsende ting som 222 00:15:14,800 --> 00:15:17,510 at når de ændres. 223 00:15:17,510 --> 00:15:22,270 Det betyder, at du bare kan skrive noget som dette stump kode her - 224 00:15:22,270 --> 00:15:27,530 det siger, når du tilføjer noget til det indlæg matrix du gentegne hele væggen. 225 00:15:27,530 --> 00:15:34,270 Og det vil sige, når en post nummer af folk ændrer sig, 226 00:15:34,270 --> 00:15:38,970 du underrette brugeren om, at nogen kunne lide deres indlæg. 227 00:15:38,970 --> 00:15:45,210 Eller når et formuegode af en post ændrer du gentegne indlæg. 228 00:15:45,210 --> 00:15:51,050 Ting som der vil spare dig for tonsvis af kompleksitet, fordi ellers 229 00:15:51,050 --> 00:15:55,440 hvis du ikke har nogle rammer, som denne derefter hver gang i din kode, som du ændrer 230 00:15:55,440 --> 00:16:04,280 noget om et indlæg, ville du nødt til at huske dig selv at ringe til alle gør funktioner 231 00:16:04,280 --> 00:16:07,680 og den slags, og hvis du ønskede at tilføre noget nyt, at der skete 232 00:16:07,680 --> 00:16:10,680 hver gang du ændrede et indlæg, du er nødt til at gå igennem hver sted i dit 233 00:16:10,680 --> 00:16:14,610 kode, som du ændrede en post og tilføjer, at nye ting. 234 00:16:14,610 --> 00:16:21,450 En ramme som dette vil fjerne en masse af det mellem-lag kommunikation 235 00:16:21,450 --> 00:16:28,280 der gør din kode komplekse og svære at vedligeholde. 236 00:16:28,280 --> 00:16:31,170 >> Der er en lille smule om synspunkter også. 237 00:16:31,170 --> 00:16:35,960 Jeg har tænkt mig at forlade det meste af dette til Billy, fordi de er teknisk set ikke meget vanskeligt. 238 00:16:35,960 --> 00:16:43,540 Brug jQuery for dine synspunkter. Det er næsten ligesom en nødvendighed på dette punkt. 239 00:16:43,540 --> 00:16:46,290 Det bare gør det hele så meget lettere. 240 00:16:46,290 --> 00:16:48,290 Der er en masse af biblioteker. 241 00:16:48,290 --> 00:16:49,970 Hvis du har komplicerede bruger-interface elementer, 242 00:16:49,970 --> 00:16:57,250 hvis du vil have en auto-complete ting eller som en af ​​de smarte multi-vælgere - 243 00:16:57,250 --> 00:17:04,790 hvis du vil have noget lignende, bør du nok bare søge rundt 244 00:17:04,790 --> 00:17:08,130 og du kan finde et godt bibliotek, som vil gøre hvad du vil. 245 00:17:08,130 --> 00:17:11,579 Billy vil forklare mere om de faktisk vanskelige dele af synspunkter. 246 00:17:11,579 --> 00:17:17,530 Også, som en side bemærkning, Backbone har nogle funktioner til at gøre synspunkter kommunikere 247 00:17:17,530 --> 00:17:22,800 pænt med modeller - se dokumentationen for alle disse biblioteker, faktisk. 248 00:17:22,800 --> 00:17:28,270 Bare se på de docs. De er meget velskrevet og let at følge. 249 00:17:28,270 --> 00:17:33,890 I almindelighed, kan du stort set bare Google, hvis du har problemer. 250 00:17:33,890 --> 00:17:36,370 Der er en masse mennesker, der bruger dem. 251 00:17:36,370 --> 00:17:42,020 Jeg tror, ​​det er som en afsluttende bemærkning. 252 00:17:42,020 --> 00:17:48,770 >> Der er også nogle mere avancerede ting, du kan gøre 253 00:17:48,770 --> 00:17:53,400 hvis du søger at gøre din web-app ekstra awesome. 254 00:17:53,400 --> 00:17:59,760 Du kan gøre - den nye HTML5-specifikationen har en masse smarte ting, du kan gøre. 255 00:17:59,760 --> 00:18:05,780 Lokal lagring - som er du kan gemme data i browseren - 256 00:18:05,780 --> 00:18:09,470 snarere end at skulle gå tilbage og granske serveren for alt, 257 00:18:09,470 --> 00:18:12,470 du kan holde noget af det på klienten, og at selv lader folk - 258 00:18:12,470 --> 00:18:20,850 i nogle tilfælde kan det endda lade dig bruge websiden offline. 259 00:18:20,850 --> 00:18:26,980 Der er denne ting kaldet WebSockets som er en anderledes form for netværkskommunikation 260 00:18:26,980 --> 00:18:30,930 hvor der i stedet for bare du laver en anmodning, du får svar, og du er færdig, 261 00:18:30,930 --> 00:18:35,240 du holder åbne en forbindelse til serveren og så kan du gøre ting som 262 00:18:35,240 --> 00:18:37,240 real-time opdateringer. 263 00:18:37,240 --> 00:18:42,020 Så hvis du prøvede at lave en chat app, kan du bruge WebSockets 264 00:18:42,020 --> 00:18:43,790 at kommunikere frem og tilbage, så du ikke ville have til at holde anmoder om, 265 00:18:43,790 --> 00:18:48,410 "Åh, server, gjorde nogen sende mig en chat?" hvert 10. sekund eller noget. 266 00:18:48,410 --> 00:18:55,620 Der er også en interessant HTML5 funktion, hvor du kan få det til at ligne 267 00:18:55,620 --> 00:18:58,340 webadressen på den side, ændrer uden nogensinde at skulle faktisk genindlæse den. 268 00:18:58,340 --> 00:19:03,230 Du kan bruge frem og tilbage knapperne uden at gøre en masse af anmodninger netværk. 269 00:19:03,230 --> 00:19:14,660 Ting som der er virkelig nyttige i form af at gøre det hurtigt, men også fungerer som en web-app skal. 270 00:19:14,660 --> 00:19:17,680 >> Der er også denne ting kaldet CoffeeScript. 271 00:19:17,680 --> 00:19:24,450 CoffeeScript er et andet sprog, faktisk, der kompilerer ned til JavaScript. 272 00:19:24,450 --> 00:19:30,080 Du vil skrive al din kode i CoffeeScript, og så skal du køre denne compiler, 273 00:19:30,080 --> 00:19:33,300 og den spytter en JavaScript-fil, som du kan medtage i din webside. 274 00:19:33,300 --> 00:19:38,860 Grunden til, at CoffeeScript er rart, fordi det bliver fjernet en masse af de 275 00:19:38,860 --> 00:19:44,760 mærkelige sager, Javascript, hvor lig ligemænd, 276 00:19:44,760 --> 00:19:51,130 og lig ligemænd gøre forskellige ting, eller kan lide - 277 00:19:51,130 --> 00:19:55,740 det har pænere syntaks til håndtering af arrays og funktioner. 278 00:19:55,740 --> 00:20:00,460 Dette er en lille stump CoffeeScript der producerer en liste over alle de firkanter 279 00:20:00,460 --> 00:20:04,900 fra 10 ^ 2 til 1 ^ 2 i omvendt rækkefølge. 280 00:20:04,900 --> 00:20:08,410 Som du kan se, CoffeeScript lader ofte du udtrykke i 1 linje 281 00:20:08,410 --> 00:20:10,890 hvad ville tage 5 linjer JavaScript. 282 00:20:10,890 --> 00:20:13,230 Det kan gøre tingene meget nemmere. 283 00:20:13,230 --> 00:20:15,390 Det er en lille smule af ny syntaks til at lære i første omgang, 284 00:20:15,390 --> 00:20:18,010 men det helt sikkert vil gøre dig mere produktiv i det lange løb. 285 00:20:18,010 --> 00:20:22,050 >> Du kan også bruge andre sprog på serveren end PHP - 286 00:20:22,050 --> 00:20:27,570 sprog som Ruby, Python, eller der er endda et projekt kaldet node.js 287 00:20:27,570 --> 00:20:31,450 der vil lade dig bruge JavaScript på serveren. 288 00:20:31,450 --> 00:20:34,700 Personligt er jeg virkelig, virkelig hader PHP. 289 00:20:34,700 --> 00:20:38,310 Jeg kan bare ikke lide at arbejde med det. 290 00:20:38,310 --> 00:20:43,450 Hvis du også synes, det er en forfærdelig cluge af et sprog, 291 00:20:43,450 --> 00:20:46,160 så kan du bruge en af ​​disse i stedet. 292 00:20:46,160 --> 00:20:54,780 I almindelighed, hvis du ønsker at gøre noget, og du ikke rigtig ved, hvordan du ville gøre det, 293 00:20:54,780 --> 00:20:56,780 bare søge på internettet. 294 00:20:56,780 --> 00:20:59,990 Der er tonsvis og tonsvis af ressourcer især på - 295 00:20:59,990 --> 00:21:03,260 StackOverflow er en stor en. 296 00:21:03,260 --> 00:21:06,400 Det er denne hjemmeside, hvor programmører stille hinanden spørgsmål. 297 00:21:06,400 --> 00:21:09,690 Du har måske løbe ind i det, hvis du havde problemer på CS50 problemet sæt. 298 00:21:09,690 --> 00:21:16,820 Og der er tonsvis af biblioteker til at gøre stort set alt, du ønsker. 299 00:21:16,820 --> 00:21:21,710 Hvis du ønsker at gøre noget, og du ikke ved hvordan man gør det, 300 00:21:21,710 --> 00:21:23,710 ikke antage, at det er umuligt. 301 00:21:23,710 --> 00:21:26,160 Bare se dig omkring, og du kan finde nogle gode ressourcer. 302 00:21:26,160 --> 00:21:29,280 >> Som en generel indpakke, 303 00:21:29,280 --> 00:21:33,650 de vigtigste grillbarer er at holde tingene simple. 304 00:21:33,650 --> 00:21:36,010 Jo mere kompleks din kode er i begyndelsen 305 00:21:36,010 --> 00:21:40,370 og jo mere du forsøger at gøre fancy ting, 306 00:21:40,370 --> 00:21:43,300 jo længere vil det tage at få noget faktisk funktionel 307 00:21:43,300 --> 00:21:46,480 og jo sværere vil det være at ændre senere. 308 00:21:46,480 --> 00:21:49,580 Så gør tingene på den dumme, nem måde først. 309 00:21:49,580 --> 00:21:51,720 At gå sammen med, 310 00:21:51,720 --> 00:21:59,070 skal du ikke være bange for at smide gamle kode eller rense det op en masse. 311 00:21:59,070 --> 00:22:05,320 I almindelighed, når du rent faktisk har noget arbejde, 312 00:22:05,320 --> 00:22:09,640 det er meget lettere at tænke på, end når du er stadig i begyndelsen etaper 313 00:22:09,640 --> 00:22:12,610 af hvordan sætter jeg det hele sammen. 314 00:22:12,610 --> 00:22:17,500 Det er bedst at gøre det dummeste mulige design, der virker 315 00:22:17,500 --> 00:22:22,270 og dermed forbedre det iterativt end at forsøge at få alting rigtigt første gang. 316 00:22:22,270 --> 00:22:28,330 Med hensyn til klient-server division, så prøv og holde din server meget enkel - 317 00:22:28,330 --> 00:22:33,030 bare en database og nogle autentificering og ikke gør noget hårdt arbejde der. 318 00:22:33,030 --> 00:22:37,540 Gør alle dine komplicerede ting på klientsiden i browseren 319 00:22:37,540 --> 00:22:40,650 i JavaScript så meget som du kan. 320 00:22:40,650 --> 00:22:43,420 Kig rundt for biblioteker, der gør dit liv bedre. 321 00:22:43,420 --> 00:22:46,850 Altid bedre at bruge kode, som en anden skrev 322 00:22:46,850 --> 00:22:49,850 Hvis du - og ikke at skrive det selv. 323 00:22:49,850 --> 00:22:57,560 Der er en masse ting på internettet. Google er din bedste ven. 324 00:22:57,560 --> 00:22:59,560 Google er programmør bedste ven. 325 00:22:59,560 --> 00:23:07,620 Ja, absolut ikke være bange for at kigge rundt efter ting. 326 00:23:07,620 --> 00:23:11,860 Ok. Og over til Billy. 327 00:23:11,860 --> 00:23:14,600 >> [Billy] Faktisk, før jeg starter med nogle design ting, 328 00:23:14,600 --> 00:23:17,250 nogen der har nogen spørgsmål til Ben om noget, han talte om? 329 00:23:17,250 --> 00:23:20,290 Okay, godt. 330 00:23:20,290 --> 00:23:22,220 Igen, lad os vide, hvis noget er ikke klart 331 00:23:22,220 --> 00:23:25,420 eller hvis du gerne vil have os til at gå over noget lidt mere. 332 00:23:25,420 --> 00:23:30,330 Jeg har tænkt mig at træde lidt tilbage og snakke om de mere fundamentale dele af design. 333 00:23:30,330 --> 00:23:34,840 Ben nævnte model kaldet - undskyld, model controller view-system 334 00:23:34,840 --> 00:23:38,520 som er en slags det tekniske aspekt, så jeg har tænkt mig at kigge på udsigt specifikt 335 00:23:38,520 --> 00:23:42,930 og jeg har tænkt mig at starte med, hvordan du ville designe en visning, der ser pænt. 336 00:23:42,930 --> 00:23:50,540 Her er lidt af en virkelig grundlæggende skabelon for vores kat Facebook. 337 00:23:50,540 --> 00:23:54,190 Jeg tror, ​​der er nogle grundlæggende i moderne UI design 338 00:23:54,190 --> 00:23:56,190 der er værd at tage op. 339 00:23:56,190 --> 00:23:58,210 Du kan mærke der er en masse hvid plads over hele siden, 340 00:23:58,210 --> 00:24:00,790 masser af plads til ting. 341 00:24:00,790 --> 00:24:02,580 Må ikke føler at du er nødt til at mase tingene på en side. 342 00:24:02,580 --> 00:24:06,700 Du ønsker at forlade masser af plads åben, og hvis du går til næsten enhver moderne hjemmeside 343 00:24:06,700 --> 00:24:08,380 vil du se, at der er hvidt overalt. 344 00:24:08,380 --> 00:24:10,380 Der er hvidt i steder, du ville forvente. 345 00:24:10,380 --> 00:24:14,570 Du har denne farvepalet, og det er klogt i begyndelsen 346 00:24:14,570 --> 00:24:17,880 at vælge en farvepalet, som du kommer til at arbejde med og udvikle sig. 347 00:24:17,880 --> 00:24:22,250 Du skal også - det hjælper at vælge en skrifttype, og den måde, du slags arbejder med 348 00:24:22,250 --> 00:24:24,450 disse konkrete grundlæggende elementer i design. 349 00:24:24,450 --> 00:24:26,910 Du har din type, du har dine farver, og derefter kan du slags 350 00:24:26,910 --> 00:24:29,380 passer alt andet i efter behov. 351 00:24:29,380 --> 00:24:37,710 Så, som jeg sagde, med dit farveskema, du vil bruge mere dristige farver i din farvesammensætning 352 00:24:37,710 --> 00:24:40,320 sparsomt. Headers er nice. Knapperne er rart at have virkelig store, prangende farver. 353 00:24:40,320 --> 00:24:43,710 Men generelt, hvis du har en hjemmeside, der har farver overalt, 354 00:24:43,710 --> 00:24:47,250 alle stirrer dig i ansigtet, det bare ser rodet, og det er ikke godt. 355 00:24:47,250 --> 00:24:50,430 Du ønsker at generelt bruge lyse farver. 356 00:24:50,430 --> 00:24:52,890 Prøv at, igen, vælge en temmelig sammenhængende farveskema. 357 00:24:52,890 --> 00:24:56,640 Du kan have disse små stænk af masser af farve - 358 00:24:56,640 --> 00:25:00,240 der kan se temmelig rart, men du ønsker at bruge dem temmelig sparsomt. 359 00:25:00,240 --> 00:25:04,270 >> Som jeg sagde, du ønsker at være minimal. Mindre er næsten altid mere. 360 00:25:04,270 --> 00:25:07,430 Hvis du kan vise noget eller ikke vise noget, 361 00:25:07,430 --> 00:25:10,230 og du er slags usikker på, om det skal være der som standard - 362 00:25:10,230 --> 00:25:13,400 sandsynligvis du bedst off forlader det ud. Du kan altid tilføje det senere. 363 00:25:13,400 --> 00:25:16,620 Ja, holde tingene simple. 364 00:25:16,620 --> 00:25:19,510 Men vigtigst af alt, du ønsker at overveje flere designs. 365 00:25:19,510 --> 00:25:23,520 Tror ikke, at når du laver en hjemmeside, du har det i dit hoved, at du kommer til at 366 00:25:23,520 --> 00:25:26,310 gøre området på en bestemt måde, og det kommer til at se ud nøjagtig som dette. 367 00:25:26,310 --> 00:25:29,830 Det kommer til at have den blå overskrift i toppen og den blå side bar 368 00:25:29,830 --> 00:25:32,670 og derefter den gule sub-header ting. 369 00:25:32,670 --> 00:25:34,670 Du ønsker at foretage flere skabeloner. 370 00:25:34,670 --> 00:25:37,350 Du kan enten - hvis du er god med Photo Shop, kan du åbne det op og sortering af 371 00:25:37,350 --> 00:25:39,600 designe en hjemmeside, som du kan lide det skal se ud. 372 00:25:39,600 --> 00:25:41,680 Hvis ikke, kan du bare bruge pen og papir, 373 00:25:41,680 --> 00:25:44,000 men ridse op flere designs. 374 00:25:44,000 --> 00:25:47,000 Du ønsker at dybest set har et sæt op hvor du har masser af forskellige designs, 375 00:25:47,000 --> 00:25:50,810 og hvis man ender arbejde, så det er fantastisk. 376 00:25:50,810 --> 00:25:53,370 Hvis man ender ikke, så du altid har en anden til at henvende sig til. 377 00:25:53,370 --> 00:25:57,960 I almindelighed, ikke føler at du skal begrænses 378 00:25:57,960 --> 00:26:00,830 til, hvad design du oprindeligt beslutte. 379 00:26:00,830 --> 00:26:04,420 Design er meget varierende, og en del af betydningen af ​​den model 380 00:26:04,420 --> 00:26:09,480 controller view-system er, at du kan bytte ind og ud af forskellige synspunkter, du ønsker. 381 00:26:09,480 --> 00:26:13,510 Du kan svaje data den ene vej, og derefter beslutte, åh, faktisk, der ikke fungerer så godt. 382 00:26:13,510 --> 00:26:19,190 Jeg synes, det er lidt for kompliceret, eller der er en del her, der er ikke rigtig fungerer, 383 00:26:19,190 --> 00:26:22,150 så jeg bare at helt opgive dette synspunkt og swap i en helt ny. 384 00:26:22,150 --> 00:26:24,790 Vi kan stadig bruge de gamle modeller og de gamle controllere. 385 00:26:24,790 --> 00:26:27,490 Vi kan gøre alt på serveren og klienten, som vi ville før. 386 00:26:27,490 --> 00:26:32,850 Men den egentlige bølge af data som vises, kommer til at være lidt anderledes. 387 00:26:32,850 --> 00:26:35,840 >> Så langt som rent faktisk gennemfører det design, du ønsker, 388 00:26:35,840 --> 00:26:39,330 når du har et par designs skitseret på papir eller på Photo Shop eller hvad, 389 00:26:39,330 --> 00:26:42,120 der er en række af værktøjer, der stilles til rådighed for dig. 390 00:26:42,120 --> 00:26:45,700 Det første du er meget fortrolig med, som er din HTML, PHP, eller hvad 391 00:26:45,700 --> 00:26:48,990 sprog, du bruger blot at kode de statiske sider på dit websted. 392 00:26:48,990 --> 00:26:51,990 Du har arbejdet meget med HTML, hvilken slags giver dig disse tags 393 00:26:51,990 --> 00:26:57,820 at du kan sætte tingene i, og dybest set er det en måde at organisere dit indhold. 394 00:26:57,820 --> 00:27:00,990 For eksempel har du overskriften deroppe, så du kommer til at have en header tag, 395 00:27:00,990 --> 00:27:05,770 og det kommer til at have noget tekst inde i det, som sandsynligvis kommer til at være i et andet tag. 396 00:27:05,770 --> 00:27:08,380 Så har du en sidebar måske med nogle forskellige links, 397 00:27:08,380 --> 00:27:10,160 og dem vil alle være i separate tags. 398 00:27:10,160 --> 00:27:13,870 Så dybest set HTML på sit hjerte er en måde at dele op på siden, hvordan 399 00:27:13,870 --> 00:27:16,980 du i sidste ende ønsker at formatere den. 400 00:27:16,980 --> 00:27:18,980 Så igen, har du set det før. 401 00:27:18,980 --> 00:27:20,540 Du er temmelig komfortabel med at arbejde med det nu 402 00:27:20,540 --> 00:27:23,120 givet at du har gjort det sidste PSET forhåbentlig 403 00:27:23,120 --> 00:27:26,150 så der bør være noget problem. 404 00:27:26,150 --> 00:27:31,280 >> Så har du CSS, som dybest set håndterer alle de design statiske aspekter. 405 00:27:31,280 --> 00:27:35,320 Det vil håndtere alle de farver, alle positionering af forskellige elementer, 406 00:27:35,320 --> 00:27:36,840 hvor de går i forbindelse med hinanden, 407 00:27:36,840 --> 00:27:41,530 hvor store de er, de forskellige typer af positioneringer som du ville have - 408 00:27:41,530 --> 00:27:46,030 med andre ord, kan du har tingene fast, så når du ruller ned de ophold, 409 00:27:46,030 --> 00:27:48,700 eller du kan have ting i forhold til andre elementer. 410 00:27:48,700 --> 00:27:50,730 Alle den slags ting er i CSS. 411 00:27:50,730 --> 00:27:54,630 Desuden kan du gøre forskellige dekorationer, kan du få tekst farver, 412 00:27:54,630 --> 00:27:56,630 tekst effekter, som alle den slags ting. 413 00:27:56,630 --> 00:28:00,360 Ben gav et virkelig godt seminar om dette sidste weekend, 414 00:28:00,360 --> 00:28:04,450 og så ville jeg helt sikkert tjekke det ud, hvis du planlægger at gøre nogle smarte ting med CSS. 415 00:28:04,450 --> 00:28:09,850 CSS3 er faktisk den nyeste version af CSS, og det kan gøre alle mulige virkelig pæne ting. 416 00:28:09,850 --> 00:28:14,750 Det kan gøre hældninger, og du kan få pæne, afrundede hjørner, og du kan gøre alle mulige ting 417 00:28:14,750 --> 00:28:17,940 at gøre dit website ser mere moderne og fancy. 418 00:28:17,940 --> 00:28:22,150 >> Det næste værktøj er JavaScript og jQuery som Ben snakkede lidt om, 419 00:28:22,150 --> 00:28:24,150 men jeg får en lidt længere ind. 420 00:28:24,150 --> 00:28:28,100 JavaScript, som du har arbejdet med det en lille smule, eller i det mindste set det i foredrag, 421 00:28:28,100 --> 00:28:31,870 er lidt af en måde dynamisk gør ting i HTML. 422 00:28:31,870 --> 00:28:35,950 HTML, som du ved, er statisk, så når du har HTML kan du ikke ændre det. 423 00:28:35,950 --> 00:28:40,050 Men JavaScript, på nogle måder, er en måde at være i stand til at ændre HTML. 424 00:28:40,050 --> 00:28:44,520 Så du kan gøre det, og det er fantastisk, men JavaScript er virkelig en smerte at arbejde med. 425 00:28:44,520 --> 00:28:49,050 Det er så lang og sløv og gøre selv de simpleste ting 426 00:28:49,050 --> 00:28:51,630 kræver masser af linjer af JavaScript. 427 00:28:51,630 --> 00:28:55,410 Så jQuery er dybest set et bibliotek for JavaScript, der forenkler alt dette. 428 00:28:55,410 --> 00:28:59,880 Den siger, okay, hvis du vil have en firkantet kasse kommer fra venstre 429 00:28:59,880 --> 00:29:03,980 og fade ind på siden, så den er i midten, i JavaScript, der ville tage - 430 00:29:03,980 --> 00:29:06,340 Jeg ved det ikke, hundrede linjer til at gøre, og det ville være en smerte, 431 00:29:06,340 --> 00:29:10,540 og du kommer ud af det hade alt om web programmering. 432 00:29:10,540 --> 00:29:15,380 JQuery du dybest set har det element-dot-fade-in, eller noget lignende. 433 00:29:15,380 --> 00:29:18,580 Så meget, meget simple funktioner, der vil lade dig gøre alle mulige smarte animationer 434 00:29:18,580 --> 00:29:20,580 og den slags ting. 435 00:29:20,580 --> 00:29:23,300 Den anden ting, at disse 2 er virkelig godt for bare at gøre dynamiske ting 436 00:29:23,300 --> 00:29:25,300 med hjemmesiden. 437 00:29:25,300 --> 00:29:28,370 Så i stedet for bare at have din HTML-side - som viser nogle data, men faktisk ikke 438 00:29:28,370 --> 00:29:32,130 gøre noget - JavaScript og jQuery vil lade dig få knapper, som du kan klikke på, 439 00:29:32,130 --> 00:29:37,960 og du kan trække elementer og genbestille dem og sortere dem, og få nye elementer 440 00:29:37,960 --> 00:29:40,500 tilføjes eller fjernes. Du kan tilføje, slette, den slags ting. 441 00:29:40,500 --> 00:29:44,570 Så jQuery gør tonsvis af cool ting. 442 00:29:44,570 --> 00:29:48,840 Og Vipul er faktisk at give et seminar om det i dag, tror jeg, på 5-klokken, 443 00:29:48,840 --> 00:29:51,220 så hvis du kan holde sig rundt i så længe, ​​at ville - 5 eller 4? 444 00:29:51,220 --> 00:29:54,930 Four. Undskyld. Det er faktisk lige efter dette, så jeg vil anbefale 445 00:29:54,930 --> 00:29:56,680 stikning rundt for det, hvis du kan. 446 00:29:56,680 --> 00:30:00,180 JQuery er super, super nyttige, og du vil være i stand til at gøre masser af virkelig gode ting med det 447 00:30:00,180 --> 00:30:03,460 for stort set alle web udviklingsprojekt. 448 00:30:03,460 --> 00:30:06,200 >> Nu vil jeg gå ind i sådan en forskel. 449 00:30:06,200 --> 00:30:08,210 Jeg har talt dybest set om brugergrænsefladen. 450 00:30:08,210 --> 00:30:11,510 Brugergrænsefladen er bare design af hjemmesiden. 451 00:30:11,510 --> 00:30:13,780 Men der er lidt andet koncept, som er brugeroplevelse. 452 00:30:13,780 --> 00:30:15,900 De to er meget forskellige. 453 00:30:15,900 --> 00:30:19,440 Interface er afgjort en del af oplevelsen. 454 00:30:19,440 --> 00:30:21,340 Med andre ord, når du går til et websted, du ser på grænsefladen. 455 00:30:21,340 --> 00:30:22,960 Det er en del af, hvordan du oplever sitet. 456 00:30:22,960 --> 00:30:24,960 Men Brugeroplevelsen er mere end det. 457 00:30:24,960 --> 00:30:29,910 Brugeroplevelsen er om, hvad det indtryk, at brugeren får fra dit websted er. 458 00:30:29,910 --> 00:30:31,910 Så naturligvis interface er en del af. 459 00:30:31,910 --> 00:30:35,340 Og det er absolut en nødvendig del, men det er ikke tilstrækkeligt. 460 00:30:35,340 --> 00:30:38,790 Med andre ord, hvis du har en dejlig brugerflade, og det er temmelig og farverige og alt dette, 461 00:30:38,790 --> 00:30:43,650 det er fantastisk, men hvis brugeren går til dit websted, ser en smuk layout og det er forvirret af 462 00:30:43,650 --> 00:30:47,060 alt, har ingen idé om, hvordan at gøre noget, så selvfølgelig har du lavet en rigtig 463 00:30:47,060 --> 00:30:48,930 dårlig hjemmeside. 464 00:30:48,930 --> 00:30:50,930 Det er slags hvor brugerens oplevelse kommer ind 465 00:30:50,930 --> 00:30:54,570 Jeg har tænkt mig at tale lidt om design UX - UX er en forkortelse for brugerens oplevelse - 466 00:30:54,570 --> 00:30:58,050 og art af, hvordan du kan sikre dig, at du har en god brugeroplevelse. 467 00:30:58,050 --> 00:31:04,330 Det første punkt er, at du kan designe en hjemmeside, hvor en bruger kan gøre noget, 468 00:31:04,330 --> 00:31:06,820 at brugeren muligvis ønsker. 469 00:31:06,820 --> 00:31:08,940 Men hvis brugeren ikke kan finde ud af at gøre disse ting - 470 00:31:08,940 --> 00:31:12,850 med andre ord, hvis brugeren ikke har en god idé, når de går til dit websted af, 471 00:31:12,850 --> 00:31:17,660 "Åh, hvis jeg vil opdatere min profil, så jeg klikker på denne knap, eller hvis jeg ønsker at skrive på 472 00:31:17,660 --> 00:31:20,850 nogens væg, så jeg går til deres væg, og klik på en lille boks. " 473 00:31:20,850 --> 00:31:24,410 Hvis brugeren ikke kender det, så du effektivt har faktisk ikke 474 00:31:24,410 --> 00:31:27,080 implementeret denne funktionalitet korrekt. 475 00:31:27,080 --> 00:31:30,900 En del af at gennemføre en funktionalitet er, at brugerne faktisk er i stand til at bruge det. 476 00:31:30,900 --> 00:31:34,810 Og det kan være frustrerende - du kan lave en hjemmeside, og det kan gøre alle former for 477 00:31:34,810 --> 00:31:37,810 vidunderlige ting, men så har du folk teste det og sige, "Det kan ikke gøre dette. 478 00:31:37,810 --> 00:31:39,770 Hvorfor kan det ikke gøre det? "Og du vil sige tilbage til dem, 479 00:31:39,770 --> 00:31:44,420 "Tja, det kan. Du skal bare nødt til at gå ind i det 7. drop-down menuen på denne obskure 480 00:31:44,420 --> 00:31:48,470 side, der kun findes ved et link nederst højre hjørne "eller noget. 481 00:31:48,470 --> 00:31:50,430 Det er klart, du ikke ønsker det. 482 00:31:50,430 --> 00:31:53,420 Du vil have det til at stå klart for dine brugere, hvad de skal gøre, 483 00:31:53,420 --> 00:31:56,240 og det bør være enkel og intuitiv for dem. 484 00:31:56,240 --> 00:32:01,180 >> En anden ting, som du ønsker at prøve at gøre, er, hvis nogen kommer til at gå til dit websted 485 00:32:01,180 --> 00:32:05,520 og 9 ud af 10 gange gør handling A, og 1 ud af 10 gange gør handling B, 486 00:32:05,520 --> 00:32:08,950 du sandsynligvis ønsker at fokusere deres erfaringer på handling A. 487 00:32:08,950 --> 00:32:12,240 Med andre ord, du ønsker at gøre det meget, meget klart hvordan A. 488 00:32:12,240 --> 00:32:15,980 A skal være front-og-center - gå til webstedet, se det, åh, det er lige der. 489 00:32:15,980 --> 00:32:20,850 Mens B selvfølgelig, du ønsker at være klar, men du kan efterlade det lidt mere 490 00:32:20,850 --> 00:32:22,850 i baggrunden. 491 00:32:22,850 --> 00:32:24,640 David giver et godt eksempel på dette i foredrag, 492 00:32:24,640 --> 00:32:26,640 som er Boston T systemet. 493 00:32:26,640 --> 00:32:29,440 Når du går til Boston T og du ønsker at købe en billet, 494 00:32:29,440 --> 00:32:32,700 du nødt til at komme ind i 5 menuer, før du rent faktisk kan købe en billet 495 00:32:32,700 --> 00:32:37,130 for en $ 2, $ 2,50 værdi, hvilket er, hvor meget det tager at ride metroen 496 00:32:37,130 --> 00:32:39,130 i én retning. 497 00:32:39,130 --> 00:32:41,600 Det er et problem, fordi de fleste mennesker, der er ridning metroen 498 00:32:41,600 --> 00:32:44,880 sandsynligvis blot ønsker at henvende sig ét sted, købe deres billet, komme på det samme. 499 00:32:44,880 --> 00:32:47,550 Det giver ikke mening, at de er nødt til at gå gennem masser af forskellige menuer 500 00:32:47,550 --> 00:32:49,550 at komme dertil. 501 00:32:49,550 --> 00:32:51,760 En bedre brugeroplevelse ville være en hurtig knap på den første side 502 00:32:51,760 --> 00:32:54,760 der bare siger "købe en enkeltbillet ', og der ville sætte i alle standard 503 00:32:54,760 --> 00:32:58,550 standardværdier, og så hvis nogen ønsker at købe en anden billet end det, 504 00:32:58,550 --> 00:33:01,690 de stadig, selvfølgelig, har mulighed for at, men du har optimeret for 505 00:33:01,690 --> 00:33:04,080 common-use case som er virkelig vigtigt. 506 00:33:04,080 --> 00:33:06,830 Du kan se eksempler på dette på Facebook, ikke? 507 00:33:06,830 --> 00:33:09,410 Hvis du går på Facebook, og du ønsker at skrive en status, 508 00:33:09,410 --> 00:33:11,710 det er helt i top, hvilket er hvad du ofte ønsker at gøre. 509 00:33:11,710 --> 00:33:14,730 Så snart du træder ind i siden, kan du gøre de mest almindelige ting, som 510 00:33:14,730 --> 00:33:16,730 du ønsker at gøre. 511 00:33:16,730 --> 00:33:17,550 Hvis du ønsker at gøre lidt mere komplicerede ting som, 512 00:33:17,550 --> 00:33:21,070 sige, at jeg ønsker at gå til min vens væg og sende et billede på det - 513 00:33:21,070 --> 00:33:24,810 som jeg ønsker at gøre ofte, men ikke så ofte som udstationering statusopdateringer - 514 00:33:24,810 --> 00:33:28,200 så i dette tilfælde, jeg skriver deres navn i boksen øverst, skal du klikke på deres profil, 515 00:33:28,200 --> 00:33:31,680 og så stadig, det er helt i top der, når jeg har fået til deres profil. 516 00:33:31,680 --> 00:33:38,240 Igen, jeg har optimeret i prioritet for de mest almindelige-use cases. 517 00:33:38,240 --> 00:33:41,800 >> En anden vigtig ting er, at folk ofte vil slags forsøge at komme omkring dette 518 00:33:41,800 --> 00:33:44,890 ved at sige, okay, så jeg har lavet hjemmesiden, og folk finder det forvirrende, 519 00:33:44,890 --> 00:33:46,110 og det er et problem, ikke? 520 00:33:46,110 --> 00:33:49,210 Det er klart, jeg ikke vil have folk til at blive forvirret af indholdet af min hjemmeside. 521 00:33:49,210 --> 00:33:53,210 Men den måde at løse det er ikke at have noget poppe op siger, 522 00:33:53,210 --> 00:33:55,290 hey, jeg har tænkt mig at lære dig, hvordan du bruger denne hjemmeside. 523 00:33:55,290 --> 00:33:58,130 Trin 1 - klik på denne knap. Trin 2 - gå her. 524 00:33:58,130 --> 00:34:03,080 Sure, det er en måde omkring det - det er en måde at du kan fortælle folk, hvad de skal gøre, men det er 525 00:34:03,080 --> 00:34:05,080 virkelig ikke den optimale måde. 526 00:34:05,080 --> 00:34:07,420 Hvis jeg går til en hjemmeside, og pludselig jeg bombarderet med denne tutorial, der fortæller mig, 527 00:34:07,420 --> 00:34:11,739 hvad de skal gøre, og hvor gå og alt dette, det er ikke sjovt for mig. 528 00:34:11,739 --> 00:34:13,739 Det er ikke en god oplevelse for mig. 529 00:34:13,739 --> 00:34:17,130 Det er lidt af en smerte. Jeg ønsker bare at begynde at gøre ting. 530 00:34:17,130 --> 00:34:19,449 Folk kommer til at lukke ud af deres dialogboksen 531 00:34:19,449 --> 00:34:23,580 eller komme ud af tutorial, ikke ved, hvad de skal gøre, og derefter klage, fordi 532 00:34:23,580 --> 00:34:25,580 du ikke har fortalt dem, hvad de skal gøre. 533 00:34:25,580 --> 00:34:29,530 Den måde at løse dette er ikke ved at give nogen form for tutorial eller retninger - 534 00:34:29,530 --> 00:34:31,530 noget lignende. 535 00:34:31,530 --> 00:34:33,719 Så meget som du kan undgå det, du virkelig ønsker at vise brugeren, hvad de skal gøre 536 00:34:33,719 --> 00:34:36,429 blot ved karakteren af, hvordan hjemmesiden er lagt ud. 537 00:34:36,429 --> 00:34:39,090 Med andre ord, hvis jeg går til Facebook uden at logge ind, 538 00:34:39,090 --> 00:34:40,920 den første ting, jeg ser på forsiden - 539 00:34:40,920 --> 00:34:44,480 det er lidt loginbokse. Så duh. Jeg er nødt til at logge ind Det er lige der. 540 00:34:44,480 --> 00:34:48,030 Henviser til, at hvis jeg gik til Facebook, og jeg var nødt til at klikke på et lille link nederst 541 00:34:48,030 --> 00:34:51,920 der sagde "Log ind", og resten af ​​den side var bare en slags billede eller noget, 542 00:34:51,920 --> 00:34:54,820 Jeg ville ikke rigtig ved, hvad de skal gøre, ikke? Jeg ville blive forvirret. 543 00:34:54,820 --> 00:34:58,590 Så kunne det fortælle mig at gå derned, og klik på knappen for at logge ind, 544 00:34:58,590 --> 00:35:01,080 eller log ind-knappen kan være helt i toppen, hvor jeg har tænkt mig at se det. 545 00:35:01,080 --> 00:35:04,780 Du ønsker at altid være at vise brugeren, hvad de skal gøre, 546 00:35:04,780 --> 00:35:06,750 og det bør være indbygget i selve siden. 547 00:35:06,750 --> 00:35:09,880 >> Når du tænker på design og spottende op forskellige måder 548 00:35:09,880 --> 00:35:13,810 udtrykke dit websted, du virkelig ønsker at tænke over, hvad brugerne vil 549 00:35:13,810 --> 00:35:19,380 gøre, og hvordan du kan vise dem, hvad de skal gøre. 550 00:35:19,380 --> 00:35:23,530 En sidste ting er test er virkelig, virkelig vigtigt. 551 00:35:23,530 --> 00:35:27,400 Det er fantastisk at få nogen - få en ven, få en person, du ikke kender endnu - 552 00:35:27,400 --> 00:35:30,420 som aldrig har set stedet før at bruge hjemmesiden. 553 00:35:30,420 --> 00:35:33,650 Fordi du har arbejdet på stedet i timevis, har du været stirre på det, 554 00:35:33,650 --> 00:35:36,670 og du ved præcis, hvad de skal gøre, så selvfølgelig du kommer til at teste 555 00:35:36,670 --> 00:35:39,520 ting, som du har arbejdet på, og at du ved arbejde. 556 00:35:39,520 --> 00:35:42,680 Men hvis en anden kommer og bruger det websted, der aldrig har brugt det før, 557 00:35:42,680 --> 00:35:46,880 Det er en unik oplevelse, fordi du har en person, der ikke har nogen forudgående kendskab 558 00:35:46,880 --> 00:35:51,530 af stedet går ind i det, så de kommer til at have en effektiv ingen idé hvad de skal gøre 559 00:35:51,530 --> 00:35:54,890 eller hvilken slags use cases er til stede for dem. 560 00:35:54,890 --> 00:36:00,930 Det er godt. Det er enestående, fordi de er hovedsagelig en person med en blank for et sind. 561 00:36:00,930 --> 00:36:03,750 De kan fortælle dig, hvis noget er forvirrende eller uklare. 562 00:36:03,750 --> 00:36:07,580 De kan give dig en idé om præcis, hvad brugerens oplevelse af dit site er. 563 00:36:07,580 --> 00:36:10,630 Det kan være meget svært at sige, at dig selv, så helt sikkert jeg vil opfordre dig 564 00:36:10,630 --> 00:36:13,640 som du udvikler dine projekter - hvis du laver web-baserede projekter - 565 00:36:13,640 --> 00:36:18,290 at få folk bruger webstedet så tidligt som du har en form for funktionel demo. 566 00:36:18,290 --> 00:36:25,330 >> Nu vil jeg til at snakke lidt om, hvordan man styre en web-udviklingsprojekt. 567 00:36:25,330 --> 00:36:28,900 Vi har gået over, hvordan du kan gøre det teknisk back-end siden, 568 00:36:28,900 --> 00:36:31,050 hvordan du kan designe en rigtig god hjemmeside, 569 00:36:31,050 --> 00:36:34,150 og det er fantastisk, hvis du arbejder med dig selv, men - 570 00:36:34,150 --> 00:36:37,300 selv hvis du arbejder ved dig selv, og især hvis du arbejder på et hold, 571 00:36:37,300 --> 00:36:39,580 projektledelse bliver et stort problem. 572 00:36:39,580 --> 00:36:42,340 Du har slags hørt om projektledelse i forskellige former siden 573 00:36:42,340 --> 00:36:45,410 grundskole da du fik at vide, gruppearbejde. 574 00:36:45,410 --> 00:36:46,820 Du er nødt til at samarbejde, kommunikere, alt dette. 575 00:36:46,820 --> 00:36:49,620 At alle stadig gælder her, men der er nogle unikke omstændigheder med 576 00:36:49,620 --> 00:36:54,910 datalogi, som du ønsker at være opmærksom på, og du vil være sikker på du håndtere godt. 577 00:36:54,910 --> 00:36:58,050 Jeg vil tale først lidt om det hold, du vil være i. 578 00:36:58,050 --> 00:37:03,280 Det er meget vigtigt at vælge den rigtige størrelse af et team, der skal arbejde på, 579 00:37:03,280 --> 00:37:05,890 og i dit sidste projekt, jeg tror, ​​du har mulighed for at vælge 580 00:37:05,890 --> 00:37:08,610 mellem 1 og 4 personer, hvis jeg er korrekt. 581 00:37:08,610 --> 00:37:12,050 Du ønsker at sikre, at du ikke bare vælge antallet af personer 582 00:37:12,050 --> 00:37:14,950 at du ønsker at arbejde med, fordi de er dine venner. 583 00:37:14,950 --> 00:37:18,170 Du ønsker at vælge et team, der er en god størrelse og der vil få arbejdet gjort. 584 00:37:18,170 --> 00:37:22,700 Der er en afvejning i at have flere mennesker versus færre folk. 585 00:37:22,700 --> 00:37:25,320 Hvis du har flere mennesker, kan naturligvis mere arbejde gøres 586 00:37:25,320 --> 00:37:28,450 fordi du har masser af mennesker, masser af kode, masser af ideer, 587 00:37:28,450 --> 00:37:29,870 og det er alle store. 588 00:37:29,870 --> 00:37:32,590 Men det kræver også en masse mere ledelse og en masse mere kommunikation. 589 00:37:32,590 --> 00:37:34,720 Med andre ord, hvis du har 4 personer, der arbejder på det samme projekt 590 00:37:34,720 --> 00:37:39,200 og de er alle redigerer den samme kode, mere eller mindre de alle slags behov for at vide 591 00:37:39,200 --> 00:37:40,920 hvad der foregår, så det kræver, at du - 592 00:37:40,920 --> 00:37:44,580 hvis du tilføjer nogle nye funktion, du slags nødt til at fortælle folk - jeg tilføje dette, 593 00:37:44,580 --> 00:37:48,510 Jeg skifter det på denne måde - især hvis du kommer ind i virkelig dybt stuff 594 00:37:48,510 --> 00:37:52,730 ligesom modeller og controllere, der er faktisk kommer til at påvirke, hvordan stedet fungerer. 595 00:37:52,730 --> 00:37:54,500 Hele holdet skal være klar over det, 596 00:37:54,500 --> 00:37:58,140 så du skal sørge for du ikke at vælge for stor et hold, der kommer til at være hård 597 00:37:58,140 --> 00:37:59,970 at gøre denne kommunikation. 598 00:37:59,970 --> 00:38:02,930 Du har heller ikke lyst til at vælge en lille nok hold, som du ikke kommer til at 599 00:38:02,930 --> 00:38:06,250 være i stand til at kommunikere, fordi det er bare dig. 600 00:38:06,250 --> 00:38:11,270 >> En anden ting at overveje, er balancen i hvor folks kompetencer er. 601 00:38:11,270 --> 00:38:14,350 Det er fantastisk, hvis du er alle rigtig gode programmører. 602 00:38:14,350 --> 00:38:17,050 Men hvis du er alle back-end mennesker, så dit websted ikke kommer til at se meget godt 603 00:38:17,050 --> 00:38:20,860 fordi du har denne store database, og det gør superhurtige søgeforespørgsler - 604 00:38:20,860 --> 00:38:26,130 der er stor - men når du går til det, det er ligesom et 1990 site med rød og blå 605 00:38:26,130 --> 00:38:30,370 overalt, og det er ikke godt. 606 00:38:30,370 --> 00:38:34,210 Bemærk, at Ben og jeg arbejder som et team er meget rart, fordi jeg er en slags mere 607 00:38:34,210 --> 00:38:38,030 i den forreste ende, vi begge interagerer i midten-slutningen, og Ben er virkelig godt med back-end stuff, 608 00:38:38,030 --> 00:38:43,550 så der fungerer rigtig godt, fordi vi kan designe et websted og dybest set hullerne 609 00:38:43,550 --> 00:38:47,580 i det websted, der skal udfyldes, kan besættes af enten den ene af os, eller måske begge dele. 610 00:38:47,580 --> 00:38:50,210 Du ønsker at sikre, at der ikke er huller i dit team. 611 00:38:50,210 --> 00:38:51,180 Det er okay, hvis der er en smule overlap. 612 00:38:51,180 --> 00:38:53,670 Med andre ord, hvis du har 2 personer, der er både gode med bagenden, 613 00:38:53,670 --> 00:38:57,250 der kan være god som godt, fordi de kan hjælpe hinanden med problemer 614 00:38:57,250 --> 00:38:58,820 at de har. 615 00:38:58,820 --> 00:39:02,590 Det kan være et problem, hvis du kun har 1 person, der er ansvarlig for en bestemt ting 616 00:39:02,590 --> 00:39:06,650 og de løber ind i et problem, så du ønsker at have en lille smule af overlapning 617 00:39:06,650 --> 00:39:10,760 men du vigtigst ønsker at sikre, at alle de mulige huller er fyldt. 618 00:39:10,760 --> 00:39:17,550 >> Den sidste ting - og det burde være indlysende, men det er ofte ikke. 619 00:39:17,550 --> 00:39:19,550 Du virkelig ønsker at have det sjovt. 620 00:39:19,550 --> 00:39:23,360 Pointen med denne afsluttende projekt i CS50 og ofte det punkt af web udvikling generelt 621 00:39:23,360 --> 00:39:26,360 er ikke bare at gøre et job, fordi det skal gøre. 622 00:39:26,360 --> 00:39:29,140 Du virkelig ønsker at have det sjovt, og du ønsker at gøre noget 623 00:39:29,140 --> 00:39:31,180 der er at motivere dig til at arbejde på det. 624 00:39:31,180 --> 00:39:33,650 Hvis uanset hvad du gør, er en smerte at sidde ned og arbejde på, 625 00:39:33,650 --> 00:39:35,650 så er du ikke at vælge det rigtige projekt. 626 00:39:35,650 --> 00:39:37,730 Du ønsker at vælge noget, du finder interessant, 627 00:39:37,730 --> 00:39:41,150 du virkelig ønsker at se resultatet, er du ophidset, når du får en ny idé om 628 00:39:41,150 --> 00:39:44,700 noget, du kunne gøre - så der er alle former for projekter, der som jeg er sikker 629 00:39:44,700 --> 00:39:47,290 du kan finde - alle har noget, der virkelig ville intriger dem 630 00:39:47,290 --> 00:39:49,290 hvis de laver et web-baseret projekt. 631 00:39:49,290 --> 00:39:52,210 Jeg vil sige det igen lige nu. 632 00:39:52,210 --> 00:39:54,520 Hvis dit projekt virker som en smerte, og du ikke ønsker at arbejde på det, 633 00:39:54,520 --> 00:39:57,260 vælge et andet projekt. Vælg noget, der virkelig inspirerer dig. 634 00:39:57,260 --> 00:40:00,260 >> Ben nævnt dette begreb iteration lidt, og jeg ønsker at gå over det en smule. 635 00:40:00,260 --> 00:40:08,250 Det er virkelig vigtigt at arbejde i ryk hvor du får noget funktionelt. 636 00:40:08,250 --> 00:40:13,420 Det kan være fantastisk, hvis du har denne plan for en hjemmeside, der kommer til at gøre A, B og C, 637 00:40:13,420 --> 00:40:16,000 og i sidste ende vil det komme dertil. 638 00:40:16,000 --> 00:40:18,600 Men du sidder fast i denne fase, hvor du arbejder på det og arbejder på det, 639 00:40:18,600 --> 00:40:23,330 men intet er ved at blive gjort. Du behøver ikke have noget at se og et håndgribeligt, funktionel ting. 640 00:40:23,330 --> 00:40:27,940 Hvad du virkelig ønsker at gøre så meget som det ser ud sådan en smerte undertiden 641 00:40:27,940 --> 00:40:32,300 arbejde på noget, og derefter slags cap det, så det er i det mindste på et stabilt, løb 642 00:40:32,300 --> 00:40:34,910 version, selvom det ikke har alle de funktioner, du ønsker. 643 00:40:34,910 --> 00:40:37,690 Og måske er der nogle funktioner, som du virkelig ønsker at tilføje, men du kan bare ikke 644 00:40:37,690 --> 00:40:41,830 fordi du ønsker at få denne hjemmeside til en funktionel punkt. 645 00:40:41,830 --> 00:40:44,400 Og så du ønsker at slags have hele udviklingsprocessen ligne det. 646 00:40:44,400 --> 00:40:47,810 Du ønsker at starte et sted funktionelle - eller i det væsentlige starte med ingenting - 647 00:40:47,810 --> 00:40:49,890 men du ønsker at få et sted meget grundlæggende og funktionelle. 648 00:40:49,890 --> 00:40:54,940 Og så igen, lave en slags hoppe og få et sted funktionelle igen. 649 00:40:54,940 --> 00:40:59,190 Du vil langsomt bygge op, og det kan gå lidt langsommere end det ellers ville, 650 00:40:59,190 --> 00:41:03,000 men i det lange løb, hvis du konstant sidder fast i denne mellemvej fase, hvor du 651 00:41:03,000 --> 00:41:06,380 faktisk ikke har noget arbejde, kan det være en rigtig stor frustration 652 00:41:06,380 --> 00:41:09,970 at arbejde på dit projekt, fordi du altid er så tæt på at få det til at virke, 653 00:41:09,970 --> 00:41:12,130 og det er faktisk aldrig arbejdet. 654 00:41:12,130 --> 00:41:14,810 Du ønsker at arbejde i disse funktionelle ryk, 655 00:41:14,810 --> 00:41:17,950 og du også ønsker at gøre nogle overvejelser efter hver enkelt. 656 00:41:17,950 --> 00:41:21,260 Med andre ord, når du er på et punkt, hvor sitet er nu arbejder - 657 00:41:21,260 --> 00:41:24,790 det ikke har alt, hvad du kan lide, men det gør nogle ting - 658 00:41:24,790 --> 00:41:28,870 du ønsker at tænke, okay, er dette site gennemførelsen af ​​det mål, jeg satte mig for at gøre? 659 00:41:28,870 --> 00:41:33,410 Med andre ord, hvis webstedet kommer til at gøre X, er hvad jeg har at arbejde i retning af X? 660 00:41:33,410 --> 00:41:36,450 Er alle de funktionaliteter, som jeg ønskede der? 661 00:41:36,450 --> 00:41:39,340 Og i øvrigt er det tjener det overordnede formål, som jeg ønsker? 662 00:41:39,340 --> 00:41:43,200 Hvis du opdager, at din hjemmeside er begyndt at dreje i en anden retning 663 00:41:43,200 --> 00:41:47,330 eller måske ting bare slags ikke arbejder ud, kan det være tid til at skifte gear en lille smule. 664 00:41:47,330 --> 00:41:51,700 Med andre ord, er det værd at overveje - det er værd at smide idéer hvis det er nødvendigt 665 00:41:51,700 --> 00:41:57,950 og overvejer jeg virkelig arbejder hen imod det, jeg ønsker at være. 666 00:41:57,950 --> 00:42:00,760 >> Jeg tror, ​​det er mit næste punkt. Må ikke være bange for at opgive idéer. 667 00:42:00,760 --> 00:42:03,750 Bare fordi du har brugt masser af timer arbejder på et træk 668 00:42:03,750 --> 00:42:07,890 og endelig fik det til at virke, men det er virkelig ikke går så godt - 669 00:42:07,890 --> 00:42:12,690 ligesom det ikke er det nyttigt eller brugere har problemer med at bruge det - den slags ting - 670 00:42:12,690 --> 00:42:15,300 ikke være bange for at smide det væk. 671 00:42:15,300 --> 00:42:17,650 Det stinker, at du har brugt en masse tid på at arbejde på det, 672 00:42:17,650 --> 00:42:21,870 men i sidste ende du ikke ønsker et websted, der er slags sat sammen af ​​disse stykker, 673 00:42:21,870 --> 00:42:25,380 slags arbejde, men er ikke så godt tjent. 674 00:42:25,380 --> 00:42:27,990 Også, ikke være bange for at tage nye ideer. 675 00:42:27,990 --> 00:42:30,050 Hvis nogen kommer og siger, hey, at webstedet ser rigtig cool, men 676 00:42:30,050 --> 00:42:32,290 ville det ikke engang være dejligt, hvis det også gjorde det? 677 00:42:32,290 --> 00:42:36,220 Bare fordi det er noget, du ikke havde til hensigt, og noget, der ikke er i din 678 00:42:36,220 --> 00:42:37,900 specs, noget, som du ikke har sat sig for at gøre, 679 00:42:37,900 --> 00:42:40,860 vær ikke bange for at tage det på og derefter arbejde med det. 680 00:42:40,860 --> 00:42:43,680 Fordi ofte de ideer, som du kører med i løbet af udvikling 681 00:42:43,680 --> 00:42:47,630 ender med at blive de rigtig seje funktioner på hjemmesiden. 682 00:42:47,630 --> 00:42:49,630 >> Jeg har sagt det før. Jeg vil sige det igen. 683 00:42:49,630 --> 00:42:51,630 Testere er super, super nyttigt. 684 00:42:51,630 --> 00:42:56,350 Prøv at få folk, der aldrig har set stedet før at logge på og se, hvad der foregår 685 00:42:56,350 --> 00:42:59,080 fordi de ikke kun kan teste nytten af ​​stedet og brugerens oplevelse, 686 00:42:59,080 --> 00:43:02,070 men de kan også teste funktionaliteten på måder, du ikke kan. 687 00:43:02,070 --> 00:43:06,430 Hvis du laver nogle træk, der gør en bestemt ting 688 00:43:06,430 --> 00:43:11,620 og du ved, det kommer til at gøre det samme ting rigtigt hver eneste gang, det er fantastisk. 689 00:43:11,620 --> 00:43:16,610 Men det kan ofte være svært at redegøre for hjørne tilfælde, hvor en bruger kan 690 00:43:16,610 --> 00:43:19,500 skriver noget, som du ikke forventer - netop fordi du har defineret 691 00:43:19,500 --> 00:43:21,500 funktionerne selv. 692 00:43:21,500 --> 00:43:23,730 Så at nogen kommer på, hvem der har ingen idé om, hvordan du bruger sitet 693 00:43:23,730 --> 00:43:26,840 og bare bryde det, uanset på hvilken måde, de kan gøre, er virkelig nyttig, fordi du 694 00:43:26,840 --> 00:43:30,340 få en idé fra en helt anden perspektiv af, hvad på dit websted fungerer 695 00:43:30,340 --> 00:43:33,300 og hvad der skal repareres. 696 00:43:33,300 --> 00:43:37,070 >> Sidste, jeg vil tale om nogle generelle god praksis, 697 00:43:37,070 --> 00:43:42,470 og du har set en masse af disse i CS50, men de har også virkelig, virkelig gælder i et projekt indstilling. 698 00:43:42,470 --> 00:43:47,600 Den ene er kommentarer. Kommentere altid din kode, især hvis du arbejder på et stort hold. 699 00:43:47,600 --> 00:43:51,230 Det kan være så irriterende at bare have en kæmpe blok af kode, som nogen har skrevet 700 00:43:51,230 --> 00:43:54,230 og måske det virker, er det måske ikke, men du aner ikke, hvad det gør, 701 00:43:54,230 --> 00:43:58,010 så du har ingen idé om det er nyttigt eller ej, eller om det skal være der eller ej, 702 00:43:58,010 --> 00:44:00,200 og hvis du arbejder på noget andet, er det endda muligt, at du arbejder på 703 00:44:00,200 --> 00:44:06,590 de samme ting, så bare være meget, meget omhyggelig med at være hensynsfuld af dine kammerater 704 00:44:06,590 --> 00:44:09,710 og skrive kode, der er veldokumenteret. 705 00:44:09,710 --> 00:44:13,580 Du behøver ikke at gå så langt som til at gøre det hele, hvor gerne, hvis du tilvækst 706 00:44:13,580 --> 00:44:16,620 en tæller har en kommentar, der siger, jeg tilføjer 1 til denne tæller. 707 00:44:16,620 --> 00:44:20,450 Det behøver ikke at være så detaljeret, men for enhver funktion, du nogensinde du skriver 708 00:44:20,450 --> 00:44:23,160 du bør have en vis dokumentation for, hvad der fungerer præcist gør, 709 00:44:23,160 --> 00:44:25,140 hvad dens input er, og hvad det skal returnere. 710 00:44:25,140 --> 00:44:27,800 På den måde kan du bruge andre folks dele af webstedet 711 00:44:27,800 --> 00:44:31,990 og du kan arbejde hen imod at bygge noget stort. 712 00:44:31,990 --> 00:44:34,100 >> En anden vigtig ting er, du ønsker at gøre regelmæssig oprensninger. 713 00:44:34,100 --> 00:44:40,490 Kode bliver rodet. Må ikke føle sig dårligt, hvis din kode er bare helt uoverskueligt, og en kæmpe rod. 714 00:44:40,490 --> 00:44:42,770 Det sker i webudvikling altid. 715 00:44:42,770 --> 00:44:46,530 Du tilføjer nye funktioner, fjerne gamle. Ting bliver der, som ikke bør være. 716 00:44:46,530 --> 00:44:49,330 Det er fint, men du vil være sikker på at beskæftige sig med det regelmæssigt. 717 00:44:49,330 --> 00:44:53,430 Du ønsker ikke at lade det bygge op til det punkt, hvor du bare ikke kan finde noget 718 00:44:53,430 --> 00:44:56,430 i din kode, og du har ingen idé om, hvad noget gør. 719 00:44:56,430 --> 00:44:58,430 Det er tilfældet med HTML. 720 00:44:58,430 --> 00:44:59,490 Nogle gange vil du ende op med objekter, der ikke indeholder noget, 721 00:44:59,490 --> 00:45:01,320 og du ønsker at slippe af med dem. 722 00:45:01,320 --> 00:45:04,610 I CSS, kan du referere til elementer, der ikke er der længere, 723 00:45:04,610 --> 00:45:06,340 så du ønsker at slippe af med denne kode. 724 00:45:06,340 --> 00:45:09,900 I JavaScript, måske du har fjernet noget fra HTML. 725 00:45:09,900 --> 00:45:13,150 Så du vil være sikker på at du altid rydde op, hvilket gør tingene temmelig 726 00:45:13,150 --> 00:45:17,450 så meget som du kan på en regelmæssig basis. 727 00:45:17,450 --> 00:45:21,060 >> En anden rigtig nyttig ting, som jeg ikke tror er skitseret meget i CS50 728 00:45:21,060 --> 00:45:23,430 men det er værd at komme ind, er versionskontrol. 729 00:45:23,430 --> 00:45:27,180 Ideen med versionsstyring er, når du er dybest set at holde styr på alle de fremskridt, 730 00:45:27,180 --> 00:45:30,820 du har lavet til dit websted og hvis du på noget tidspunkt du indser, åh, det var i orden 731 00:45:30,820 --> 00:45:35,220 et stykke tid siden, men det fungerer ikke mere, kan du gå tilbage til tidligere versioner 732 00:45:35,220 --> 00:45:37,720 og se, hvad der har ændret sig siden da, og den slags ting. 733 00:45:37,720 --> 00:45:41,670 Den primære måde at gøre det er med Git og Git er hele denne form for system, der 734 00:45:41,670 --> 00:45:46,390 Jeg tror Tommy MacWilliam gav et seminar om sidste år. 735 00:45:46,390 --> 00:45:51,520 Hvis du går ind i CS50 seminarer for 2011, kan du se hans seminar om det. 736 00:45:51,520 --> 00:45:57,070 Idéen om Git er dybest set, at med jævne mellemrum du laver disse forpligtelser 737 00:45:57,070 --> 00:46:01,430 der er måder at sige stedet er i en temmelig stabile version lige nu, så 738 00:46:01,430 --> 00:46:05,910 Jeg pakker den op og sende det væk til en server, og så kan du gå til denne server 739 00:46:05,910 --> 00:46:07,910 og se på alle tidligere versioner af din kode og se, hvordan det skred 740 00:46:07,910 --> 00:46:12,210 og alle den slags gode ting. 741 00:46:12,210 --> 00:46:14,210 Så det er dybest set det. 742 00:46:14,210 --> 00:46:17,870 Så vidt webudvikling, vi er glade for at holde sig omkring og besvare eventuelle 743 00:46:17,870 --> 00:46:20,570 spørgsmål så langt som vores præsentation. 744 00:46:20,570 --> 00:46:22,900 Det er det. Thanks. >> [Ben] Thanks. 745 00:46:22,900 --> 00:46:28,480 [Bifald] 746 00:46:28,480 --> 00:46:30,950 >> [Billy] Personale, nogen der har nogen spørgsmål om ting, som vi har dækket 747 00:46:30,950 --> 00:46:33,950 eller ting, som vi ikke har dækket, at de håbede vi ville dække? 748 00:46:33,950 --> 00:46:35,950 Vi ville være glade for at besvare dem. Nogen? 749 00:46:35,950 --> 00:46:50,360 [Publikum medlem] Hvad er fordele og ulemper ved at bruge Ruby eller ved hjælp af Python? 750 00:46:50,360 --> 00:46:58,660 [Ben] Spørgsmålet var, hvad er fordele og ulemper ved at bruge Ruby eller Python 751 00:46:58,660 --> 00:46:59,900 i stedet for ligesom PHP. 752 00:46:59,900 --> 00:47:11,340 De professionelle er, at Ruby og Python er meget bedre sprog end PHP. 753 00:47:11,340 --> 00:47:14,920 I hvert fald i min udtalelse, og jeg tror i en masse andre folks meninger så godt. 754 00:47:14,920 --> 00:47:20,990 De var designet mere til at gøre komplekse ting, 755 00:47:20,990 --> 00:47:25,380 og mindre for tæv sammen websider virkelig hurtigt med 756 00:47:25,380 --> 00:47:28,400 en lille smule af dynamisk indhold. 757 00:47:28,400 --> 00:47:35,180 Ulemperne er, at der er en lille smule af - der er mere af en indlæringskurve 758 00:47:35,180 --> 00:47:37,220 at få dem sat op. 759 00:47:37,220 --> 00:47:41,010 Det er, ligesom i PHP, kan du bare have en HTML-fil, og du skriver mindre end, 760 00:47:41,010 --> 00:47:43,060 spørgsmålstegn, og så skal du skrive noget kode, og så skal du skrive spørgsmålstegn, 761 00:47:43,060 --> 00:47:45,700 større end, og så er du færdig. 762 00:47:45,700 --> 00:47:50,300 På andre sprog som Ruby eller Python, 763 00:47:50,300 --> 00:47:56,810 du nødt til at gå igennem en lidt mere arbejde for at få den oprindelige hjemmeside kørende. 764 00:47:56,810 --> 00:48:02,730 Der er også - i hvert fald det plejede at være tilfældet - at der er mere dokumentation 765 00:48:02,730 --> 00:48:05,480 tilgængelig for PHP, bare fordi der er flere mennesker, der bruger det. 766 00:48:05,480 --> 00:48:09,370 Jeg tror, ​​der er ikke så meget af et problem længere. 767 00:48:09,370 --> 00:48:12,520 Der er sikkert meget god dokumentation for ting som Ruby on Rails 768 00:48:12,520 --> 00:48:16,080 eller Django til Python er tilsvarende. 769 00:48:16,080 --> 00:48:25,910 PHP er den ene, som alle har været brugt i årevis, og du ved, hvordan det fungerer. 770 00:48:25,910 --> 00:48:28,460 Ruby og Python er en lille smule mindre modne. 771 00:48:28,460 --> 00:48:33,130 >> [Publikum medlem] Hvis du skulle vælge mellem en af ​​dem til at lære eller samle op, 772 00:48:33,130 --> 00:48:36,130 hvilket ville du foretrække? 773 00:48:36,130 --> 00:48:38,870 Helt ærligt, jeg tror det afhænger af personen. 774 00:48:38,870 --> 00:48:45,450 Undskyld. Spørgsmålet var, som ville du vælge for nogen til at lære? 775 00:48:45,450 --> 00:48:50,230 Jeg finder Python den pæneste personligt. 776 00:48:50,230 --> 00:48:55,360 Der er en masse mennesker, der - jeg gjorde mit første web dev projekt i Python og Django. 777 00:48:55,360 --> 00:49:00,300 Der er en masse mennesker, der kan lide Ruby on Rails også. 778 00:49:00,300 --> 00:49:02,650 Sandsynligvis flere mennesker, der kender Ruby on Rails. 779 00:49:02,650 --> 00:49:05,270 Helt ærligt, ville jeg bare gå med uanset de mennesker omkring dig ved, 780 00:49:05,270 --> 00:49:09,680 så du har folk til at stille spørgsmål. 781 00:49:19,640 --> 00:49:24,170 >> Spørgsmålet var - på fælles servere er det lidt svært at arbejde på Python? 782 00:49:24,170 --> 00:49:26,170 Det afhænger af din hosting. 783 00:49:26,170 --> 00:49:29,400 Der er en række af værter, der vil poste Python ting. 784 00:49:29,400 --> 00:49:31,400 WebFaction gør det, right? 785 00:49:31,400 --> 00:49:34,400 WebFaction er en, Billy og jeg har brugt til nogle projekter. 786 00:49:34,400 --> 00:49:37,750 De er virkelig stor. De støtter de fleste sprog. 787 00:49:37,750 --> 00:49:40,020 Men det er sandt, at PHP er langt mere bred opbakning. 788 00:49:40,020 --> 00:49:45,210 Så hvis du sidder fast på en web-vært, som kun gør PHP, der er en god grund til at bruge PHP. 789 00:49:45,210 --> 00:49:56,010 >> [Publikum medlem] Jeg har lige fået i at lære at forespørge nogle databaser, 790 00:49:56,010 --> 00:50:00,680 og jeg kender min SQL er over det hele, men jeg fik for nylig udsat for - 791 00:50:00,680 --> 00:50:04,470 og du påpegede det. Du ser JSON og udvides databaser. 792 00:50:04,470 --> 00:50:14,580 My SQL er stadig over det hele. Hvordan ser du, at det sker? 793 00:50:14,580 --> 00:50:21,330 Er der vil være en stigende tendens til mere udvides (uhørligt)? 794 00:50:21,330 --> 00:50:30,100 Spørgsmålet var - tror jeg der kommer til at være en tendens i retning af ikke-SQL databaser. 795 00:50:30,100 --> 00:50:33,850 For eksempel, som MongoDB. Jeg tror, ​​det er absolut sandt. 796 00:50:33,850 --> 00:50:38,730 Mit råd var hovedsagelig mySQL-relateret her kun fordi mySQL er 797 00:50:38,730 --> 00:50:40,950 industristandard. 798 00:50:40,950 --> 00:50:45,950 Personligt foretrækker jeg langt databaser, der ikke har schemos som MongoDB 799 00:50:45,950 --> 00:50:49,520 hvor du ikke har problemet med, åh, jeg nødt til at tilføje en anden kolonne. 800 00:50:49,520 --> 00:50:51,600 Ve mig, ligesom hvad gør jeg? 801 00:50:51,600 --> 00:50:55,840 Det er meget svært at gøre det på mySQL, men når du har noget som Mongo 802 00:50:55,840 --> 00:50:57,840 det er meget pænere. 803 00:50:57,840 --> 00:51:03,780 Den anden gode ved Mongo er, at dine oplysninger er faktisk JavaScript objekter. 804 00:51:03,780 --> 00:51:10,110 Der er ingen form for konvertering trin, hvor du nødt til at tage disse database rækker 805 00:51:10,110 --> 00:51:13,140 og gøre dem til en JavaScript objekt og derefter sende dem over wiren. 806 00:51:13,140 --> 00:51:20,290 Jeg tror, ​​den slags, der vil være meget, meget nyttigt for hurtig webudvikling i fremtiden. 807 00:51:20,290 --> 00:51:23,060 >> [Billy] Noget jeg vil tilføje, som er blot en generel pointe er, at 808 00:51:23,060 --> 00:51:26,580 føler ikke, at du burde have lært alle de sprog, vi har diskuteret 809 00:51:26,580 --> 00:51:28,580 fra vores seminar. 810 00:51:28,580 --> 00:51:30,560 Naturligvis pointen er at give dig en idé om, hvad der er derude, 811 00:51:30,560 --> 00:51:33,450 og hvis du er fascineret af nogen af ​​de ting vi har nævnt kan du google dem 812 00:51:33,450 --> 00:51:35,830 og læse op på dem. 813 00:51:35,830 --> 00:51:38,750 Og som jeg nævnte, er der et par seminarer, der beskæftiger sig med netop disse ting. 814 00:51:38,750 --> 00:51:41,660 Der er endnu flere seminarer, som jeg ikke har nævnt, der sandsynligvis komme ind 815 00:51:41,660 --> 00:51:43,660 denne ting så godt. 816 00:51:43,660 --> 00:51:46,610 Ideen er, at hvis du ønsker at arbejde på noget, her er de værktøjer til din rådighed. 817 00:51:46,610 --> 00:51:51,630 Må ikke føle sig overvældet, hvis du ikke er helt sikker på hvad disse værktøjer gøre præcis, 818 00:51:51,630 --> 00:51:54,830 men ved, at de er derude, og at du kan gøre omfattende brug af dem 819 00:51:54,830 --> 00:51:56,830 af Google. 820 00:51:56,830 --> 00:51:59,960 >> [Publikum medlem] Hvilken slags ting har du brug for at gøre for at sikre dit website 821 00:51:59,960 --> 00:52:02,530 ser godt ud på mobile enheder? 822 00:52:02,530 --> 00:52:05,590 [Billy] Mobile enheder er lidt hårdt. 823 00:52:05,590 --> 00:52:07,590 Der er 2 måder, du kan gribe det an. 824 00:52:07,590 --> 00:52:11,500 Den første måde er, at du rent faktisk har en mobil hjemmeside. 825 00:52:11,500 --> 00:52:14,660 Med andre ord, du udfører en slags opdagelse i begyndelsen 826 00:52:14,660 --> 00:52:18,830 når browseren fremsætter anmodningen til din hjemmeside, der enten siger 827 00:52:18,830 --> 00:52:25,240 returnere dette synspunkt - som vil være udsigten til stationære eller bærbare browsere - 828 00:52:25,240 --> 00:52:27,710 og denne anden udsigt til mobile enheder. 829 00:52:27,710 --> 00:52:33,090 Det er et sted, hvor synspunkter er virkelig rart i, at du kan temmelig meget swap den 830 00:52:33,090 --> 00:52:37,580 to ud og have en grænseflade, der fungerer rigtig fint på mobile enheder 831 00:52:37,580 --> 00:52:40,770 og har en helt anden en, der fungerer fint på browser-enheder. 832 00:52:40,770 --> 00:52:43,770 Problemet med det er det tager lang tid, fordi det betyder kodning 833 00:52:43,770 --> 00:52:47,060 en helt anden grænseflade. 834 00:52:47,060 --> 00:52:49,720 Den anden måde at du kan gøre det er - 835 00:52:49,720 --> 00:52:55,250 en masse moderne telefoner vil vise hjemmesider og forsøge at gøre dem som en browser ville, 836 00:52:55,250 --> 00:52:57,680 og de gør deres bedste. 837 00:52:57,680 --> 00:53:04,340 Du kan slags prøve at bo lys på mængden af ​​jQuery JavaScript du bruger 838 00:53:04,340 --> 00:53:07,360 som har tendens til at være, hvor tingene kan gå galt en lille smule. 839 00:53:07,360 --> 00:53:13,430 Dette er en slags af den måde, som du skal bruge, hvis du ikke har så megen tid. 840 00:53:13,430 --> 00:53:18,540 Hvis du har tid til at arbejde på en mobil interface, der er selvfølgelig din bedste mulighed. 841 00:53:18,540 --> 00:53:23,320 >> Jeg tror generelt for CS50 projekter, du vil ønsker at vælge det ene eller det andet. 842 00:53:23,320 --> 00:53:27,990 Med andre ord, du ønsker at gøre en mobil app eller du ønsker at lave en desktop hjemmeside. 843 00:53:27,990 --> 00:53:32,200 Og den slags bestemmer, hvor du går med det. 844 00:53:32,200 --> 00:53:35,360 Men hvis du ønsker at udvide det ud senere, sandsynligvis din bedste chance er 845 00:53:35,360 --> 00:53:37,360 til at foretage en anden grænseflade til den anden. 846 00:53:51,650 --> 00:53:56,340 Jeg har en lille smule erfaring i at udvikle WordPress-baserede sites. 847 00:53:56,340 --> 00:53:58,670 Jeg vært for en personlig hjemmeside på WordPress for en stund. 848 00:53:58,670 --> 00:54:02,310 Disse typer af rammer kan være rart lige så meget grundlæggende ting. 849 00:54:02,310 --> 00:54:07,050 Ofte vil du bare løbe ind i en masse customizability problemer selv. 850 00:54:07,050 --> 00:54:10,940 Du ønsker at have noget at se på en bestemt måde, eller være på en bestemt måde 851 00:54:10,940 --> 00:54:14,510 og du kan bare ikke, fordi det er hårdt kabel i systemet, 852 00:54:14,510 --> 00:54:17,480 dette er, hvordan du er nødt til at gøre ting, som kan være lidt af et problem. 853 00:54:17,480 --> 00:54:22,020 Siden da har jeg slags været mere tilbøjelige til at arbejde med websteder fra jorden op. 854 00:54:22,020 --> 00:54:26,840 For ting som blog databaser og den slags ting, det er virkelig ikke så svært at opbygge en ramme. 855 00:54:26,840 --> 00:54:29,970 Hvis du virkelig strakt i tid, kan du jo bruge noget som WordPress 856 00:54:29,970 --> 00:54:33,120 eller den slags ting til en blog. 857 00:54:33,120 --> 00:54:38,790 Den slags ting, som blogs butik og gør er ikke rigtig hårdt nok at 858 00:54:38,790 --> 00:54:41,500 hvis du kører ind i nogen af ​​disse slags ting, er du nok bedst bare at 859 00:54:41,500 --> 00:54:43,500 foretage en in-house version. 860 00:54:43,500 --> 00:54:48,350 >> Jeg tror, ​​det er om det, så tak igen for at komme. 861 00:54:48,350 --> 00:54:51,960 Vi nød virkelig taler til jer, og håber, at du har lært nogle ting. 862 00:54:51,960 --> 00:54:55,350 [Ben] Vi er glade for at tale - vi er nødt til at gå, men vi er glade for at tale mere uden 863 00:54:55,350 --> 00:55:01,650 hvis du har et andet spørgsmål. Tak igen. [Bifald] 864 00:55:03,750 --> 00:55:06,000 [CS50.TV]