Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

RubyOnRails: Con qué se come eso?

on

  • 713 views

 

Statistics

Views

Total Views
713
Views on SlideShare
713
Embed Views
0

Actions

Likes
1
Downloads
20
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

RubyOnRails: Con qué se come eso? RubyOnRails: Con qué se come eso? Presentation Transcript

  • Ruby on Rails: ¿Con qué se come eso? Gabriel E. Arellano Grupo de Estudios de Software Libre / Grupo de Estudios de UML U.T.N. - F.R. Concepción del Uruguay Sextas Jornadas Regionales de Software Libre Mendoza - Argentina
  • ¿De qué hablaremos? ● Presentación del Framework ● Por qué Ruby? ● Filosofía de Ruby on Rails ● Descripción del Framework ● Qué necesito para usarlo? ● Cuándo usarlo y cuándo no...
  • ¿Qué es Ruby on Rails? Un framework de aplicaciones web que: ● Está escrito en Ruby. ● Basado en patrones de diseño: ● MVC (Modelo-Vista-Controlador) ● Active Record, Single Table Inheritance. ● Brinda abstracción de objetos persistentes. ● Pensado para el desarrollo ágil y RUP. ● Fomenta las buenas prácticas de diseño e implementación.
  • El lenguaje Ruby Un lenguaje de programación que: ● Es orientado a objetos (puro). ● Soporta reflexión y metaprogramación. ● Tiene gran claridad semántica. ● Es fácilmente extensible y Open Source. ● Es dinámico e interpretado. ● Fue creado en Japón en 1995, y en 5 años desplazó a Python.
  • El lenguaje Ruby y=3+b class Numeric class Numeric def mas(x) def mas x self.+(x) self + x end end end end y = 5.mas(6) y = 5.mas 6
  • El lenguaje Ruby search_engines = %w[Google Yahoo MSN].map do |engine| "http://www." + engine.downcase + ".com" end 5.times { print "Ruby es Excelente!" }
  • Filosofía del Framework RoR Fundamentos de Ruby on Rails: ● DRY (Don't Repeat Yourself). ● Convención sobre configuración. ● Uso de patrones de diseño. ● Generación de código (helpers). ● Menos código, menos errores. ● Test integrados (unitarios y funcionales).
  • El Patrón MVC La aplicación se divide en tres partes: ● Modelo Responsable de mantener el “estado” de la aplicación. ● Vista Responsable de presentar la interfaz y la información al usuario ● Controlador Organiza la aplicación. Recibe eventos del exterior, interactúa con el modelo y actualiza la información de las vistas.
  • El Patrón MVC Navegador Controlador Vista Modelo B. D.
  • MVC sobre Rieles
  • Los Modelos Los modelos en Ruby on Rails: ● Emplean el patrón Active Record. ● Representados por clases que heredan de la superclase ActiveRecord::Base. ● Encapsulan la lógica de persistencia. ● Contienen reglas de negocios. ● No incluyen propiedades. ● Contienen relaciones con otros modelos.
  • El Patrón Active Record Reglas muuuuuy simples: ● Una clase -> Una tabla. (Pluralización) ● Un atributo -> Una columna. ● Una instancia -> Una tupla (renglón). ● Relaciones: “tiene un” -> clave foránea. “pertenece a” -> clave foránea. “tiene muchos” -> clave en la otra tabla “muchos a muchos” -> tabla intermedia.
  • Active Record en RoR Nos proporciona: ● Métodos find() y operaciones CRUD. ● Relaciones. ● Agregación, Herencia de Tabla Simple. ● Transacciones. ● Validaciones y Callbacks. ● Act as.
  • Validaciones Permiten agregar restricciones de dominio y lógica de negocios en el modelo: ● Métodos validate y validate_on_* ● Validation Helpers: Unicidad, presencia, ausencia. Formato (expr. Regulares). Longitud, inclusión, exclusión. Objetos relacionados.
  • Callbacks Permiten disparar lógica antes o después de una modificación del estado del objeto: ● Antes/Después de su creación (.save) ● Antes/Después de su actualización (.update) ● Antes/Después de su eliminación (.destroy)
  • Pero... y SQL? (Larga vida a las Migrations) Las migrations son archivos que permiten alterar y versionar el esquema de la base de datos del proyecto. ● Están escritas en Ruby. ● Se generan automágicamente. ● Brindan independencia total del DBMS. ● Permiten avanzar o retroceder en versiones.
  • Las solicitudes
  • Las solicitudes Ejemplo de solicitud http://localhost:3000/blog/display/5 ● blog se traduce a la clase BlogController ● show se traduce al método show ● 5 se traduce al valor de params[:id]
  • Templates Para qué otro lenguaje de templates? Enfoque extremadamente pragmático: ● Archivos (X)HTML con trozos (snippets) de código Ruby embebido ● Las vistas comparten el espacio de variables de su controlador. ● Helpers HTML, XML y AJAX. ● Funcionalidades de Layout y Partials.
  • Helpers xhtml, xml, javascript... sin escribir ni una línea de xhtml, xml o javascript. Permiten la generación de código xhtml, xml y javascript a partir de código Ruby: <p> <%= link_to “Eliminar”, { :action => “delete”, :id => @actual }, :confirm => “Está seguro?” %> </p>
  • Colgados del Andamio Scaffolds y el desarrollo de prototipos Los scaffolds son archivos generados auto- mágicamente por Rails para un modelo en particular y que brindan: ● Controladores, vistas y helpers necesarios para el ABM y listado del mismo. Lo que NO brindan: ● Soporte a Relaciones. ● Actualización ante cambios en el modelo.
  • Quiero Rails funcionando ya! ● Instalación Tradicional ● Ruby on Rails en 2' ● XAMPP + AxleGrease (ex ROROX) ● InstantRails
  • Entornos de Desarrollo (No tengo una Mac ni presupuesto para comprar el TextMate!) ● RADRails ● Ride - Me ● Emacs + Rails Mode + mil y un agregados (a.k.a. The Hacker's Way) ● Vim + snippetsEmu
  • Entornos de Ejecución ● WebBrick ● Lighttpd, Apache CGI/FastCGI ● Mongrel Escalando Rails? Clusters Mongrel. Capistrano.
  • Cuándo usar Rails? ● Cuando esté cómodo con el Framework. ● Con equipos ágiles y dinámicos. ● Cuando tengo pocos desarrolladores. ● Con proyectos de pequeños o medianos.
  • Cuándo NO usar Rails? ● Aplicaciones muy grandes. ● Con bases de datos legadas. ● Con desarrolladores “mediocres” o poco habituados a los cambios. ● Con equipos de desarrollo muy grandes.
  • Y??? Con qué se come esto?
  • Preguntas? alumno asistente profesor expositor *[n] : responder(pregunta) respuesta
  • Lecturas Recomendadas “Cuatro días con Rails” http://rails.homelinux.org/ “Ruby for Rails: Ruby techniques for rails developers” David A. Black. - Ed. Manning (2006) “Agile Web Development with Rails” Dave Thomas / David Heinemeier Hansson - Ed. The Pragmatic Programmers (2005)
  • Lecturas Recomendadas “Rails Recipes” Chad Fowler - Ed. The Pragmatic Programmers (2006) “Programming Ruby” (2da. Edición) Dave Thomas - Ed. The Pragmatic Programmers (2005) http://www.rubycentral.com/book/ http://pickaxe.ruby.org.es/
  • Recursos On-Line Sitios fundamentales http://www.rubyonrails.org.es/ http://api.rubyonrails.org/ Foros y Listas de correo Rails-ES: http://www.ruby-forum.com/forum/22 Ruby Argentina: http://rubyargentina.soveran.com/signup
  • Recursos On-Line Divulgación http://www.rubycorner.com/ http://www.rubycorner.com/blogs/lang/es (Sólo en español) http://www.sobrerailes.com/ http://onrails.com.ar/ http://rubyargentina.soveran.com/ http://www.planetarails.es/
  • Gracias! http://www.gabriel-arellano.com.ar/charlas/ (2006) Gabriel E. Arellano Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back- Cover Texts. The GNU Free Documentation License as applicable to this document can be found at: http://www.gnu.org/copyleft/fdl.html