1 00:00:00,000 --> 00:00:03,968 >> [GIOCO MUSIC] 2 00:00:03,968 --> 00:00:10,744 3 00:00:10,744 --> 00:00:14,040 >> STEPHEN TURBAN: Quindi io sono Stephen Turban. 4 00:00:14,040 --> 00:00:16,990 Sul lato qui, forse noi può ottenere alcune persone a tuffarsi in. 5 00:00:16,990 --> 00:00:20,150 6 00:00:20,150 --> 00:00:23,854 Abbiamo Gabriel e Zack. 7 00:00:23,854 --> 00:00:26,270 Così, per una breve roadmap su ciò questo sta a guardare come, 8 00:00:26,270 --> 00:00:31,580 Ho intenzione di fare un po 'estrema sguardo di alto livello a quello che MVC è. 9 00:00:31,580 --> 00:00:32,285 Gabe? 10 00:00:32,285 --> 00:00:35,080 >> GABRIEL GUIMARAES: Io vado a parlare di Ruby e un po ' 11 00:00:35,080 --> 00:00:39,100 come Rails funziona e come si può aiutano a costruire applicazioni web. 12 00:00:39,100 --> 00:00:42,070 >> ZACK CHAUVIN: E io vado a mostrare un esempio specifico di come 13 00:00:42,070 --> 00:00:45,112 utilizzare Rails per costruire un'applicazione super awesome. 14 00:00:45,112 --> 00:00:46,112 STEPHEN TURBAN: Awesome. 15 00:00:46,112 --> 00:00:46,350 Dolce. 16 00:00:46,350 --> 00:00:46,850 Bene. 17 00:00:46,850 --> 00:00:49,510 Quindi parliamo di MVC. 18 00:00:49,510 --> 00:00:54,970 Così andiamo alla diapositiva successiva, che Farò premendo questo tasto. 19 00:00:54,970 --> 00:01:12,640 E andiamo allo sviluppo next--, Mi piace pensare di andare a CVS, 20 00:01:12,640 --> 00:01:17,240 perché CVS è un negozio e ha anche una V al centro. 21 00:01:17,240 --> 00:01:21,460 >> E così immaginiamo in un negozio. 22 00:01:21,460 --> 00:01:25,380 E facciamo questo negozio vendere solo una cosa. 23 00:01:25,380 --> 00:01:31,380 Quindi stiamo andando ad avere questo memorizzare solo vendere questi tazze rosse. 24 00:01:31,380 --> 00:01:40,410 E immaginate si cammina in, e si va alla parte anteriore del negozio, e persone. 25 00:01:40,410 --> 00:01:43,440 E il suo nome è Vince. 26 00:01:43,440 --> 00:01:48,370 >> E Vince onde ciao a voi, dice ciao. 27 00:01:48,370 --> 00:01:50,860 E si nota una cosa su Vince. 28 00:01:50,860 --> 00:01:56,880 Così ogni volta che pensiamo Vince, abbiamo deve pensare a due aggettivi chiave. 29 00:01:56,880 --> 00:02:00,600 Vince è bello, ma è stupido. 30 00:02:00,600 --> 00:02:01,320 OK. 31 00:02:01,320 --> 00:02:06,810 In modo da sapere, non per colpa sua, purtroppo, è bello. 32 00:02:06,810 --> 00:02:08,009 Egli è la nostra vista. 33 00:02:08,009 --> 00:02:10,539 Quindi il nostro primo membro del cast è lì. 34 00:02:10,539 --> 00:02:12,340 Tenetelo a mente. 35 00:02:12,340 --> 00:02:17,230 >> Ora, si chiede Vince, si va, hey Vince. 36 00:02:17,230 --> 00:02:18,110 Sono un cliente. 37 00:02:18,110 --> 00:02:19,130 Egli dice ciao. 38 00:02:19,130 --> 00:02:23,610 Voglio davvero una delle tazze rosse. 39 00:02:23,610 --> 00:02:24,760 E cosa dice Vince? 40 00:02:24,760 --> 00:02:26,510 Qualcuno ha qualche idea di cosa dice Vince? 41 00:02:26,510 --> 00:02:30,340 42 00:02:30,340 --> 00:02:31,452 Ho intenzione di chiamare freddo. 43 00:02:31,452 --> 00:02:32,660 Cosa pensi Vince dice? 44 00:02:32,660 --> 00:02:36,139 >> AUDIENCE: Egli dice, posso mostrarvi dove si trova, ma non posso darvi uno. 45 00:02:36,139 --> 00:02:41,330 >> STEPHEN TURBAN: Egli dice, posso mostrarvi dove si trova, ma non posso darvi uno. 46 00:02:41,330 --> 00:02:42,295 Ancora peggio. 47 00:02:42,295 --> 00:02:44,420 Qualcun altro ha un altro idea di cosa Vince potrebbe dire? 48 00:02:44,420 --> 00:02:46,957 >> AUDIENCE: Deve andare a controllare se hanno tazze rosse. 49 00:02:46,957 --> 00:02:49,290 STEPHEN TURBAN: Vince non lo fa anche sapere che deve controllare. 50 00:02:49,290 --> 00:02:50,070 Qualunque altra cosa? 51 00:02:50,070 --> 00:02:52,360 Così lei ha detto, deve Controllare se ha tazze rosse. 52 00:02:52,360 --> 00:02:52,895 Vai avanti. 53 00:02:52,895 --> 00:02:54,020 AUDIENCE: Che cosa è una tazza rossa? 54 00:02:54,020 --> 00:02:56,072 STEPHEN TURBAN: Che cosa è una tazza rossa? 55 00:02:56,072 --> 00:02:58,090 Che cosa è una tazza rossa? 56 00:02:58,090 --> 00:02:59,410 Vince è confuso. 57 00:02:59,410 --> 00:03:05,141 Così Vince sta per parlare il nostro prossimo membro del cast, Carl. 58 00:03:05,141 --> 00:03:10,252 E quando pensiamo Carl, abbiamo devo pensare a due grandi adjectives-- 59 00:03:10,252 --> 00:03:15,110 lui è di controllo, ma è incapace. 60 00:03:15,110 --> 00:03:17,840 >> Così Vince goes-- lui va, che cosa è una tazza rossa? 61 00:03:17,840 --> 00:03:19,800 Non so che cosa una tazza rossa è. 62 00:03:19,800 --> 00:03:23,080 Si volta, e chiede Carl. 63 00:03:23,080 --> 00:03:28,890 Egli dice, Carl, qualcuno chiesto una tazza rossa. 64 00:03:28,890 --> 00:03:30,722 Puoi farlo? 65 00:03:30,722 --> 00:03:31,680 E cosa dice Carl? 66 00:03:31,680 --> 00:03:32,513 Facciamo capire. 67 00:03:32,513 --> 00:03:34,330 Qualcuno ha qualche idea di cosa dice Carl? 68 00:03:34,330 --> 00:03:37,260 E mi limiterò a ripetere di nuovo a voi. 69 00:03:37,260 --> 00:03:39,280 Ho visto un movimento della mano. 70 00:03:39,280 --> 00:03:41,760 >> AUDIENCE: Dice qualcuno altro per ottenere le tazze rosse. 71 00:03:41,760 --> 00:03:44,430 >> STEPHEN TURBAN: Dice qualcun altro per ottenere la tazza rossa. 72 00:03:44,430 --> 00:03:46,270 Esattamente. 73 00:03:46,270 --> 00:03:49,010 E cosa abbiamo un'idea che quella persona potrebbe essere? 74 00:03:49,010 --> 00:03:52,590 75 00:03:52,590 --> 00:03:53,090 Si tratta di un suggerimento. 76 00:03:53,090 --> 00:03:56,960 Sta per iniziare con una M. Mob? 77 00:03:56,960 --> 00:04:00,225 >> AUDIENCE: Modello. 78 00:04:00,225 --> 00:04:02,720 >> STEPHEN TURBAN: Il modello, sì. 79 00:04:02,720 --> 00:04:06,920 Il suo nome non è il modello, purtroppo, perché questo è un nome stupido. 80 00:04:06,920 --> 00:04:09,310 Abbiamo Mitt. 81 00:04:09,310 --> 00:04:12,970 E quando pensiamo Mitt-- no, questo non è una foto di Zack. 82 00:04:12,970 --> 00:04:15,590 83 00:04:15,590 --> 00:04:21,759 Dobbiamo pensare a due aggettivi chiave con Mitt. 84 00:04:21,759 --> 00:04:25,040 Lui è capace, ma è sottomesso. 85 00:04:25,040 --> 00:04:29,950 Così Mitt sa quello che deve fare, ma davvero non si può fare nulla. 86 00:04:29,950 --> 00:04:32,340 O davvero non può decidere da solo. 87 00:04:32,340 --> 00:04:33,256 >> Così abbiamo Carl. 88 00:04:33,256 --> 00:04:34,705 Carl grida a Mitt. 89 00:04:34,705 --> 00:04:39,990 E dice, hey Mitt, abbiamo bisogno di tazze rosse. 90 00:04:39,990 --> 00:04:46,410 E Mitt va alla sua coppa depositario rossa. 91 00:04:46,410 --> 00:04:48,960 Afferra una tazza, e lo dà indietro. 92 00:04:48,960 --> 00:04:51,360 Qualcuno ha qualche idea di cosa succede allora? 93 00:04:51,360 --> 00:04:54,070 94 00:04:54,070 --> 00:04:55,120 Dà la coppa. 95 00:04:55,120 --> 00:05:01,740 Finora Mitt è andato al suo rosso repository tazza, portato fuori, 96 00:05:01,740 --> 00:05:03,550 controllato fuori, ha detto, Ho preso una tazza rossa. 97 00:05:03,550 --> 00:05:06,717 E lui sta dando a Carl. 98 00:05:06,717 --> 00:05:07,550 Hai un'idea? 99 00:05:07,550 --> 00:05:08,980 Cosa pensi Carl fa? 100 00:05:08,980 --> 00:05:10,926 >> AUDIENCE: Carl dà a Vince. 101 00:05:10,926 --> 00:05:13,550 >> STEPHEN TURBAN: Carl dà a Vince. 102 00:05:13,550 --> 00:05:14,165 Vince. 103 00:05:14,165 --> 00:05:15,999 >> AUDIENCE: E Vince mostra a [incomprensibile]. 104 00:05:15,999 --> 00:05:16,998 STEPHEN TURBAN: Esattamente. 105 00:05:16,998 --> 00:05:18,080 Ecco, questo è esattamente. 106 00:05:18,080 --> 00:05:21,040 Così Vince prende il calice, non sa nemmeno cosa sia, 107 00:05:21,040 --> 00:05:23,840 ma mostra all'utente. 108 00:05:23,840 --> 00:05:27,140 Quindi cerchiamo di ricreare davvero breve. 109 00:05:27,140 --> 00:05:31,380 E Avremo bisogno tre volontari silenziosi, 110 00:05:31,380 --> 00:05:35,260 come voi ragazzi non stanno andando essere in grado di parlare. 111 00:05:35,260 --> 00:05:36,470 Così ho potuto prendere tre? 112 00:05:36,470 --> 00:05:37,040 OK. 113 00:05:37,040 --> 00:05:38,248 E chi vorresti essere? 114 00:05:38,248 --> 00:05:42,310 115 00:05:42,310 --> 00:05:43,750 >> PUBBLICO: Sarò Vince. 116 00:05:43,750 --> 00:05:44,960 >> STEPHEN TURBANTE: Vince, OK. 117 00:05:44,960 --> 00:05:46,190 Bella ma stupido. 118 00:05:46,190 --> 00:05:47,510 Grande. 119 00:05:47,510 --> 00:05:48,570 Qualcun altro? 120 00:05:48,570 --> 00:05:53,520 Stiamo cercando un capace ma sottomesso. 121 00:05:53,520 --> 00:05:55,760 Qualcun altro vuole essere in grado? 122 00:05:55,760 --> 00:05:56,944 >> PUBBLICO: Potrei essere Carl. 123 00:05:56,944 --> 00:05:57,860 STEPHEN TURBAN: Sweet. 124 00:05:57,860 --> 00:05:59,102 Abbiamo Carl. 125 00:05:59,102 --> 00:05:59,866 >> AUDIENCE: Mitt. 126 00:05:59,866 --> 00:06:01,050 >> STEPHEN TURBANTE: Mitt, OK. 127 00:06:01,050 --> 00:06:05,070 E stiamo andando ad avere bisogno a-- Sarò il cliente. 128 00:06:05,070 --> 00:06:07,460 Quindi forza su, vieni su. 129 00:06:07,460 --> 00:06:10,470 Ed è tutto in vista? 130 00:06:10,470 --> 00:06:15,440 Quindi ho intenzione di chiedere Vince a stare nella parte anteriore, appena sorridente, 131 00:06:15,440 --> 00:06:18,230 proprio sorridente brillante come possibile. 132 00:06:18,230 --> 00:06:21,520 E stiamo andando a chiedere Carl, a destra, perché non è vero, come, 133 00:06:21,520 --> 00:06:24,050 stare proprio dietro di lei? 134 00:06:24,050 --> 00:06:26,660 E Mitt, perché non basta andare fuori nella parte posteriore, 135 00:06:26,660 --> 00:06:31,410 e poi ti darò un gruppo di tazze per appendere fuori con. 136 00:06:31,410 --> 00:06:34,170 >> Quindi sono un cliente. 137 00:06:34,170 --> 00:06:35,610 Io vengo. 138 00:06:35,610 --> 00:06:40,490 E faccio [incomprensibile] I Dico, ciao, vorrei una tazza. 139 00:06:40,490 --> 00:06:43,214 140 00:06:43,214 --> 00:06:44,580 Perfetto. 141 00:06:44,580 --> 00:06:45,580 Così Vince non ha idea. 142 00:06:45,580 --> 00:06:46,915 Così che cosa fare dopo Vince? 143 00:06:46,915 --> 00:06:50,770 144 00:06:50,770 --> 00:06:52,860 Vince-- OK, quindi ho intenzione essere narrare ora. 145 00:06:52,860 --> 00:06:55,390 >> Vince grida a Carl, coppa! 146 00:06:55,390 --> 00:06:58,840 147 00:06:58,840 --> 00:07:00,790 Che cosa fa Carl fare? 148 00:07:00,790 --> 00:07:03,910 Carl urla Mitt. 149 00:07:03,910 --> 00:07:06,710 Mitt afferra una tazza. 150 00:07:06,710 --> 00:07:08,220 Mitt dà a Carl. 151 00:07:08,220 --> 00:07:10,870 Carl torna a Vince. 152 00:07:10,870 --> 00:07:12,640 E Vince mostra all'utente. 153 00:07:12,640 --> 00:07:17,960 >> E questo è un alto, alto, alto così in alto sguardo, a MVC. 154 00:07:17,960 --> 00:07:22,460 Noi dividiamo per avere una visione, cosa l'utente vede, un controller, qualcuno 155 00:07:22,460 --> 00:07:25,760 che fa tutto in background ma davvero non si può aggiornare nulla 156 00:07:25,760 --> 00:07:29,960 o non può fare nulla di significativo tranne chiamando la vista e il modello. 157 00:07:29,960 --> 00:07:35,280 E poi abbiamo Mitt, il modello, che aggiorna qualsiasi dato che abbiamo. 158 00:07:35,280 --> 00:07:42,660 Quindi grazie mille per la nostra bella, controllo, e volontari capaci. 159 00:07:42,660 --> 00:07:43,730 E penso che è stato. 160 00:07:43,730 --> 00:07:45,040 >> [Applausi] 161 00:07:45,040 --> 00:07:48,745 >> Penso che Gabe sta per parlare ora su un alto livello auspicabilmente meno. 162 00:07:48,745 --> 00:07:51,600 >> GABRIEL GUIMARAES: OK, ragazzi. 163 00:07:51,600 --> 00:07:56,790 Ora parliamo un po 'di più codice e su Ruby on Rails stesso, 164 00:07:56,790 --> 00:08:00,750 e di come esso si riferisce per tutto di questa storia MVC. 165 00:08:00,750 --> 00:08:03,190 Fondamentalmente, Ruby on Rails è un framework. 166 00:08:03,190 --> 00:08:04,640 Più che in un secondo. 167 00:08:04,640 --> 00:08:07,760 >> Ma solo per darvi un senso di chi sta usando, 168 00:08:07,760 --> 00:08:12,240 come, tutti questi grandi companies-- così GitHub, Groupon, Twitter-- 169 00:08:12,240 --> 00:08:15,300 sono tutti con Ruby on Rails come quadro principale 170 00:08:15,300 --> 00:08:16,510 di attuare il loro sito web. 171 00:08:16,510 --> 00:08:19,130 Quindi sono sicuro che un sacco di gente hanno usato questi siti web qui. 172 00:08:19,130 --> 00:08:24,470 Ed è tutto Ruby on Rails per attuare il modello, la vista, e il controllore 173 00:08:24,470 --> 00:08:26,890 su tutti questi siti web e molti altri. 174 00:08:26,890 --> 00:08:27,830 OK? 175 00:08:27,830 --> 00:08:32,090 >> Così come ho detto, Ruby on Rails è un framework. 176 00:08:32,090 --> 00:08:37,237 E si può tipo di pensare ad un quadro nel senso di come costruire una casa. 177 00:08:37,237 --> 00:08:39,570 Quindi, se avete intenzione di costruire un house-- e si può sempre 178 00:08:39,570 --> 00:08:40,653 ripartire da zero, giusto? 179 00:08:40,653 --> 00:08:46,440 Si può provare a venire con un modo per segare il legno, 180 00:08:46,440 --> 00:08:49,760 e per portare il legno al posto, e per ottenere le pietre nella forma giusta, 181 00:08:49,760 --> 00:08:51,250 e poi tutto questo. 182 00:08:51,250 --> 00:08:54,020 Ma che sta andando a prendere probabilmente un sacco di anni 183 00:08:54,020 --> 00:08:56,910 fino ad ottenere tutto il materiale, e si ottiene tutto insieme, 184 00:08:56,910 --> 00:08:58,790 e di iniziare effettivamente per costruire la vostra casa. 185 00:08:58,790 --> 00:09:01,748 >> Così si scopre se si inizia con un quadro con qualcosa che è 186 00:09:01,748 --> 00:09:04,260 già sorta di in posto per qualsiasi tipo di casa 187 00:09:04,260 --> 00:09:07,750 che si desidera qualcosa di build-- che è molto generico, ma che si può 188 00:09:07,750 --> 00:09:12,850 poi modellare verso il proprio goals-- allora è possibile sfruttare 189 00:09:12,850 --> 00:09:16,800 questo potere dei quadri per costruire loro qualcosa di molto, molto più veloce. 190 00:09:16,800 --> 00:09:17,300 OK. 191 00:09:17,300 --> 00:09:21,110 Quindi questa è la stessa idea in un framework per un'applicazione web 192 00:09:21,110 --> 00:09:23,755 o per qualsiasi tipo di applicazione, per quella materia. 193 00:09:23,755 --> 00:09:26,560 >> In realtà avvia con mezza un'applicazione 194 00:09:26,560 --> 00:09:28,400 già lì in posto per voi. 195 00:09:28,400 --> 00:09:32,230 E con questo, voglio dire che si ottiene un sacco di i file che già hanno funzioni, 196 00:09:32,230 --> 00:09:36,830 come le biblioteche, come la funzionalità, e comandi che è possibile eseguire in modo 197 00:09:36,830 --> 00:09:40,500 per rendere la vita molto più semplice e più facile. 198 00:09:40,500 --> 00:09:41,180 OK. 199 00:09:41,180 --> 00:09:43,555 >> Quindi, in questo caso, stiamo andando per parlare di Ruby on Rails. 200 00:09:43,555 --> 00:09:45,920 Ci sono un sacco di diversi telai, là fuori. 201 00:09:45,920 --> 00:09:47,550 C'è Django per Python. 202 00:09:47,550 --> 00:09:50,990 C'è framework Zend o Laravel per PHP. 203 00:09:50,990 --> 00:09:52,390 Ci sono un sacco di diversi. 204 00:09:52,390 --> 00:09:56,830 Ruby on Rails è una nuova bella bella. 205 00:09:56,830 --> 00:10:01,600 Un sacco di gente usa quella in start-up e questo tipo di ambiente. 206 00:10:01,600 --> 00:10:04,250 E alcuni di questi molto grande le aziende che ho mostrato qui prima 207 00:10:04,250 --> 00:10:06,050 sono anche utilizzando Ruby on Rails. 208 00:10:06,050 --> 00:10:10,070 >> Quindi, solo per darvi un senso di ciò che Ruby è 209 00:10:10,070 --> 00:10:13,030 come, dal momento che voi siete più utilizzato a, come, C e un po 'di PHP 210 00:10:13,030 --> 00:10:17,560 Ora, così Rubino sarà la equivalente di PHP in questo senso. 211 00:10:17,560 --> 00:10:18,380 Questo non è Ruby. 212 00:10:18,380 --> 00:10:19,830 Questo è C. OK? 213 00:10:19,830 --> 00:10:22,660 Ma questo è come la Funzione DJBHash che 214 00:10:22,660 --> 00:10:27,170 conoscere molte persone utilizzate per errori ortografici PSET. 215 00:10:27,170 --> 00:10:29,670 >> E in Ruby, piuttosto proprio come in PHP, è 216 00:10:29,670 --> 00:10:32,745 potrebbe attuare questo con solo poche righe di codice. 217 00:10:32,745 --> 00:10:34,870 Invece di doversi preoccupare sulla funzione di hash, 218 00:10:34,870 --> 00:10:37,950 doversi preoccupare i secchi, e tutto questo, si può solo dire, 219 00:10:37,950 --> 00:10:40,160 dizionario = Hash.net. 220 00:10:40,160 --> 00:10:44,560 E quindi si utilizza un po 'come la stessa idea che aveva PHP. 221 00:10:44,560 --> 00:10:45,970 E così è per vero. 222 00:10:45,970 --> 00:10:48,080 E poi se si vuole controllare, in modo da verificare la funzione 223 00:10:48,080 --> 00:10:51,560 sarebbe se dizionario "foo" eguagliato uguale true, true. 224 00:10:51,560 --> 00:10:52,580 E questo è tutto, OK? 225 00:10:52,580 --> 00:10:54,030 >> Così si notano alcune differenze. 226 00:10:54,030 --> 00:10:57,940 Non ci sono punti e virgola qui, come c'erano in C. 227 00:10:57,940 --> 00:11:00,710 Ma l'idea generale è molto simile. 228 00:11:00,710 --> 00:11:02,030 OK? 229 00:11:02,030 --> 00:11:08,010 >> Inoltre, in rubino, ci sono gemme che sono tipo di librerie di Ruby. 230 00:11:08,010 --> 00:11:12,460 E Rails li gestisce in un modo molto bello per voi. 231 00:11:12,460 --> 00:11:15,480 Quindi, se volete mettere in qualche libreria che 232 00:11:15,480 --> 00:11:18,670 does-mail, o che fa messaggi di testo, 233 00:11:18,670 --> 00:11:22,170 o che fa l'integrazione con Facebook, o qualsiasi tipo di cosa 234 00:11:22,170 --> 00:11:24,374 così per la vostra applicazione, è molto, molto facile. 235 00:11:24,374 --> 00:11:26,790 Le probabilità sono che si può trovare qualcosa come quella su internet. 236 00:11:26,790 --> 00:11:30,300 E solo fare qualcosa come put che 237 00:11:30,300 --> 00:11:32,290 gioiello che si desidera utilizzare nel file gemma. 238 00:11:32,290 --> 00:11:33,749 E poi Rails installa tutto. 239 00:11:33,749 --> 00:11:36,456 Non dovete preoccuparvi di qualsiasi di questo, così che è davvero cool. 240 00:11:36,456 --> 00:11:38,500 Inoltre, non c'è molto, un sacco di guida in linea. 241 00:11:38,500 --> 00:11:40,485 Così si può trovare un sacco di cose. 242 00:11:40,485 --> 00:11:42,360 Se si dispone di un errore, si può solo Google esso, 243 00:11:42,360 --> 00:11:45,090 e sarà molto facile da ottenere aiuto. 244 00:11:45,090 --> 00:11:47,200 >> Ed è un sacco di fun-- exactly-- perché 245 00:11:47,200 --> 00:11:51,420 non devono preoccuparsi del basso livello dettagli, realizzazione di tabelle hash 246 00:11:51,420 --> 00:11:58,080 e di dover venire con tutti le intestazioni HTTP, e un sacco di cose, 247 00:11:58,080 --> 00:12:00,197 e anche alcune cose di livello più alti. 248 00:12:00,197 --> 00:12:02,030 Non devi preoccuparti a tale proposito in Rails. 249 00:12:02,030 --> 00:12:04,010 Lo fa molto, molto bene per voi. 250 00:12:04,010 --> 00:12:07,490 E stiamo per mostrare che più concretamente molto presto. 251 00:12:07,490 --> 00:12:08,130 OK. 252 00:12:08,130 --> 00:12:09,750 >> Quindi un po 'di Rubino di nuovo. 253 00:12:09,750 --> 00:12:11,420 Quindi è proprio come C, come ho detto. 254 00:12:11,420 --> 00:12:14,170 Invece di printf, diciamo "Mette", che è "mettere stringa." 255 00:12:14,170 --> 00:12:18,100 Si mette una stringa alla console. 256 00:12:18,100 --> 00:12:20,601 E in questo caso, siamo solo la stampa "Ciao Mondo". 257 00:12:20,601 --> 00:12:23,100 Non abbiamo bisogno delle parentesi, ma è praticamente simile. 258 00:12:23,100 --> 00:12:26,190 >> E poi se si vuole di fare qualcosa qui, 259 00:12:26,190 --> 00:12:30,450 come stampare un gruppo di "Smalls" e un gruppo di "big" in un ciclo While, 260 00:12:30,450 --> 00:12:32,060 è un po 'come in C, giusto? 261 00:12:32,060 --> 00:12:35,090 Non hai i params, ma è praticamente la stessa. 262 00:12:35,090 --> 00:12:37,300 Il rientro qui conteggi, quindi x è uguale a 1. 263 00:12:37,300 --> 00:12:41,250 E poi mentre x è minore di 50-- questo è un caso, questo è un resto. 264 00:12:41,250 --> 00:12:42,810 E 'molto simile a quello che avete visto. 265 00:12:42,810 --> 00:12:47,150 >> E poi x + = 1 è solo incrementando, un po 'come fare il ++ che è possibile 266 00:12:47,150 --> 00:12:50,213 fare in C. Ma è abbastanza molto quello che hai visto in C. 267 00:12:50,213 --> 00:12:52,380 Non dovrebbe essere troppo complicato. 268 00:12:52,380 --> 00:12:54,320 Ma è più potente. 269 00:12:54,320 --> 00:13:00,100 Quindi ci sono alcuni comandi qui che sono sicuramente un po 'più recente. 270 00:13:00,100 --> 00:13:05,110 >> Così ad esempio, "puts". 271 00:13:05,110 --> 00:13:08,680 È possibile utilizzare questa notazione hashtag qui per stampare solo something-- 272 00:13:08,680 --> 00:13:13,490 più o meno come quello che si potrebbe fare se la% D o% C o un po 'così. 273 00:13:13,490 --> 00:13:17,600 E si può effettivamente porre Se subito dopo la dichiarazione. 274 00:13:17,600 --> 00:13:21,180 Quindi voglio solo fare questo-- Se x è maggiore di 3. 275 00:13:21,180 --> 00:13:24,129 Allora, perché avrei dovuto fare un intero Se il blocco? 276 00:13:24,129 --> 00:13:24,670 Non lo so. 277 00:13:24,670 --> 00:13:28,880 Posso solo stampare questo solo se x è uguale a superiore a 3. 278 00:13:28,880 --> 00:13:32,740 Quindi questo è un modo una riga di fare questo in Ruby. 279 00:13:32,740 --> 00:13:35,570 >> Un elenco in Ruby è qualcosa di molto versatile. 280 00:13:35,570 --> 00:13:38,110 Quindi non si ha realmente bisogno di avere un solo tipo. 281 00:13:38,110 --> 00:13:40,674 Si può avere una stringa, e quindi alcuni numeri, e quant'altro. 282 00:13:40,674 --> 00:13:42,590 E se si desidera aggiungere qualcosa a una lista, 283 00:13:42,590 --> 00:13:46,860 si può semplicemente utilizzare questo Notazione proprio qui. 284 00:13:46,860 --> 00:13:48,310 >> E se si desidera scorrere. 285 00:13:48,310 --> 00:13:56,200 Praticamente il 4each in PHP, qui, avere una lista e si fa "List.each fare." 286 00:13:56,200 --> 00:13:59,464 E questo "elem," questo è come il nome di ogni elemento 287 00:13:59,464 --> 00:14:00,880 che ho intenzione di avere nella mia lista. 288 00:14:00,880 --> 00:14:03,890 E poi posso solo "mette elem." 289 00:14:03,890 --> 00:14:07,130 E "mette" più o meno maniglie mettendolo per voi, stamparlo. 290 00:14:07,130 --> 00:14:09,920 Non importa se si tratta di una stringa o un int. 291 00:14:09,920 --> 00:14:12,790 Sta andando a lavorare che per voi. 292 00:14:12,790 --> 00:14:14,270 Giusto? 293 00:14:14,270 --> 00:14:14,790 Freddo. 294 00:14:14,790 --> 00:14:19,980 >> E proprio come PHP, Ruby e HTML anche integrare molto, molto bene. 295 00:14:19,980 --> 00:14:23,340 E qui, c'è qualche HTML con Ruby in esso. 296 00:14:23,340 --> 00:14:25,860 Così abbiamo un tag corpo come in HTML. 297 00:14:25,860 --> 00:14:28,270 E se vogliamo controllare che un utente è, ad esempio, 298 00:14:28,270 --> 00:14:35,730 connesso, possiamo solo dire, inizio Ruby, se user.logged_in ?, fine di Ruby. 299 00:14:35,730 --> 00:14:39,240 Stampa questa intera cosa, che ha qualche rubino in esso, che è solo 300 00:14:39,240 --> 00:14:42,230 un po 'come quella sintassi per PHP che stampa una variabile. 301 00:14:42,230 --> 00:14:43,380 Facciamo stampare il user.name. 302 00:14:43,380 --> 00:14:48,870 >> Quindi benvenuto, Stephen, all'interno di un div HTML. 303 00:14:48,870 --> 00:14:53,760 E alla fine, abbiamo un "fine" e Codice Ruby, il che significa che questo è il mio 304 00:14:53,760 --> 00:14:54,470 Se blocco. 305 00:14:54,470 --> 00:14:55,060 OK? 306 00:14:55,060 --> 00:14:57,684 Quindi è proprio come un senza soluzione di continuità integrazione tra Ruby e HTML. 307 00:14:57,684 --> 00:15:00,056 308 00:15:00,056 --> 00:15:01,430 Ci sono anche un sacco di risorse. 309 00:15:01,430 --> 00:15:06,290 Ma prima di andare avanti, qualcuno Per eventuali domande su Ruby, niente? 310 00:15:06,290 --> 00:15:08,960 OK. 311 00:15:08,960 --> 00:15:12,250 >> Ci sono un sacco di risorse on-line a tryruby.org, Codice Academy, 312 00:15:12,250 --> 00:15:18,740 ruby-lang.org, dove si può provare sul browser prima di realmente 313 00:15:18,740 --> 00:15:22,310 Dico, oh, OK, ho intenzione di usare Rubino per il mio progetto finale. 314 00:15:22,310 --> 00:15:24,020 E così sicuramente dare quelle una prova. 315 00:15:24,020 --> 00:15:26,510 Tutte queste diapositive sono sarà disponibile on-line, 316 00:15:26,510 --> 00:15:28,950 quindi si può semplicemente scaricare. 317 00:15:28,950 --> 00:15:30,115 E sì? 318 00:15:30,115 --> 00:15:31,889 >> AUDIENCE: [incomprensibile] quello che hai appena fatto vedere 319 00:15:31,889 --> 00:15:36,851 fu HTML e il codice embedded in a questa nozione di Model View 320 00:15:36,851 --> 00:15:37,350 Controller? 321 00:15:37,350 --> 00:15:37,610 >> GABRIEL GUIMARAES: Sì. 322 00:15:37,610 --> 00:15:40,290 Lo faremo in un secondo quando mostriamo il nostro esempio, OK? 323 00:15:40,290 --> 00:15:41,290 Grazie per la domanda. 324 00:15:41,290 --> 00:15:44,760 Quindi la domanda era fondamentalmente se può mostrare questa integrazione di Ruby 325 00:15:44,760 --> 00:15:49,230 in HTML all'interno del modello Visualizza quadro Controller. 326 00:15:49,230 --> 00:15:51,710 >> Così l'idea del Modello Quadro View Controller 327 00:15:51,710 --> 00:15:55,740 è che è fondamentalmente una filosofia, proprio come Stephen mostrato qui. 328 00:15:55,740 --> 00:15:58,177 E non è una cosa che si deve fare, 329 00:15:58,177 --> 00:16:00,510 ma è qualcosa che fa la vostra vita molto più semplice. 330 00:16:00,510 --> 00:16:04,170 E Ruby on Rails è costruita attorno a questa filosofia di codice. 331 00:16:04,170 --> 00:16:06,320 Quindi stiamo andando a mostrare un esempio molto presto. 332 00:16:06,320 --> 00:16:07,340 >> Così Rails è amore. 333 00:16:07,340 --> 00:16:09,140 Un sacco di persone stanno usando, come ho detto. 334 00:16:09,140 --> 00:16:10,510 Ed è davvero divertente. 335 00:16:10,510 --> 00:16:12,360 Voi ragazzi dovrebbero sicuramente fare un tentativo. 336 00:16:12,360 --> 00:16:15,120 MVC rende tutto più semplice. 337 00:16:15,120 --> 00:16:18,110 Così il Model View Controller, le cose che separano 338 00:16:18,110 --> 00:16:21,450 e mettendo una persona, per se, o una parte della vostra applicazione 339 00:16:21,450 --> 00:16:24,850 fare ciascuno dei diversi lavori che l'applicazione deve fare. 340 00:16:24,850 --> 00:16:26,676 E meno tempo speso sui problemi di basso livello. 341 00:16:26,676 --> 00:16:27,800 E molto popolare in questo momento. 342 00:16:27,800 --> 00:16:29,917 Abbiamo Rails 4.0, che è una nuova versione. 343 00:16:29,917 --> 00:16:31,500 E si tratta di un sacco di cose interessanti. 344 00:16:31,500 --> 00:16:32,562 Un'altra domanda. 345 00:16:32,562 --> 00:16:34,490 >> AUDIENCE: Un'altra domanda. 346 00:16:34,490 --> 00:16:39,310 Ruby on Rails contro Ruby on Rails Grails. 347 00:16:39,310 --> 00:16:40,230 >> GABRIEL GUIMARAES: OK. 348 00:16:40,230 --> 00:16:42,252 La domanda era, Ruby on Rails contro Ruby-- 349 00:16:42,252 --> 00:16:42,960 AUDIENCE: Grails. 350 00:16:42,960 --> 00:16:43,490 Ruby? 351 00:16:43,490 --> 00:16:44,490 >> GABRIEL GUIMARAES: Sì. 352 00:16:44,490 --> 00:16:45,955 Così Ruby è il linguaggio. 353 00:16:45,955 --> 00:16:46,745 >> AUDIENCE: No. 354 00:16:46,745 --> 00:16:50,360 Ti sto chiedendo di confrontare una lingua e un quadro, Ruby on Rails, 355 00:16:50,360 --> 00:16:52,975 con un altro linguaggio popolare framework-- Grails-- con Ruby 356 00:16:52,975 --> 00:16:53,310 on Rails. 357 00:16:53,310 --> 00:16:53,720 >> GABRIEL GUIMARAES: OK. 358 00:16:53,720 --> 00:16:54,480 Scusi. 359 00:16:54,480 --> 00:16:57,390 La questione è stata, confrontare Ruby e Ruby on Rails 360 00:16:57,390 --> 00:16:59,750 ad un altro quadro e another-- 361 00:16:59,750 --> 00:17:01,022 >> AUDIENCE: Ruby. 362 00:17:01,022 --> 00:17:01,954 Va bene. 363 00:17:01,954 --> 00:17:03,820 Se non si sa a questo proposito, va bene. 364 00:17:03,820 --> 00:17:05,359 >> GABRIEL GUIMARAES: Come, quello che ho capito è che-- 365 00:17:05,359 --> 00:17:07,080 >> AUDIENCE: C'è un altro framework Grails chiamati. 366 00:17:07,080 --> 00:17:07,700 >> GABRIEL GUIMARAES: Oh, Grails. 367 00:17:07,700 --> 00:17:08,650 Non ho mai sentito parlare. 368 00:17:08,650 --> 00:17:09,640 Scusi. 369 00:17:09,640 --> 00:17:11,690 Non ho mai sentito parlare di Groovy on Rails. 370 00:17:11,690 --> 00:17:12,744 Scusi. 371 00:17:12,744 --> 00:17:14,869 >> AUDIENCE: E 'molto meglio integrato con Java. 372 00:17:14,869 --> 00:17:15,450 >> GABRIEL GUIMARAES: Capisco. 373 00:17:15,450 --> 00:17:17,555 >> PUBBLICO: Sono solo curioso su alcune persone che conosco like-- 374 00:17:17,555 --> 00:17:20,240 >> GABRIEL GUIMARAES: No, non ho mai sentito parlare di quella, purtroppo. 375 00:17:20,240 --> 00:17:20,700 Grails. 376 00:17:20,700 --> 00:17:21,410 >> AUDIENCE: E alcune persone ovviamente, come Ruby on Rails. 377 00:17:21,410 --> 00:17:22,640 >> GABRIEL GUIMARAES: Ho usato Ruby on Rails molto. 378 00:17:22,640 --> 00:17:24,790 Ho usato un po 'Django con Python, come ho detto. 379 00:17:24,790 --> 00:17:26,329 Ho usato un po Laravel. 380 00:17:26,329 --> 00:17:29,490 Ma io non avevo usato Groovy on Rails. 381 00:17:29,490 --> 00:17:31,630 Scusi. 382 00:17:31,630 --> 00:17:34,040 Ed è molto popolare ora con Rails 4.0. 383 00:17:34,040 --> 00:17:38,180 Come, alcune delle cose che Rails fa per voi, per esempio, sei tu 384 00:17:38,180 --> 00:17:43,650 hanno un sacco di file CSS e un sacco di file JavaScript. 385 00:17:43,650 --> 00:17:45,790 E si può trattare come separato e tutto. 386 00:17:45,790 --> 00:17:50,010 >> Ma poi, quando automatically-- di inviare il codice per la produzione, 387 00:17:50,010 --> 00:17:52,770 compila automaticamente tutti in un unico file 388 00:17:52,770 --> 00:17:55,150 che è minified senza spazi, in modo da occupare 389 00:17:55,150 --> 00:17:59,400 meno spazio nella vostra applicazione, in modo da che si può davvero scalare le cose molto. 390 00:17:59,400 --> 00:18:04,380 Ecco perché queste grandi aziende come Twitter e GitHub 391 00:18:04,380 --> 00:18:10,220 utilizzano Rails, perché fa tutto che per voi, che è davvero cool. 392 00:18:10,220 --> 00:18:12,840 >> Una cosa che è molto, molto, molto scoraggiante 393 00:18:12,840 --> 00:18:18,450 per le persone, me compreso, che stanno cercando di lavorare 394 00:18:18,450 --> 00:18:22,430 con un quadro dell'inizio, è che quando si avvia un'applicazione, 395 00:18:22,430 --> 00:18:24,440 si sta andando a vedere un gruppo di file. 396 00:18:24,440 --> 00:18:28,460 Come, quando si creano Rails Nuova, My Application, 397 00:18:28,460 --> 00:18:31,710 si sta andando a vedere tutti questi folders-- app, bin, config, db, lib, 398 00:18:31,710 --> 00:18:32,482 log, pubblico. 399 00:18:32,482 --> 00:18:33,690 Come, un sacco di roba. 400 00:18:33,690 --> 00:18:35,030 >> E la prima volta che ho visto che, ero come, 401 00:18:35,030 --> 00:18:36,570 OK, non ho idea di cosa stia succedendo. 402 00:18:36,570 --> 00:18:38,890 Voglio solo creare un sito web con "Ciao, mondo" 403 00:18:38,890 --> 00:18:41,730 e questo mi sta dando, come, 100 miliardi di diverse pagine. 404 00:18:41,730 --> 00:18:43,070 Non so cosa sta succedendo. 405 00:18:43,070 --> 00:18:47,460 Quindi, per favore non essere troppo scoraggiati da questo. 406 00:18:47,460 --> 00:18:53,699 >> L'idea è che in realtà ha la metà di una casa per voi già. 407 00:18:53,699 --> 00:18:55,490 Esso ha un intero framework per voi già. 408 00:18:55,490 --> 00:18:56,948 Ecco perché ci sono così tanti file. 409 00:18:56,948 --> 00:19:00,150 Ma la cosa bella è che si separa tutti molto bene. 410 00:19:00,150 --> 00:19:03,370 Le probabilità sono che non ci si deve preoccupare sulla maggior parte di queste cartelle. 411 00:19:03,370 --> 00:19:05,820 >> La più importante, direbbe, è la cartella app, 412 00:19:05,820 --> 00:19:07,147 dove la vostra applicazione vive attualmente. 413 00:19:07,147 --> 00:19:09,730 Così il config, si sta andando a hanno di configurare alcune cose, 414 00:19:09,730 --> 00:19:12,840 come la vostra base di dati e cose del genere quale tipo di database che si sta utilizzando. 415 00:19:12,840 --> 00:19:17,430 Ma a parte questo, come la maggior parte dei il lavoro sta per essere fatto in app. 416 00:19:17,430 --> 00:19:21,620 Così in app, avete attività, controllori, aiutanti, mailer, modelli, viste. 417 00:19:21,620 --> 00:19:24,460 Così qui, si inizia a vedere che controller, modelli e viste venire 418 00:19:24,460 --> 00:19:25,410 in gioco. 419 00:19:25,410 --> 00:19:27,270 >> Mailers sono solo se si vogliono inviare e-mail. 420 00:19:27,270 --> 00:19:29,400 Helpers se si desidera creare alcune funzioni 421 00:19:29,400 --> 00:19:32,050 che si usa molto in vista. 422 00:19:32,050 --> 00:19:34,490 Così li metti in aiutanti. 423 00:19:34,490 --> 00:19:39,000 E patrimonio è fondamentalmente tutti le immagini, tutti i tuoi CSS, 424 00:19:39,000 --> 00:19:41,200 tutto il vostro JavaScript, e come quei generi 425 00:19:41,200 --> 00:19:43,110 di cose che vengono inviati al client. 426 00:19:43,110 --> 00:19:45,500 E tutto ciò che è in attività, che ho detto prima, viene minified. 427 00:19:45,500 --> 00:19:45,940 E 'compilato. 428 00:19:45,940 --> 00:19:49,189 E non si hanno veramente a preoccuparsi che quando si va a codice di produzione. 429 00:19:49,189 --> 00:19:49,770 Freddo. 430 00:19:49,770 --> 00:19:54,205 >> Ora Zack sta per entrare, e lui è intenzione di fare un esempio di Twitter50. 431 00:19:54,205 --> 00:19:54,970 >> AUDIENCE: Woo-hoo! 432 00:19:54,970 --> 00:19:56,726 >> ZACK CHAUVIN: Awesome. 433 00:19:56,726 --> 00:20:00,180 Così ho avuto la possibilità di lavorare con Ruby on Rails questa estate. 434 00:20:00,180 --> 00:20:01,580 E 'un quadro sorprendente. 435 00:20:01,580 --> 00:20:03,580 Sono molto parziale esso. 436 00:20:03,580 --> 00:20:09,770 E io ti faccio vedere solo un po 'di un esempio di quello che potrebbe sembrare. 437 00:20:09,770 --> 00:20:11,020 Saltate a Chrome. 438 00:20:11,020 --> 00:20:16,350 Quindi questo è un esempio di una semplice Ruby on Rails application-- qualcosa 439 00:20:16,350 --> 00:20:19,690 come questo è qualcosa che Ruby eccelle veramente 440 00:20:19,690 --> 00:20:24,070 che-- proprio dove la tua i modelli sono molto ben definiti. 441 00:20:24,070 --> 00:20:27,150 >> In questo esempio, si vedrà due modelli differenti, che 442 00:20:27,150 --> 00:20:30,380 sono che abbiamo utenti e abbiamo tweets. 443 00:20:30,380 --> 00:20:33,480 Quindi questo è Twitter50, Proprio Twitter di Harvard. 444 00:20:33,480 --> 00:20:36,820 Come potete vedere, ho entrato comezack. 445 00:20:36,820 --> 00:20:38,860 E sono in grado di fare nuovi tweet. 446 00:20:38,860 --> 00:20:42,266 Così ho think-- "Questo è un" - mi dispiace? 447 00:20:42,266 --> 00:20:43,182 AUDIENCE: [incomprensibile]. 448 00:20:43,182 --> 00:20:44,061 ZACK CHAUVIN: Oh, OK. 449 00:20:44,061 --> 00:20:45,060 Necessità di arrestare il server. 450 00:20:45,060 --> 00:20:47,480 Eccellente. 451 00:20:47,480 --> 00:20:49,630 Così eccoci qui. 452 00:20:49,630 --> 00:20:52,520 Come potete vedere, abbiamo il nostro Twitter applicazione qui. 453 00:20:52,520 --> 00:20:55,020 Ed è super facile da avviare il server. 454 00:20:55,020 --> 00:20:57,991 Dobbiamo solo fare "rotaie server." 455 00:20:57,991 --> 00:20:58,490 Grande. 456 00:20:58,490 --> 00:20:58,990 OK. 457 00:20:58,990 --> 00:21:00,830 Grazie per questo. 458 00:21:00,830 --> 00:21:02,200 Così ora stiamo correndo. 459 00:21:02,200 --> 00:21:06,120 >> E noi diciamo: "Questo è un seminario impressionante. " 460 00:21:06,120 --> 00:21:08,870 E vediamo cosa succede. 461 00:21:08,870 --> 00:21:10,020 Quindi dovremo Tweet su di esso. 462 00:21:10,020 --> 00:21:13,390 Giù in basso, si può vedere ora c'è più di tre tweets. 463 00:21:13,390 --> 00:21:15,980 Così abbiamo un po ' di impaginazione in corso. 464 00:21:15,980 --> 00:21:19,640 E noi abbiamo quel tweet. 465 00:21:19,640 --> 00:21:24,010 E posso anche cercare attraverso il mio Ricerca tweets-- per questo e le due 466 00:21:24,010 --> 00:21:27,960 quelli che hanno la parola "Questo" in loro vedere. 467 00:21:27,960 --> 00:21:30,860 Possiamo anche cancellare i tweet da cliccando sul piccolo pulsante Elimina. 468 00:21:30,860 --> 00:21:36,440 E ovviamente, posso eliminare solo il post che mi apparteneva. 469 00:21:36,440 --> 00:21:39,030 >> Già, quasi abbiamo la funzionalità di Twitter. 470 00:21:39,030 --> 00:21:42,000 Come, quando si pensa a questo proposito, Twitter in realtà non fa più di tanto. 471 00:21:42,000 --> 00:21:44,280 Ha utenti, ha tweets. 472 00:21:44,280 --> 00:21:47,690 Ci sono alcune funzionalità più complesse. 473 00:21:47,690 --> 00:21:52,960 Ma quando si ha realmente arriva al dunque, è piuttosto una semplice Ruby on Rails app. 474 00:21:52,960 --> 00:21:57,560 E qualcosa di simile, con un buona conoscenza di Ruby on Rails, 475 00:21:57,560 --> 00:22:00,680 si potrebbe probabilmente fare in un'ora o due. 476 00:22:00,680 --> 00:22:04,210 >> E che viene veramente torna al mantra Ruby, 477 00:22:04,210 --> 00:22:07,540 che è convenzione sulla configurazione. 478 00:22:07,540 --> 00:22:10,965 Così nel giorno, la gente, in qualsiasi momento volevano fare questo sito, 479 00:22:10,965 --> 00:22:12,340 avrebbe dovuto partire da zero. 480 00:22:12,340 --> 00:22:13,740 OK, voglio fare un sito web. 481 00:22:13,740 --> 00:22:15,970 Facciamo questo file e questo file e questo file. 482 00:22:15,970 --> 00:22:19,180 >> Con Ruby on Rails, c'è niente di tutto questo. 483 00:22:19,180 --> 00:22:21,170 Tu dici, io voglio una nuova applicazione. 484 00:22:21,170 --> 00:22:25,010 E proprio come Gabe ci ha mostrato, è crea l'intera struttura dei file per noi. 485 00:22:25,010 --> 00:22:27,490 E abbiamo appena cambiamo piccole parti che abbiamo bisogno di. 486 00:22:27,490 --> 00:22:31,570 Abbiamo appena Personalizziamo cosa che rende unico il nostro app. 487 00:22:31,570 --> 00:22:32,250 Freddo. 488 00:22:32,250 --> 00:22:38,540 Quindi tornando alla nostra presentazione preview-- interessante. 489 00:22:38,540 --> 00:22:41,408 490 00:22:41,408 --> 00:22:42,724 Dove vi presento? 491 00:22:42,724 --> 00:22:43,640 AUDIENCE: Schermo intero. 492 00:22:43,640 --> 00:22:45,715 In alto a destra. 493 00:22:45,715 --> 00:22:48,480 >> ZACK CHAUVIN: Excellent. 494 00:22:48,480 --> 00:22:48,990 Freddo. 495 00:22:48,990 --> 00:22:49,490 OK. 496 00:22:49,490 --> 00:22:51,480 Quindi, prima di tutto, il modello. 497 00:22:51,480 --> 00:22:54,100 Stephen ha fatto un impressionante compito di delineare MVC. 498 00:22:54,100 --> 00:22:57,980 E ora stiamo andando a relazionarsi che torna a Ruby on Rails. 499 00:22:57,980 --> 00:23:00,730 Così il modello si può tipo di pensare come il database. 500 00:23:00,730 --> 00:23:04,870 Sei stato vedendo questo in CS50 Finanza, dove i negozi modello 501 00:23:04,870 --> 00:23:07,590 le informazioni su quante scorte avete, 502 00:23:07,590 --> 00:23:10,986 o tutte le operazioni che hai fatto. 503 00:23:10,986 --> 00:23:12,860 Questo è un esempio di una linea di come si farebbe 504 00:23:12,860 --> 00:23:15,640 fare per fare un nuovo modello in Rails. 505 00:23:15,640 --> 00:23:17,102 Quindi voglio un utente. 506 00:23:17,102 --> 00:23:19,060 Sta per avere un email, che è una stringa, 507 00:23:19,060 --> 00:23:20,990 e una password, che è anche la stringa. 508 00:23:20,990 --> 00:23:27,150 Così è come those-- voglio ogni riga in mio tavolo di utenti a guardare in quel modo. 509 00:23:27,150 --> 00:23:30,730 >> Una parte davvero impressionante su Rails è che 510 00:23:30,730 --> 00:23:33,755 rende superfluo scrivere qualsiasi SQL praticamente. 511 00:23:33,755 --> 00:23:38,640 Quanti di voi ragazzi amati scrivere SQL in PSET 7? 512 00:23:38,640 --> 00:23:39,770 Esattamente. 513 00:23:39,770 --> 00:23:41,840 SQL non è molto user-friendly. 514 00:23:41,840 --> 00:23:46,470 E Rails astrae tutto questo via con questi comandi veramente facile. 515 00:23:46,470 --> 00:23:51,580 Così, per esempio, se abbiamo un utente, un utente ha molti tweets. 516 00:23:51,580 --> 00:23:56,580 E ognuno di questi tweets appartiene a un utente. 517 00:23:56,580 --> 00:23:59,520 >> Quindi, se si guarda qui, questo è il nostro modello per il nostro tweet. 518 00:23:59,520 --> 00:24:02,750 E tutto quello che dobbiamo dire è questo singolo line-- Sono un tweet 519 00:24:02,750 --> 00:24:05,090 e io appartengo a un utente. 520 00:24:05,090 --> 00:24:10,160 E con quella singola linea e un po 'di configurazione del database, 521 00:24:10,160 --> 00:24:12,990 Rails imposta questo rapporto. 522 00:24:12,990 --> 00:24:17,450 In qualsiasi momento, posso solo dire, zack.tweets, come, dammi tutti i tweets Zack. 523 00:24:17,450 --> 00:24:19,420 No SQL. 524 00:24:19,420 --> 00:24:20,040 Super facile. 525 00:24:20,040 --> 00:24:26,580 Ancora una volta, questo è convention over configurazione che entrano in gioco. 526 00:24:26,580 --> 00:24:29,770 >> Si può vedere un po ' di un esempio di rubino qui. 527 00:24:29,770 --> 00:24:32,740 Come Gave detto, scrivendo Ruby è un po 'come scrivere in inglese. 528 00:24:32,740 --> 00:24:35,540 Si tratta di un linguaggio di livello molto alto, e lo rende veramente facile 529 00:24:35,540 --> 00:24:42,380 per noi di dire le cose come, voglio fare in modo che questo tweet ha un corpo. 530 00:24:42,380 --> 00:24:43,740 La sua presenza è vera. 531 00:24:43,740 --> 00:24:47,170 E voglio fare in modo che questo Tweet, proprio come normale Twitter, 532 00:24:47,170 --> 00:24:49,020 ha una lunghezza massima di 140. 533 00:24:49,020 --> 00:24:52,800 E 'super-intuitivo, un davvero grande linguaggio. 534 00:24:52,800 --> 00:24:54,590 >> Next up abbiamo la vista. 535 00:24:54,590 --> 00:24:57,510 Quindi si tratta di HTML e CSS. 536 00:24:57,510 --> 00:25:00,490 Ed ecco un esempio di una visione. 537 00:25:00,490 --> 00:25:05,600 Così Ruby on Rails tipo di senza soluzione di continuità integra sia Ruby e HTML 538 00:25:05,600 --> 00:25:08,880 per generare quello che vogliamo sulla pagina. 539 00:25:08,880 --> 00:25:11,380 Quindi questo è un esempio di una layout. 540 00:25:11,380 --> 00:25:15,710 Così si può vedere alcuni tag che si ragazzi sono abituati, come HTML, corpo, 541 00:25:15,710 --> 00:25:17,250 tutta quella roba buona. 542 00:25:17,250 --> 00:25:21,760 >> E proprio qui, però, incorporare alcune Rubino dicendo, 543 00:25:21,760 --> 00:25:25,390 se c'è un messaggio da visualizzare, quindi visualizzare il messaggio in un div. 544 00:25:25,390 --> 00:25:28,060 Quindi non voglio entrare troppo in quello. 545 00:25:28,060 --> 00:25:31,190 Ma questo è generalmente un pagina che viene visualizzata on-- 546 00:25:31,190 --> 00:25:33,960 e non importa quale pagina si è su, questo viene reso. 547 00:25:33,960 --> 00:25:38,110 Quindi questo è ciò che viene incluso sempre. 548 00:25:38,110 --> 00:25:38,980 Freddo. 549 00:25:38,980 --> 00:25:42,730 >> Un altro esempio di questo è view-- quello in cui ha scelto tutti i tweet. 550 00:25:42,730 --> 00:25:45,630 E alcune di queste cose potrebbe apparire piuttosto familiare. 551 00:25:45,630 --> 00:25:50,050 Così, per esempio, proprio qui, siamo looping attraverso ciascuno dei tweets, 552 00:25:50,050 --> 00:25:51,960 e noi li stiamo stamparli. 553 00:25:51,960 --> 00:25:54,320 Così qui è dove siamo stampando il corpo. 554 00:25:54,320 --> 00:26:00,910 E se user-- del Tweet ecco una vero esempio di non SQL è coinvolto. 555 00:26:00,910 --> 00:26:04,390 Sto solo chiedendo, è questo utente di Twitter l'utente corrente? 556 00:26:04,390 --> 00:26:06,030 Poi mostra un link per eliminarlo. 557 00:26:06,030 --> 00:26:06,880 E 'super semplice. 558 00:26:06,880 --> 00:26:09,670 559 00:26:09,670 --> 00:26:10,920 >> Il controllore. 560 00:26:10,920 --> 00:26:14,390 Quindi questo è, di nuovo, l'interfaccia tra il modello e la vista. 561 00:26:14,390 --> 00:26:17,820 E 'quello che fa il lavoro duro del interacting-- essere l'intermediario. 562 00:26:17,820 --> 00:26:20,980 Carica le informazioni per la Consideriamo, che vedremo in un secondo. 563 00:26:20,980 --> 00:26:23,850 E per interagire con il modello, 564 00:26:23,850 --> 00:26:29,170 chiede metodi del modello, che sono ciò che voi siete a conoscenza come funzioni. 565 00:26:29,170 --> 00:26:31,490 >> Così, per esempio, questo è controllore del nostro tweet. 566 00:26:31,490 --> 00:26:33,930 Potrebbe sembrare un po ' scoraggiante in questo momento. 567 00:26:33,930 --> 00:26:38,240 Ma in realtà è super-intuitiva una volta che si avvia immersioni in. 568 00:26:38,240 --> 00:26:42,990 Così, per esempio, nel nostro indice, che è dove vogliamo mostrare tutti i tweet. 569 00:26:42,990 --> 00:26:46,910 E così questa linea sostanzialmente solo chiede per tutti i tweets. 570 00:26:46,910 --> 00:26:50,300 E poi si inizializza entrambi le nuove tweet-- così come 571 00:26:50,300 --> 00:26:52,320 se vogliono creare un nuovo tweet in quella pagina. 572 00:26:52,320 --> 00:26:54,250 >> E chiede che cosa l'utente corrente è. 573 00:26:54,250 --> 00:26:58,850 E questo è molto simile alla rendering che avete visto in PSET 7, 574 00:26:58,850 --> 00:27:02,230 dove è solo tipo di raccontare il view-- è una specie di, come, 575 00:27:02,230 --> 00:27:06,284 passando le variabili che sei andando ad avere bisogno della vista alla vista. 576 00:27:06,284 --> 00:27:08,200 E c'è un sacco Metodi di differenti 577 00:27:08,200 --> 00:27:10,410 tale controller di questo tweet in grado di gestire. 578 00:27:10,410 --> 00:27:12,495 >> Ma in realtà, Rails fa un grande lavoro di tipo 579 00:27:12,495 --> 00:27:18,910 di dividendoli in diversa azioni che il controller possa fare. 580 00:27:18,910 --> 00:27:23,800 Ci sono domande su nessuna delle parti MVC di Rails? 581 00:27:23,800 --> 00:27:25,550 Tipo di appena una brezza. 582 00:27:25,550 --> 00:27:29,250 Così voi potete controllare fuori da soli. 583 00:27:29,250 --> 00:27:30,106 Impressionante. 584 00:27:30,106 --> 00:27:31,200 Terremo in corso. 585 00:27:31,200 --> 00:27:32,546 >> Così l'installazione di Rails. 586 00:27:32,546 --> 00:27:35,170 Installazione di Rails potrebbero essere, come, una delle parti più scoraggianti 587 00:27:35,170 --> 00:27:37,830 dell'intero rotaie processo, purtroppo. 588 00:27:37,830 --> 00:27:40,450 Ma, ovviamente, tutti Ci sono in giro per aiutare. 589 00:27:40,450 --> 00:27:42,590 Ed una volta che è lì, un sacco di grandi risorse, 590 00:27:42,590 --> 00:27:45,100 come Gabe accennato, per iniziare. 591 00:27:45,100 --> 00:27:47,230 Ecco i link che avrete bisogno per 592 00:27:47,230 --> 00:27:51,460 per scaricare Rails per farlo installato sulla vostra macchina. 593 00:27:51,460 --> 00:27:54,240 Ovviamente, è disponibile per Windows e Mac 594 00:27:54,240 --> 00:27:55,600 e per l'apparecchio CS50. 595 00:27:55,600 --> 00:27:58,520 596 00:27:58,520 --> 00:28:00,020 Domande su tutto ciò che abbiamo detto? 597 00:28:00,020 --> 00:28:04,265 598 00:28:04,265 --> 00:28:06,690 >> PUBBLICO: Sarei interessati, actually-- 599 00:28:06,690 --> 00:28:10,255 quindi so che il download software è il più grande ostacolo. 600 00:28:10,255 --> 00:28:14,807 Se c'è abbastanza interesse per avere un download mini sessione o qualcosa. 601 00:28:14,807 --> 00:28:15,640 ZACK CHAUVIN: Mm-hm. 602 00:28:15,640 --> 00:28:15,692 Sì. 603 00:28:15,692 --> 00:28:16,900 Questo potrebbe essere davvero utile. 604 00:28:16,900 --> 00:28:20,650 Se qualcuno è davvero entusiasta su utilizzare questo per il loro progetto 605 00:28:20,650 --> 00:28:26,555 o in futuro, allora saremmo sicuramente felice di parlare con te di questo. 606 00:28:26,555 --> 00:28:27,055 Mm-hm. 607 00:28:27,055 --> 00:28:29,530 >> PUBBLICO: Una questione collegata per quello che ho chiesto prima. 608 00:28:29,530 --> 00:28:32,563 Per quelli di voi che hanno fatto altre strutture che sono ancora 609 00:28:32,563 --> 00:28:34,354 cercando di fare lo stesso cosa, facilitare 610 00:28:34,354 --> 00:28:38,452 per costruire un sito web o un funzionalità, credo che qualsiasi senso 611 00:28:38,452 --> 00:28:43,653 del perché saremmo on Rails contro Zend o alcune delle altre strutture 612 00:28:43,653 --> 00:28:44,236 e linguaggi. 613 00:28:44,236 --> 00:28:47,870 >> ZACK CHAUVIN: mi limiterò a dire il mio $ 0,02 a tale proposito. 614 00:28:47,870 --> 00:28:49,090 Adoro Ruby on Rails. 615 00:28:49,090 --> 00:28:52,120 Ho avuto la possibilità di lavorare sia in PHP e Ruby on Rails. 616 00:28:52,120 --> 00:28:55,291 Preferisco di gran lunga Ruby on Rails causa di Ruby. 617 00:28:55,291 --> 00:28:56,790 Sicuramente, questa è una grande parte di esso. 618 00:28:56,790 --> 00:28:58,140 Come, quando sei la scelta del vostro quadro, 619 00:28:58,140 --> 00:28:59,490 anche scegliere la lingua. 620 00:28:59,490 --> 00:29:03,510 >> Ruby è eccellente accessible-- credo una lingua molto meglio di PHP. 621 00:29:03,510 --> 00:29:06,250 Ma questo è il tipo di preferenze personali. 622 00:29:06,250 --> 00:29:09,360 Come pure, un'altra considerazione è la comunità dietro il quadro 623 00:29:09,360 --> 00:29:11,570 che si sta lavorando con. 624 00:29:11,570 --> 00:29:13,840 >> In questo momento Ruby on Rails è veramente caldo. 625 00:29:13,840 --> 00:29:16,160 Ci sono tonnellate di sostegno alle spalle. 626 00:29:16,160 --> 00:29:19,180 Pubblichi qualcosa su Stack Overflow di un problema che sei 627 00:29:19,180 --> 00:29:22,350 avendo in Ruby on Rails, ed è risposto. 628 00:29:22,350 --> 00:29:26,900 Anche in questo caso, è open source, il che significa che è continuamente cambiato. 629 00:29:26,900 --> 00:29:28,910 Ci sono tonnellate di persone che sono in realtà dedicati 630 00:29:28,910 --> 00:29:32,370 al fine di rendere questo un quadro davvero impressionante. 631 00:29:32,370 --> 00:29:34,225 Quindi è per questo che vorrei scegliere Ruby on Rails. 632 00:29:34,225 --> 00:29:35,225 GABRIEL GUIMARAES: Sì. 633 00:29:35,225 --> 00:29:37,562 Direi che l'idea dietro la maggior parte dei quadri sei 634 00:29:37,562 --> 00:29:39,770 andando a scoprire c'è molto, molto simile, giusto? 635 00:29:39,770 --> 00:29:42,210 Così il Model View Controller, il fatto che il nostro controllore di 636 00:29:42,210 --> 00:29:44,793 andare a guardare come qualcosa come questo-- ciascuna funzione 637 00:29:44,793 --> 00:29:47,235 è come una delle tue pagine, e ti reindirizza, 638 00:29:47,235 --> 00:29:48,750 e inizializza le variabili. 639 00:29:48,750 --> 00:29:51,959 Che sta per essere la stessa cosa per ogni quadro che si vede là fuori. 640 00:29:51,959 --> 00:29:53,375 E ci sara 'il modello. 641 00:29:53,375 --> 00:29:55,270 E si può fare cose come, "appartiene a." 642 00:29:55,270 --> 00:29:59,830 Così, invece di fare la versione di SQL, appena, come, fare, user.tweets, 643 00:29:59,830 --> 00:30:01,210 e si ottiene tutto. 644 00:30:01,210 --> 00:30:02,650 Ognuno ha quello. 645 00:30:02,650 --> 00:30:07,070 Tranne in Ruby, si fa user.tweets, e poi alcuni framework in PHP, 646 00:30:07,070 --> 00:30:12,010 fate user.getalltweets DOVE mio PHP non è un problema. 647 00:30:12,010 --> 00:30:13,460 Come, è una grande linea. 648 00:30:13,460 --> 00:30:15,320 E 'la stessa cosa, ma è una grande linea. 649 00:30:15,320 --> 00:30:19,350 >> Ecco, questo è uno dei motivi principali delle mie preferenze su Ruby. 650 00:30:19,350 --> 00:30:22,290 E 'solo che fanno esattamente la stessa cosa in altri ambiti, 651 00:30:22,290 --> 00:30:26,021 mi prende solo due volte come lunghe linee di codice. 652 00:30:26,021 --> 00:30:26,520 OK? 653 00:30:26,520 --> 00:30:29,730 654 00:30:29,730 --> 00:30:32,540 >> Altre domande? 655 00:30:32,540 --> 00:30:35,200 >> ZACK CHAUVIN: Something Citerò quickly-- Gabe 656 00:30:35,200 --> 00:30:36,682 ha parlato un po 'di gemme. 657 00:30:36,682 --> 00:30:39,890 E questo è davvero un great-- Voglio dire, questo è una specie di comune a tutti i quadri, 658 00:30:39,890 --> 00:30:45,170 che c'è una specie di concept gemma, che è come nel mio piccolo esempio, 659 00:30:45,170 --> 00:30:46,680 Ho il login. 660 00:30:46,680 --> 00:30:48,460 Come, è possibile accedere, disconnettersi. 661 00:30:48,460 --> 00:30:51,740 Come, che in realtà tipo di un processo complesso. 662 00:30:51,740 --> 00:30:55,950 E 'stato gestito un po' bit per voi in PSET 7. 663 00:30:55,950 --> 00:31:01,160 Ma io ancora non so appieno come implementare sign-in, sign-out. 664 00:31:01,160 --> 00:31:03,740 E questo perché Ruby on Rails ha tonnellate 665 00:31:03,740 --> 00:31:06,080 di gemme che fanno cose del genere per voi. 666 00:31:06,080 --> 00:31:08,550 >> Ancora una volta, convenzione sulla configurazione. 667 00:31:08,550 --> 00:31:11,050 Ognuno sta andando a fare questo segno-in, step segno-out. 668 00:31:11,050 --> 00:31:14,450 Allora perché non fare un pacchetto, denominato Definire in questo caso, che è un gioiello. 669 00:31:14,450 --> 00:31:15,810 Basta includerlo. 670 00:31:15,810 --> 00:31:18,970 E poi c'è qualche aiuto in linea con il modo di usarlo. 671 00:31:18,970 --> 00:31:21,230 E non ci si deve preoccupare su qualcosa di simile. 672 00:31:21,230 --> 00:31:24,060 >> Allegare foto a queste things-- un gioiello per questo. 673 00:31:24,060 --> 00:31:27,220 Come, in qualsiasi momento si sta cercando di fare nulla di nuovo, c'è una gemma per questo. 674 00:31:27,220 --> 00:31:29,420 E tu tipo di appena mettere insieme queste gemme 675 00:31:29,420 --> 00:31:33,160 e costruire un molto complesso applicazione molto rapidamente. 676 00:31:33,160 --> 00:31:35,902 677 00:31:35,902 --> 00:31:37,437 Freddo. 678 00:31:37,437 --> 00:31:38,270 Altre domande? 679 00:31:38,270 --> 00:31:39,623 >> STEPHEN TURBAN: Woo-hoo. 680 00:31:39,623 --> 00:31:40,976 Non credo che [incomprensibile]. 681 00:31:40,976 --> 00:31:41,966 >> GABRIEL GUIMARAES: OK. 682 00:31:41,966 --> 00:31:42,840 Grazie mille, ragazzi. 683 00:31:42,840 --> 00:31:43,839 >> STEPHEN TURBAN: Buh-bye. 684 00:31:43,839 --> 00:31:44,850 ZACK CHAUVIN: Buh-bye. 685 00:31:44,850 --> 00:31:45,849 >> STEPHEN TURBAN: Woo-hoo. 686 00:31:45,849 --> 00:31:48,150 [Applausi] 687 00:31:48,150 --> 00:31:49,700 >> Sìì. 688 00:31:49,700 --> 00:31:50,955