59
(in)signia presenta

Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

  • Upload
    lenny

  • View
    3.515

  • Download
    1

Embed Size (px)

DESCRIPTION

Esta es la presentación correspondiente a la charla "Descubriendo Ruby on Rails: Desarrollo Agil de Aplicaciones Web" dictada el 5 de Junio de 2007 por Juan Maria Martinez Arce y Carlos Kozuszko, ambos miembros de INSIGNIA (www.insignia4u.com); en el marco de la "Semana de la Ingenieria 2007".

Citation preview

Page 1: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

(in)signiapresenta

Page 2: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Juan María Martinez Arce

Carlos Kozuszko

Page 3: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Descubriendo Ruby on RailsDesarrollo Agil de Aplicaciones Web

Page 4: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

> tiempo > productividad

Page 5: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

¡Tiempo!

Page 6: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

¿Desarrollo Web?

Page 7: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Aplicación Web = Aplicación accedida por Browser

Internet

Page 8: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

+ Cobertura Global

Page 9: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

+ Bajos requerimientos de Hardware

Page 10: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

+ Fácil de Usar

Page 11: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

+ Mantenimiento

Page 12: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

- Seguridad

Page 13: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Desktop vs Web

Page 14: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Mejores Prácticas

Page 15: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

DRYDon’t Repeat Yourself!

Page 16: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

MVCModel View Controller

Page 17: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Page 18: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

ORMObject Relational Mapping

Page 19: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

ORM – Active Record

Page 20: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Control de Versiones

Page 21: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Page 22: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Convention over ConfigurationConvención sobre configuración

Page 23: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Frameworks

Page 24: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Frameworks & Libraries

Page 25: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Frameworks tradicionales

• Struts - Java

• Springs - Java

• PHP + templates + ORM

• Catalyst - Perl

Page 26: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Frameworks ágiles

• Ruby on Rails – Ruby

• CakePHP – PHP

• Django – Python

Page 27: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Page 28: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Conociendo (in)signia

• 4 Desarrolladores

• 2 Diseñadores

• 7 proyectos en curso:– Portal de Noticias– Extranet de Clientes– Campus Virtual– Catálogo de Productos

Page 29: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

¿Cómo hacemos?

Page 30: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

(in)signia elige

Page 31: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

(in)signia elige

Page 32: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

(in)signia elige

Page 33: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

(in)signia elige

Page 34: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

¿Por qué Ruby on Rails?

Page 35: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

class Empresa < ActiveRecord::Base belongs_to :vendedor has_many :usuarios validates_presence_of :razon_social validates_uniqueness_of :codigoend

Page 36: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Empresa.find(:all)Empresa.find(params[:id])Empresa.find_by_codigo(params[:codigo])Empresa.find_or_create_by_codigo(params[:codigo])

Page 37: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

@empresa = Empresa.find(params[:id])@empresa.razon_social = ’(in)signia’@empresa.codigo = ’000999100’@empresa.save!

Page 38: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

class EmpresasController < ApplicationController administrate_me :search => [‘razon_social’], :accepted => [:show],

:secured => true end

Page 39: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

cap deploy

Page 40: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

¡Nos gusta mucho!

Page 41: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Puntos fuertes de Rails

Page 42: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Open Source

Page 43: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Plataformas soportadas

• Servidores y entornos de desarrollo

– Linux/Unix– Windows– Mac OS X

• Servidores Web

– Apache– Lighttpd– IIS

• Bases de datos

– MySql– SQLite– Postgres– Oracle– MS SQL Server– DB2

Page 44: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Convención sobre Configuración

Page 45: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Ventajas

• ORM• Migraciones• Mapeo de peticiones

HTTP

• Soporte para AJAX• Plugins

Page 46: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

class Empresa < ActiveRecord::Base belongs_to :vendedor, :class => “Persona” has_many :usuariosend

class Usuario < ActiveRecord::Base belongs_to :empresaend

class Persona < ActiveRecord::Base has_many :empresasend

Page 47: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

vendedores = Persona.find(:all)vendedores.each do |vendedor| vendedor.empresas.each do |empresa| empresa.activar! puts “Empresa #{empresa} activada.” endend

Page 48: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

class CreatePersonas < ActiveRecord::Migration def self.up create_table :personas do |t| t.column :nombre, :string t.column :apellido, :string t.column :domicilio, :string end end

def self.down drop_table :personas endend

Page 49: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

class CreateEmpresas < ActiveRecord::Migration def self.up create_table :empresas do |t| t.column :razon_social, :string t.column :cuit, :string t.column :vendedor_id, :integer end end

def self.down drop_table :empresas endend

Page 50: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

ActionController::Routing::Routes.draw do |map| map.connect “”, :controller => “login”, :action => “index” map.connect “:controller/:action/:id”end

http://www.demo.com -> LoginController.indexhttp://www.demo.com/empresas/show/1 -> EmpresasController.showhttp://www.demo.com/empresas/edit/1 -> EmpresasController.edithttp://www.demo.com/personas/show/5 -> PersonasController.showhttp://www.demo.com/personas/edit/5 -> PersonasController.edit

Page 51: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

class PersonasController < ApplicationController

def show @persona = Persona.find(params[:id]) end

end

Page 52: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

<html> <body> <p>Hola <%= @persona.nombre %></p> </body></html>

Page 53: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

<html> <body> <% form_for :persona, @persona do |f| %> <label> Nombre: <%= f.text_field :nombre %> </label> <% end %> </body></html>

Page 54: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

<html> <body> <p id=“hora”> Hora: <%= Time.now %></p> <%= link_to_remote “Actualizar!”, :url => {:action => “actualizar”}, :update => “hora” %> </body></html>

Page 55: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Plugins

• acts_as_authenticated• file_column• annotate_models• exception_notification• permalink_fu

• textile_editor_helper• liquid• asset_packager• acts_as_ferret

Page 56: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Menos conversación… Más acción(elvis)

Page 57: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

¿dudas, consultas, opiniones?(trataremos de responder)

Page 58: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

(in)signiahttp://www.insignia4u.com

Juan Maria Martinez [email protected]

Carlos [email protected]

Page 59: Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)

Muchas gracias!