1 00:00:00,000 --> 00:00:02,500 [Powered by Google Translate] [Seminario] [Sviluppo Web: Dall'idea alla realizzazione] 2 00:00:02,500 --> 00:00:04,200 [Ben Kuhn] [Billy Janitsch] [Harvard University] 3 00:00:04,200 --> 00:00:07,250 [Questo è CS50] [CS50.TV] 4 00:00:07,250 --> 00:00:10,840 [Billy] Ciao, mi chiamo Billy e questo è Ben. >> [Ben] Ciao. 5 00:00:10,840 --> 00:00:12,840 Stiamo per parlare di sviluppo web di oggi. 6 00:00:12,840 --> 00:00:14,840 [Webdev] [Billy Janitsch e Ben Kuhn] 7 00:00:14,840 --> 00:00:16,840 Un po 'di noi in primo luogo. 8 00:00:16,840 --> 00:00:19,590 Ben è una sorta di ragazzo di back-end. Fa le cose funzionano. 9 00:00:19,590 --> 00:00:21,870 E poi vado e faccio loro abbastanza. 10 00:00:21,870 --> 00:00:26,610 Sono in gran parte coinvolto con più front-end tipo di progettazione del layout di roba, 11 00:00:26,610 --> 00:00:31,260 e Ben, d'altra parte, sa quello che sta facendo così egli lavora su roba di back-end. 12 00:00:31,260 --> 00:00:34,050 Insieme abbiamo fatto un paio di cose. 13 00:00:34,050 --> 00:00:38,710 Ad esempio, l'anno scorso abbiamo lavorato su Gimblium che è uno studio di sviluppo del gioco online. 14 00:00:38,710 --> 00:00:40,400 Questo era il nostro progetto finale per la classe, 15 00:00:40,400 --> 00:00:42,780 e da allora abbiamo fatto Harvard Class 16 00:00:42,780 --> 00:00:47,860 che è un quadro in linea per la navigazione e corsi di shopping a Harvard. 17 00:00:47,860 --> 00:00:53,180 >> Stiamo per iniziare con questa idea per il nostro sito. 18 00:00:53,180 --> 00:00:57,480 Stiamo andando a fare su Facebook, ma per i gatti. 19 00:00:57,480 --> 00:00:59,520 Prima che effettivamente fare questo sito, 20 00:00:59,520 --> 00:01:02,520 non fare questo sito, perché non è bene, ma useremo come un quadro 21 00:01:02,520 --> 00:01:05,349 e passare attraverso il processo di come prendiamo questa idea 22 00:01:05,349 --> 00:01:07,450 e trasformarlo in un vero e proprio sito web che possiamo usare. 23 00:01:07,450 --> 00:01:11,940 Inizieremo rompendo il sito verso il basso. 24 00:01:11,940 --> 00:01:13,190 Come hai fatto a CS50, 25 00:01:13,190 --> 00:01:17,360 si vuole pensare a quello che sono i componenti effettivi che vanno in questo sito web. 26 00:01:17,360 --> 00:01:21,290 Fondamentalmente trasformandolo da un'idea che è solo una sorta di un concetto astratto 27 00:01:21,290 --> 00:01:23,590 in una vera e propria, cosa tangibile che si potrebbe fare. 28 00:01:23,590 --> 00:01:25,910 Partiamo da alcune domande. 29 00:01:25,910 --> 00:01:28,070 Cos'è questo sito? Perché stiamo facendo questo? 30 00:01:28,070 --> 00:01:30,670 Che sta andando ad essere utilizzati per? Questo genere di cose. 31 00:01:30,670 --> 00:01:33,660 Nel caso di Facebook Cat, 32 00:01:33,660 --> 00:01:37,730 abbiamo praticamente vogliamo un sito web che permette di gatti social network con l'altro. 33 00:01:37,730 --> 00:01:41,260 L'idea è che si possono inserire sulle rispettive pareti, 34 00:01:41,260 --> 00:01:43,510 possono fare commenti, quel genere di cose. 35 00:01:43,510 --> 00:01:46,720 Ed è qui che entriamo in componenti funzionali. 36 00:01:46,720 --> 00:01:51,270 Ora abbiamo questa sorta di quadro - abbiamo profili utente, 37 00:01:51,270 --> 00:01:53,990 abbiamo commenti, e possiamo pubblicare. 38 00:01:53,990 --> 00:01:57,390 Forse un giorno saremo influenti simpatie e quel genere di cose. 39 00:01:57,390 --> 00:02:00,410 E noi vogliamo sorta di priorità queste caratteristiche e si trovi 40 00:02:00,410 --> 00:02:03,340 Vogliamo dire come, va bene, è davvero importante che ognuno di noi ha un profilo 41 00:02:03,340 --> 00:02:06,440 e che tutti possono postare sulle rispettive pareti. 42 00:02:06,440 --> 00:02:08,509 Secondaria a ciò, i commenti sarebbe bello. 43 00:02:08,509 --> 00:02:10,180 Forse più tardi ci influenti simili. 44 00:02:10,180 --> 00:02:13,700 Quindi, si vuole avere un'idea di ciò che è fondamentale per il vostro progetto 45 00:02:13,700 --> 00:02:17,260 e che cosa è una sorta di caratteristica più generale che potrebbe essere applicato in seguito. 46 00:02:17,260 --> 00:02:20,870 Volete avere una sorta di elenco specifico in mente, 47 00:02:20,870 --> 00:02:24,090 ma il progetto che si avvia con non sta andando essere il progetto che hai finito con. 48 00:02:24,090 --> 00:02:27,100 In altre parole, le cose stanno per cambiare mentre si sta sviluppando il sito, 49 00:02:27,100 --> 00:02:30,090 e si vuole lasciare spazio a questo. 50 00:02:30,090 --> 00:02:34,470 Io la parola a Ben che sta per parlare un po 'della struttura. 51 00:02:34,470 --> 00:02:39,610 >> [Ben] ho intenzione di parlare di la parte più tecnica di sviluppo web. 52 00:02:39,610 --> 00:02:42,370 Diciamo basta andare su alcune basi prima. 53 00:02:42,370 --> 00:02:45,730 Quando stai facendo una web app, 54 00:02:45,730 --> 00:02:50,470 la divisione principale che si sta andando ad avere è 55 00:02:50,470 --> 00:02:52,700 si sta andando ad avere alcune cose in corso nel lato client - 56 00:02:52,700 --> 00:02:56,700 cioè il codice che sei il browser prende dal sito 57 00:02:56,700 --> 00:03:01,910 e, HTML, CSS JavaScript roba. 58 00:03:01,910 --> 00:03:04,490 Questo è tutto sul lato client. 59 00:03:04,490 --> 00:03:08,680 Stai andando ad avere un altro codice che viene eseguito sul lato server 60 00:03:08,680 --> 00:03:10,770 che tiene traccia di tutti i dati che le persone mandano a voi, 61 00:03:10,770 --> 00:03:15,060 decide a chi dare cosa, cose del genere. 62 00:03:15,060 --> 00:03:20,380 Questo è solo un po 'di terminologia in modo che voi ragazzi siete tutti a conoscenza di cosa stiamo parlando. 63 00:03:20,380 --> 00:03:28,600 Al di là di questa divisione è bene pensare alla vostra applicazione web in termini di 64 00:03:28,600 --> 00:03:32,500 un paio di componenti distinti. 65 00:03:32,500 --> 00:03:35,270 Quando si sta facendo lo sviluppo del web 66 00:03:35,270 --> 00:03:41,710 una delle cose che si dovrebbe sempre cercare di fare è ridurre la complessità. 67 00:03:41,710 --> 00:03:45,710 Più complesso il codice è il più possibilità ci sono di fare errori, 68 00:03:45,710 --> 00:03:47,710 più difficile è da cambiare in seguito. 69 00:03:47,710 --> 00:03:50,140 Quindi, se si può spezzare la vostra applicazione in alcune aree funzionali distinte 70 00:03:50,140 --> 00:03:57,640 che verrà - e si può ridurre la quantità di specie di comunicazione cross-zona - 71 00:03:57,640 --> 00:04:03,530 che vi aiuterà molto nel lungo periodo in termini di riduzione bug. 72 00:04:03,530 --> 00:04:07,950 >> Per essere concreti, di solito le persone dividono una web app in - 73 00:04:07,950 --> 00:04:13,190 questi sono i tipi di parole d'ordine ora, ma sono ancora utili. 74 00:04:13,190 --> 00:04:17,940 Potreste aver sentito parlare di modelli, visualizzazioni e controller. 75 00:04:17,940 --> 00:04:23,210 I modelli sono i dati reali che la vostra applicazione sta per affrontare. 76 00:04:23,210 --> 00:04:28,260 Ad esempio, nel vostro gatto Facebook, i modelli sarebbero - 77 00:04:28,260 --> 00:04:35,340 si avrebbe un modello per posti simili, e un modello per i profili utente, cose del genere. 78 00:04:35,340 --> 00:04:41,090 Le vostre opinioni sono come presentare i dati agli utenti. 79 00:04:41,090 --> 00:04:46,660 Si potrebbe avere 1 visita per guardare un singolo post e tutti i commenti 80 00:04:46,660 --> 00:04:51,720 e una visione diversa per il vostro muro che ha una lista di tutti i post 81 00:04:51,720 --> 00:04:57,170 che sono diretti a te, e una visione diversa per il vostro feed di notizie - cose del genere. 82 00:04:57,170 --> 00:05:00,610 Infine, hai i controller che sono fondamentalmente quando la gente si inviano messaggi 83 00:05:00,610 --> 00:05:03,310 e fate gli aggiornamenti al sistema di back-end, 84 00:05:03,310 --> 00:05:06,400 si incrementa un mucchio di contatori, e quant'altro. 85 00:05:06,400 --> 00:05:07,860 Quelli sono i controller. 86 00:05:07,860 --> 00:05:11,030 >> Ho intenzione di parlare soprattutto di modelli. 87 00:05:11,030 --> 00:05:14,030 Vista non sono tecnicamente difficili e che la questione è più con loro progettazione 88 00:05:14,030 --> 00:05:22,040 Controller stanno per essere specifico per quello che stai progettando. 89 00:05:22,040 --> 00:05:25,220 Ma ci sono alcune tecniche piuttosto generali che è possibile utilizzare 90 00:05:25,220 --> 00:05:30,220 per rendere i vostri modelli più bello e più facile da lavorare che penso siano molto utili. 91 00:05:30,220 --> 00:05:35,860 Questo è in gran parte sarà su come trattare con i vostri dati applicazioni web in un bel modo. 92 00:05:35,860 --> 00:05:40,420 I principali problemi con i modelli 93 00:05:40,420 --> 00:05:44,540 sono che vivono sul client e sul server e si deve capire 94 00:05:44,540 --> 00:05:51,170 a) come ottenerli - tutti quelli rilevanti - dal server al client, 95 00:05:51,170 --> 00:05:53,440 e b) come tenerli in sincronia. 96 00:05:53,440 --> 00:05:58,700 Gli utenti stanno andando a voler fare alcuni aggiornamenti. 97 00:05:58,700 --> 00:06:00,470 Stanno andando a voler fare nuovi posti. 98 00:06:00,470 --> 00:06:04,800 Stanno andando a voler piacere le cose e cose se avete gusti. 99 00:06:04,800 --> 00:06:11,490 Queste sono le principali sfide tecniche di trattare con i modelli. 100 00:06:11,490 --> 00:06:15,680 La prima cosa che si sta andando a voler porsi è 101 00:06:15,680 --> 00:06:18,420 che tipo di dati va in questo modello e che tipo di query stiamo andando a voler fare - 102 00:06:18,420 --> 00:06:24,290 cioè, come stiamo andando a guardare i modelli? 103 00:06:24,290 --> 00:06:26,940 Per il vostro gatto Facebook esempio, 104 00:06:26,940 --> 00:06:31,520 il tuo post sta per avere un autore ad esso associati, 105 00:06:31,520 --> 00:06:35,660 testo posta muro, e un destinatario del post muro. 106 00:06:35,660 --> 00:06:38,470 E allora si potrebbe desiderare di query che in un sacco di modi diversi. 107 00:06:38,470 --> 00:06:42,220 Si vorrebbe guardare da chi ha scritto che dopo, 108 00:06:42,220 --> 00:06:46,620 da chi ha ricevuto quali inviare, forse dalla data in cui sono state inviate. 109 00:06:46,620 --> 00:06:50,340 Ma se avete intenzione di farlo per data, allora si deve aggiungere un altro campo al tuo post 110 00:06:50,340 --> 00:06:52,490 quando è stato effettivamente pubblicato. 111 00:06:52,490 --> 00:07:00,220 Questi due fattori - quali sono i dati che si desidera utilizzare e come volete vederlo - 112 00:07:00,220 --> 00:07:04,200 si dovrebbe pensare a loro in primo luogo perché dipendono l'uno dall'altro, 113 00:07:04,200 --> 00:07:08,030 e sarà più difficile aggiungere in seguito. 114 00:07:08,030 --> 00:07:12,750 >> Ci sono alcune altre considerazioni. 115 00:07:12,750 --> 00:07:17,540 Quando stai pensando a come trattare con i modelli sul server 116 00:07:17,540 --> 00:07:20,540 ciò che si desidera guardare è - 117 00:07:20,540 --> 00:07:27,440 desideri fondamentalmente per rendere il server più semplice possibile. 118 00:07:29,440 --> 00:07:35,500 Facendo roba sul lato client è in genere molto più veloce se è possibile farlo esclusivamente sul client 119 00:07:35,500 --> 00:07:38,230 senza fare alcun tipo di richiesta di rete. 120 00:07:38,230 --> 00:07:47,860 L'idea è di fare come molte delle domande che puoi sul client. 121 00:07:47,860 --> 00:07:51,560 L'unico problema che 122 00:07:51,560 --> 00:07:54,160 è che se si richiede tutti i dati all'inizio 123 00:07:54,160 --> 00:07:57,160 poi che sta andando a prendere molto tempo per caricare. 124 00:07:57,160 --> 00:08:02,290 Quindi, l'idea è di trovare una via di mezzo tra l'avere abbastanza dati sul client 125 00:08:02,290 --> 00:08:07,640 che si può fare la maggior parte del vostro lavoro lì, ma non solo andare a prendere tutto in una volta 126 00:08:07,640 --> 00:08:09,710 in modo da ottenere tempi di caricamento molto lento all'inizio. 127 00:08:09,710 --> 00:08:12,610 Ad esempio, per i dati gatto 128 00:08:12,610 --> 00:08:20,340 probabilmente farete bene a prendere un po 'di messaggi in bacheca recenti. 129 00:08:20,340 --> 00:08:23,790 Lei non vorrebbe andare a prendere tutti loro, perché questo potrebbe tornare indietro di un paio di anni. 130 00:08:23,790 --> 00:08:25,470 Ma non si vuole andare a prendere uno alla volta 131 00:08:25,470 --> 00:08:28,740 perché sarebbe introdurre un sacco di sovraccarico della rete. 132 00:08:28,740 --> 00:08:33,620 >> E 'spesso molto difficile - una volta che si dispone di un database di esecuzione - 133 00:08:33,620 --> 00:08:37,210 è spesso molto difficile da cambiare i dati che hai dentro - 134 00:08:37,210 --> 00:08:40,510 cioè, aggiungere una nuova colonna di database o qualcosa del genere - 135 00:08:40,510 --> 00:08:43,510 così una buona strategia è in realtà solo di tenere un sacco di dati in un blob di testo - 136 00:08:43,510 --> 00:08:53,880 un blob JSON - JSON essendo JavaScript Object Notation - 137 00:08:53,880 --> 00:08:58,330 La ragione per cui è utile perché puoi aggiungere nuove proprietà 138 00:08:58,330 --> 00:09:01,920 a tutte queste macchie JSON senza modificare il database. 139 00:09:01,920 --> 00:09:06,860 L'unico lato negativo è che se hai un sacco di campi 140 00:09:06,860 --> 00:09:09,890 che si è aggiunto in seguito - come nascosta in quella JSON blob - 141 00:09:09,890 --> 00:09:12,850 allora è più difficile per interrogare loro all'interno del database. 142 00:09:12,850 --> 00:09:17,690 Per esempio, se in seguito - se tu avessi il modello post che abbiamo discusso in precedenza 143 00:09:17,690 --> 00:09:25,380 con solo l'autore, il destinatario e il testo - 144 00:09:25,380 --> 00:09:29,000 si potrebbe anche avere un blob JSON e poi se in seguito si voleva aggiungere un campo data 145 00:09:29,000 --> 00:09:31,000 non avrebbe dovuto cambiare il vostro database. 146 00:09:31,000 --> 00:09:36,140 Si può solo aggiungere date a tutti i campi di testo. 147 00:09:36,140 --> 00:09:39,640 E allora si sarebbe in grado di guardare quelli sul lato client, 148 00:09:39,640 --> 00:09:42,430 ma non sarebbe in grado di interrogare loro sul lato server 149 00:09:42,430 --> 00:09:44,430 perché è nascosto all'interno di quel testo. 150 00:09:44,430 --> 00:09:49,920 >> L'altro problema che si vuole pensare 151 00:09:49,920 --> 00:09:52,400 è come il client e il server stanno per comunicare. 152 00:09:52,400 --> 00:09:56,040 Di solito si vuole mantenere questo il più semplice possibile. 153 00:09:56,040 --> 00:10:02,230 Si può solo avere come-me-get questa richiesta di dati, 154 00:10:02,230 --> 00:10:09,140 una create-a-new-object cosa, e una richiesta di aggiornamento-an-old-oggetto. 155 00:10:09,140 --> 00:10:12,930 E questi sarebbero tutti diversi URL su un server che si - 156 00:10:12,930 --> 00:10:20,030 che il browser sarebbe - è possibile utilizzare richieste AJAX per tutti questi 157 00:10:20,030 --> 00:10:24,000 e ricevere o dati post. 158 00:10:24,000 --> 00:10:26,600 Anche in questo caso, per il nostro gatto Facebook esempio, 159 00:10:26,600 --> 00:10:32,350 si potrebbe avere l'URL per ottenere un singolo post, 160 00:10:32,350 --> 00:10:39,750 e devi avere un URL per la creazione di un nuovo post muro 161 00:10:39,750 --> 00:10:45,670 e forse un URL per il caricamento di foto del profilo, cose del genere. 162 00:10:45,670 --> 00:10:51,730 Ma ancora una volta, che è pre-fetch maggior parte dei dati in modo che non c'è bisogno di tenere 163 00:10:51,730 --> 00:10:53,360 fare richieste di rete. 164 00:10:53,360 --> 00:10:59,030 Per questo motivo, non si potrebbe desiderare di avere quella richiesta get individuale per un singolo post, 165 00:10:59,030 --> 00:11:03,210 e invece si vorrebbe solo 1 richiesta GET per l'intera parete. 166 00:11:03,210 --> 00:11:06,110 E poi se si sta cercando di trovare un equilibrio, perché - 167 00:11:06,110 --> 00:11:10,970 questo è anche andando a dipendere dalla vostra applicazione. 168 00:11:10,970 --> 00:11:13,430 Perché se vi aspettate che le persone hanno solo 10 o 20 messaggi in bacheca 169 00:11:13,430 --> 00:11:15,430 che andrà bene. 170 00:11:15,430 --> 00:11:17,390 Ma se vi aspettate che avranno migliaia quindi che la richiesta sarebbe troppo lungo, 171 00:11:17,390 --> 00:11:23,580 e così si potrebbe desiderare di aggiungere un parametro get-tutti-post-da. 172 00:11:23,580 --> 00:11:26,580 >> Per tutti questi probabilmente stai andando a voler sincronizzare i dati in JSON - 173 00:11:26,580 --> 00:11:29,260 JavaScript Object Notation. 174 00:11:29,260 --> 00:11:34,600 Praticamente ogni lingua si occupa di JSON molto bene. 175 00:11:34,600 --> 00:11:40,880 JQuery ha questa funzione getJSON bello che farà tutto il lavoro duro per voi. 176 00:11:40,880 --> 00:11:47,390 E su PHP c'è anche funzioni di comunicazione JSON molto belle. 177 00:11:47,390 --> 00:11:52,660 Quindi, questo è probabilmente il miglior format per inviare i vostri modelli avanti e indietro. 178 00:11:52,660 --> 00:11:56,570 >> Come esempio di ciò di cui abbiamo parlato finora, 179 00:11:56,570 --> 00:12:00,520 ecco un esempio di flusso per il vostro gatto applicazione Facebook. 180 00:12:00,520 --> 00:12:07,760 Si inizia con il browser che richiede la URL del sito web di base. 181 00:12:07,760 --> 00:12:15,470 Il server probabilmente avrebbe mandato su HTML statico e alcuni JavaScript e CSS. 182 00:12:15,470 --> 00:12:19,170 Di solito è meglio non fare alcuna rappresentazione sul server. 183 00:12:19,170 --> 00:12:23,370 Probabilmente non si vuole - 184 00:12:23,370 --> 00:12:28,360 ciò che il server non sta facendo ci sta andando giù l'elenco dei messaggi in bacheca 185 00:12:28,360 --> 00:12:31,120 e la generazione di codice HTML per ognuno e l'invio che oltre. 186 00:12:31,120 --> 00:12:34,960 Di solito è meglio farlo sul lato client perché altrimenti 187 00:12:34,960 --> 00:12:38,580 ogni volta che si desidera ri-disegnare qualcosa, devi fare una richiesta del server. 188 00:12:38,580 --> 00:12:42,450 E che ti dà molto rapidamente un sacco di overhead. 189 00:12:42,450 --> 00:12:47,430 Di solito è meglio solo per la nave fa scendere statico HTML 190 00:12:47,430 --> 00:12:50,660 e poi Javascript e CSS che farà il rendering sul lato client. 191 00:12:50,660 --> 00:12:56,750 Appena quella roba entra, 192 00:12:56,750 --> 00:13:03,500 allora si può avere - in JavaScript - si può fare richiesta per i dati muro 193 00:13:03,500 --> 00:13:08,740 e cose del genere, e dopo che il server è fondamentalmente solo facendo query di database 194 00:13:08,740 --> 00:13:10,740 e la verifica delle autorizzazioni. 195 00:13:10,740 --> 00:13:16,690 L'unica cosa importante è che non può inviare più di altri posti della parete utenti 196 00:13:16,690 --> 00:13:19,220 che non sei autorizzato a vedere. 197 00:13:19,220 --> 00:13:28,050 Si può sostanzialmente essere uno strato molto sottile di accesso al database, 198 00:13:28,050 --> 00:13:32,820 e poi tutto il mostrando dati - tutti i punti di vista e roba - 199 00:13:32,820 --> 00:13:37,280 questi possono accadere nel browser, e poi quando si vuole fare un post o qualcosa del genere 200 00:13:37,280 --> 00:13:40,000 basta inviare un'altra richiesta. 201 00:13:40,000 --> 00:13:45,350 >> Ci sono anche alcune cose di fantasia si può fare in cima a questa. 202 00:13:45,350 --> 00:13:49,550 In termini di informazioni tecniche più specifiche, 203 00:13:49,550 --> 00:13:53,360 sviluppando in pianura JavaScript può essere un po 'doloroso, 204 00:13:53,360 --> 00:13:56,220 quindi ci sono alcune librerie e strumenti che ti aiuteranno molto in questo. 205 00:13:56,220 --> 00:14:03,690 Credo che tu abbia tutti probabilmente sentito parlare di jQuery che fa fare il rendering HTML 206 00:14:03,690 --> 00:14:08,890 e la manipolazione molto più facile - hanno un sacco di funzioni di fantasia per dissolvenza dentro e fuori, 207 00:14:08,890 --> 00:14:12,020 e facendo animazioni zippy. 208 00:14:12,020 --> 00:14:13,720 C'è anche questa biblioteca chiamato Underscore.js. 209 00:14:13,720 --> 00:14:20,760 Ha un sacco di funzioni di utilità utili, roba che ci si aspetterebbe Javascript per avere 210 00:14:20,760 --> 00:14:24,740 che in realtà doesnt - cose come mischiare un array, 211 00:14:24,740 --> 00:14:28,900 rimuovendo i duplicati da una lista, o appiattimento una lista di liste. 212 00:14:28,900 --> 00:14:30,900 Questo è solo un piccolo esempio di codice. 213 00:14:30,900 --> 00:14:36,520 Underscore ha una tonnellata di queste simpatiche funzioni che si desidera si avrebbe tutto il tempo. 214 00:14:36,520 --> 00:14:38,840 >> E poi c'è uno più libreria che mi piacerebbe spendere un po 'di tempo su 215 00:14:38,840 --> 00:14:44,800 chiamato Backbone.js perché Backbone aiuta davvero a trattare con i modelli sul lato client 216 00:14:44,800 --> 00:14:47,210 e un sacco di confusione che può causare. 217 00:14:47,210 --> 00:14:53,550 Backbone ti dà questo concetto di modelli e collezioni 218 00:14:53,550 --> 00:14:58,300 in JavaScript che sono fondamentalmente esattamente come oggetti JavaScript 219 00:14:58,300 --> 00:15:04,900 in array JavaScript ma hanno gli eventi quando si modificano le loro proprietà. 220 00:15:04,900 --> 00:15:09,090 Proprio come in JavaScript, è possibile avere un evento quando un pulsante viene cliccato o qualcosa del genere 221 00:15:09,090 --> 00:15:14,800 questi modelli Backbone e collezioni Backbone trasmetteranno le cose come 222 00:15:14,800 --> 00:15:17,510 che quando cambiano. 223 00:15:17,510 --> 00:15:22,270 Ciò significa che si può solo scrivere qualcosa di simile a questo frammento di codice qui - 224 00:15:22,270 --> 00:15:27,530 dice questo, ogni volta che si aggiunge nulla alla post matrice di ridisegnare l'intera parete. 225 00:15:27,530 --> 00:15:34,270 E questo sarebbe dire ogni volta che il numero di un posto di calibro cambia, 226 00:15:34,270 --> 00:15:38,970 si notifica l'utente che qualcuno piaceva il loro posto. 227 00:15:38,970 --> 00:15:45,210 Oppure ogni volta che la proprietà di un post modifiche di ridisegnare il palo. 228 00:15:45,210 --> 00:15:51,050 Cose del genere vi farà risparmiare tonnellate di complessità perché altrimenti 229 00:15:51,050 --> 00:15:55,440 se non si dispone di un quadro di riferimento come questo allora ogni volta che nel codice che si cambia 230 00:15:55,440 --> 00:16:04,280 nulla di un post, avrebbe dovuto ricordare a voi stessi di richiamare tutte le funzioni di rendering 231 00:16:04,280 --> 00:16:07,680 e cose del genere, e se si voleva aggiungere qualcosa di nuovo che è accaduto 232 00:16:07,680 --> 00:16:10,680 ogni volta che si è modificato un post che avrebbe dovuto passare attraverso ogni posto nella vostra 233 00:16:10,680 --> 00:16:14,610 codice che si è modificato un post e aggiungere quella cosa nuova. 234 00:16:14,610 --> 00:16:21,450 Un quadro come questo eliminerà un sacco di che la comunicazione tra strato 235 00:16:21,450 --> 00:16:28,280 che rende complesso il codice e difficile da mantenere. 236 00:16:28,280 --> 00:16:31,170 >> C'è un po 'di vista anche. 237 00:16:31,170 --> 00:16:35,960 Ho intenzione di lasciare la maggior parte di questo per Billy perché non sono tecnicamente molto difficile. 238 00:16:35,960 --> 00:16:43,540 Usare jQuery per le vostre opinioni. E 'praticamente come una necessità a questo punto. 239 00:16:43,540 --> 00:16:46,290 E 'appena rende tutto molto più facile. 240 00:16:46,290 --> 00:16:48,290 Ci sono molte librerie. 241 00:16:48,290 --> 00:16:49,970 Se avete complicato elementi dell'interfaccia utente, 242 00:16:49,970 --> 00:16:57,250 se vuoi una cosa completamento automatico o come uno di quegli fantasia multi-selettori - 243 00:16:57,250 --> 00:17:04,790 se volete qualcosa di simile, probabilmente si dovrebbe solo cercare in giro 244 00:17:04,790 --> 00:17:08,130 e si può trovare una buona biblioteca che farà quello che vuoi. 245 00:17:08,130 --> 00:17:11,579 Billy spiegherà più sulle parti effettivamente difficili di vista. 246 00:17:11,579 --> 00:17:17,530 Inoltre, come nota a margine, Backbone ha alcune funzionalità per effettuare visite comunicare 247 00:17:17,530 --> 00:17:22,800 piacevolmente con i modelli - guardare la documentazione per tutte queste librerie, in realtà. 248 00:17:22,800 --> 00:17:28,270 Basta guardare la documentazione. Sono molto ben scritto e facile da seguire. 249 00:17:28,270 --> 00:17:33,890 In generale, si può praticamente solo Google se avete problemi. 250 00:17:33,890 --> 00:17:36,370 Ci sono un sacco di persone che li utilizzano. 251 00:17:36,370 --> 00:17:42,020 Penso che questo sia come nota finale. 252 00:17:42,020 --> 00:17:48,770 >> Ci sono anche alcune cose più avanzate che si possono fare 253 00:17:48,770 --> 00:17:53,400 se stai cercando di fare la vostra applicazione web in più impressionante. 254 00:17:53,400 --> 00:17:59,760 Si può fare - la nuova specifica HTML5 ha un sacco di cose di fantasia si possono fare. 255 00:17:59,760 --> 00:18:05,780 Archiviazione locale - che è è possibile memorizzare dati nel browser - 256 00:18:05,780 --> 00:18:09,470 piuttosto che dover tornare indietro e sfogliare il server per tutto, 257 00:18:09,470 --> 00:18:12,470 è possibile mantenere un po 'di esso sul client e che permette anche le persone - 258 00:18:12,470 --> 00:18:20,850 in alcuni casi può anche consentire di utilizzare la pagina web offline. 259 00:18:20,850 --> 00:18:26,980 C'è questa cosa chiamata WebSockets che sono un diverso tipo di comunicazione di rete 260 00:18:26,980 --> 00:18:30,930 dove invece di appena fai una richiesta, si ottiene la risposta e il gioco è fatto, 261 00:18:30,930 --> 00:18:35,240 si mantiene aprire una connessione al server e in modo da poter fare le cose come 262 00:18:35,240 --> 00:18:37,240 aggiornamenti in tempo reale. 263 00:18:37,240 --> 00:18:42,020 Quindi, se si stava tentando di fare una chiacchierata app, è possibile utilizzare WebSockets 264 00:18:42,020 --> 00:18:43,790 per comunicare avanti e indietro in modo che non avrebbe dovuto tenere richiedente, 265 00:18:43,790 --> 00:18:48,410 "Oh, il server, qualcuno mi mandi una chat?" ogni 10 secondi o qualcosa del genere. 266 00:18:48,410 --> 00:18:55,620 C'è anche una funzione di HTML5 interessante dove si può far sembrare 267 00:18:55,620 --> 00:18:58,340 l'URL della pagina sta cambiando, senza dover mai ricaricare realtà. 268 00:18:58,340 --> 00:19:03,230 È possibile utilizzare pulsanti Indietro e Avanti senza fare un mucchio di richieste di rete. 269 00:19:03,230 --> 00:19:14,660 Cose del genere è veramente utile in termini di renderlo veloce, ma anche funziona come una web app dovrebbe. 270 00:19:14,660 --> 00:19:17,680 >> C'è anche questa cosa chiamata CoffeeScript. 271 00:19:17,680 --> 00:19:24,450 CoffeeScript è un linguaggio diverso, in realtà, che compila giù a JavaScript. 272 00:19:24,450 --> 00:19:30,080 Si potrebbe scrivere tutto il codice in CoffeeScript, e quindi si esegue questo compilatore, 273 00:19:30,080 --> 00:19:33,300 e sputa fuori un file JavaScript che è possibile includere nella vostra pagina web. 274 00:19:33,300 --> 00:19:38,860 La ragione per cui CoffeeScript è bello è perché si sbarazza di un sacco di 275 00:19:38,860 --> 00:19:44,760 casi strani che JavaScript è dove è uguale uguale, 276 00:19:44,760 --> 00:19:51,130 e gli uguali uguali fanno cose diverse, o piace - 277 00:19:51,130 --> 00:19:55,740 ha più bello sintassi per trattare con gli array e le funzioni. 278 00:19:55,740 --> 00:20:00,460 Questo è un piccolo frammento di CoffeeScript che produce un elenco di tutte le piazze 279 00:20:00,460 --> 00:20:04,900 dal 10 ^ 2 a 1 ^ 2 in ordine inverso. 280 00:20:04,900 --> 00:20:08,410 Come potete vedere, CoffeeScript spesso permette di esprimere in 1 linea 281 00:20:08,410 --> 00:20:10,890 ciò che avrebbe preso 5 righe di JavaScript. 282 00:20:10,890 --> 00:20:13,230 Si può rendere le cose molto più facili. 283 00:20:13,230 --> 00:20:15,390 E 'un po' di nuova sintassi da imparare in un primo momento, 284 00:20:15,390 --> 00:20:18,010 ma sicuramente vi renderà più produttivi nel lungo periodo. 285 00:20:18,010 --> 00:20:22,050 >> È inoltre possibile utilizzare altri linguaggi sul server di PHP - 286 00:20:22,050 --> 00:20:27,570 linguaggi come Ruby, Python, o c'è anche un progetto chiamato node.js 287 00:20:27,570 --> 00:20:31,450 che vi permetterà di utilizzare Javascript sul server. 288 00:20:31,450 --> 00:20:34,700 Personalmente, ho davvero, davvero odio PHP. 289 00:20:34,700 --> 00:20:38,310 Io proprio non piace lavorare con esso. 290 00:20:38,310 --> 00:20:43,450 Se anche voi pensate che si tratta di un cluge terribile di una lingua, 291 00:20:43,450 --> 00:20:46,160 quindi è possibile utilizzare uno di questi, invece. 292 00:20:46,160 --> 00:20:54,780 In generale, se si vuole fare qualcosa e non si sa davvero come si dovrebbe fare, 293 00:20:54,780 --> 00:20:56,780 basta cercare su Internet. 294 00:20:56,780 --> 00:20:59,990 Ci sono tonnellate e tonnellate di risorse in particolare sul - 295 00:20:59,990 --> 00:21:03,260 StackOverflow è un grande. 296 00:21:03,260 --> 00:21:06,400 E 'questo il sito dove i programmatori chiedono ogni altre domande. 297 00:21:06,400 --> 00:21:09,690 Si potrebbe avere incontrato, se si stavano avendo problemi su insiemi di problemi CS50. 298 00:21:09,690 --> 00:21:16,820 E ci sono tonnellate di librerie per fare praticamente tutto quello che si vorrebbe. 299 00:21:16,820 --> 00:21:21,710 Se si vuole fare qualcosa e non sai come farlo, 300 00:21:21,710 --> 00:21:23,710 non date per scontato che è impossibile. 301 00:21:23,710 --> 00:21:26,160 Basta guardarsi intorno e si potrebbe trovare alcune buone risorse. 302 00:21:26,160 --> 00:21:29,280 >> In generale concludere, 303 00:21:29,280 --> 00:21:33,650 i principali take away sono mantenere le cose semplici. 304 00:21:33,650 --> 00:21:36,010 Più complesso il codice è all'inizio 305 00:21:36,010 --> 00:21:40,370 e più si cerca di fare cose di fantasia, 306 00:21:40,370 --> 00:21:43,300 più tempo ci vorrà per ottenere qualcosa di realmente funzionale 307 00:21:43,300 --> 00:21:46,480 e tanto più difficile sarà quello di cambiare in seguito. 308 00:21:46,480 --> 00:21:49,580 Quindi, fare le cose nel modo stupido semplice prima. 309 00:21:49,580 --> 00:21:51,720 Per andare avanti con questo, 310 00:21:51,720 --> 00:21:59,070 non aver paura di buttare via il vecchio codice o pulire un sacco. 311 00:21:59,070 --> 00:22:05,320 In generale, una volta che in realtà hanno qualcosa di lavoro, 312 00:22:05,320 --> 00:22:09,640 è molto più facile pensare che quando si è ancora nelle fasi iniziali 313 00:22:09,640 --> 00:22:12,610 come faccio a mettere tutto questo insieme. 314 00:22:12,610 --> 00:22:17,500 E 'meglio per rendere il più stupida possibile progetto che funziona 315 00:22:17,500 --> 00:22:22,270 e poi migliorarlo in modo iterativo che cercare di ottenere tutto giusto la prima volta. 316 00:22:22,270 --> 00:22:28,330 In termini di divisione client-server, cercare di mantenere il vostro server molto semplice - 317 00:22:28,330 --> 00:22:33,030 solo un database e un po 'di autenticazione e non fanno alcuna fatica lì. 318 00:22:33,030 --> 00:22:37,540 Fate tutte le vostre cose complicate sul lato client nel browser 319 00:22:37,540 --> 00:22:40,650 in JavaScript, per quanto possibile. 320 00:22:40,650 --> 00:22:43,420 Guardatevi intorno per le librerie che rendono la vita migliore. 321 00:22:43,420 --> 00:22:46,850 Sempre meglio usare il codice che qualcun altro ha scritto 322 00:22:46,850 --> 00:22:49,850 se - e di non scrivere da soli. 323 00:22:49,850 --> 00:22:57,560 C'è un sacco di roba su Internet. Google è il tuo migliore amico. 324 00:22:57,560 --> 00:22:59,560 Google è il migliore amico del programmatore. 325 00:22:59,560 --> 00:23:07,620 Sì, sicuramente non abbiate paura di guardarsi intorno per le cose. 326 00:23:07,620 --> 00:23:11,860 Bene. E oltre a Billy. 327 00:23:11,860 --> 00:23:14,600 >> [Billy] In realtà, prima di iniziare con alcune cose di design, 328 00:23:14,600 --> 00:23:17,250 qualcuno ha delle domande per Ben su tutto ciò che ha parlato? 329 00:23:17,250 --> 00:23:20,290 Ok, bene. 330 00:23:20,290 --> 00:23:22,220 Anche in questo caso, fateci sapere se qualcosa non è chiaro 331 00:23:22,220 --> 00:23:25,420 o se volete che andiamo su qualcosa di un po 'di più. 332 00:23:25,420 --> 00:23:30,330 Ho intenzione di fare un passo indietro un po 'e parlare le parti più fondamentali del design. 333 00:23:30,330 --> 00:23:34,840 Ben citato il modello chiamato - scusate, il sistema di visualizzazione del controller modello 334 00:23:34,840 --> 00:23:38,520 che è una sorta di aspetto tecnico, quindi sto andando a guardare di vista specifico, 335 00:23:38,520 --> 00:23:42,930 e ho intenzione di iniziare con come ci si progetta una visione che sembra piacevole. 336 00:23:42,930 --> 00:23:50,540 Ecco una sorta di modello davvero fondamentale per il nostro gatto Facebook. 337 00:23:50,540 --> 00:23:54,190 Penso che ci sono alcuni principi fondamentali nella progettazione di interfacce utente moderno 338 00:23:54,190 --> 00:23:56,190 che vale la pena raccogliere. 339 00:23:56,190 --> 00:23:58,210 Si può notare c'è un sacco di spazio bianco per tutta la pagina, 340 00:23:58,210 --> 00:24:00,790 un sacco di spazio per le cose. 341 00:24:00,790 --> 00:24:02,580 Non si sentono come si deve schiacciare le cose in una pagina. 342 00:24:02,580 --> 00:24:06,700 Vuoi lasciare un sacco di spazio aperto, e se si va a quasi qualsiasi sito web moderno 343 00:24:06,700 --> 00:24:08,380 vedrete c'è bianco ovunque. 344 00:24:08,380 --> 00:24:10,380 Non c'è bianco in posti che non ci si aspetterebbe. 345 00:24:10,380 --> 00:24:14,570 Hai questa tavolozza di colori, ed è saggio all'inizio 346 00:24:14,570 --> 00:24:17,880 per scegliere una tavolozza di colori che si sta andando a lavorare e svilupparsi. 347 00:24:17,880 --> 00:24:22,250 È anche - aiuta a scegliere un carattere tipografico, e in questo modo si sta sorta di lavorare con 348 00:24:22,250 --> 00:24:24,450 questi fondamenti concreti di progettazione. 349 00:24:24,450 --> 00:24:26,910 Tu hai il tuo tipo, avete i colori, e quindi è possibile tipo di 350 00:24:26,910 --> 00:24:29,380 montare tutto il resto in base alle necessità. 351 00:24:29,380 --> 00:24:37,710 Quindi, come ho detto, con la combinazione di colori che si desidera utilizzare i colori più audaci del tuo schema di colori 352 00:24:37,710 --> 00:24:40,320 con parsimonia. Basette sono belle. I pulsanti sono bello avere veramente grandi, colori sgargianti. 353 00:24:40,320 --> 00:24:43,710 Ma in generale, se avete un sito web che ha colori ovunque, 354 00:24:43,710 --> 00:24:47,250 tutto si guardava in faccia, sembra proprio ingombra, e non va bene. 355 00:24:47,250 --> 00:24:50,430 Si desidera utilizzare generalmente colori chiari. 356 00:24:50,430 --> 00:24:52,890 Provare a, ancora una volta, scegliere una combinazione di colori abbastanza coerente. 357 00:24:52,890 --> 00:24:56,640 Si possono avere questi piccoli tocchi di un sacco di colore - 358 00:24:56,640 --> 00:25:00,240 che può guardare piuttosto bello, ma si desidera usarli piuttosto parsimonia. 359 00:25:00,240 --> 00:25:04,270 >> Come ho detto, si vuole essere minimo. Meno è quasi sempre più. 360 00:25:04,270 --> 00:25:07,430 Se è possibile visualizzare qualcosa o non visualizzare qualcosa, 361 00:25:07,430 --> 00:25:10,230 e sei specie di incerto se debba essere lì per impostazione predefinita - 362 00:25:10,230 --> 00:25:13,400 probabilmente si sta meglio fuori lasciando fuori. È sempre possibile aggiungere in un secondo momento. 363 00:25:13,400 --> 00:25:16,620 Sì, mantenere le cose semplici. 364 00:25:16,620 --> 00:25:19,510 Ma soprattutto, si vuole considerare più progetti. 365 00:25:19,510 --> 00:25:23,520 Non pensate che quando si effettua un sito, ce l'hai nella tua testa che si sta andando a 366 00:25:23,520 --> 00:25:26,310 rendere il sito in un certo modo, e sta andando a guardare esattamente come questo. 367 00:25:26,310 --> 00:25:29,830 E 'intenzione di avere l'intestazione blu in alto e la barra laterale blu 368 00:25:29,830 --> 00:25:32,670 e poi il giallo sub-header cosa. 369 00:25:32,670 --> 00:25:34,670 Si vuole fare più modelli. 370 00:25:34,670 --> 00:25:37,350 È possibile - se sei bravo con Photo Shop, è possibile aprire e che tipo di 371 00:25:37,350 --> 00:25:39,600 la progettazione di un sito web come ti piace guardare. 372 00:25:39,600 --> 00:25:41,680 In caso contrario, è possibile utilizzare solo carta e penna, 373 00:25:41,680 --> 00:25:44,000 ma graffiare multipli disegni. 374 00:25:44,000 --> 00:25:47,000 Volete avere fondamentalmente un set up in cui hai un sacco di disegni diversi, 375 00:25:47,000 --> 00:25:50,810 e se uno finisce per lavorare, allora va benissimo. 376 00:25:50,810 --> 00:25:53,370 Se si finisce per fallire, allora si ha sempre un altro a cui rivolgersi. 377 00:25:53,370 --> 00:25:57,960 In generale, non si sentono come si dovrebbe essere costretti 378 00:25:57,960 --> 00:26:00,830 a qualsiasi disegno che inizialmente decidere. 379 00:26:00,830 --> 00:26:04,420 I disegni sono molto variabili, e parte della importanza del modello 380 00:26:04,420 --> 00:26:09,480 Vista controller di sistema è che si può scambiare dentro e fuori diversi punti di vista che si desidera. 381 00:26:09,480 --> 00:26:13,510 È possibile influenzare i dati in un modo, e poi decidere, oh, in realtà, che non funziona bene. 382 00:26:13,510 --> 00:26:19,190 Penso che sia una specie di troppo complicato o c'è una parte che qui non sta realmente lavorando, 383 00:26:19,190 --> 00:26:22,150 quindi sto solo andando ad abbandonare totalmente questo punto di vista e di swap in maniera del tutto nuova. 384 00:26:22,150 --> 00:26:24,790 Possiamo ancora utilizzare i vecchi modelli e le vecchie controllori. 385 00:26:24,790 --> 00:26:27,490 Possiamo fare tutto sul server e client come faremmo prima. 386 00:26:27,490 --> 00:26:32,850 Ma l'ondata effettiva dei dati come indicato sta per essere leggermente diverso. 387 00:26:32,850 --> 00:26:35,840 >> Per quanto riguarda in realtà l'attuazione del disegno che volete, 388 00:26:35,840 --> 00:26:39,330 una volta che hai un paio di idee abbozzate su carta o su Photo Shop o qualsiasi altra cosa, 389 00:26:39,330 --> 00:26:42,120 ci sono una serie di strumenti che sono messi a disposizione per voi. 390 00:26:42,120 --> 00:26:45,700 Il primo sei molto familiare con la quale è il vostro HTML, PHP, o qualsiasi altra cosa 391 00:26:45,700 --> 00:26:48,990 lingua che si sta utilizzando solo per codificare le pagine statiche sul tuo sito web. 392 00:26:48,990 --> 00:26:51,990 Hai lavorato molto con HTML che tipo di ti dà questi tag 393 00:26:51,990 --> 00:26:57,820 che si può mettere le cose in, e fondamentalmente si tratta di un modo di organizzare i tuoi contenuti. 394 00:26:57,820 --> 00:27:00,990 Ad esempio, si ha l'intestazione lassù, così si sta andando ad avere un tag di intestazione, 395 00:27:00,990 --> 00:27:05,770 e sta andando ad avere qualche testo all'interno di esso che è destinata probabilmente ad essere in un altro tag. 396 00:27:05,770 --> 00:27:08,380 Allora avete una barra laterale magari con qualche diversi link, 397 00:27:08,380 --> 00:27:10,160 e quelli stanno per essere tutti in separare i tag. 398 00:27:10,160 --> 00:27:13,870 Quindi, in sostanza HTML al suo cuore è un modo di dividere la pagina come 399 00:27:13,870 --> 00:27:16,980 alla fine si desidera formattarlo. 400 00:27:16,980 --> 00:27:18,980 Quindi, di nuovo, hai visto prima. 401 00:27:18,980 --> 00:27:20,540 Sei abbastanza agio con il lavoro con la guida 402 00:27:20,540 --> 00:27:23,120 dato che hai fatto l'ultimo pset si spera, 403 00:27:23,120 --> 00:27:26,150 così che dovrebbe essere un problema. 404 00:27:26,150 --> 00:27:31,280 >> Allora avete CSS che gestisce praticamente tutti gli aspetti statici di progettazione. 405 00:27:31,280 --> 00:27:35,320 Sarebbe gestire tutti i colori, tutto il posizionamento di elementi diversi, 406 00:27:35,320 --> 00:27:36,840 dove vanno l'uno rispetto all'altro, 407 00:27:36,840 --> 00:27:41,530 quanto sono grandi, i diversi tipi di posizionamenti che si avrebbe - 408 00:27:41,530 --> 00:27:46,030 in altre parole, è possibile avere le cose fissati in modo che quando si scorre verso il basso rimangono, 409 00:27:46,030 --> 00:27:48,700 oppure si può avere le cose rispetto ad altri elementi. 410 00:27:48,700 --> 00:27:50,730 Tutto questo genere di cose è in CSS. 411 00:27:50,730 --> 00:27:54,630 Inoltre, si possono fare diverse decorazioni, si può avere colori del testo, 412 00:27:54,630 --> 00:27:56,630 effetti di testo, tutto questo genere di cose. 413 00:27:56,630 --> 00:28:00,360 Ben ha dato davvero un buon seminario su questo ultimo fine settimana, 414 00:28:00,360 --> 00:28:04,450 e così avrei sicuramente verificare che se si ha intenzione di fare alcune cose di fantasia con i CSS. 415 00:28:04,450 --> 00:28:09,850 CSS3 è in realtà l'ultima versione di CSS, e può fare ogni sorta di cose veramente belle. 416 00:28:09,850 --> 00:28:14,750 Si può fare sfumature, si può avere piacevoli, angoli arrotondati, si può fare ogni genere di cose 417 00:28:14,750 --> 00:28:17,940 per rendere il vostro sito un aspetto più moderno e fantasia. 418 00:28:17,940 --> 00:28:22,150 >> Il prossimo strumento è JavaScript e jQuery che Ben ha parlato un po 'su, 419 00:28:22,150 --> 00:28:24,150 ma mi prendo un po 'più in. 420 00:28:24,150 --> 00:28:28,100 JavaScript, come hai lavorato con un po ', o almeno visto in conferenza, 421 00:28:28,100 --> 00:28:31,870 è una specie di un modo di fare dinamicamente roba in HTML. 422 00:28:31,870 --> 00:28:35,950 HTML, come sapete, è statico, quindi una volta che avete HTML non è possibile modificarlo. 423 00:28:35,950 --> 00:28:40,050 Ma JavaScript, per certi versi, è un modo per essere in grado di modificare HTML. 424 00:28:40,050 --> 00:28:44,520 Così si può farlo, e questo è grande, ma JavaScript è davvero un dolore con cui lavorare. 425 00:28:44,520 --> 00:28:49,050 E 'così a lungo e ottuso e per fare anche le cose più semplici 426 00:28:49,050 --> 00:28:51,630 richiede un sacco di righe di JavaScript. 427 00:28:51,630 --> 00:28:55,410 Quindi, jQuery è fondamentalmente una libreria per JavaScript che semplifica tutto questo. 428 00:28:55,410 --> 00:28:59,880 Si dice, va bene, se si vuole avere una scatola quadrata provenire da sinistra 429 00:28:59,880 --> 00:29:03,980 e dissolvenza nella pagina in modo che sia in mezzo, in JavaScript che avrebbe preso - 430 00:29:03,980 --> 00:29:06,340 Non lo so, un centinaio di linee a fare, e sarebbe un dolore, 431 00:29:06,340 --> 00:29:10,540 e vieni fuori odiare tutto ciò che riguarda la programmazione web. 432 00:29:10,540 --> 00:29:15,380 JQuery è fondamentalmente hanno l'elemento-dot-fade-in, o qualcosa del genere. 433 00:29:15,380 --> 00:29:18,580 Funzioni Così, molto, molto semplici che ti permetteranno di fare tutti i tipi di animazioni fresco 434 00:29:18,580 --> 00:29:20,580 e quel genere di cose. 435 00:29:20,580 --> 00:29:23,300 L'altra cosa che questi due sono veramente buone per sta solo facendo le cose dinamici 436 00:29:23,300 --> 00:29:25,300 con il sito. 437 00:29:25,300 --> 00:29:28,370 Quindi, piuttosto che avere la vostra pagina HTML - che mostra alcuni dati, ma in realtà non 438 00:29:28,370 --> 00:29:32,130 fare qualsiasi cosa - JavaScript e jQuery ti consente di avere pulsanti che è possibile fare clic su, 439 00:29:32,130 --> 00:29:37,960 ed è possibile trascinare elementi e re-ordinarli e ordinarli, ed avere nuovi elementi 440 00:29:37,960 --> 00:29:40,500 aggiunti o rimossi. È possibile aggiungere, cancellare, quel genere di cose. 441 00:29:40,500 --> 00:29:44,570 Quindi, jQuery fa un sacco di cose interessanti. 442 00:29:44,570 --> 00:29:48,840 E Vipul è in realtà dando un seminario su di esso oggi, credo, a 5 ore, 443 00:29:48,840 --> 00:29:51,220 quindi se si può restare per così tanto tempo, che sarebbe - 5 o 4? 444 00:29:51,220 --> 00:29:54,930 Quattro. Scusi. In realtà è proprio dopo questo, quindi mi sento di raccomandare 445 00:29:54,930 --> 00:29:56,680 attaccare in giro per esso, se potete. 446 00:29:56,680 --> 00:30:00,180 JQuery è super, super utile, e sarete in grado di fare un sacco di cose veramente belle con esso 447 00:30:00,180 --> 00:30:03,460 per praticamente qualsiasi progetto di sviluppo web. 448 00:30:03,460 --> 00:30:06,200 >> Ora ho intenzione di entrare in una specie di distinzione. 449 00:30:06,200 --> 00:30:08,210 Ho parlato fondamentalmente di interfaccia utente. 450 00:30:08,210 --> 00:30:11,510 L'interfaccia utente è solo il design del sito. 451 00:30:11,510 --> 00:30:13,780 Ma c'è una sorta di un altro concetto che è l'esperienza degli utenti. 452 00:30:13,780 --> 00:30:15,900 I due sono molto diversi. 453 00:30:15,900 --> 00:30:19,440 Interface è sicuramente parte dell'esperienza. 454 00:30:19,440 --> 00:30:21,340 In altre parole, quando si va a un sito, si guarda l'interfaccia. 455 00:30:21,340 --> 00:30:22,960 Ecco parte di quanto si verifica il sito. 456 00:30:22,960 --> 00:30:24,960 Ma l'esperienza utente è più di questo. 457 00:30:24,960 --> 00:30:29,910 L'esperienza dell'utente è su ciò che l'impressione che l'utente ottiene dal tuo sito è. 458 00:30:29,910 --> 00:30:31,910 Così, ovviamente, l'interfaccia è una parte di questo. 459 00:30:31,910 --> 00:30:35,340 Ed è sicuramente una parte necessaria, ma non è sufficiente. 460 00:30:35,340 --> 00:30:38,790 In altre parole, se si dispone di una gradevole interfaccia, ed è bella e colorata e tutto il resto, 461 00:30:38,790 --> 00:30:43,650 che è grande, ma se l'utente va al vostro sito, vede un layout abbastanza ed è confuso da 462 00:30:43,650 --> 00:30:47,060 tutto ciò, non ha idea di come fare nulla, allora ovviamente hai fatto davvero un 463 00:30:47,060 --> 00:30:48,930 sito poveri. 464 00:30:48,930 --> 00:30:50,930 Questo è il genere di cui l'esperienza utente entra in gioco 465 00:30:50,930 --> 00:30:54,570 Ho intenzione di parlare un po 'di progettazione UX - UX è l'abbreviazione di user experience - 466 00:30:54,570 --> 00:30:58,050 e il tipo di come si può fare in modo di avere una buona esperienza utente. 467 00:30:58,050 --> 00:31:04,330 Il primo punto è che si può progettare un sito web in cui un utente può fare tutto ciò che 468 00:31:04,330 --> 00:31:06,820 quell'utente eventualmente vuole. 469 00:31:06,820 --> 00:31:08,940 Ma se l'utente non riesce a capire come fare queste cose - 470 00:31:08,940 --> 00:31:12,850 in altre parole, se l'utente non dispone di una buona idea quando vanno al tuo sito di, 471 00:31:12,850 --> 00:31:17,660 "Oh, se voglio aggiornare il mio profilo, quindi clicco su questo pulsante, o se voglio postare su 472 00:31:17,660 --> 00:31:20,850 muro di qualcuno, poi vado al loro muro e clicca su una piccola scatola. " 473 00:31:20,850 --> 00:31:24,410 Se l'utente non sa che, allora effettivamente non hai effettivamente 474 00:31:24,410 --> 00:31:27,080 implementato tale funzionalità corretta. 475 00:31:27,080 --> 00:31:30,900 Parte di attuazione di una funzionalità è che gli utenti sono effettivamente in grado di usarlo. 476 00:31:30,900 --> 00:31:34,810 E potrebbe essere frustrante - si potrebbe fare un sito, e può fare tutti i tipi di 477 00:31:34,810 --> 00:31:37,810 cose meravigliose, ma poi avrete la gente prova e dicono: "Non si può fare questo. 478 00:31:37,810 --> 00:31:39,770 Perché non può fare questo? "E potrai dire di nuovo loro, 479 00:31:39,770 --> 00:31:44,420 «Be ', si può. Basta andare nel menu a discesa settimo su questo oscuro 480 00:31:44,420 --> 00:31:48,470 La pagina che si trova solo da un link in basso a destra "o qualcosa del genere. 481 00:31:48,470 --> 00:31:50,430 Ovviamente, non si vuole che. 482 00:31:50,430 --> 00:31:53,420 Si vuole che sia chiaro agli utenti che cosa si dovrebbe fare, 483 00:31:53,420 --> 00:31:56,240 e dovrebbe essere semplice ed intuitivo per loro. 484 00:31:56,240 --> 00:32:01,180 >> Un'altra cosa che si vuole provare a fare è, se qualcuno sta per andare al tuo sito 485 00:32:01,180 --> 00:32:05,520 e 9 volte su 10 fanno azione A, e 1 su 10 volte fanno azione B, 486 00:32:05,520 --> 00:32:08,950 probabilmente si vuole mettere a fuoco la loro esperienza sull'azione A. 487 00:32:08,950 --> 00:32:12,240 In altre parole, si vuole fare molto, molto chiaro come fare A. 488 00:32:12,240 --> 00:32:15,980 A dovrebbero essere-e-anteriore centrale - andare sul sito, vede, oh, è proprio lì. 489 00:32:15,980 --> 00:32:20,850 Mentre B, ovviamente, si vuole essere chiari, ma si può lasciare un po 'di più 490 00:32:20,850 --> 00:32:22,850 in background. 491 00:32:22,850 --> 00:32:24,640 David dà un buon esempio di questo in conferenza, 492 00:32:24,640 --> 00:32:26,640 che è il sistema Boston T. 493 00:32:26,640 --> 00:32:29,440 Quando si va al Boston T e si desidera acquistare un biglietto, 494 00:32:29,440 --> 00:32:32,700 dovete ottenere in 5 menu prima di poter effettivamente acquistare un biglietto 495 00:32:32,700 --> 00:32:37,130 per 2 dollari, 2,50 dollari di valore, che è quanto ci vuole per guidare la metropolitana 496 00:32:37,130 --> 00:32:39,130 in una direzione. 497 00:32:39,130 --> 00:32:41,600 Questo è un problema perché la maggior parte delle persone che stanno cavalcando la metropolitana 498 00:32:41,600 --> 00:32:44,880 probabilmente vogliono solo andare in un posto, acquistare il biglietto, prendere subito. 499 00:32:44,880 --> 00:32:47,550 Non ha senso che devono passare attraverso un sacco di diversi menu 500 00:32:47,550 --> 00:32:49,550 per arrivarci. 501 00:32:49,550 --> 00:32:51,760 Una migliore esperienza utente sarebbe un pulsante rapido sulla prima pagina 502 00:32:51,760 --> 00:32:54,760 che dice solo, 'comprare un biglietto di sola andata,' e che metterebbe in tutti gli standard 503 00:32:54,760 --> 00:32:58,550 valori predefiniti, e poi se qualcuno vuole acquistare un biglietto diverso da quello, 504 00:32:58,550 --> 00:33:01,690 ancora, ovviamente, hanno la possibilità di, ma che hai ottimizzati per 505 00:33:01,690 --> 00:33:04,080 caso di uso comune che è veramente importante. 506 00:33:04,080 --> 00:33:06,830 È possibile vedere esempi di questo su Facebook, giusto? 507 00:33:06,830 --> 00:33:09,410 Se andate su Facebook e vuoi pubblicare uno stato, 508 00:33:09,410 --> 00:33:11,710 è proprio in cima che è quello che spesso vuole fare. 509 00:33:11,710 --> 00:33:14,730 Appena si entra nella pagina, si possono fare le cose più comuni che 510 00:33:14,730 --> 00:33:16,730 si vuole fare. 511 00:33:16,730 --> 00:33:17,550 Se volete fare le cose un po 'più complicate come, 512 00:33:17,550 --> 00:33:21,070 dico che voglio andare a muro del mio amico e postare una foto su di esso - 513 00:33:21,070 --> 00:33:24,810 che io voglio fare spesso, ma non così spesso come postare aggiornamenti di stato - 514 00:33:24,810 --> 00:33:28,200 quindi in questo caso, digito il loro nome nella casella in alto, fare clic sul loro profilo, 515 00:33:28,200 --> 00:33:31,680 e poi, ancora, è proprio in cima una volta ho ricevuto al proprio profilo. 516 00:33:31,680 --> 00:33:38,240 Ancora una volta, ho ottimizzato in priorità per i casi più comuni di uso. 517 00:33:38,240 --> 00:33:41,800 >> Un'altra cosa importante è che spesso la gente sorta di cercare di aggirare questa 518 00:33:41,800 --> 00:33:44,890 dicendo: va bene, così ho fatto il sito e le persone stanno trovando confusione, 519 00:33:44,890 --> 00:33:46,110 e questo è un problema, giusto? 520 00:33:46,110 --> 00:33:49,210 Ovviamente, io non voglio che la gente a essere confusi dal contenuto del mio sito. 521 00:33:49,210 --> 00:33:53,210 Ma il modo per risolvere ciò che non è di avere qualcosa di pop up dicendo: 522 00:33:53,210 --> 00:33:55,290 hey, ho intenzione di insegnare come utilizzare questo sito. 523 00:33:55,290 --> 00:33:58,130 Fase 1 - fare clic su questo pulsante. Fase 2 - andate qui. 524 00:33:58,130 --> 00:34:03,080 Certo, questo è un modo intorno ad esso - è un modo che si può dire alla gente cosa fare, ma è 525 00:34:03,080 --> 00:34:05,080 in realtà non è il modo ottimale. 526 00:34:05,080 --> 00:34:07,420 Se vado a un sito web e improvvisamente ho bombardato con questo tutorial che mi sta dicendo 527 00:34:07,420 --> 00:34:11,739 cosa fare e dove andare e tutto questo, che non è divertente per me. 528 00:34:11,739 --> 00:34:13,739 Non è una buona esperienza per me. 529 00:34:13,739 --> 00:34:17,130 E 'una specie di dolore. Voglio iniziare facendo solo cose. 530 00:34:17,130 --> 00:34:19,449 La gente sta andando a chiudere fuori dalla loro finestra di dialogo, 531 00:34:19,449 --> 00:34:23,580 o uscire dal tutorial, non so cosa fare, e poi si lamentano perché 532 00:34:23,580 --> 00:34:25,580 non hai detto loro cosa fare. 533 00:34:25,580 --> 00:34:29,530 Il modo per risolvere questo problema non è quello di dare alcun tipo di tutorial o indicazioni - 534 00:34:29,530 --> 00:34:31,530 qualcosa di simile. 535 00:34:31,530 --> 00:34:33,719 Per quanto lo si può evitare, davvero si vuole mostrare all'utente cosa fare 536 00:34:33,719 --> 00:34:36,429 solo dalla natura come il sito è strutturato. 537 00:34:36,429 --> 00:34:39,090 In altre parole, se vado a Facebook senza effettuare il login, 538 00:34:39,090 --> 00:34:40,920 la prima cosa che vedo nella pagina principale - 539 00:34:40,920 --> 00:34:44,480 si tratta di una piccola scatola di login. Quindi, duh. Devo accedere E 'proprio lì. 540 00:34:44,480 --> 00:34:48,030 Considerando che, se sono andato a Facebook e ho dovuto scegliere un po 'di link in fondo 541 00:34:48,030 --> 00:34:51,920 che ha detto 'login' e il resto della pagina era solo una specie di foto o qualcosa del genere, 542 00:34:51,920 --> 00:34:54,820 Io non so davvero cosa fare, giusto? Sarei confuso. 543 00:34:54,820 --> 00:34:58,590 Quindi, potrebbe dirmi di andare lì e fare clic sul pulsante per accedere, 544 00:34:58,590 --> 00:35:01,080 o il log in tasto potrebbe essere proprio in cima dove sto andando a vederlo. 545 00:35:01,080 --> 00:35:04,780 Vuoi essere sempre mostrando all'utente cosa fare, 546 00:35:04,780 --> 00:35:06,750 e che dovrebbe essere insita nella pagina stessa. 547 00:35:06,750 --> 00:35:09,880 >> Quando stai pensando di disegni e beffardo su diversi modi di 548 00:35:09,880 --> 00:35:13,810 esprimendo il vostro sito, si vuole veramente pensare a ciò che gli utenti stanno per 549 00:35:13,810 --> 00:35:19,380 essere facendo e come si può mostrare loro cosa fare. 550 00:35:19,380 --> 00:35:23,530 Un'ultima cosa è il test è molto, molto importante. 551 00:35:23,530 --> 00:35:27,400 E 'bello avere qualcuno - avere un amico, avere qualcuno che non conosci nemmeno - 552 00:35:27,400 --> 00:35:30,420 che non ha mai visto il sito prima di utilizzare il sito. 553 00:35:30,420 --> 00:35:33,650 Perché hai lavorato sul sito per ore, sei stato a fissarlo, 554 00:35:33,650 --> 00:35:36,670 e si sa esattamente cosa fare in modo, ovviamente, si sta andando ad essere testare la 555 00:35:36,670 --> 00:35:39,520 cose che hai lavorato e che sapete di lavoro. 556 00:35:39,520 --> 00:35:42,680 Ma se qualcuno arriva e utilizza il sito che non ha mai usato prima, 557 00:35:42,680 --> 00:35:46,880 questa è una esperienza unica, perché c'è qualcuno che non ha alcuna conoscenza preliminare 558 00:35:46,880 --> 00:35:51,530 del sito in corso in esso, in modo che sta andando ad avere efficacia alcuna idea di cosa fare 559 00:35:51,530 --> 00:35:54,890 o che tipo di casi d'uso sono presenti per loro. 560 00:35:54,890 --> 00:36:00,930 E 'fantastico. Quello è unico perché sono essenzialmente una persona con uno spazio vuoto per una mente. 561 00:36:00,930 --> 00:36:03,750 Si può dire se qualcosa è confusa o poco chiare. 562 00:36:03,750 --> 00:36:07,580 Essi possono dare un'idea di esattamente ciò che l'esperienza utente del sito è. 563 00:36:07,580 --> 00:36:10,630 Può essere molto difficile da dire che da soli, quindi sicuramente vorrei incoraggiarvi 564 00:36:10,630 --> 00:36:13,640 come si sta sviluppando i vostri progetti - se si sta facendo progetti web-based - 565 00:36:13,640 --> 00:36:18,290 per ottenere la gente tramite il sito il più presto avete qualche tipo di demo funzionale. 566 00:36:18,290 --> 00:36:25,330 >> Ora ho intenzione di parlare un po 'su come gestire un progetto di sviluppo web. 567 00:36:25,330 --> 00:36:28,900 Siamo andati su come si può fare il lato tecnico di back-end, 568 00:36:28,900 --> 00:36:31,050 come si può progettare un sito veramente buono, 569 00:36:31,050 --> 00:36:34,150 e questo è grande se si sta lavorando da soli, ma - 570 00:36:34,150 --> 00:36:37,300 anche se si sta lavorando da soli e soprattutto se si sta lavorando su una squadra, 571 00:36:37,300 --> 00:36:39,580 gestione del progetto diventa un grosso problema. 572 00:36:39,580 --> 00:36:42,340 Avete sentito parlare di una sorta di gestione del progetto in forme diverse dal 573 00:36:42,340 --> 00:36:45,410 scuola elementare quando ti hanno detto lavoro di gruppo. 574 00:36:45,410 --> 00:36:46,820 Bisogna collaborare, comunicare, tutto questo. 575 00:36:46,820 --> 00:36:49,620 Ciò vale ancora tutti qui, ma ci sono alcune circostanze unici con 576 00:36:49,620 --> 00:36:54,910 informatica che si vuole essere consapevoli, e si vuole fare in modo di gestire bene. 577 00:36:54,910 --> 00:36:58,050 Parlerò prima un po 'la squadra che sarete dentro 578 00:36:58,050 --> 00:37:03,280 E 'molto importante scegliere la giusta dimensione di un team di lavorare su, 579 00:37:03,280 --> 00:37:05,890 e nel tuo progetto finale penso che tu abbia la possibilità di scegliere 580 00:37:05,890 --> 00:37:08,610 da 1 a 4 persone se sono corrette. 581 00:37:08,610 --> 00:37:12,050 Si vuole fare in modo che non sei solo di scegliere il numero di persone 582 00:37:12,050 --> 00:37:14,950 che si desidera utilizzare perché sono tuoi amici. 583 00:37:14,950 --> 00:37:18,170 Si desidera scegliere una squadra che è una buona dimensione e che otterrà il lavoro fatto. 584 00:37:18,170 --> 00:37:22,700 C'è un largo commercio di avere più persone rispetto a meno persone. 585 00:37:22,700 --> 00:37:25,320 Se si dispone di più persone, ovviamente più lavoro può essere svolto 586 00:37:25,320 --> 00:37:28,450 perché hai un sacco di gente, un sacco di codice, un sacco di idee, 587 00:37:28,450 --> 00:37:29,870 e questo è tutto fantastico. 588 00:37:29,870 --> 00:37:32,590 Ma richiede anche molto più gestione e molto più comunicazione. 589 00:37:32,590 --> 00:37:34,720 In altre parole, se si dispone di 4 persone che lavorano sullo stesso progetto 590 00:37:34,720 --> 00:37:39,200 e sono tutti modificando lo stesso codice, più o meno tutti i tipi di necessità di sapere 591 00:37:39,200 --> 00:37:40,920 quello che sta succedendo in modo che richiede - 592 00:37:40,920 --> 00:37:44,580 se si aggiunge qualche nuova funzione è una sorta di bisogno di dire alla gente - sto aggiungendo questo, 593 00:37:44,580 --> 00:37:48,510 Sto cambiando questo in questo modo - soprattutto se si entra in cose veramente profondo 594 00:37:48,510 --> 00:37:52,730 come i modelli ei controller che sono in realtà andando a influenzare come funziona il sito. 595 00:37:52,730 --> 00:37:54,500 Tutta la squadra deve essere consapevole di esso, 596 00:37:54,500 --> 00:37:58,140 quindi è necessario assicurarsi che non stai scegliendo troppo grande una squadra che sta andando essere duro 597 00:37:58,140 --> 00:37:59,970 per rendere tale comunicazione. 598 00:37:59,970 --> 00:38:02,930 Anche voi non volete scegliere una squadra abbastanza piccolo che non stai andando a 599 00:38:02,930 --> 00:38:06,250 essere in grado di comunicare perché è solo per te. 600 00:38:06,250 --> 00:38:11,270 >> Un'altra cosa da considerare è l'equilibrio di cui le competenze delle persone sono. 601 00:38:11,270 --> 00:38:14,350 E 'fantastico se siete tutti veramente buoni programmatori. 602 00:38:14,350 --> 00:38:17,050 Ma se siete tutte le persone di back-end, allora il vostro sito non è andare a guardare molto bene 603 00:38:17,050 --> 00:38:20,860 perché avete questa grande banca dati, e lo fa query di ricerca super-veloce - 604 00:38:20,860 --> 00:38:26,130 che è grande - ma quando si va ad esso, è come un sito del 1990 con il rosso e blu 605 00:38:26,130 --> 00:38:30,370 ovunque, e questo non è buono. 606 00:38:30,370 --> 00:38:34,210 Si noti che Ben e io lavorare come una squadra sono molto belle perché sono una sorta di più 607 00:38:34,210 --> 00:38:38,030 nel front-end, abbiamo entrambi interagiamo nel centro-end, e Ben è veramente buona con roba di back-end, 608 00:38:38,030 --> 00:38:43,550 così che funziona davvero bene, perché siamo in grado di progettare qualsiasi sito e fondamentalmente i fori 609 00:38:43,550 --> 00:38:47,580 in quel sito che devono essere riempiti può essere riempito da uno di noi, o forse entrambe le cose. 610 00:38:47,580 --> 00:38:50,210 Si vuole fare in modo che non ci siano buchi nel vostro team. 611 00:38:50,210 --> 00:38:51,180 Va bene se c'è un po 'di sovrapposizione. 612 00:38:51,180 --> 00:38:53,670 In altre parole, se avete due persone che sono entrambi buoni con back-end, 613 00:38:53,670 --> 00:38:57,250 che può essere buono come bene perché possono aiutarsi a vicenda con i problemi 614 00:38:57,250 --> 00:38:58,820 che stanno avendo. 615 00:38:58,820 --> 00:39:02,590 Può essere un problema se hai solo 1 persona che è responsabile di una certa cosa 616 00:39:02,590 --> 00:39:06,650 e si imbattono in un problema, quindi non vuole avere un po 'di sovrapposizione 617 00:39:06,650 --> 00:39:10,760 ma si vuole soprattutto fare in modo che tutti i possibili fori sono riempiti. 618 00:39:10,760 --> 00:39:17,550 >> L'ultima cosa - e questo dovrebbe essere ovvio, ma non lo è spesso. 619 00:39:17,550 --> 00:39:19,550 Si vuole veramente essere divertirsi. 620 00:39:19,550 --> 00:39:23,360 Il punto di questo progetto finale CS50 e spesso il punto di sviluppo web in generale 621 00:39:23,360 --> 00:39:26,360 non è quello di fare solo un lavoro perché ha bisogno di fare. 622 00:39:26,360 --> 00:39:29,140 Si vuole veramente essere divertirsi, e si vuole essere fare qualcosa 623 00:39:29,140 --> 00:39:31,180 che si sta motivare a lavorare su di esso. 624 00:39:31,180 --> 00:39:33,650 Se quello che stai facendo è un dolore di sedersi e lavorare, 625 00:39:33,650 --> 00:39:35,650 allora non stai scegliendo il progetto giusto. 626 00:39:35,650 --> 00:39:37,730 Si desidera scegliere qualcosa che trovi interessante, 627 00:39:37,730 --> 00:39:41,150 davvero si vuole vedere il risultato, sei eccitato quando si ottiene una nuova idea su 628 00:39:41,150 --> 00:39:44,700 qualcosa che si potrebbe fare - quindi ci sono tutti i tipi di progetti lì che sono sicuro 629 00:39:44,700 --> 00:39:47,290 si può trovare - ognuno ha qualcosa che sarebbe davvero li incuriosire 630 00:39:47,290 --> 00:39:49,290 se stanno facendo un progetto web-based. 631 00:39:49,290 --> 00:39:52,210 Io lo ripeto adesso. 632 00:39:52,210 --> 00:39:54,520 Se il progetto sembra un dolore e non si vuole lavorare su di essa, 633 00:39:54,520 --> 00:39:57,260 scegliere un altro progetto. Scegli qualcosa che ti ispira davvero. 634 00:39:57,260 --> 00:40:00,260 >> Ben detto questo concetto di iterazione un po ', e voglio andare su di esso un po'. 635 00:40:00,260 --> 00:40:08,250 E 'molto importante lavorare a scatti in cui si ottengono qualcosa di funzionale. 636 00:40:08,250 --> 00:40:13,420 Esso può essere grande se si dispone di questo piano per un sito web che sta per fare A, B, e C, 637 00:40:13,420 --> 00:40:16,000 e alla fine arriveremo. 638 00:40:16,000 --> 00:40:18,600 Ma sei bloccato in questa fase in cui si sta lavorando su di esso e lavorare su di esso, 639 00:40:18,600 --> 00:40:23,330 ma niente è sempre fatto. Non hai nulla da vedere e una cosa tangibile, funzionale. 640 00:40:23,330 --> 00:40:27,940 Che cosa si vuole veramente fare quanto sembra una specie di dolore a volte 641 00:40:27,940 --> 00:40:32,300 lavorare su qualcosa e poi una sorta di coronare il tutto in modo che sia almeno una stalla, in esecuzione 642 00:40:32,300 --> 00:40:34,910 versione anche se non ha tutte le caratteristiche desiderate. 643 00:40:34,910 --> 00:40:37,690 E forse ci sono alcune caratteristiche che davvero si vuole aggiungere, ma proprio non può 644 00:40:37,690 --> 00:40:41,830 perché si vuole ottenere questo sito ad un punto funzionale. 645 00:40:41,830 --> 00:40:44,400 E così si vuole avere genere di tutto il processo di sviluppo sembra quella. 646 00:40:44,400 --> 00:40:47,810 Si vuole iniziare da qualche parte funzionale - o essenzialmente cominciare con niente - 647 00:40:47,810 --> 00:40:49,890 ma si vuole arrivare da qualche parte molto essenziale e funzionale. 648 00:40:49,890 --> 00:40:54,940 E poi ancora, fare una sorta di salto e ottenere di nuovo da qualche parte funzionale. 649 00:40:54,940 --> 00:40:59,190 Potrai lentamente costruire, e potrebbe andare un po 'più lento di quanto sarebbe altrimenti, 650 00:40:59,190 --> 00:41:03,000 ma nel lungo periodo se si è costantemente bloccato in questa fase centrale terra dove si 651 00:41:03,000 --> 00:41:06,380 non realtà non hanno nulla a lavorare, può essere davvero un grande frustrazione 652 00:41:06,380 --> 00:41:09,970 a lavorare sul progetto, perché sei sempre così vicino a farlo funzionare, 653 00:41:09,970 --> 00:41:12,130 e non è mai effettivamente lavorando. 654 00:41:12,130 --> 00:41:14,810 Volete lavorare in questi scatti funzionali, 655 00:41:14,810 --> 00:41:17,950 e anche voi volete fare qualche riflessione dopo ciascuno di essi. 656 00:41:17,950 --> 00:41:21,260 In altre parole, una volta che sei in un punto dove il sito è ora lavorando - 657 00:41:21,260 --> 00:41:24,790 non ha tutto quello che vuoi ma fa alcune cose - 658 00:41:24,790 --> 00:41:28,870 si vuole pensare, va bene, è questo sito realizzare l'obiettivo che ho deciso di fare? 659 00:41:28,870 --> 00:41:33,410 In altre parole, se il sito sta per fare X, è quello che ho lavorare in direzione X? 660 00:41:33,410 --> 00:41:36,450 Sono tutte le funzionalità che volevo lì? 661 00:41:36,450 --> 00:41:39,340 E inoltre, è vero che ha lo scopo generale che voglio? 662 00:41:39,340 --> 00:41:43,200 Se stai trovando che il sito sta iniziando a virare in una direzione diversa 663 00:41:43,200 --> 00:41:47,330 o forse le cose solo un po 'non sono lavorando fuori, potrebbe essere il momento di cambiare marcia un po'. 664 00:41:47,330 --> 00:41:51,700 In altre parole, vale la pena considerare - vale la pena di buttare fuori le idee, se necessario, 665 00:41:51,700 --> 00:41:57,950 e considerando sto davvero lavorando verso quello che voglio essere. 666 00:41:57,950 --> 00:42:00,760 >> Credo che il mio punto successivo. Non abbiate paura di abbandonare le idee. 667 00:42:00,760 --> 00:42:03,750 Solo perché hai speso un sacco di ore di lavoro su una funzione 668 00:42:03,750 --> 00:42:07,890 e finalmente farlo funzionare ma in realtà non sta andando così bene - 669 00:42:07,890 --> 00:42:12,690 come non è utile o che gli utenti stanno avendo problemi ad usarlo - quel genere di cose - 670 00:42:12,690 --> 00:42:15,300 non abbiate paura di buttare via. 671 00:42:15,300 --> 00:42:17,650 Fa schifo che hai speso un sacco di tempo lavorando su di esso, 672 00:42:17,650 --> 00:42:21,870 ma alla fine non si vuole un sito che tipo di messo insieme da questi pezzi che 673 00:42:21,870 --> 00:42:25,380 tipo di lavoro, ma non sono così ben servita. 674 00:42:25,380 --> 00:42:27,990 Inoltre, non abbiate paura di abbracciare nuove idee. 675 00:42:27,990 --> 00:42:30,050 Se qualcuno arriva e dice, ehi, quel sito sembra davvero cool, ma 676 00:42:30,050 --> 00:42:32,290 non sarebbe nemmeno bello se anche ha fatto questo? 677 00:42:32,290 --> 00:42:36,220 Solo perché è qualcosa che non hai intenzione e qualcosa che non è nel vostro 678 00:42:36,220 --> 00:42:37,900 specifiche, qualcosa che non avete proposto di fare, 679 00:42:37,900 --> 00:42:40,860 non abbiate paura di prendere su e poi lavorare con esso. 680 00:42:40,860 --> 00:42:43,680 Poiché spesso le idee che si esegue con tutto il corso dello sviluppo 681 00:42:43,680 --> 00:42:47,630 finiscono per essere le caratteristiche davvero cool del sito. 682 00:42:47,630 --> 00:42:49,630 >> Ho detto prima. Io dirò di nuovo. 683 00:42:49,630 --> 00:42:51,630 Tester sono super, super utile. 684 00:42:51,630 --> 00:42:56,350 Cercare di convincere la gente che non hanno mai visto il sito prima di accedere e vedere cosa sta succedendo 685 00:42:56,350 --> 00:42:59,080 perché possono verificare non solo l'utilità del sito e l'esperienza dell'utente, 686 00:42:59,080 --> 00:43:02,070 ma possono anche testare la funzionalità in modi che non si può. 687 00:43:02,070 --> 00:43:06,430 Se fate qualche caratteristica che fa una certa cosa 688 00:43:06,430 --> 00:43:11,620 e sai che sta per fare la stessa cosa correttamente ogni singola volta, che è grande. 689 00:43:11,620 --> 00:43:16,610 Ma spesso può essere difficile da spiegare casi angolo dove A potrebbe utente 690 00:43:16,610 --> 00:43:19,500 digitare qualcosa che non ti aspettavi - proprio perché definito 691 00:43:19,500 --> 00:43:21,500 le caratteristiche te. 692 00:43:21,500 --> 00:43:23,730 Quindi, per fare venire qualcuno da chi non ha idea di come utilizzare il sito 693 00:43:23,730 --> 00:43:26,840 e di rompere solo che in qualsiasi modo che possono fare è molto utile perché si 694 00:43:26,840 --> 00:43:30,340 avere un'idea da una prospettiva completamente diversa di ciò che il tuo sito sta lavorando 695 00:43:30,340 --> 00:43:33,300 e ciò che deve riparare. 696 00:43:33,300 --> 00:43:37,070 >> Infine, ho intenzione di parlare di alcune buone pratiche generali, 697 00:43:37,070 --> 00:43:42,470 e hai visto un sacco di questi in CS50, ma anche molto, molto applicato in un ambiente di progetto. 698 00:43:42,470 --> 00:43:47,600 Uno è commenti. Commentare sempre il codice, soprattutto se stai lavorando su una grande squadra. 699 00:43:47,600 --> 00:43:51,230 Si può essere così fastidioso avere solo un gigantesco blocco di codice che qualcuno è scritto 700 00:43:51,230 --> 00:43:54,230 e forse funziona, forse non lo fa, ma non avete idea di ciò che fa, 701 00:43:54,230 --> 00:43:58,010 modo da non avere idea se sia utile o meno, o se debba esserci o no, 702 00:43:58,010 --> 00:44:00,200 e se si sta lavorando su qualcosa d'altro è anche possibile che si sta lavorando 703 00:44:00,200 --> 00:44:06,590 la stessa cosa, quindi basta essere molto, molto attenti a essere rispettosi dei vostri coetanei 704 00:44:06,590 --> 00:44:09,710 e scrivere il codice che è ben documentata. 705 00:44:09,710 --> 00:44:13,580 Non dovete andare fino al punto di fare il tutto dove piace se si incrementa 706 00:44:13,580 --> 00:44:16,620 un contatore ha un commento che dice, sto aggiungendo 1 a questo contatore. 707 00:44:16,620 --> 00:44:20,450 Esso non deve essere così dettagliato, ma per qualsiasi funzione che si sta mai scrivere 708 00:44:20,450 --> 00:44:23,160 si dovrebbe avere qualche documentazione di ciò che funzione fa esattamente, 709 00:44:23,160 --> 00:44:25,140 quali sono i suoi ingressi sono, e che cosa dovrebbero restituire. 710 00:44:25,140 --> 00:44:27,800 In questo modo è possibile utilizzare altri componenti del sito della gente 711 00:44:27,800 --> 00:44:31,990 e si può lavorare per costruire qualcosa di grande. 712 00:44:31,990 --> 00:44:34,100 >> Un'altra cosa importante è che si vuole fare regolari clean-up. 713 00:44:34,100 --> 00:44:40,490 Codice ottiene disordinato. Non sento male se il codice è solo totalmente illeggibile, e un pasticcio gigante. 714 00:44:40,490 --> 00:44:42,770 Questo accade nello sviluppo web sempre. 715 00:44:42,770 --> 00:44:46,530 Stai aggiunta di nuove funzionalità, eliminando quelli vecchi. Roba sarà lì che non dovrebbe essere. 716 00:44:46,530 --> 00:44:49,330 Va bene, ma si vuole fare in modo di affrontare questa regolarità. 717 00:44:49,330 --> 00:44:53,430 Tu non vuoi lasciarlo costruire fino al punto in cui non riesci a trovare nulla 718 00:44:53,430 --> 00:44:56,430 nel codice, e non avete idea di che cosa fa nulla. 719 00:44:56,430 --> 00:44:58,430 Questo è il caso di HTML. 720 00:44:58,430 --> 00:44:59,490 A volte vi ritroverete con oggetti che non contengono nulla, 721 00:44:59,490 --> 00:45:01,320 e ti vuole sbarazzarsi di quelli. 722 00:45:01,320 --> 00:45:04,610 In CSS, è possibile riferirsi a elementi che non sono più lì, 723 00:45:04,610 --> 00:45:06,340 così si vuole sbarazzarsi di quel codice. 724 00:45:06,340 --> 00:45:09,900 In JavaScript, potreste aver tolto qualcosa dal HTML. 725 00:45:09,900 --> 00:45:13,150 Quindi, si vuole fare in modo che si sta sempre pulendo, facendo cose abbastanza 726 00:45:13,150 --> 00:45:17,450 quanto più possibile su base regolare. 727 00:45:17,450 --> 00:45:21,060 >> Un'altra cosa molto utile che non credo che si delinea molto in CS50 728 00:45:21,060 --> 00:45:23,430 ma vale la pena entrare in è controllo di versione. 729 00:45:23,430 --> 00:45:27,180 L'idea del controllo di versione è quando si sta praticamente tenendo traccia di tutti i progressi 730 00:45:27,180 --> 00:45:30,820 hai fatto verso il vostro sito e, se in qualsiasi momento ti rendi conto, oh, questo stava lavorando 731 00:45:30,820 --> 00:45:35,220 qualche tempo fa, ma non funziona più, si può tornare a versioni precedenti 732 00:45:35,220 --> 00:45:37,720 e vedere cosa è cambiato da allora e quel genere di cose. 733 00:45:37,720 --> 00:45:41,670 Il modo principale per farlo è con Git e Git è tutto questo tipo di sistema che 734 00:45:41,670 --> 00:45:46,390 Credo che Tommy MacWilliam ha tenuto un seminario su l'anno scorso. 735 00:45:46,390 --> 00:45:51,520 Se si va in seminari CS50 per il 2011, si può vedere il suo seminario su questo. 736 00:45:51,520 --> 00:45:57,070 L'idea di Git è, fondamentalmente, che a intervalli regolari si sta facendo questi impegni 737 00:45:57,070 --> 00:46:01,430 che sono modi di dire il sito è in una versione abbastanza stabile in questo momento così 738 00:46:01,430 --> 00:46:05,910 Sto imballaggio su e inviarlo via a un server, e quindi si può andare a quel server 739 00:46:05,910 --> 00:46:07,910 e guardare a tutte le versioni precedenti del codice e vedere come è progredito 740 00:46:07,910 --> 00:46:12,210 e tutto quel genere di roba buona. 741 00:46:12,210 --> 00:46:14,210 Quindi, questo è fondamentalmente. 742 00:46:14,210 --> 00:46:17,870 Per quanto riguarda lo sviluppo del web, siamo felici di restare e rispondere a qualsiasi 743 00:46:17,870 --> 00:46:20,570 domande per quanto riguarda la nostra presentazione. 744 00:46:20,570 --> 00:46:22,900 Tutto qui. Grazie. >> [Ben] Grazie. 745 00:46:22,900 --> 00:46:28,480 [Applausi] 746 00:46:28,480 --> 00:46:30,950 >> [Billy] Staff, qualcuno ha domande su cose che abbiamo trattato 747 00:46:30,950 --> 00:46:33,950 o le cose che non abbiamo coperto che speravano ci piacerebbe coprire? 748 00:46:33,950 --> 00:46:35,950 Saremmo lieti di rispondere a quelle. Chiunque? 749 00:46:35,950 --> 00:46:50,360 [Membro del pubblico] Quali sono i pro ei contro di utilizzare Ruby o con Python? 750 00:46:50,360 --> 00:46:58,660 [Ben] La domanda era: quali sono i pro ei contro di utilizzare Ruby o Python 751 00:46:58,660 --> 00:46:59,900 invece di come PHP. 752 00:46:59,900 --> 00:47:11,340 I pro sono che Ruby e Python sono linguaggi molto meglio di PHP. 753 00:47:11,340 --> 00:47:14,920 Almeno a mio parere, e penso che in un sacco di opinioni di altre persone pure. 754 00:47:14,920 --> 00:47:20,990 Sono stati progettati più per fare cose complesse, 755 00:47:20,990 --> 00:47:25,380 e meno per whacking insieme le pagine web molto rapidamente con 756 00:47:25,380 --> 00:47:28,400 un po 'di contenuti dinamici. 757 00:47:28,400 --> 00:47:35,180 I contro sono che c'è un po 'di - c'è più di una curva di apprendimento 758 00:47:35,180 --> 00:47:37,220 per farli impostare. 759 00:47:37,220 --> 00:47:41,010 Cioè, come in PHP, si può solo avere un file HTML e scrivere di meno-che, 760 00:47:41,010 --> 00:47:43,060 punto interrogativo, e poi si scrive del codice, e poi si scrive il punto interrogativo, 761 00:47:43,060 --> 00:47:45,700 di maggiore, e quindi il gioco è fatto. 762 00:47:45,700 --> 00:47:50,300 In altri linguaggi come Ruby o Python, 763 00:47:50,300 --> 00:47:56,810 si deve passare attraverso un po 'più di lavoro per ottenere il sito marcia iniziale. 764 00:47:56,810 --> 00:48:02,730 C'è anche - almeno ha usato per essere il caso - che non c'è più documentazione 765 00:48:02,730 --> 00:48:05,480 disponibili per PHP solo perché ci sono più persone che utilizzano esso. 766 00:48:05,480 --> 00:48:09,370 Penso che non è tanto di più un problema. 767 00:48:09,370 --> 00:48:12,520 C'è sicuramente molto buona documentazione per cose come Ruby on Rails 768 00:48:12,520 --> 00:48:16,080 o Django per Python è l'equivalente. 769 00:48:16,080 --> 00:48:25,910 PHP è quello che tutti si utilizza da anni, e si sa come funziona. 770 00:48:25,910 --> 00:48:28,460 Ruby e Python sono un po 'meno maturo. 771 00:48:28,460 --> 00:48:33,130 >> [Membro del pubblico] Se si dovesse scegliere tra uno di loro di imparare o pick up, 772 00:48:33,130 --> 00:48:36,130 che preferireste? 773 00:48:36,130 --> 00:48:38,870 Onestamente, penso che dipende dalla persona. 774 00:48:38,870 --> 00:48:45,450 Mi dispiace. La domanda era quale sceglieresti per qualcuno per imparare? 775 00:48:45,450 --> 00:48:50,230 Trovo Python il più bello personalmente. 776 00:48:50,230 --> 00:48:55,360 Ci sono un sacco di persone che - ho fatto il mio primo progetto dev web in Python e Django. 777 00:48:55,360 --> 00:49:00,300 Ci sono un sacco di persone che amano Ruby on Rails anche. 778 00:49:00,300 --> 00:49:02,650 Probabilmente più persone che conoscono Ruby on Rails. 779 00:49:02,650 --> 00:49:05,270 Onestamente, vorrei solo andare con qualsiasi cosa le persone intorno a voi conoscono 780 00:49:05,270 --> 00:49:09,680 in modo da avere le persone di porre domande. 781 00:49:19,640 --> 00:49:24,170 >> La domanda era - su server condivisi è un po 'difficile da lavorare su Python? 782 00:49:24,170 --> 00:49:26,170 Dipende dal vostro hosting. 783 00:49:26,170 --> 00:49:29,400 Ci sono un certo numero di host web che pubblicheremo Python roba. 784 00:49:29,400 --> 00:49:31,400 WebFaction lo fa, giusto? 785 00:49:31,400 --> 00:49:34,400 WebFaction è uno che Billy e ho usato per alcuni progetti. 786 00:49:34,400 --> 00:49:37,750 Sono davvero grande. Essi sostengono la maggior parte delle lingue. 787 00:49:37,750 --> 00:49:40,020 Ma è vero che PHP è molto più ampiamente supportato. 788 00:49:40,020 --> 00:49:45,210 Quindi, se sei bloccato su un host web che fa solo PHP, che è un buon motivo per utilizzare PHP. 789 00:49:45,210 --> 00:49:56,010 >> [Membro del pubblico] Ho appena ricevuto in imparare a interrogare alcuni database, 790 00:49:56,010 --> 00:50:00,680 e so che il mio SQL è dappertutto, ma di recente ho preso esposto a - 791 00:50:00,680 --> 00:50:04,470 e lei ha fuori. Vedete JSON e banche dati espandibili. 792 00:50:04,470 --> 00:50:14,580 My SQL è ancora dappertutto. Come si fa a vedere che succede? 793 00:50:14,580 --> 00:50:21,330 È lì sarà una tendenza crescente per più espandibile (non udibile)? 794 00:50:21,330 --> 00:50:30,100 La domanda era - non penso che ci sara 'una tendenza database non SQL. 795 00:50:30,100 --> 00:50:33,850 Ad esempio, come MongoDB. Penso che sia sicuramente vero. 796 00:50:33,850 --> 00:50:38,730 Il mio consiglio era per lo più mySQL correlati qui solo perché mySQL è 797 00:50:38,730 --> 00:50:40,950 standard del settore. 798 00:50:40,950 --> 00:50:45,950 Personalmente, preferisco di gran lunga i database che non hanno schemos come MongoDB 799 00:50:45,950 --> 00:50:49,520 dove non si ha il problema della, oh, ho bisogno di aggiungere un'altra colonna. 800 00:50:49,520 --> 00:50:51,600 Guai a me, come qualunque cosa faccio? 801 00:50:51,600 --> 00:50:55,840 E 'molto difficile da fare che in mySQL, ma quando si ha qualcosa come Mongo 802 00:50:55,840 --> 00:50:57,840 è molto più bello. 803 00:50:57,840 --> 00:51:03,780 L'altra cosa bella di Mongo è che i record sono in realtà oggetti JavaScript. 804 00:51:03,780 --> 00:51:10,110 Non c'è una sorta di passaggio di conversione in cui è necessario prendere queste righe di database 805 00:51:10,110 --> 00:51:13,140 e li trasformano in un oggetto JavaScript e poi inviarli in rete. 806 00:51:13,140 --> 00:51:20,290 Penso che cose del genere sta per essere molto, molto utile per un rapido sviluppo web in futuro. 807 00:51:20,290 --> 00:51:23,060 >> [Billy] Qualcosa vorrei aggiungere che è solo un punto generale è che 808 00:51:23,060 --> 00:51:26,580 non si sentono come dovreste aver imparato tutte le lingue che abbiamo discusso 809 00:51:26,580 --> 00:51:28,580 dal nostro seminario. 810 00:51:28,580 --> 00:51:30,560 Ovviamente il punto è quello di dare un'idea di cosa c'è là fuori, 811 00:51:30,560 --> 00:51:33,450 e se siete incuriositi da nessuna delle cose che abbiamo detto è possibile su Google 812 00:51:33,450 --> 00:51:35,830 e leggere su di loro. 813 00:51:35,830 --> 00:51:38,750 E come ho già detto, ci sono un paio di seminari che si occupano proprio di queste cose. 814 00:51:38,750 --> 00:51:41,660 Ci sono ancora più di seminari che non ho menzionato che, probabilmente, entrare in 815 00:51:41,660 --> 00:51:43,660 questa roba pure. 816 00:51:43,660 --> 00:51:46,610 L'idea è che se si vuole lavorare su qualcosa, qui sono gli strumenti a vostra disposizione. 817 00:51:46,610 --> 00:51:51,630 Non si sentono sopraffatti se non sei veramente sicuro di quello che questi strumenti fanno esattamente, 818 00:51:51,630 --> 00:51:54,830 ma sanno che sono là fuori e che si può fare largo uso di essi 819 00:51:54,830 --> 00:51:56,830 da Google. 820 00:51:56,830 --> 00:51:59,960 >> [Membro del pubblico] Che tipo di cose hai bisogno di fare per rendere sicuro il vostro sito 821 00:51:59,960 --> 00:52:02,530 guarda bene sui dispositivi mobili? 822 00:52:02,530 --> 00:52:05,590 [Billy] I dispositivi mobili sono un po 'difficile. 823 00:52:05,590 --> 00:52:07,590 Ci sono due modi per avvicinarsi. 824 00:52:07,590 --> 00:52:11,500 Il primo modo è che in realtà hanno un sito web mobile. 825 00:52:11,500 --> 00:52:14,660 In altre parole, si esegue una qualche sorta di rilevamento all'inizio 826 00:52:14,660 --> 00:52:18,830 quando il browser sta facendo la richiesta al tuo sito web che sia, dice 827 00:52:18,830 --> 00:52:25,240 restituire questo punto di vista - che sarà la visualizzazione per desktop o laptop browser - 828 00:52:25,240 --> 00:52:27,710 e questo altro punto di vista per i dispositivi mobili. 829 00:52:27,710 --> 00:52:33,090 Questo è un luogo dove panorami sono veramente bello dal fatto che si può tranquillamente swap 830 00:52:33,090 --> 00:52:37,580 due fuori e avere un'interfaccia che funziona davvero bene su dispositivi mobili 831 00:52:37,580 --> 00:52:40,770 e hanno uno completamente diverso che funziona bene sui dispositivi del browser. 832 00:52:40,770 --> 00:52:43,770 Il problema è che ci vuole molto tempo perché significa codifica 833 00:52:43,770 --> 00:52:47,060 un'interfaccia completamente diverso. 834 00:52:47,060 --> 00:52:49,720 L'altro modo che si può fare è - 835 00:52:49,720 --> 00:52:55,250 un sacco di telefoni moderni mostrerà siti web e cercare di renderli come un browser sarebbe, 836 00:52:55,250 --> 00:52:57,680 e fanno del loro meglio. 837 00:52:57,680 --> 00:53:04,340 È possibile tipo di cercare di rimanere in luce la quantità di jQuery JavaScript stai usando 838 00:53:04,340 --> 00:53:07,360 che tende ad essere dove le cose possono andare male un po '. 839 00:53:07,360 --> 00:53:13,430 Questa è una sorta di modo che si dovrebbe usare se non si ha molto tempo. 840 00:53:13,430 --> 00:53:18,540 Se si ha il tempo per lavorare su un interfaccia mobile, che è ovviamente la soluzione migliore. 841 00:53:18,540 --> 00:53:23,320 >> Penso che in generale per i progetti CS50, si sta andando a voler scegliere uno o l'altro. 842 00:53:23,320 --> 00:53:27,990 In altre parole, si vuole fare un app mobile o se si vuole fare un sito web desktop. 843 00:53:27,990 --> 00:53:32,200 E quel tipo di determina dove si va con quello. 844 00:53:32,200 --> 00:53:35,360 Ma se si desidera espandere fuori più tardi, probabilmente la soluzione migliore è 845 00:53:35,360 --> 00:53:37,360 per fare un'altra interfaccia per l'altro. 846 00:53:51,650 --> 00:53:56,340 Ho un po 'di esperienza nello sviluppo di siti basati su WordPress. 847 00:53:56,340 --> 00:53:58,670 Ho ospitato un sito personale su WordPress per un po '. 848 00:53:58,670 --> 00:54:02,310 Questi tipi di strutture possono essere belle cose altrettanto molto semplici. 849 00:54:02,310 --> 00:54:07,050 Spesso ti basta esegue in un sacco di problemi Personalizzabilità però. 850 00:54:07,050 --> 00:54:10,940 Avrai voglia di avere qualcosa di guardare un certo modo o in un certo modo 851 00:54:10,940 --> 00:54:14,510 e basta non è possibile perché è hard-wired nel sistema che 852 00:54:14,510 --> 00:54:17,480 questo è come devi fare le cose che possono essere un po 'un problema. 853 00:54:17,480 --> 00:54:22,020 Da allora ho sorta di stato più propenso a lavorare con i siti da zero. 854 00:54:22,020 --> 00:54:26,840 Per cose come i database del blog e quel genere di cose non è poi così difficile costruire un quadro. 855 00:54:26,840 --> 00:54:29,970 Se sei veramente allungato per tempo, potete naturalmente usare qualcosa come WordPress 856 00:54:29,970 --> 00:54:33,120 o cose del genere per un blog. 857 00:54:33,120 --> 00:54:38,790 I tipi di cose che i blog negozio e fare non sono davvero abbastanza difficile che 858 00:54:38,790 --> 00:54:41,500 se si sta eseguendo in nessuna di queste genere di cose, probabilmente siete meglio solo per 859 00:54:41,500 --> 00:54:43,500 fare una versione in-house. 860 00:54:43,500 --> 00:54:48,350 >> Penso che su di esso, quindi grazie ancora per essere venuti. 861 00:54:48,350 --> 00:54:51,960 Abbiamo apprezzato molto parlare con voi ragazzi e speriamo che hai imparato alcune cose. 862 00:54:51,960 --> 00:54:55,350 [Ben] Siamo felici di parlare - dobbiamo andare, ma siamo felici di parlare di più al di fuori 863 00:54:55,350 --> 00:55:01,650 se hai un'altra domanda. Grazie ancora. [Applausi] 864 00:55:03,750 --> 00:55:06,000 [CS50.TV]