[REPRODUCCIÓN DE MÚSICA] STEPHEN TURBANTE: Así que estoy Stephen turbante. Más en el lado de aquí, tal vez puede llegar a algunas personas a bucear en. Tenemos Gabriel y Zack. Así que para una breve hoja de ruta sobre lo esto va a ser similar, Voy a estar haciendo algunos muy mirada de alto nivel en lo MVC es. Gabe? GABRIEL GUIMARAES: Voy a hablar de Ruby y un poco cómo Rails obras y cómo se puede ayudará a construir aplicaciones web. ZACK CHAUVIN: Y yo voy a mostrarte un ejemplo específico de cómo utilizar los carriles para construir una aplicación muy impresionante. STEPHEN TURBANTE: Awesome. Sweet. Bien. Así que vamos a hablar de MVC. Así que vamos a ir a la siguiente diapositiva, que Voy a hacer presionando este botón. Y vamos a ir al desarrollo next--, Me gusta pensar en ir a CVS, porque CVS es una tienda y también tiene una V en el centro. Y así, imaginemos a una tienda. Y vamos a hacer esta tienda vender una sola cosa. Así que vamos a tener este almacenar sólo vender estas tazas rojas. Y se imagina que entras y te vas a la parte delantera de la tienda, y la persona. Y su nombre es Vince. Y Vince ondas hola a usted, dice hola. Y te das cuenta una cosa sobre Vince. Así que cada vez que pensamos acerca de Vince, que tienen que pensar en dos adjetivos clave. Vince es hermoso, pero es estúpido. DE ACUERDO. Así que ya sabes, no por culpa suya, por desgracia, es hermoso. Él es nuestro punto de vista. Así que nuestro primer miembro del reparto está ahí. Tenga esto en cuenta. Ahora, usted pregunta Vince, te vas, hey Vince. Soy un cliente. Él dice hola. Tengo muchas ganas de uno de sus tazas rojas. ¿Y qué dice Vince? ¿Alguien tiene alguna idea de lo que dice Vince? Voy a llamar frío. ¿Qué opinas de Vince dice? AUDIENCIA: Él dice, te puedo mostrar donde está, pero no puedo darte una. STEPHEN TURBANTE: Él dice, te puedo mostrar donde está, pero no puedo darte una. Lo que es peor. ¿Alguien más tiene otra idea de lo que Vince podría decir? AUDIENCIA: Tiene que ir cheque si tienen alguna tazas rojas. STEPHEN TURBANTE: Vince no lo hace incluso saber lo que tiene que comprobar. Algo más? Así que usted ha dicho, tiene que comprobar si tiene tazas rojas. Seguir adelante. AUDIENCIA: ¿Cuál es una taza roja? STEPHEN TURBANTE: ¿Qué es una taza roja? ¿Qué es una taza roja? Vince es confusa. Así Vince va a hablar con nuestro próximo miembro del reparto, Carl. Y cuando pensamos en Carl, nos tengo que pensar en dos grandes adjectives-- él es de control, pero es incapaz. Así Vince goes-- él va, lo que es una taza roja? No sé lo que es una taza roja. Se da la vuelta, y le pide a Carl. Él dice, Carl, alguien pidió una taza roja. ¿Puedes hacer eso? ¿Y qué dice Carl? Vamos a averiguarlo. ¿Alguien tiene alguna idea de lo que dice Carl? Y sólo voy a repetir de nuevo a usted. Vi un movimiento de la mano. AUDIENCIA: Él le dice a alguien otra cosa para conseguir las copas rojas. STEPHEN TURBANTE: Le dice otra persona para obtener la taza roja. Exactamente. Y tenemos una idea que esa persona podría ser? Es una pista. Se va a comenzar con una M. Mob? AUDIENCIA: Modelo. STEPHEN TURBANTE: El modelo, sí. Su nombre no es el modelo, por desgracia, porque eso es un nombre tonto. Tenemos Mitt. Y cuando pensamos en Mitt-- no, esto no es un cuadro de Zack. Tenemos que pensar en dos adjetivos clave con Mitt. Es capaz, pero él es sumiso. Así Mitt sabe lo que tiene que hacer, pero en realidad no puede hacer nada. O en realidad no puede decidir por sí solo. Así que tenemos Carl. Carl grita a Mitt. Y dice, hey Mitt, necesitamos tazas rojas. Y Mitt va a su taza de depósito rojo. Él agarra una taza, y se lo devuelve. ¿Alguien tiene alguna idea de lo que pasa entonces? Da la taza. Hasta ahora Mitt ha subido a la red repositorio taza, toma hacia fuera, comprobado si fuera poco, dijo, Tomé una taza roja. Y él está dando a Carl. ¿Tiene una idea? ¿Qué opinas Carl hace? AUDIENCIA: Carl se lo da a Vince. STEPHEN TURBANTE: Carl se lo da a Vince. Vince. AUDIENCIA: Y Vince muestra a [inaudible]. STEPHEN TURBANTE: Exactamente. Así que esa es exactamente la misma. Así Vince toma la copa, ni siquiera sabe lo que es, sino que muestra al usuario. Así que vamos a tratar de recrear esto realmente brevemente. Y vamos a necesitar tres voluntarios silenciosas, como ustedes no van para poder hablar. Así pude agarrar tres? DE ACUERDO. ¿Y quién le gustaría ser? AUDIENCIA: Estaré Vince. STEPHEN TURBANTE: Vince, OK. Hermoso pero estúpido. Grande. ¿Alguien más? Estamos buscando a un capaz, pero sumiso. Alguien más quiere ser capaz? AUDIENCIA: Yo podría ser Carl. STEPHEN TURBANTE: Sweet. Tenemos Carl. AUDIENCIA: Mitt. STEPHEN TURBANTE: Mitt, OK. Y vamos a necesitar a-- Voy a ser el cliente. Así que vamos arriba, vamos arriba. Y está todo el mundo a la vista? Así que voy a preguntar a Vince de pie en la parte delantera, justo sonriente, simplemente sonriendo tan brillante como sea posible. Y vamos a pedir a Carl, derecho, ¿por qué no lo hace usted, como, de pie justo detrás de ella? Y Mitt, ¿por qué no sólo tiene que ir fuera en la parte de atrás, y luego te voy a dar un grupo de tazas para pasar el rato. Así que soy un cliente. Vengo. Y hago [inaudible] I digo, hola, me gustaría una taza. Perfecto. Así que Vince no tiene ni idea. Entonces, ¿qué hacer a continuación Vince? Vince-- bien, así que voy ser narrar ahora. Vince le grita a Carl, taza! ¿Qué hace Carl? Carl le grita a Mitt. Mitt agarra una taza. Mitt lo da a Carl. Carl lo devuelve a Vince. Y Vince muestra al usuario. Y eso es un alto, alto, alto tan alto mirada, en MVC. Nos dividimos por tener un punto de vista, lo que el usuario ve, un controlador, alguien que hace todo en el fondo pero realmente no se puede actualizar nada o no se puede hacer nada de importancia excepto llamar a la vista y el modelo. Y luego tenemos Mitt, el modelo, que actualiza todos los datos que tenemos. Así que muchas gracias por nuestra hermosa, controlar y voluntarios capacitados. Y creo que eso fue todo. [Aplausos] Creo que Gabe se va a hablar ahora en un nivel de esperar menos alto. GABRIEL GUIMARAES: OK, chicos. Ahora vamos a hablar un poco más sobre código y sobre Ruby on Rails en sí, y sobre cómo se relaciona a todos esta historia MVC. Básicamente, Ruby on Rails es un marco. Más sobre eso en un segundo. Pero sólo para darle un sentido de que lo está usando, como, todos estos grandes companies-- así GitHub, Groupon, Twitter-- todos están usando Ruby on Rails como su principal marco para implementar su página web. Así que estoy seguro de que mucha gente han utilizado estos sitios web aquí. Y todo es Ruby on Rails para implementar el modelo, la vista, y el controlador en todos estos sitios web y muchos más. DE ACUERDO? Así que, como dije, Ruby on Rails es un marco. Y usted puede clase de pensar en un marco en el sentido de como construir una casa. Así que si usted va a construir una casa-- y siempre se puede empezar desde cero, ¿no? Usted puede tratar de llegar con una forma de aserrar la madera, y para llevar la madera al lugar, y para obtener las piedras en la forma correcta, y después de todo eso. Pero eso va a tomar probablemente un montón de años hasta llegar todo el material, y se obtiene todo junto, y de empezar para construir su casa. Así que resulta si se empieza con un marco con algo que es ya un poco en lugar para cualquier tipo de vivienda que desea build-- algo eso es muy genérico, pero que pueda entonces modelar hacia su propia goals-- entonces usted puede aprovechar este poder de los marcos para construir ellos algo mucho, mucho más rápido. DE ACUERDO. Así que esta es la misma idea en un marco para una aplicación web o para cualquier tipo de aplicación, para el caso. En realidad se comienza a cabo con la mitad de una aplicación Ya hay en el lugar para ti. Y por eso, quiero decir que tienes un montón de archivos que ya tienen funciones, como bibliotecas, como la funcionalidad, y los comandos que se pueden ejecutar con el fin hacer mucho tu vida más simple y más fácil. DE ACUERDO. Así que en este caso, vamos hablar de Ruby on Rails. Hay un montón de diferentes frameworks que hay. Hay Django para Python. Hay Zend Framework o Laravel para PHP. Hay un montón de otros diferentes. Ruby on Rails es una bonita nueva. Un montón de gente utiliza que en startups y este tipo de ambiente. Y algunos de ellos muy grande empresas que mostré aquí antes también están usando Ruby on Rails. Así que para que un dar sentido de lo que Ruby es como, ya que ustedes están más acostumbrados a, como, C y un poco de PHP ahora, para Rubí va a ser la equivalente a su PHP en este sentido. Esto no es Ruby. Esta es C. ¿OK? Pero esto es como el Función DJBHash que yo Conozco a mucha gente utilizados de faltas de ortografía PSET. Y en Ruby, bastante al igual que en PHP, podría aplicar esto con sólo unas pocas líneas de código. En lugar de tener que preocuparse sobre la función de hash, tener que preocuparse de los cubos, y todo eso, sólo se puede decir, diccionario = Hash.net. Y a continuación, utiliza una especie de la misma idea que tenía PHP. Y lo que es de verdad. Y luego si quieres comprobar, por lo que la función de comprobar sería si diccionario "foo" es igual a igual a verdadero, devolver true. Y eso es todo, ¿de acuerdo? Así que usted nota algunas diferencias. No hay punto y coma aquí, ya que había en C. Pero la idea general es muy similar. DE ACUERDO? También, en Ruby, hay joyas, que son una especie de las bibliotecas de Ruby. Y Rails los maneja en una manera muy agradable para usted. Así que si usted quiere poner en alguna biblioteca que hace correos electrónicos, o que hace mensajería de texto, o que hace la integración con Facebook, o cualquier tipo de cosa como que para su aplicación, es muy, muy fácil. Lo más probable es que usted puede encontrar algo así en internet. Y simplemente lo hacen algo así como venta que gema que desea utilizar en el archivo de la gema. Y luego Rails instala todo. Usted no tiene que preocuparse por nada de que, por lo que es realmente genial. Además, hay muchas cosas, un montón de ayuda en línea. Así que usted puede encontrar un montón de cosas. Si usted tiene un error, usted puede buscarlo en Google, y que va a ser muy fácil de conseguir ayuda. Y es una gran cantidad de fun-- exactly-- porque no tienen que preocuparse por el bajo nivel detalles, la aplicación de las tablas hash y que tiene que llegar a todos las cabeceras HTTP, y un montón de cosas, e incluso algunas cosas de nivel más altos. Usted no tiene que preocuparse acerca de que en Rails. Lo hace muy, muy bien para usted. Y vamos a demostrar que más concretamente muy pronto. DE ACUERDO. Así que un poco sobre Ruby nuevo. Así es como C, como ya he dicho. En vez de printf, decimos "Pone", que es "poner la cadena." Pone una cadena a la consola. Y en este caso, estamos sólo imprimir "Hola Mundo". No necesitamos los paréntesis, pero es más o menos similar. Y luego si quieres hacer algo aquí, como imprimir un montón de "cargas fraccionadas" y un montón de "grandes" en un bucle while, que es un poco como en C, ¿verdad? Usted no tiene los parametros, pero es más o menos la misma. La indentación aquí recuentos, así que x es igual a 1. Y luego Mientras x es menor que 50-- este es un Si, esta es una Else. Es muy parecido a lo que viste. Y entonces x + = 1 se acaba incrementando, algo así como hacer el ++ que pueda do en C. Pero es bastante mucho de lo que viste en C. No debería ser demasiado complicado. Pero es más potente. Así que hay algunos comandos aquí que son sin duda un poco más nuevo. Así, por ejemplo, "puts". Puede utilizar esta notación hashtag aquí para imprimir sólo algo-- muy parecido a lo que usted haría si el% D o% C o algo por el estilo. Y en realidad se puede poner Si justo después de la declaración. Así que sólo quiero hacer esto-- Si x es mayor que 3. Entonces, ¿por qué tengo que hacer una entera Si el bloque? No lo sé. Yo sólo puedo imprimir esto sólo Si x es igual a mayor que 3. Así que esta es una forma de una línea de hacer esto en Ruby. Una lista en Ruby es algo muy versátil. Así que usted realmente no necesita tener un solo tipo. Usted puede tener una cadena y, a continuación, algunos números, y lo que sea. Y si desea anexar algo a una lista, sólo puede utilizar este notación aquí. Y si quieres repetir. Prácticamente lo 4each en PHP, aquí, tener una lista y lo hace "List.each hacer." Y este "elem", esto es como el nombre de cada elemento que voy a tener en mi lista. Y entonces yo puedo solo "pone elem." Y "pone" maneja bastante bien poniendo por usted, imprimirlo. No importa si es una cadena o un int. Se va a trabajar en eso para usted. Derecho? Fresco. Y al igual que PHP, Ruby y HTML integrar también muy, muy bien. Y aquí, hay algo de HTML con Ruby en ella. Así que tenemos un cuerpo de la etiqueta como en HTML. Y si queremos comprobar que un usuario es, por ejemplo, conectado, sólo podemos decir que, a partir de Ruby, si user.logged_in ?, final de Ruby. Imprimir esta cosa entera, que tiene algo de Rubí en él, que es justo algo así como que la sintaxis para PHP que imprime una variable. Vamos a imprimir el user.name. Así que bienvenida, Stephen, dentro de un div HTML. Y al final, tenemos un "fin" y Código Ruby, lo que significa que este es mi Si el bloque. DE ACUERDO? Así es como un sin fisuras integración entre Ruby y HTML. También hay una gran cantidad de recursos. Pero antes de seguir adelante, ¿alguien tener alguna pregunta sobre Ruby, nada? DE ACUERDO. Hay un montón de recursos en línea a tryruby.org, Academia Código, ruby-lang.org, donde se puede probar fuera de su navegador antes de que realmente digo, oh, está bien, voy a utilizar Rubí para mi proyecto final. Y así, sin duda le dan las intentarlo. Todas estas diapositivas son va a estar disponible en línea, lo que sólo puede descargarlos. Y sí? AUDIENCIA: [inaudible] lo que acaba de aparecer Se HTML y el código incrustados en a esta noción de Modelo Vista Controlador de? GABRIEL GUIMARAES: Sí. Haremos todo lo que en un segundo cuando mostramos nuestro ejemplo, ¿de acuerdo? Gracias por la pregunta. Así que la pregunta era, básicamente, si puede mostrar esta integración de Rubí en HTML dentro del Modelo Ver marco regulador. Así que la idea del Modelo Marco Vista Controlador es que es básicamente una filosofía, al igual que Stephen mostró aquí. Y no es algo que usted tiene que hacer, pero es algo que hace la vida mucho más simple. Y Ruby on Rails se construye alrededor de esta filosofía de código. Así que vamos a mostrar un ejemplo muy pronto. Así que Rails es el amor. Mucha gente lo está utilizando, como ya he dicho. Y es muy divertido. Ustedes deberían definitivamente darle una oportunidad. MVC hace que todo sea más simple. Así que el Model View Controller, las cosas que separan y poniendo una persona, per se, o una parte de su solicitud hacer cada uno de los diferentes puestos de trabajo que la aplicación tiene que hacer. Y menos tiempo sobre los problemas de bajo nivel. Y muy popular en este momento. Tenemos Rails 4.0, que es una nueva versión. Y viene con un montón de cosas interesantes. Otra pregunta. AUDIENCIA: Otra pregunta. Ruby on Rails frente Ruby on Rails Grails. GABRIEL GUIMARAES: OK. La pregunta era, Ruby on Rails frente Ruby-- AUDIENCIA: Grails. Ruby? GABRIEL GUIMARAES: Sí. Así que Ruby es el lenguaje. AUDIENCIA: No. Te estoy pidiendo que comparar un idioma y un marco, Ruby on Rails, con otro lenguaje popular framework-- Grails-- con Ruby on Rails. GABRIEL GUIMARAES: OK. Lo siento. La pregunta fue, comparar Ruby y Ruby on Rails a otro marco y another-- AUDIENCIA: Ruby. Está bien. Si usted no sabe sobre él, eso está bien. GABRIEL GUIMARAES: Al igual que, lo que yo entiendo es que-- AUDIENCIA: Hay otro marco llamados Grails. GABRIEL GUIMARAES: Oh, Grails. Nunca he oído hablar de él. Lo siento. Nunca oí hablar de Groovy on Rails. Lo siento. AUDIENCIA: Es mucho mejor integrado con Java. GABRIEL GUIMARAES: Ya veo. AUDIENCIA: Tengo curiosidad sobre algunas personas que conozco como-- GABRIEL GUIMARAES: No, nunca oído hablar de que uno, por desgracia. Grails. AUDIENCIA: Y algunas personas obviamente como Ruby on Rails. GABRIEL GUIMARAES: he Rubí usados ​​on Rails mucho. He usado algunos Django con Python, como ya he dicho. He usado algunos Laravel. Pero yo no había utilizado Groovy on Rails. Lo siento. Y es muy popular ahora con Rails 4.0. Al igual que, algunas de las cosas que Rails hace por usted, por ejemplo, es usted tienen un montón de archivos CSS y un montón de archivos JavaScript. Y usted puede tratarlos como independiente y todo. Pero entonces es cuando automatically-- usted envía su código de producción, compila automáticamente todos en un único archivo eso es minified sin los espacios, de modo que se tarda hasta menos espacio en su aplicación, por lo que realmente se puede escalar las cosas mucho. Es por eso que estas grandes empresas como Twitter y GitHub están usando Rails, porque lo hace todo que para usted, que es realmente genial. Una cosa que es muy, muy, muy desalentador para las personas, incluyéndome a mí, que están tratando de trabajar con un marco en el principio, que cuando se inicia una solicitud, usted va a ver un montón de archivos. Al igual que, cuando se crea Rails Nuevo, mi solicitud, vas a ver todos estos folders-- aplicación, bin, config, db, lib, registro, público. Al igual que, montones y montones de cosas. Y la primera vez que vi, yo estaba como, Bueno, no tengo idea de lo que está pasando. Sólo quiero crear un sitio web con "Hola, mundo" y esto me está dando, como, 100 mil millones de páginas diferentes. No sé lo que está pasando. Así que por favor no seas demasiado intimidado por eso. La idea es que en realidad tiene un medio de una casa allí para usted ya. Tiene un todo marco para usted ya. Es por eso que hay tantos archivos. Pero lo bueno es que separa todos ellos muy bien. Las probabilidades son que usted no tiene que preocuparse sobre la mayor parte de estas carpetas. La más importante, diría, es la carpeta de aplicaciones, donde tu aplicación vive en realidad. Así que la config, usted va a tener de configurar algunas cosas, como su base de datos y cosas así qué tipo de base de datos que está utilizando. Pero aparte de eso, al igual que la mayoría de su trabajo se va a hacer en la aplicación. Así que, en aplicación, usted tiene activos, controladores, ayudantes, anuncios publicitarios, modelos, puntos de vista. Así que aquí, se empiezan a ver que controladores, modelos y vistas vienen en juego. Sobres son sólo si quieren enviar mensajes de correo electrónico. Ayudantes si quieren crear algunas funciones que se utiliza mucho en la vista. Así que se los pone en ayudantes. Y los activos es básicamente todos sus imágenes, la totalidad de su CSS, toda su JavaScript y como esos tipos de las cosas que son enviadas al cliente. Y todo lo que está en los activos, que he dicho antes, consigue minified. Ha compilado. Y usted realmente no tiene que preocuparse de que cuando se va al código de producción. Fresco. Ahora Zack va a entrar, y él es vamos a hacer un ejemplo de Twitter50. AUDIENCIA: Woo-hoo! ZACK CHAUVIN: Awesome. Así que tuve la oportunidad de trabajar con Ruby on Rails este verano. Es un marco increíble. Estoy muy parcial a la misma. Y yo sólo te voy a mostrar un poco de un ejemplo de lo que podría parecer. Saltar por encima de Chrome. Así que este es un ejemplo de un muy simple Ruby on Rails application-- algo como esto es algo que Ruby realmente sobresale que-- justo donde su están muy bien definidos los modelos. En este ejemplo, verá dos modelos diferentes, las cuales son que tenemos los usuarios y tenemos tweets. Así que esto es Twitter50, Propia de Twitter de la Universidad de Harvard. Como puedes ver, estoy registrado comozack. Y yo soy capaz de hacer nuevos tweets. Así que think-- "Se trata de un" - lo siento? AUDIENCIA: [inaudible]. ZACK CHAUVIN: Oh, OK. Necesidad de detener el servidor. Excelente. Así que aquí estamos. Como puedes ver, tenemos nuestra Aplicación de Twitter aquí. Y es muy fácil de iniciar el servidor. Sólo tendremos que hacemos "servidor rieles". Grande. DE ACUERDO. Gracias por eso. Así que ahora nos estamos quedando. Y vamos a decir: "Esto es un seminario impresionante ". Y vamos a ver qué pasa. Así que vamos a Tweet acerca de ello. En el fondo, se puede ver ahora hay más de tres tweets. Así que tenemos un poco de paginación pasando. Y tenemos ese tweet. Y también puedo buscar a través de mi Búsqueda tweets-- para este y los dos los que tienen la palabra "Esto" en ellos se presentó. También podemos eliminar tweets al hacer clic en el pequeño botón Eliminar. Y, obviamente, sólo puedo borrar el puesto que me pertenecía. Ya casi tenemos la funcionalidad de Twitter. Al igual que, cuando se piensa en ello, Twitter Realmente no hace tanto. Tiene usuarios, tiene tweets. Hay algunas funciones más complejas. Pero cuando realmente pones a ello, es bastante simple Ruby on Rails aplicación. Y algo como esto, con un buen conocimiento de Ruby on Rails, que probablemente podría hacer en una hora o dos. Y eso realmente viene volver al mantra Ruby, que es convención sobre configuración. Así que de vuelta en el día, la gente, en cualquier momento querían hacer este sitio web, tendría que empezar de cero. OK, yo quiero hacer un sitio web. Hagamos de este archivo y este archivo y este archivo. Con Ruby on Rails, no hay nada de eso. Usted dice, quiero una nueva aplicación. Y al igual que Gabe nos mostró, que crea toda la estructura de archivos para nosotros. Y solamente cambiamos pequeñas piezas que necesitan. Nos adaptamos lo es único acerca de nuestra aplicación. Fresco. Así que volviendo a nuestra presentación preview-- interesante. ¿Dónde me presento? AUDIENCIA: Pantalla completa. Arriba a la derecha. ZACK CHAUVIN: Excelente. Fresco. DE ACUERDO. Así, en primer lugar, el modelo. Stephen hizo un impresionante trabajo de delinear MVC. Y ahora vamos a relacionar que volver a Ruby on Rails. Así que el modelo se puede tipo de pensar como la base de datos. Usted ha estado viendo esto en CS50 Finanzas, donde las tiendas de modelo la información acerca de cuántas existencias que tiene, o todas las transacciones que ha realizado. Este es un ejemplo de una línea de la forma en que lo haría ir sobre la fabricación de un nuevo modelo en Rails. Así que quiero un usuario. Va a tener un correo electrónico, que es una cadena, y una contraseña, que es también la cadena. Así que es como those-- Quiero que cada fila en mi tabla de usuarios para parecerse a eso. Una parte realmente impresionante sobre Rails es que hace innecesario escribir ningún SQL más o menos. ¿Cuántos de ustedes amados escribir SQL en PSET 7? Exactamente. SQL no es muy fácil de usar. Y Rails abstrae de todo lo que de distancia con estos comandos realmente fáciles. Así, por ejemplo, si tenemos una usuario, el usuario tiene muchos tweets. Y cada uno de esos tuits pertenece a un usuario. Así que si usted mira aquí, esta es nuestro modelo para nuestro pío. Y todo lo que tenemos que decir es este único line-- Estoy un tweet y yo pertenezco a un usuario. Y con esa sola línea y una poco de configuración de base de datos, Rails establece esta relación. En cualquier momento, sólo puedo decir, zack.tweets, como, dame todos los tweets Zack. No SQL. Super fácil. Una vez más, esa es la convención más configuración que entran en juego. Se puede ver un poco de un ejemplo de Rubí aquí. Como Gave dicho, escrito Ruby es algo así como escribir Inglés. Es un lenguaje de muy alto nivel, y hace que sea muy fácil para nosotros decir cosas como, quiero asegurarse de que este tweet tiene un cuerpo. Su presencia es cierto. Y yo quiero estar seguro de que esta pío, al igual que Twitter normal, tiene una longitud máxima de 140. Es super-intuitivo, un realmente genial idioma. Lo siguiente que tenemos la vista. Así que se trata de HTML y CSS. Y he aquí un ejemplo de una vista. Así Ruby on Rails tipo de perfección integra tanto Ruby y HTML a fin de generar lo que queremos en la página. Así que este es un ejemplo de nuestro diseño. Así se puede ver algunas etiquetas que usted chicos están acostumbrados, como HTML, cuerpo, todas esas cosas buenas. Y justo aquí, sin embargo, nos incorporar algunas de Ruby diciendo: si hay un mensaje que se mostrará, a continuación, mostrar el mensaje en un div. Así que no voy a entrar demasiado en eso. Pero esto es generalmente una La página que consigue rindió en-- y no importa lo que la página que estás sobre, éste se pronuncie. Así que esto es lo que se incluye siempre. Fresco. Otro ejemplo de un juicio- esto es aquella en la que se eligió a todos los tweets. Y algunas de estas cosas puede tener un aspecto bastante familiar. Así, por ejemplo, aquí, estamos bucle a través de cada uno de los tweets, y estamos imprimirlos. Así que aquí es donde estamos imprimir el cuerpo. Y si user-- del pío aquí hay un ejemplo real de SQL no está involucrado. Sólo pregunto, ¿es esto usuario de Twitter el usuario actual? A continuación, mostrar un enlace para eliminarlo. Es súper simple. El controlador. Así que este es, de nuevo, la interfaz de entre el modelo y la vista. Es el que hace el trabajo duro siendo de interacting-- los intermediarios. Se carga la información para el Consideramos, que veremos en un segundo. Y con el fin de interactuar con el modelo, llama a los métodos de modelos, que son los que ustedes están familiarizados como funciones. Así, por ejemplo, esto es controlador de nuestro Twitter. Puede parecer un poco desalentador en este momento. Pero en realidad es muy intuitivo una vez que comience el buceo en. Así, por ejemplo, en nuestro índice, que es donde queremos mostrar todos los tweets. Y lo que esta línea básicamente sólo pide para todos los tweets. Y luego inicializamos ambos los nuevos tweet-- así como si quieren crear un nuevo tweet en esa página. Asimismo, se pide lo que el usuario actual. Y esto es muy similar a la rindes que se vio en PSET 7, donde es sólo un poco de contar el juicio- es una especie de, como, pasar las variables que eres va a necesitar en la vista a la vista. Y hay un montón de diferentes métodos que la controladora de este tweet puede manejar. Pero en realidad, Rails hace un gran trabajo de clase de dividirlos en los diferentes acciones que su controlador puede hacer. ¿Hay alguna pregunta sobre cualquiera de las partes de MVC de Rails? Algo así sólo una brisa por. Así que ustedes pueden comprobar que por su cuenta. Impresionante. Vamos a seguir adelante. Así instalar Rails. Instala los carriles podrían ser, como, una de las partes más desalentadores de la totalidad de los rieles proceso, por desgracia. Pero, obviamente, todos nosotros estamos allí para ayudarte. Y una vez que está ahí, un montón de grandes recursos, como Gabe mencionó, para empezar. Aquí están los enlaces que que necesita con el fin descargar Rails conseguirlo instalado en su máquina. Obviamente, está disponible para Windows y Mac y para el aparato CS50. Las preguntas sobre todo lo que he dicho? AUDIENCIA: Estaría interesa, actually-- así que sé que la descarga software es la mayor barrera. Si hay suficiente interés para tener una descargar mini-sesión o algo así. ZACK CHAUVIN: Mm-hm. Sí. Eso puede ser muy útil. Si alguien es muy entusiasta acerca de el uso de este para su proyecto o en el futuro, entonces estaríamos definitivamente encantado de hablar con usted acerca de eso. Mm-hm. AUDIENCIA: Una pregunta relacionada a lo que le pregunté antes. Para aquellos de ustedes que han hecho otros marcos que aún están tratando de hacer lo mismo cosa, que sea más fácil para construir un sitio web o un funcionalidad, creo que tiene sentido de por qué sería on Rails frente Zend o algunos de los otros marcos y lenguas. ZACK CHAUVIN: Voy a decir que mi $ 0.02 por eso. Me encanta Ruby on Rails. He tenido la oportunidad de trabajar tanto en PHP y Ruby on Rails. Me gusta mucho más Ruby on Rails debido a Ruby. Definitivamente, eso es una gran parte de ella. Al igual que, cuando estás la elección de su marco, también elige tu idioma. Ruby es súper accessible-- Creo un lenguaje mucho mejor que PHP. Pero eso es una especie de preferencia personal. Además, otra consideración es la comunidad detrás del marco que está trabajando con. Ahora Ruby on Rails es muy caliente. Hay toneladas de apoyo detrás de ella. De publicar algo en Pila Desbordamiento acerca de un problema que estés teniendo en Ruby on Rails, y se respondió. Una vez más, es de código abierto, lo que significa que está en constante transformación. Hay un montón de personas que están realmente dedicados con el fin de hacer de éste un marco realmente impresionante. Así que por eso lo haría elegir Ruby on Rails. GABRIEL GUIMARAES: Sí. Yo diría que la idea detrás de la mayoría de los marcos que eres va a encontrar por ahí es muy, muy similares, ¿no? Así que el Model View Controller, el hecho de que nuestro controlador de va a parecer algo así- cada una de las funciones es como una de sus páginas, y se le redirige, y se inicializa las variables. Eso va a ser lo mismo para cada marco que ves por ahí. Y va a ser el modelo. Y usted puede hacer cosas como, "pertenece a". Así que en vez de hacer la versión de SQL, simplemente, como, hacer, user.tweets, y usted consigue todo. Todo el mundo tiene que. Excepto en Ruby, que haces user.tweets, y luego algunos marcos en PHP, haces user.getalltweets DONDE mi PHP no es un problema. Al igual, que es una gran línea. Es la misma cosa, pero es una gran cola. Así que esa es una de las principales razones de mis preferencias sobre Ruby. Es sólo que hacen exactamente lo lo mismo en otros marcos, sólo me toma dos veces como largas líneas de código. DE ACUERDO? Alguna otra pregunta? ZACK CHAUVIN: Algo Voy a mencionar quickly-- Gabe hablado un poco acerca de las gemas. Y eso es una realidad los grandes, quiero decir, esta es una especie de común a todos los marcos, que hay una especie de concepto joya, que es como en mi pequeño ejemplo, He iniciar sesión. Al igual, puede abrir una sesión, cerrar sesión. Al igual, que en realidad es tipo de un proceso complejo. Se manejó un poco poco para usted en PSET 7. Pero yo todavía no sé bien cómo para implementar el inicio de sesión, cierre de sesión. Y eso es porque Ruby on Rails tiene toneladas de las joyas que hacen cosas por el estilo para usted. Una vez más, convención sobre configuración. Todo el mundo va a estar haciendo este inicio de sesión, el paso firme de salida. Así que ¿por qué no hacer un paquete, llamado Elaborar, en este caso, que es una joya. Usted sólo es necesario incluirla. Y luego hay un poco de ayuda en línea con la forma de utilizarlo. Y usted no tiene que preocuparse acerca de nada de eso. Adjuntar fotos a estos cosas-- una joya para eso. Al igual que, en cualquier momento que estamos tratando de hacer nada nuevo, hay una joya para eso. Y que tipo de sólo juntar estas joyas y construir una realidad compleja aplicación muy rápidamente. Fresco. Alguna otra pregunta? STEPHEN TURBANTE: Woo-hoo. No creo que [inaudible]. GABRIEL GUIMARAES: OK. Muchas gracias, chicos. STEPHEN TURBANTE: Buh-adiós. ZACK CHAUVIN: Buh-adiós. STEPHEN TURBANTE: Woo-hoo. [Aplausos] Hurra.