Ruby on Rails ¿Quién soy? El desarrollo web que no duele Por Nelson Rojas Núñez 1 2 + Ingeniero de Ejecución en Computación e Informática (UCM Talca) + Desarrollador (45hrs) ¿Qué es Ruby on Rails? + Docente vespertino + Webmaster www.linares.cl* 3 4 + Es un framework de desarrollo construido en lenguaje Ruby + Permite crear aplicaciones web que usan bases de datos ¿Acaso no hay muchos frameworks que hacen lo mismo? 5 ¿Qué tal si te digo que puedes construir tu aplicación 10 veces más rápido que con un típico framework Java? 6 Y por cierto, ¡sin sacrificar la calidad de la aplicación! 7 8 ¿Cómo puede ser eso posible? 9 10 Pilares de Rails + El lenguaje Ruby RUBY + Algunas normas muy simples 11 Rails es la aplicación de ruby Yukihiro Matsumoto (matz) creador de ruby 12 RUBY Normas simples de Ruby on Rails + Todo es un objeto + Es muy flexible + Los bloques son expresivamente funcionales + Buena apariencia visual 13 14 Menos código + Menos código + La aplicación en pocas líneas + Acelera el desarrollo + Reduce los errores + Más simple de entender, mantener y mejorar + Convenciones sobre configuraciones + Separación de código según MVC 15 16 Convenciones sobre configuraciones DRY + En vez de usar XML para configurarlo todo, mejor adoptamos ciertos acuerdos y trabajamos sobre ellos Don't repeat yourself 17 Ejemplos de CoC 18 MVC + Las tablas tienen nombres en plural (anglo) + Todas las tablas tienen un campo PK llamado id auto incremental + El campo FK usa el nombre en singular de la tabla seguido de _id + Modelo + Vista + Controlador 19 20 Modelo + Abstrae los elementos del negocio (tablas) + Implementa la lógica de negocio + Establece la relación entre modelos 22 Vista Controlador + Es lo que el usuario ve en el navegador (HTML) + Contiene los gatillos para realizar acciones (enlaces y formularios) + Realiza las peticiones del usuario + Responder usando vistas o redirección a otra acción 23 24 Ruby on Rails es agnóstico en cuanto al motor de base de datos ¡Hay más! 25 26 Puedes usar sin problema + MySQL + PostgreSQL + Oracle + SQL Server + Sqlite + MongoDB + y más... El cambio sólo requiere de 1 archivo* 27 28 ¿Migración de base de datos? ¿SQL? ¿Imagina crecimento regulado y con versión del esquema de BD? Nunca más lo usé gracias a CRUD 29 30 Tareas automatizadas Herramientas en Ruby on Rails 31 + Andamios + Controladores + Modelos + Migración BD + Testing + Estadísticas + Documentación 32 Hijos ilustres de RoR Timeline de RoR Twitter Github Groupon OracleMix PragmaticProgrammers Tadalist Whiteboard Scribd David Heinemeier Hansson Creador de Ruby on Rails 2004 Nace Ror 2005 Ror 1.0 2007 Ror 2.0 2010 Ror 3.0 2011 Ror 3.1 33 34 Novedades en v3 + Sass (Syntactically Awesome Stylesheets) + jQuery como estándar + CoffeeScript + Http Streaming + Migraciones de bases de datos reversibles + Haml Ruby on Rails 3 en acción 35 36 Ejemplo: Tablón de anuncios Flujo de la aplicación Lista de anuncios Tablón de anuncios publicar Crear un anuncio Mensaje de éxito/error para creación y eliminación Texto del anuncio Publicado hace .... Borrar un anuncio eliminar Texto del anuncio Publicado hace .... eliminar 37 38 "Rails es el framework de desarrollo web mejor pensado que he usado, y puedo decirlo luego de una década de hacer aplicaciones web para vivir. He construido mis propios frameworks, he ayudado a desarrollar el API Servlet, y he creado varios servidores web a partir de cero. Nadie lo ha hecho así antes." Si aún queda algún escéptico... 39 James Duncan Davidson, creador de Tomcat y Ant 40 "Después de investigar el mercado, Ruby on Rails se destacó como la mejor opción. Hemos sido muy felices con esa decisión. Vamos a seguir construyendo en Rails y consideramos que es una ventaja clave de negocio. " Evan Williams, creador de Blogger, Odeo, y Twitter 41 "Ruby on Rails es un gran avance en la reducción de las barreras de entrada a la programación. Potentes aplicaciones web que anteriormente podrían haber tomado semanas o meses para desarrollarse se pueden producir en cuestión de días. " Tim O'Reilly, Fundador de O'Reilly Media 42 ¿Por qué Ruby on Rails? ¿Preguntas? 43 44 Contacto @nelsonrojas (Twitter) nelsonrojas.wordpress.com [email protected] 45