>> [GIOCO MUSIC]
>> STEPHEN TURBAN: Quindi io sono Stephen Turban.
Sul lato qui, forse noi può ottenere alcune persone a tuffarsi in.
Abbiamo Gabriel e Zack.
Così, per una breve roadmap su ciò questo sta a guardare come,
Ho intenzione di fare un po 'estrema sguardo di alto livello a quello che MVC è.
Gabe?
>> GABRIEL GUIMARAES: Io vado a parlare di Ruby e un po '
come Rails funziona e come si può aiutano a costruire applicazioni web.
>> ZACK CHAUVIN: E io vado a mostrare un esempio specifico di come
utilizzare Rails per costruire un'applicazione super awesome.
STEPHEN TURBAN: Awesome.
Dolce.
Bene.
Quindi parliamo di MVC.
Così andiamo alla diapositiva successiva, che Farò premendo questo tasto.
E andiamo allo sviluppo next--, Mi piace pensare di andare a CVS,
perché CVS è un negozio e ha anche una V al centro.
>> E così immaginiamo in un negozio.
E facciamo questo negozio vendere solo una cosa.
Quindi stiamo andando ad avere questo memorizzare solo vendere questi tazze rosse.
E immaginate si cammina in, e si va alla parte anteriore del negozio, e persone.
E il suo nome è Vince.
>> E Vince onde ciao a voi, dice ciao.
E si nota una cosa su Vince.
Così ogni volta che pensiamo Vince, abbiamo deve pensare a due aggettivi chiave.
Vince è bello, ma è stupido.
OK.
In modo da sapere, non per colpa sua, purtroppo, è bello.
Egli è la nostra vista.
Quindi il nostro primo membro del cast è lì.
Tenetelo a mente.
>> Ora, si chiede Vince, si va, hey Vince.
Sono un cliente.
Egli dice ciao.
Voglio davvero una delle tazze rosse.
E cosa dice Vince?
Qualcuno ha qualche idea di cosa dice Vince?
Ho intenzione di chiamare freddo.
Cosa pensi Vince dice?
>> AUDIENCE: Egli dice, posso mostrarvi dove si trova, ma non posso darvi uno.
>> STEPHEN TURBAN: Egli dice, posso mostrarvi dove si trova, ma non posso darvi uno.
Ancora peggio.
Qualcun altro ha un altro idea di cosa Vince potrebbe dire?
>> AUDIENCE: Deve andare a controllare se hanno tazze rosse.
STEPHEN TURBAN: Vince non lo fa anche sapere che deve controllare.
Qualunque altra cosa?
Così lei ha detto, deve Controllare se ha tazze rosse.
Vai avanti.
AUDIENCE: Che cosa è una tazza rossa?
STEPHEN TURBAN: Che cosa è una tazza rossa?
Che cosa è una tazza rossa?
Vince è confuso.
Così Vince sta per parlare il nostro prossimo membro del cast, Carl.
E quando pensiamo Carl, abbiamo devo pensare a due grandi adjectives--
lui è di controllo, ma è incapace.
>> Così Vince goes-- lui va, che cosa è una tazza rossa?
Non so che cosa una tazza rossa è.
Si volta, e chiede Carl.
Egli dice, Carl, qualcuno chiesto una tazza rossa.
Puoi farlo?
E cosa dice Carl?
Facciamo capire.
Qualcuno ha qualche idea di cosa dice Carl?
E mi limiterò a ripetere di nuovo a voi.
Ho visto un movimento della mano.
>> AUDIENCE: Dice qualcuno altro per ottenere le tazze rosse.
>> STEPHEN TURBAN: Dice qualcun altro per ottenere la tazza rossa.
Esattamente.
E cosa abbiamo un'idea che quella persona potrebbe essere?
Si tratta di un suggerimento.
Sta per iniziare con una M. Mob?
>> AUDIENCE: Modello.
>> STEPHEN TURBAN: Il modello, sì.
Il suo nome non è il modello, purtroppo, perché questo è un nome stupido.
Abbiamo Mitt.
E quando pensiamo Mitt-- no, questo non è una foto di Zack.
Dobbiamo pensare a due aggettivi chiave con Mitt.
Lui è capace, ma è sottomesso.
Così Mitt sa quello che deve fare, ma davvero non si può fare nulla.
O davvero non può decidere da solo.
>> Così abbiamo Carl.
Carl grida a Mitt.
E dice, hey Mitt, abbiamo bisogno di tazze rosse.
E Mitt va alla sua coppa depositario rossa.
Afferra una tazza, e lo dà indietro.
Qualcuno ha qualche idea di cosa succede allora?
Dà la coppa.
Finora Mitt è andato al suo rosso repository tazza, portato fuori,
controllato fuori, ha detto, Ho preso una tazza rossa.
E lui sta dando a Carl.
Hai un'idea?
Cosa pensi Carl fa?
>> AUDIENCE: Carl dà a Vince.
>> STEPHEN TURBAN: Carl dà a Vince.
Vince.
>> AUDIENCE: E Vince mostra a [incomprensibile].
STEPHEN TURBAN: Esattamente.
Ecco, questo è esattamente.
Così Vince prende il calice, non sa nemmeno cosa sia,
ma mostra all'utente.
Quindi cerchiamo di ricreare davvero breve.
E Avremo bisogno tre volontari silenziosi,
come voi ragazzi non stanno andando essere in grado di parlare.
Così ho potuto prendere tre?
OK.
E chi vorresti essere?
>> PUBBLICO: Sarò Vince.
>> STEPHEN TURBANTE: Vince, OK.
Bella ma stupido.
Grande.
Qualcun altro?
Stiamo cercando un capace ma sottomesso.
Qualcun altro vuole essere in grado?
>> PUBBLICO: Potrei essere Carl.
STEPHEN TURBAN: Sweet.
Abbiamo Carl.
>> AUDIENCE: Mitt.
>> STEPHEN TURBANTE: Mitt, OK.
E stiamo andando ad avere bisogno a-- Sarò il cliente.
Quindi forza su, vieni su.
Ed è tutto in vista?
Quindi ho intenzione di chiedere Vince a stare nella parte anteriore, appena sorridente,
proprio sorridente brillante come possibile.
E stiamo andando a chiedere Carl, a destra, perché non è vero, come,
stare proprio dietro di lei?
E Mitt, perché non basta andare fuori nella parte posteriore,
e poi ti darò un gruppo di tazze per appendere fuori con.
>> Quindi sono un cliente.
Io vengo.
E faccio [incomprensibile] I Dico, ciao, vorrei una tazza.
Perfetto.
Così Vince non ha idea.
Così che cosa fare dopo Vince?
Vince-- OK, quindi ho intenzione essere narrare ora.
>> Vince grida a Carl, coppa!
Che cosa fa Carl fare?
Carl urla Mitt.
Mitt afferra una tazza.
Mitt dà a Carl.
Carl torna a Vince.
E Vince mostra all'utente.
>> E questo è un alto, alto, alto così in alto sguardo, a MVC.
Noi dividiamo per avere una visione, cosa l'utente vede, un controller, qualcuno
che fa tutto in background ma davvero non si può aggiornare nulla
o non può fare nulla di significativo tranne chiamando la vista e il modello.
E poi abbiamo Mitt, il modello, che aggiorna qualsiasi dato che abbiamo.
Quindi grazie mille per la nostra bella, controllo, e volontari capaci.
E penso che è stato.
>> [Applausi]
>> Penso che Gabe sta per parlare ora su un alto livello auspicabilmente meno.
>> GABRIEL GUIMARAES: OK, ragazzi.
Ora parliamo un po 'di più codice e su Ruby on Rails stesso,
e di come esso si riferisce per tutto di questa storia MVC.
Fondamentalmente, Ruby on Rails è un framework.
Più che in un secondo.
>> Ma solo per darvi un senso di chi sta usando,
come, tutti questi grandi companies-- così GitHub, Groupon, Twitter--
sono tutti con Ruby on Rails come quadro principale
di attuare il loro sito web.
Quindi sono sicuro che un sacco di gente hanno usato questi siti web qui.
Ed è tutto Ruby on Rails per attuare il modello, la vista, e il controllore
su tutti questi siti web e molti altri.
OK?
>> Così come ho detto, Ruby on Rails è un framework.
E si può tipo di pensare ad un quadro nel senso di come costruire una casa.
Quindi, se avete intenzione di costruire un house-- e si può sempre
ripartire da zero, giusto?
Si può provare a venire con un modo per segare il legno,
e per portare il legno al posto, e per ottenere le pietre nella forma giusta,
e poi tutto questo.
Ma che sta andando a prendere probabilmente un sacco di anni
fino ad ottenere tutto il materiale, e si ottiene tutto insieme,
e di iniziare effettivamente per costruire la vostra casa.
>> Così si scopre se si inizia con un quadro con qualcosa che è
già sorta di in posto per qualsiasi tipo di casa
che si desidera qualcosa di build-- che è molto generico, ma che si può
poi modellare verso il proprio goals-- allora è possibile sfruttare
questo potere dei quadri per costruire loro qualcosa di molto, molto più veloce.
OK.
Quindi questa è la stessa idea in un framework per un'applicazione web
o per qualsiasi tipo di applicazione, per quella materia.
>> In realtà avvia con mezza un'applicazione
già lì in posto per voi.
E con questo, voglio dire che si ottiene un sacco di i file che già hanno funzioni,
come le biblioteche, come la funzionalità, e comandi che è possibile eseguire in modo
per rendere la vita molto più semplice e più facile.
OK.
>> Quindi, in questo caso, stiamo andando per parlare di Ruby on Rails.
Ci sono un sacco di diversi telai, là fuori.
C'è Django per Python.
C'è framework Zend o Laravel per PHP.
Ci sono un sacco di diversi.
Ruby on Rails è una nuova bella bella.
Un sacco di gente usa quella in start-up e questo tipo di ambiente.
E alcuni di questi molto grande le aziende che ho mostrato qui prima
sono anche utilizzando Ruby on Rails.
>> Quindi, solo per darvi un senso di ciò che Ruby è
come, dal momento che voi siete più utilizzato a, come, C e un po 'di PHP
Ora, così Rubino sarà la equivalente di PHP in questo senso.
Questo non è Ruby.
Questo è C. OK?
Ma questo è come la Funzione DJBHash che
conoscere molte persone utilizzate per errori ortografici PSET.
>> E in Ruby, piuttosto proprio come in PHP, è
potrebbe attuare questo con solo poche righe di codice.
Invece di doversi preoccupare sulla funzione di hash,
doversi preoccupare i secchi, e tutto questo, si può solo dire,
dizionario = Hash.net.
E quindi si utilizza un po 'come la stessa idea che aveva PHP.
E così è per vero.
E poi se si vuole controllare, in modo da verificare la funzione
sarebbe se dizionario "foo" eguagliato uguale true, true.
E questo è tutto, OK?
>> Così si notano alcune differenze.
Non ci sono punti e virgola qui, come c'erano in C.
Ma l'idea generale è molto simile.
OK?
>> Inoltre, in rubino, ci sono gemme che sono tipo di librerie di Ruby.
E Rails li gestisce in un modo molto bello per voi.
Quindi, se volete mettere in qualche libreria che
does-mail, o che fa messaggi di testo,
o che fa l'integrazione con Facebook, o qualsiasi tipo di cosa
così per la vostra applicazione, è molto, molto facile.
Le probabilità sono che si può trovare qualcosa come quella su internet.
E solo fare qualcosa come put che
gioiello che si desidera utilizzare nel file gemma.
E poi Rails installa tutto.
Non dovete preoccuparvi di qualsiasi di questo, così che è davvero cool.
Inoltre, non c'è molto, un sacco di guida in linea.
Così si può trovare un sacco di cose.
Se si dispone di un errore, si può solo Google esso,
e sarà molto facile da ottenere aiuto.
>> Ed è un sacco di fun-- exactly-- perché
non devono preoccuparsi del basso livello dettagli, realizzazione di tabelle hash
e di dover venire con tutti le intestazioni HTTP, e un sacco di cose,
e anche alcune cose di livello più alti.
Non devi preoccuparti a tale proposito in Rails.
Lo fa molto, molto bene per voi.
E stiamo per mostrare che più concretamente molto presto.
OK.
>> Quindi un po 'di Rubino di nuovo.
Quindi è proprio come C, come ho detto.
Invece di printf, diciamo "Mette", che è "mettere stringa."
Si mette una stringa alla console.
E in questo caso, siamo solo la stampa "Ciao Mondo".
Non abbiamo bisogno delle parentesi, ma è praticamente simile.
>> E poi se si vuole di fare qualcosa qui,
come stampare un gruppo di "Smalls" e un gruppo di "big" in un ciclo While,
è un po 'come in C, giusto?
Non hai i params, ma è praticamente la stessa.
Il rientro qui conteggi, quindi x è uguale a 1.
E poi mentre x è minore di 50-- questo è un caso, questo è un resto.
E 'molto simile a quello che avete visto.
>> E poi x + = 1 è solo incrementando, un po 'come fare il ++ che è possibile
fare in C. Ma è abbastanza molto quello che hai visto in C.
Non dovrebbe essere troppo complicato.
Ma è più potente.
Quindi ci sono alcuni comandi qui che sono sicuramente un po 'più recente.
>> Così ad esempio, "puts".
È possibile utilizzare questa notazione hashtag qui per stampare solo something--
più o meno come quello che si potrebbe fare se la% D o% C o un po 'così.
E si può effettivamente porre Se subito dopo la dichiarazione.
Quindi voglio solo fare questo-- Se x è maggiore di 3.
Allora, perché avrei dovuto fare un intero Se il blocco?
Non lo so.
Posso solo stampare questo solo se x è uguale a superiore a 3.
Quindi questo è un modo una riga di fare questo in Ruby.
>> Un elenco in Ruby è qualcosa di molto versatile.
Quindi non si ha realmente bisogno di avere un solo tipo.
Si può avere una stringa, e quindi alcuni numeri, e quant'altro.
E se si desidera aggiungere qualcosa a una lista,
si può semplicemente utilizzare questo Notazione proprio qui.
>> E se si desidera scorrere.
Praticamente il 4each in PHP, qui, avere una lista e si fa "List.each fare."
E questo "elem," questo è come il nome di ogni elemento
che ho intenzione di avere nella mia lista.
E poi posso solo "mette elem."
E "mette" più o meno maniglie mettendolo per voi, stamparlo.
Non importa se si tratta di una stringa o un int.
Sta andando a lavorare che per voi.
Giusto?
Freddo.
>> E proprio come PHP, Ruby e HTML anche integrare molto, molto bene.
E qui, c'è qualche HTML con Ruby in esso.
Così abbiamo un tag corpo come in HTML.
E se vogliamo controllare che un utente è, ad esempio,
connesso, possiamo solo dire, inizio Ruby, se user.logged_in ?, fine di Ruby.
Stampa questa intera cosa, che ha qualche rubino in esso, che è solo
un po 'come quella sintassi per PHP che stampa una variabile.
Facciamo stampare il user.name.
>> Quindi benvenuto, Stephen, all'interno di un div HTML.
E alla fine, abbiamo un "fine" e Codice Ruby, il che significa che questo è il mio
Se blocco.
OK?
Quindi è proprio come un senza soluzione di continuità integrazione tra Ruby e HTML.
Ci sono anche un sacco di risorse.
Ma prima di andare avanti, qualcuno Per eventuali domande su Ruby, niente?
OK.
>> Ci sono un sacco di risorse on-line a tryruby.org, Codice Academy,
ruby-lang.org, dove si può provare sul browser prima di realmente
Dico, oh, OK, ho intenzione di usare Rubino per il mio progetto finale.
E così sicuramente dare quelle una prova.
Tutte queste diapositive sono sarà disponibile on-line,
quindi si può semplicemente scaricare.
E sì?
>> AUDIENCE: [incomprensibile] quello che hai appena fatto vedere
fu HTML e il codice embedded in a questa nozione di Model View
Controller?
>> GABRIEL GUIMARAES: Sì.
Lo faremo in un secondo quando mostriamo il nostro esempio, OK?
Grazie per la domanda.
Quindi la domanda era fondamentalmente se può mostrare questa integrazione di Ruby
in HTML all'interno del modello Visualizza quadro Controller.
>> Così l'idea del Modello Quadro View Controller
è che è fondamentalmente una filosofia, proprio come Stephen mostrato qui.
E non è una cosa che si deve fare,
ma è qualcosa che fa la vostra vita molto più semplice.
E Ruby on Rails è costruita attorno a questa filosofia di codice.
Quindi stiamo andando a mostrare un esempio molto presto.
>> Così Rails è amore.
Un sacco di persone stanno usando, come ho detto.
Ed è davvero divertente.
Voi ragazzi dovrebbero sicuramente fare un tentativo.
MVC rende tutto più semplice.
Così il Model View Controller, le cose che separano
e mettendo una persona, per se, o una parte della vostra applicazione
fare ciascuno dei diversi lavori che l'applicazione deve fare.
E meno tempo speso sui problemi di basso livello.
E molto popolare in questo momento.
Abbiamo Rails 4.0, che è una nuova versione.
E si tratta di un sacco di cose interessanti.
Un'altra domanda.
>> AUDIENCE: Un'altra domanda.
Ruby on Rails contro Ruby on Rails Grails.
>> GABRIEL GUIMARAES: OK.
La domanda era, Ruby on Rails contro Ruby--
AUDIENCE: Grails.
Ruby?
>> GABRIEL GUIMARAES: Sì.
Così Ruby è il linguaggio.
>> AUDIENCE: No.
Ti sto chiedendo di confrontare una lingua e un quadro, Ruby on Rails,
con un altro linguaggio popolare framework-- Grails-- con Ruby
on Rails.
>> GABRIEL GUIMARAES: OK.
Scusi.
La questione è stata, confrontare Ruby e Ruby on Rails
ad un altro quadro e another--
>> AUDIENCE: Ruby.
Va bene.
Se non si sa a questo proposito, va bene.
>> GABRIEL GUIMARAES: Come, quello che ho capito è che--
>> AUDIENCE: C'è un altro framework Grails chiamati.
>> GABRIEL GUIMARAES: Oh, Grails.
Non ho mai sentito parlare.
Scusi.
Non ho mai sentito parlare di Groovy on Rails.
Scusi.
>> AUDIENCE: E 'molto meglio integrato con Java.
>> GABRIEL GUIMARAES: Capisco.
>> PUBBLICO: Sono solo curioso su alcune persone che conosco like--
>> GABRIEL GUIMARAES: No, non ho mai sentito parlare di quella, purtroppo.
Grails.
>> AUDIENCE: E alcune persone ovviamente, come Ruby on Rails.
>> GABRIEL GUIMARAES: Ho usato Ruby on Rails molto.
Ho usato un po 'Django con Python, come ho detto.
Ho usato un po Laravel.
Ma io non avevo usato Groovy on Rails.
Scusi.
Ed è molto popolare ora con Rails 4.0.
Come, alcune delle cose che Rails fa per voi, per esempio, sei tu
hanno un sacco di file CSS e un sacco di file JavaScript.
E si può trattare come separato e tutto.
>> Ma poi, quando automatically-- di inviare il codice per la produzione,
compila automaticamente tutti in un unico file
che è minified senza spazi, in modo da occupare
meno spazio nella vostra applicazione, in modo da che si può davvero scalare le cose molto.
Ecco perché queste grandi aziende come Twitter e GitHub
utilizzano Rails, perché fa tutto che per voi, che è davvero cool.
>> Una cosa che è molto, molto, molto scoraggiante
per le persone, me compreso, che stanno cercando di lavorare
con un quadro dell'inizio, è che quando si avvia un'applicazione,
si sta andando a vedere un gruppo di file.
Come, quando si creano Rails Nuova, My Application,
si sta andando a vedere tutti questi folders-- app, bin, config, db, lib,
log, pubblico.
Come, un sacco di roba.
>> E la prima volta che ho visto che, ero come,
OK, non ho idea di cosa stia succedendo.
Voglio solo creare un sito web con "Ciao, mondo"
e questo mi sta dando, come, 100 miliardi di diverse pagine.
Non so cosa sta succedendo.
Quindi, per favore non essere troppo scoraggiati da questo.
>> L'idea è che in realtà ha la metà di una casa per voi già.
Esso ha un intero framework per voi già.
Ecco perché ci sono così tanti file.
Ma la cosa bella è che si separa tutti molto bene.
Le probabilità sono che non ci si deve preoccupare sulla maggior parte di queste cartelle.
>> La più importante, direbbe, è la cartella app,
dove la vostra applicazione vive attualmente.
Così il config, si sta andando a hanno di configurare alcune cose,
come la vostra base di dati e cose del genere quale tipo di database che si sta utilizzando.
Ma a parte questo, come la maggior parte dei il lavoro sta per essere fatto in app.
Così in app, avete attività, controllori, aiutanti, mailer, modelli, viste.
Così qui, si inizia a vedere che controller, modelli e viste venire
in gioco.
>> Mailers sono solo se si vogliono inviare e-mail.
Helpers se si desidera creare alcune funzioni
che si usa molto in vista.
Così li metti in aiutanti.
E patrimonio è fondamentalmente tutti le immagini, tutti i tuoi CSS,
tutto il vostro JavaScript, e come quei generi
di cose che vengono inviati al client.
E tutto ciò che è in attività, che ho detto prima, viene minified.
E 'compilato.
E non si hanno veramente a preoccuparsi che quando si va a codice di produzione.
Freddo.
>> Ora Zack sta per entrare, e lui è intenzione di fare un esempio di Twitter50.
>> AUDIENCE: Woo-hoo!
>> ZACK CHAUVIN: Awesome.
Così ho avuto la possibilità di lavorare con Ruby on Rails questa estate.
E 'un quadro sorprendente.
Sono molto parziale esso.
E io ti faccio vedere solo un po 'di un esempio di quello che potrebbe sembrare.
Saltate a Chrome.
Quindi questo è un esempio di una semplice Ruby on Rails application-- qualcosa
come questo è qualcosa che Ruby eccelle veramente
che-- proprio dove la tua i modelli sono molto ben definiti.
>> In questo esempio, si vedrà due modelli differenti, che
sono che abbiamo utenti e abbiamo tweets.
Quindi questo è Twitter50, Proprio Twitter di Harvard.
Come potete vedere, ho entrato comezack.
E sono in grado di fare nuovi tweet.
Così ho think-- "Questo è un" - mi dispiace?
AUDIENCE: [incomprensibile].
ZACK CHAUVIN: Oh, OK.
Necessità di arrestare il server.
Eccellente.
Così eccoci qui.
Come potete vedere, abbiamo il nostro Twitter applicazione qui.
Ed è super facile da avviare il server.
Dobbiamo solo fare "rotaie server."
Grande.
OK.
Grazie per questo.
Così ora stiamo correndo.
>> E noi diciamo: "Questo è un seminario impressionante. "
E vediamo cosa succede.
Quindi dovremo Tweet su di esso.
Giù in basso, si può vedere ora c'è più di tre tweets.
Così abbiamo un po ' di impaginazione in corso.
E noi abbiamo quel tweet.
E posso anche cercare attraverso il mio Ricerca tweets-- per questo e le due
quelli che hanno la parola "Questo" in loro vedere.
Possiamo anche cancellare i tweet da cliccando sul piccolo pulsante Elimina.
E ovviamente, posso eliminare solo il post che mi apparteneva.
>> Già, quasi abbiamo la funzionalità di Twitter.
Come, quando si pensa a questo proposito, Twitter in realtà non fa più di tanto.
Ha utenti, ha tweets.
Ci sono alcune funzionalità più complesse.
Ma quando si ha realmente arriva al dunque, è piuttosto una semplice Ruby on Rails app.
E qualcosa di simile, con un buona conoscenza di Ruby on Rails,
si potrebbe probabilmente fare in un'ora o due.
>> E che viene veramente torna al mantra Ruby,
che è convenzione sulla configurazione.
Così nel giorno, la gente, in qualsiasi momento volevano fare questo sito,
avrebbe dovuto partire da zero.
OK, voglio fare un sito web.
Facciamo questo file e questo file e questo file.
>> Con Ruby on Rails, c'è niente di tutto questo.
Tu dici, io voglio una nuova applicazione.
E proprio come Gabe ci ha mostrato, è crea l'intera struttura dei file per noi.
E abbiamo appena cambiamo piccole parti che abbiamo bisogno di.
Abbiamo appena Personalizziamo cosa che rende unico il nostro app.
Freddo.
Quindi tornando alla nostra presentazione preview-- interessante.
Dove vi presento?
AUDIENCE: Schermo intero.
In alto a destra.
>> ZACK CHAUVIN: Excellent.
Freddo.
OK.
Quindi, prima di tutto, il modello.
Stephen ha fatto un impressionante compito di delineare MVC.
E ora stiamo andando a relazionarsi che torna a Ruby on Rails.
Così il modello si può tipo di pensare come il database.
Sei stato vedendo questo in CS50 Finanza, dove i negozi modello
le informazioni su quante scorte avete,
o tutte le operazioni che hai fatto.
Questo è un esempio di una linea di come si farebbe
fare per fare un nuovo modello in Rails.
Quindi voglio un utente.
Sta per avere un email, che è una stringa,
e una password, che è anche la stringa.
Così è come those-- voglio ogni riga in mio tavolo di utenti a guardare in quel modo.
>> Una parte davvero impressionante su Rails è che
rende superfluo scrivere qualsiasi SQL praticamente.
Quanti di voi ragazzi amati scrivere SQL in PSET 7?
Esattamente.
SQL non è molto user-friendly.
E Rails astrae tutto questo via con questi comandi veramente facile.
Così, per esempio, se abbiamo un utente, un utente ha molti tweets.
E ognuno di questi tweets appartiene a un utente.
>> Quindi, se si guarda qui, questo è il nostro modello per il nostro tweet.
E tutto quello che dobbiamo dire è questo singolo line-- Sono un tweet
e io appartengo a un utente.
E con quella singola linea e un po 'di configurazione del database,
Rails imposta questo rapporto.
In qualsiasi momento, posso solo dire, zack.tweets, come, dammi tutti i tweets Zack.
No SQL.
Super facile.
Ancora una volta, questo è convention over configurazione che entrano in gioco.
>> Si può vedere un po ' di un esempio di rubino qui.
Come Gave detto, scrivendo Ruby è un po 'come scrivere in inglese.
Si tratta di un linguaggio di livello molto alto, e lo rende veramente facile
per noi di dire le cose come, voglio fare in modo che questo tweet ha un corpo.
La sua presenza è vera.
E voglio fare in modo che questo Tweet, proprio come normale Twitter,
ha una lunghezza massima di 140.
E 'super-intuitivo, un davvero grande linguaggio.
>> Next up abbiamo la vista.
Quindi si tratta di HTML e CSS.
Ed ecco un esempio di una visione.
Così Ruby on Rails tipo di senza soluzione di continuità integra sia Ruby e HTML
per generare quello che vogliamo sulla pagina.
Quindi questo è un esempio di una layout.
Così si può vedere alcuni tag che si ragazzi sono abituati, come HTML, corpo,
tutta quella roba buona.
>> E proprio qui, però, incorporare alcune Rubino dicendo,
se c'è un messaggio da visualizzare, quindi visualizzare il messaggio in un div.
Quindi non voglio entrare troppo in quello.
Ma questo è generalmente un pagina che viene visualizzata on--
e non importa quale pagina si è su, questo viene reso.
Quindi questo è ciò che viene incluso sempre.
Freddo.
>> Un altro esempio di questo è view-- quello in cui ha scelto tutti i tweet.
E alcune di queste cose potrebbe apparire piuttosto familiare.
Così, per esempio, proprio qui, siamo looping attraverso ciascuno dei tweets,
e noi li stiamo stamparli.
Così qui è dove siamo stampando il corpo.
E se user-- del Tweet ecco una vero esempio di non SQL è coinvolto.
Sto solo chiedendo, è questo utente di Twitter l'utente corrente?
Poi mostra un link per eliminarlo.
E 'super semplice.
>> Il controllore.
Quindi questo è, di nuovo, l'interfaccia tra il modello e la vista.
E 'quello che fa il lavoro duro del interacting-- essere l'intermediario.
Carica le informazioni per la Consideriamo, che vedremo in un secondo.
E per interagire con il modello,
chiede metodi del modello, che sono ciò che voi siete a conoscenza come funzioni.
>> Così, per esempio, questo è controllore del nostro tweet.
Potrebbe sembrare un po ' scoraggiante in questo momento.
Ma in realtà è super-intuitiva una volta che si avvia immersioni in.
Così, per esempio, nel nostro indice, che è dove vogliamo mostrare tutti i tweet.
E così questa linea sostanzialmente solo chiede per tutti i tweets.
E poi si inizializza entrambi le nuove tweet-- così come
se vogliono creare un nuovo tweet in quella pagina.
>> E chiede che cosa l'utente corrente è.
E questo è molto simile alla rendering che avete visto in PSET 7,
dove è solo tipo di raccontare il view-- è una specie di, come,
passando le variabili che sei andando ad avere bisogno della vista alla vista.
E c'è un sacco Metodi di differenti
tale controller di questo tweet in grado di gestire.
>> Ma in realtà, Rails fa un grande lavoro di tipo
di dividendoli in diversa azioni che il controller possa fare.
Ci sono domande su nessuna delle parti MVC di Rails?
Tipo di appena una brezza.
Così voi potete controllare fuori da soli.
Impressionante.
Terremo in corso.
>> Così l'installazione di Rails.
Installazione di Rails potrebbero essere, come, una delle parti più scoraggianti
dell'intero rotaie processo, purtroppo.
Ma, ovviamente, tutti Ci sono in giro per aiutare.
Ed una volta che è lì, un sacco di grandi risorse,
come Gabe accennato, per iniziare.
Ecco i link che avrete bisogno per
per scaricare Rails per farlo installato sulla vostra macchina.
Ovviamente, è disponibile per Windows e Mac
e per l'apparecchio CS50.
Domande su tutto ciò che abbiamo detto?
>> PUBBLICO: Sarei interessati, actually--
quindi so che il download software è il più grande ostacolo.
Se c'è abbastanza interesse per avere un download mini sessione o qualcosa.
ZACK CHAUVIN: Mm-hm.
Sì.
Questo potrebbe essere davvero utile.
Se qualcuno è davvero entusiasta su utilizzare questo per il loro progetto
o in futuro, allora saremmo sicuramente felice di parlare con te di questo.
Mm-hm.
>> PUBBLICO: Una questione collegata per quello che ho chiesto prima.
Per quelli di voi che hanno fatto altre strutture che sono ancora
cercando di fare lo stesso cosa, facilitare
per costruire un sito web o un funzionalità, credo che qualsiasi senso
del perché saremmo on Rails contro Zend o alcune delle altre strutture
e linguaggi.
>> ZACK CHAUVIN: mi limiterò a dire il mio $ 0,02 a tale proposito.
Adoro Ruby on Rails.
Ho avuto la possibilità di lavorare sia in PHP e Ruby on Rails.
Preferisco di gran lunga Ruby on Rails causa di Ruby.
Sicuramente, questa è una grande parte di esso.
Come, quando sei la scelta del vostro quadro,
anche scegliere la lingua.
>> Ruby è eccellente accessible-- credo una lingua molto meglio di PHP.
Ma questo è il tipo di preferenze personali.
Come pure, un'altra considerazione è la comunità dietro il quadro
che si sta lavorando con.
>> In questo momento Ruby on Rails è veramente caldo.
Ci sono tonnellate di sostegno alle spalle.
Pubblichi qualcosa su Stack Overflow di un problema che sei
avendo in Ruby on Rails, ed è risposto.
Anche in questo caso, è open source, il che significa che è continuamente cambiato.
Ci sono tonnellate di persone che sono in realtà dedicati
al fine di rendere questo un quadro davvero impressionante.
Quindi è per questo che vorrei scegliere Ruby on Rails.
GABRIEL GUIMARAES: Sì.
Direi che l'idea dietro la maggior parte dei quadri sei
andando a scoprire c'è molto, molto simile, giusto?
Così il Model View Controller, il fatto che il nostro controllore di
andare a guardare come qualcosa come questo-- ciascuna funzione
è come una delle tue pagine, e ti reindirizza,
e inizializza le variabili.
Che sta per essere la stessa cosa per ogni quadro che si vede là fuori.
E ci sara 'il modello.
E si può fare cose come, "appartiene a."
Così, invece di fare la versione di SQL, appena, come, fare, user.tweets,
e si ottiene tutto.
Ognuno ha quello.
Tranne in Ruby, si fa user.tweets, e poi alcuni framework in PHP,
fate user.getalltweets DOVE mio PHP non è un problema.
Come, è una grande linea.
E 'la stessa cosa, ma è una grande linea.
>> Ecco, questo è uno dei motivi principali delle mie preferenze su Ruby.
E 'solo che fanno esattamente la stessa cosa in altri ambiti,
mi prende solo due volte come lunghe linee di codice.
OK?
>> Altre domande?
>> ZACK CHAUVIN: Something Citerò quickly-- Gabe
ha parlato un po 'di gemme.
E questo è davvero un great-- Voglio dire, questo è una specie di comune a tutti i quadri,
che c'è una specie di concept gemma, che è come nel mio piccolo esempio,
Ho il login.
Come, è possibile accedere, disconnettersi.
Come, che in realtà tipo di un processo complesso.
E 'stato gestito un po' bit per voi in PSET 7.
Ma io ancora non so appieno come implementare sign-in, sign-out.
E questo perché Ruby on Rails ha tonnellate
di gemme che fanno cose del genere per voi.
>> Ancora una volta, convenzione sulla configurazione.
Ognuno sta andando a fare questo segno-in, step segno-out.
Allora perché non fare un pacchetto, denominato Definire in questo caso, che è un gioiello.
Basta includerlo.
E poi c'è qualche aiuto in linea con il modo di usarlo.
E non ci si deve preoccupare su qualcosa di simile.
>> Allegare foto a queste things-- un gioiello per questo.
Come, in qualsiasi momento si sta cercando di fare nulla di nuovo, c'è una gemma per questo.
E tu tipo di appena mettere insieme queste gemme
e costruire un molto complesso applicazione molto rapidamente.
Freddo.
Altre domande?
>> STEPHEN TURBAN: Woo-hoo.
Non credo che [incomprensibile].
>> GABRIEL GUIMARAES: OK.
Grazie mille, ragazzi.
>> STEPHEN TURBAN: Buh-bye.
ZACK CHAUVIN: Buh-bye.
>> STEPHEN TURBAN: Woo-hoo.
[Applausi]
>> Sìì.