85 motivos* para Ruby on Rails

Slides:



Advertisements
Presentaciones similares
Introducción a la programación
Advertisements

2. Manejo de memoria Manejo de memoria estática
Introducción a Django Manuel Kaufmann Septiembre de 2009
Rogelio Ferreira Escutia Modelo Vista Controlador.
JavaScript Rogelio Ferreira Escutia. 2 JavaScript Wikipedia, noviembre 2009http://es.wikipedia.org/wiki/Javascript.
SERVICIOS WEB EN.NET INTEGRANTES: ADRIANA BLANCO PEÑA MIRIAM SORIANO HERNANDEZ ALVARO PETROVICH CID CONTRERAS LUIS RAMIREZ PALESTINO.
Casino de Madrid, 19 de Noviembre
Microsoft SQL Server 2005 Integration Services
Programación Interactiva Introducción a Java
Introducción a Transact-SQL
Tecnologías para desarrollo de aplicaciones web. Un caso de uso
INTRODUCCIÓN A JAVA.
Lenguajes de programación
Todo son problemas Lenguajes dinámicos Frameworks DLR...ntentemos i ntentemos...
Núcleos de SO Contemporáneos
Introducción a la Programación
Desarrollo de Aplicaciones para Internet
ACCESO A BASES DE DATOS ORACLE CON PHP
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Índice 1. Introducción, objetivos y justificación del proyecto.
Características Técnicas
Introducción XML y WebServices.
Ruby Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales
Bienvenidos.
Introducción a ASP.NET.
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
PL/SQL Francisco Moreno Universidad Nacional.
Ing. CIP Fabián Silva Alvarado
Bases de Datos Relacionales
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Sintaxis de C# (Declaraciones y Tipos)
Inteligencia artificial
F RAMEWORKS DE DESARROLLO JAVA,.NET Deisy Pérez Sánchez.
Ruby on Rails - Javier Espinazo Pagán - Febrero 2005/ Ruby on Rails Desarrollo Web Ágil Javier Espinazo Pagán Convocatoria Febrero 2005/2006.
Diseño de una base de datos Zavaleta Nolasco Karina
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Servidores.
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
ScrumMe Integrantes: Gabriel Centurión Maximiliano Félix.
Lenguajes de programación Web
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Lenguajes de programación para la web Lenguaje html Lenguaje java script Es un lenguaje estático para el desarrollo de sitios web Ventajas: Sencillo que.
INTEGRANTES LINA JIMÉNEZ LOZANO ROSA ELENA REINA CARLOS VILLADIEGO MARIANO SEPULVEDA.
INTRODUCCIÓN A JAVA. Índice ¿Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales ¿Qué ventajas tengo como desarrollador?
LINQ TO AMAZON IN SILVERLIGHT Presentación del Producto.
 Un LENGUAJE DE PROGRAMACION es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas al cabo por maquinas como las computadoras.
FRAMEWORK VS Código fuente
Paradigmas de Lenguajes de Programación Smalltalk (Parte II) 1 er cuatrimestre de 2007.
Bienvenidos. Desarrollo de Aplicaciones I Lic. Alfonso Felipe Lima Cortés
Cristian Fonnegra Marin
Metodología de la programación
CMS DRUPAL HERRAMIENTAS DE DISEÑO CARLOS LLANOS V. JENNIFER QUINDE G. JUAN MACIAS B. KERLY UBE.
Juan Timoteo Ponce Ortiz
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
AGUIRRE GARCIA LUIS JOSE ARRIAGA CADENA ELIZABETH CASTILLO DEL VALLE MARIANA CRUZ BAUTISTA JANETH DIEGO PERFECTO RUFINA.
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
Aplicaciones en 2,3 y n capas
Stored Procedures vs. Programación Tradicional
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Desarrollo y servicios web Luisa Fernanda Rincón Pérez
Arquitectura y Frameworks Web Carlos Andrade
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
U niversidad de G uadalajara Centro Universitario de Ciencias Exactas e Ingenierías Ponentes: Muñoz Guzmán Ramón Gallardo Olivares Mario Solís Flores José.
SYMFONY Información del Framework. Síntesis de Symfony  Es un framework diseñado para optimizar el desarrollo de aplicaciones web creado con PHP5. 
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Javier Smaldone 5tas Jornadas Regionales de Software Libre Noviembre de 2005 Rosario, Santa Fe, Argentina Primeros pasos en.
Transcripción de la presentación:

85 motivos* para Ruby on Rails Una sucinta puntuación sobre su definición, su función y un ejemplo de implementación. (Es decir, una breve introducción). *Si bien los motivos son 85, no se hará referencia explícita a ellos, por lo cual deberán ser deducidos por el lector.

Qué es Ruby Un lenguaje de programación dinámico y de código abierto enfocado en la simplicidad y productividad. Su elegante sintaxis se siente natural al leerla y fácil al escribirla. Algunas características: Interpretado: se ejecuta inmediatamente sin necesidad de compilador, aunque la ejecución es más lenta. Orientado a objetos: absolutamente todo es un objeto. Portable: funciona en múltiples plataformas (UNIX, Windows, DOS, Mac, etc.) sin necesidad de cambios. No-tipado: las variables no tienen un tipo. Garbage collector: built-in, sin necesidad de preocuparse por liberar memoria. Sintaxis fácil y clara. Totalmente gratuito, incluso para aplicaciones comerciales.

Ejemplos 5.times { print "Hello World" } a = "hola"  a[1] = "a"  print a (imprime ”hala”) 0.zero?  true 2.+(3)  5 (lo mismo que 2+3) 10.class  Fixnum (10**100).class  Bignum class Integer def even? (self % 2) == 0 end p (1..10).select { |n| n.even? }  muestra [2, 4, 6, 8, 10]

Qué es Ruby on Rails Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en Ruby siguiendo el paradigma de la arquitectura MVC. Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Principios en los que está basado: - Don’t Repeat Yourself: no duplicar las “piezas de información”. - Convention Over Configuration: ganar simplicidad especificando sólo aspectos no convencionales. - REST: patrón de diseño web basado en identificación de recursos.

SCAFFOLDING $ rails server $ rails new blog $ rake db:create Rails provee Scaffolding, una técnica para construir vistas, modelos, controladores, bases de datos, etc. a partir de operaciones simples. $ rails server $ rails new blog $ rake db:create $ rails generate controller home index $ rails generate scaffold Post name:string title:string content:text

Modelos Definición Uso de scopes class Animal < ActiveRecord::Base   named_scope 'nocturnal', :conditions => {'nocturnal' => true}   named_scope 'carnivorous', :conditions => {'vegetarian' => true}   def self.feed_all_with(food)     self.all.each do |animal|       animal.feed_with(food)     end   end end Uso de scopes if night_time?   Animal.nocturnal.carnivorous.feed_all_with(bacon) end

Modelos asociados class Post < ActiveRecord::Base   validates :name,  :presence => true   validates :title, :presence => true,                     :length => { :minimum => 5 } end Modelos asociados class Comment < ActiveRecord::Base   belongs_to :post end class Post < ActiveRecord::Base   validates :name,  :presence => true   validates :title, :presence => true,                     :length => { :minimum => 5 }     has_many :comments end

Migraciones Las migraciones describen transformaciones en clases auto-contenidas que pueden ser chequeadas en sistemas de control de versión y ejecutados en una base de datos. Las migraciones son un modo conveniente de alterar una base de datos en una manera estrucurada y organizada. class CreateProducts < ActiveRecord::Migration   def up     create_table :products do |t|       t.string :name       t.text :description         t.timestamps     end   end   def down     drop_table :products end

ActiveRecord ActiveRecord es la capa de Rails de mapeo relacional de objetos. Provee una interfaz orientada a objetos que se relacionan con una base de datos, para hacer el desarrollo más simple y amigable para el desarrollador. El ActiveRecord de Ruby es un ORM (object-relational mapping): hace las traducciones entre objetos Ruby y la base de datos, manejando registros y relaciones. La librería ActiveRecord de Ruby crea un modelo de negocio persistente desde los objetos de negocio y las tablas de datos, unificándose la lógica y los datos en un solo paquete. ActiveRecord agrega herencia y asociaciones al patrón Active Record común, dándole más potencia.

Ejemplos class Guest < ActiveRecord::Base belongs_to :comment end class Category < ActiveRecord::Base   has_many :posts end class Post < ActiveRecord::Base   belongs_to :category   has_many :comments   has_many :tags class Comment < ActiveRecord::Base   belongs_to :post   has_one :guest end  class Guest < ActiveRecord::Base   belongs_to :comment end class Tag < ActiveRecord::Base   belongs_to :post

client = Client.find(10) client = Client.first User.find_each(:batch_size => 5000) do |user|   NewsLetter.weekly_deliver(user) end User.find_each(:start => 2000, :batch_size => 5000) do |user| Client.where("orders_count = ? AND locked = ?", params[:orders], false) Post.where('id > 10').limit(20).order('id desc') class Post < ActiveRecord::Base   scope :last_week, lambda { where("created_at < ?", Time.zone.now ) } end   scope :1_week_before, lambda { |time| where("created_at < ?", time) } Post.4_week_before(Time.zone.now)

ASP .NET MVC vs Ruby on Rails Rails es más flexible y más rápido para trabajar. El scaffolding es más rápido y más fácil, y las migraciones pueden ser muy valiosas. ActiveRecord agiliza mucho. Ruby es muy simple. En cuanto a lo demás, ambos frameworks son muy parecidos, pueden lograr lo mismo. Testing con buenas herramientas en ambos casos. Microsoft es Microsoft…

Un ejemplo de aplicación simplE. (UN SIMPLE EJEMPLO DE APLICACIÓN)