SlideShare a Scribd company logo
1 of 63
Download to read offline
Una introducción a
Ruby on Rails


    Rafael Franco Aquino
    Desarrollador web de Puntopy
Ruby on Rails
Ruby
…es 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.
                            – Wikipedia
Ruby




       Origen
Ruby
                      Origen
●Creado en 1995 por el programador japonés Yukihiro
"Matz" Matsumoto.




●Su creador se inspiró en sus lenguajes preferidos
(Perl, Python, Smalltalk, Eiffel, Ada, y Lisp)
●Alcanzó reconocimiento masivo a partir del 2006
gracias en parte al framework Ruby on Rails.
Ruby



“   A menudo la gente, especialmente los ingenieros en
    computación, se centran en las máquinas.

    Ellos piensan, "Haciendo esto, la máquina
    funcionará más rápido. Haciendo esto, la máquina
    funcionará de manera más eficiente. Haciendo
    esto..."

    Están centrados en las máquinas, pero en realidad
    necesitamos centrarnos en las personas, en cómo
    hacen programas o cómo manejan las aplicaciones
    en los ordenadores.

    Nosotros somos los jefes. Ellos son los esclavos.
                                                        ”
                                 – Yukihiro “Matz” Matsumoto
Ruby




  Características
Ruby                       Características




Orientación a objetos pura
       Todo es un objeto
Ruby                            Características




         Interpretado
       Es un lenguaje de scripting
Ruby                              Características




      Altamente Portable
Interprete disponible para los SO más importantes
Ruby                         Características




   Altamente Dinámico
  Posee mecanismos altamente dinámicos
Ruby                            Características




  Introspección de tipos
 ...es la capacidad de algunos lenguaje de
 programación orientado a objetos de determinar
 el tipo de un objeto en tiempo de ejecución


                                  – Wikipedia
Ruby                           Características



          Reflexión
 En informática, reflexión (o reflexión
 computacional) es la capacidad que tiene
 un programa de ordenador para observar
 y opcionalmente modificar su estructura
 de alto nivel.

                                  – Wikipedia
Ruby                             Características


      Metaprogramación
...consiste en escribir programas que escriben o
manipulan otros programas (o a sí mismos) como
datos, o que hacen en tiempo de compilación parte
del trabajo que, de otra forma, se haría en tiempo
de ejecución.

Esto permite al programador ahorrar tiempo en la
producción de código.
                                   – Wikipedia
Ruby            Características




 Manejo de Excepciones
Ruby              Características




Expresiones Regulares nativas
Ruby             Características




Sobrecarga de operadores
Ruby             Características




Generador de documentación RDoc
Ruby                Características




Herramienta propia de build: Rake
Ruby              Características


Repositorio Central de “Gemas”
Ruby
                                   Características
●   Gestor de paquetes de Ruby
●Proporciona un formato estándar y
autocontenido (llamado gem)
●Se usa para distribuir programas o librerías
en Ruby
●Posee una herramienta destinada a
gestionar la instalación de éstos.
●   Y un servidor para su distribución.
● Equivalente a CPAN y PEAR en los
lenguajes Perl y PHP, respectivamente.
Ruby on Rails - ETyC 2011
Ruby on Rails
...es un framework de aplicaciones
web de código abierto escrito en el
lenguaje de programación Ruby,
siguiendo el paradigma de la
arquitectura Modelo Vista
Controlador (MVC)
                           – Wikipedia
Ruby on Rails




       Origen
Ruby on Rails


●Escrito por David Heinemeier Hansson y liberado en
Julio de 2004.




●Extraido de un proyecto de 37signals llamada
Basecamp.

●   Actualmente se encuentra en la versión 3.1
Ruby on Rails




  Características
Ruby on Rails

                Características
●   Arquitectura Modelo Vista Controlador (MVC).

●   Aprovecha al máximo la Metaprogramación de Ruby.

●Trata de combinar la simplicidad con la posibilidad de
desarrollar aplicaciones del mundo real escribiendo menos
código.

●   Opinionated (un framework con opinión).

●   Cuenta con un potente motor de generación de código.

●Se puede extender su funcionalidad a través de plugins o
gemas.
Ruby on Rails

                Características...
●   Conexión a varios motores de base de datos.

●Manejo de cambios a base de datos a través de
migraciones (con código ruby).

●No se usa SQL directamente en las consultas a base de
datos (pero se puede).

●Unobtrusive AJAX integrado (jQuery por defecto a partir
de la versión 3.1, antes prototype).

●Gran cantidad de Helpers (ayudantes) para generar
elementos repetitivos (formularios, campos, etc.).

●   Cuenta con una consola interactiva
Ruby on Rails

                 Características...
●Manejo de assets (JavaScript, css, imagenes),
comprimido, minificado (a partir de la versión 3.1).

●Cuenta con preprocesadores de CSS y JavaScript por
defecto (CoffeScript y Sass)

●Posee varias tareas rake predefinidas para operaciones
comunes como migraciones, test, etc.

●   Maneja el ruteo de manera muy fácil y dinámico

●   Soporte integrado a Internalización (i18n) y Localización

●   Manejo de “gemas” y sus dependencias
Ruby on Rails




    La filosofía
Ruby on Rails

                     La Filosofía
●   DRY (Don't Repeat Yourself)

No te repitas significa que las definiciones deberían
hacerse una sola vez.



●   Convention over Configuration.

Convención sobre configuración significa que el
programador sólo necesita definir aquella configuración que
no es convencional
Ruby on Rails




  La Arquitectura
Ruby on Rails
         La Arquitectura MVC
Ruby on Rails




       Model
Ruby on Rails


Model (Modelo)
● Clases que presentan a las tablas de la base de datos
● Gestionadas por ActiveRecord

● Mapea automáticamente la tabla y las columnas de la

misma
● Detalla las relaciones entre clases con sentencias de

mapeo objeto relacional
● Se encarga de las rutinas de validación

● Posee un sistema de Callbacks

● Encargada de la “lógica de negocio”
Ruby on Rails




        View
Ruby on Rails

View (Vista)
● Es la lógica de visualización
● Consiste en una cantidad mínima de código incluido en

HTML
● El sistema de plantillas por defecto de Rails es Ruby

Embebido (ERB)
● Se pueden usar otros sistemas de plantillas (como HAML,

Liquid, etc.)
● En ellas se pueden usar los helpers (ayudantes) para

generar formularios, campos y otros elementos.
● Se pueden reutilizar código mediante el uso de partials.

Extrayendo código repetitivo e incluyendólos donde
corresponda
● Se utilizan layouts para definir el maquetado.
Ruby on Rails




     Controller
Ruby on Rails


Controller (Controlador)
● Responden a la interacción del usuario e invocan a la
lógica de la aplicación.
● Manipula los datos de las clases del Modelo y muestra los

resultados usando las Vistas
● Son invocados por el usuario usando el navegador web

● La implementación del Controlador es manejada por el

ActionPack de Rails, que contiene la clase ActionController
● Presenta los datos usando el archivo de plantilla

/app/views/ejemplo/método.html.erb
Ruby on Rails




   Componentes
Ruby on Rails




       Plugins
Ruby on Rails


Plugins
● Una forma para que los desarrolladores puedan compartir
ideas nuevas sin perjudicar a la base de código estable.

●Una arquitectura segmentada para que las unidades de
código puede ser corregidas o actualizadas con calendarios
de lanzamientos propios.

● Una salida para los desarrolladores principales de manera
que no tengan que incluir todas las características nuevas e
interesantes.
Ruby on Rails




    Generadores
Ruby on Rails


Generadores
●Son básicamente scripts de Ruby que generan una serie
de modelos, vistas, controladores, etc.

●   Son fácilmemente personalizables.

● Agilizan de sobre manera la creación de códigos
repetitivos como ABM, etc.

●Los plugins generalmente poseen sus propios
generadores para facilitar la instalación o configuración
Ruby on Rails




       Helpers
Ruby on Rails


Helpers
●Es un módulo que ayuda a tus vistas definiendo funciones
para que las mismas sean más que nada HTML y no
contengan demasiado código.

●En un sistema de modelo MVC, la idea es que la vista (la
"V" de MVC) sea tan simple como sea posible.

●   Rails viene con varios Helpers predefinidos.

●Normalmente los helpers producen contenido para el
HTML or Javascript
Ruby on Rails




    ActionMailer
Ruby on Rails


ActionMailer
●Permite enviar mensajes de correo electrónico desde su
aplicación mediante un modelo mailer y vistas.

●En Rails los correos electrónicos son utilizados creando
mailers que se heredan de ActionMailer::Base y están
ubicados en app/mailers

● Los mailers tienen asociado vistas que aparecen junto a
las vistas del controller en app/views.

●Se pueden enviar correos de tipo plain text o con formato
HTML de manera muy simple
Ruby on Rails




        REST
Ruby on Rails


REST
●REST significa Representational State Transfer y es la
base de la arquitectura RESTful.

● REST en términos de los Rails se reduce a dos principios
fundamentales:

     ●   El uso de identificadores de recursos como las
         direcciones URL para representar a los recursos.

     ●   La transferencia de las representaciones del estado de
         ese recurso entre los componentes del sistema.

●   DELETE /fotos/17
Ruby on Rails




       Testing
Ruby on Rails

Testing
●   Rails posee desde sus inicios un sistema de Testing.

●Al generar un model o un controller automáticamente se
crean archivos de esqueleto para las pruebas

●Las pruebas de Rails pueden simular las peticiones del
navegador y de esta manera se puede probar la respuesta
de la aplicación sin la necesidad de un navegador.

●   En Rails 3 existen 4 tipos de pruebas:
    ● Functional (Controller)

    ● Integration (interacción entre Controller)

    ● Unit (Model)

    ● Performance (Benchmarking, Profiling)
Ruby on Rails




     Recursos
Ruby on Rails




     http://www.ruby-lang.org/
Ruby on Rails




      http://rubygems.org/
Ruby on Rails




     http://rubyonrails.org/
Ruby on Rails




       http://tryruby.org/
Ruby on Rails




     http://railsforzombies.com/
Ruby on Rails




                    ᆰ




     http://guides.rubyonrails.org/
Ruby on Rails




       http://railsapi.com/
Ruby on Rails




       http://railscasts.com/
Ruby on Rails




     Conclusión
Ruby on Rails
Muchas Gracias
Nos vemos mañana

More Related Content

What's hot

5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006Samuel Marrero
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQLWilian
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo WebEmilio Aviles Avila
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Samuel Marrero
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETJavier Roig
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006Samuel Marrero
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaEudris Cabrera
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...JaenFrankcezco
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en javaEudris Cabrera
 

What's hot (20)

Web services y java
Web services y javaWeb services y java
Web services y java
 
9.laravel
9.laravel9.laravel
9.laravel
 
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-20065. Curso Java Struts I (Framework para Java) - Curso 2005-2006
5. Curso Java Struts I (Framework para Java) - Curso 2005-2006
 
Asp.net
Asp.netAsp.net
Asp.net
 
Curso Java Avanzado 3 Js Ps
Curso Java Avanzado   3 Js PsCurso Java Avanzado   3 Js Ps
Curso Java Avanzado 3 Js Ps
 
Asp
AspAsp
Asp
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Trabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NETTrabajar con bases de datos desde ASP.NET
Trabajar con bases de datos desde ASP.NET
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Charla
CharlaCharla
Charla
 
2. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-20062. Java Servlets (J2EE) - Curso 2005-2006
2. Java Servlets (J2EE) - Curso 2005-2006
 
Introducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en JavaIntroducción al desarrollo de aplicaciones web en Java
Introducción al desarrollo de aplicaciones web en Java
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en java
 

Viewers also liked

Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012INSIGNIA4U
 
Curso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de DeustoCurso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de Deustoestialvarez
 
Ruby Mola (y por qué)
Ruby Mola (y por qué)Ruby Mola (y por qué)
Ruby Mola (y por qué)Sergio Gil
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao rubyFrancis Wagner
 
Curso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosCurso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosAlberto Perdomo
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven DevelopmentAlberto Perdomo
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on RailsASPgems
 
Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2estialvarez
 
Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopiesGroopify
 
"Primeros pasos en una start up" por @yusefmartins
"Primeros pasos en una start up" por @yusefmartins"Primeros pasos en una start up" por @yusefmartins
"Primeros pasos en una start up" por @yusefmartinswebcat
 

Viewers also liked (20)

Ruby Facil
Ruby FacilRuby Facil
Ruby Facil
 
Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012Code Blast 2012 - Ruby on Rails v.2012
Code Blast 2012 - Ruby on Rails v.2012
 
Comandos html
Comandos htmlComandos html
Comandos html
 
Ruby On Rails (Parte 1. Introducción)
Ruby On Rails (Parte 1. Introducción)Ruby On Rails (Parte 1. Introducción)
Ruby On Rails (Parte 1. Introducción)
 
Curso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de DeustoCurso de Ruby on Rails para el Master de Deusto
Curso de Ruby on Rails para el Master de Deusto
 
Ruby On Rails (Parte II))
Ruby On Rails (Parte II))Ruby On Rails (Parte II))
Ruby On Rails (Parte II))
 
Ruby Mola (y por qué)
Ruby Mola (y por qué)Ruby Mola (y por qué)
Ruby Mola (y por qué)
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Curso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosCurso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitarios
 
Ruby 101 session 3
Ruby 101 session 3Ruby 101 session 3
Ruby 101 session 3
 
Ruby 101 session 2
Ruby 101 session 2Ruby 101 session 2
Ruby 101 session 2
 
Curso TDD Ruby on Rails #02: Test Driven Development
Curso TDD  Ruby on Rails #02: Test Driven DevelopmentCurso TDD  Ruby on Rails #02: Test Driven Development
Curso TDD Ruby on Rails #02: Test Driven Development
 
Curso de Ruby on Rails
Curso de Ruby on RailsCurso de Ruby on Rails
Curso de Ruby on Rails
 
Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2Curso de Ruby on Rails para el Master de Deusto. Día 2
Curso de Ruby on Rails para el Master de Deusto. Día 2
 
Taller ruby
Taller rubyTaller ruby
Taller ruby
 
COMANDO HTML
COMANDO HTMLCOMANDO HTML
COMANDO HTML
 
Tutorial css
Tutorial cssTutorial css
Tutorial css
 
Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopies
 
"Primeros pasos en una start up" por @yusefmartins
"Primeros pasos en una start up" por @yusefmartins"Primeros pasos en una start up" por @yusefmartins
"Primeros pasos en una start up" por @yusefmartins
 
Estilos cascadas
Estilos cascadasEstilos cascadas
Estilos cascadas
 

Similar to Ruby on Rails - ETyC 2011

Presentación Ruby on Rails
Presentación Ruby on RailsPresentación Ruby on Rails
Presentación Ruby on RailsGiannis Morales
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTestingUy
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsDiacode
 
Ruby on the Rails
Ruby on the RailsRuby on the Rails
Ruby on the Rails000ari2014
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on railspelusa
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Ruby on Rails, Easy as 1, 2,3.
Ruby on Rails, Easy as 1, 2,3.Ruby on Rails, Easy as 1, 2,3.
Ruby on Rails, Easy as 1, 2,3.Ricardo Guillen
 
Sesión 03: Ruby y SAP
Sesión 03: Ruby y SAPSesión 03: Ruby y SAP
Sesión 03: Ruby y SAPBiz Partner
 
SAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAPSAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAPAlvaro Tejada
 
"La era de los frameworks: Ruby On Rails"
"La era de los frameworks: Ruby On Rails""La era de los frameworks: Ruby On Rails"
"La era de los frameworks: Ruby On Rails"Enrique Place
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linuxvilna2011
 
Herramientas SI para Aplicaciones Web - Gianni Rodriguez
Herramientas SI para Aplicaciones Web - Gianni RodriguezHerramientas SI para Aplicaciones Web - Gianni Rodriguez
Herramientas SI para Aplicaciones Web - Gianni RodriguezGialrod1228
 
Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoYulgrecia2011
 

Similar to Ruby on Rails - ETyC 2011 (20)

Presentación Ruby on Rails
Presentación Ruby on RailsPresentación Ruby on Rails
Presentación Ruby on Rails
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
 
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con RubyTaller evento TestingUY 2016 - Automatización de Pruebas con Ruby
Taller evento TestingUY 2016 - Automatización de Pruebas con Ruby
 
Taller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on RailsTaller de Introducción a Ruby on Rails
Taller de Introducción a Ruby on Rails
 
Ruby on the Rails
Ruby on the RailsRuby on the Rails
Ruby on the Rails
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Ruby on Rails, Easy as 1, 2,3.
Ruby on Rails, Easy as 1, 2,3.Ruby on Rails, Easy as 1, 2,3.
Ruby on Rails, Easy as 1, 2,3.
 
Sesión 03: Ruby y SAP
Sesión 03: Ruby y SAPSesión 03: Ruby y SAP
Sesión 03: Ruby y SAP
 
SAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAPSAP Inside Track Lima 09 - Ruby y SAP
SAP Inside Track Lima 09 - Ruby y SAP
 
Nombre
NombreNombre
Nombre
 
Descifrando Ruby on Rails
Descifrando Ruby on RailsDescifrando Ruby on Rails
Descifrando Ruby on Rails
 
¿Que es javascript y Modulos?
¿Que es javascript y Modulos?¿Que es javascript y Modulos?
¿Que es javascript y Modulos?
 
"La era de los frameworks: Ruby On Rails"
"La era de los frameworks: Ruby On Rails""La era de los frameworks: Ruby On Rails"
"La era de los frameworks: Ruby On Rails"
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Ruby en linux
Ruby en linuxRuby en linux
Ruby en linux
 
Lenguaje de programación Java
Lenguaje de programación Java Lenguaje de programación Java
Lenguaje de programación Java
 
Herramientas SI para Aplicaciones Web - Gianni Rodriguez
Herramientas SI para Aplicaciones Web - Gianni RodriguezHerramientas SI para Aplicaciones Web - Gianni Rodriguez
Herramientas SI para Aplicaciones Web - Gianni Rodriguez
 
Ruby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretadoRuby es un lenguaje de programación interpretado
Ruby es un lenguaje de programación interpretado
 
Diccionario 1
Diccionario 1Diccionario 1
Diccionario 1
 

Recently uploaded

De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 

Recently uploaded (20)

De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 

Ruby on Rails - ETyC 2011

  • 1. Una introducción a Ruby on Rails Rafael Franco Aquino Desarrollador web de Puntopy
  • 3. Ruby …es 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. – Wikipedia
  • 4. Ruby Origen
  • 5. Ruby Origen ●Creado en 1995 por el programador japonés Yukihiro "Matz" Matsumoto. ●Su creador se inspiró en sus lenguajes preferidos (Perl, Python, Smalltalk, Eiffel, Ada, y Lisp) ●Alcanzó reconocimiento masivo a partir del 2006 gracias en parte al framework Ruby on Rails.
  • 6. Ruby “ A menudo la gente, especialmente los ingenieros en computación, se centran en las máquinas. Ellos piensan, "Haciendo esto, la máquina funcionará más rápido. Haciendo esto, la máquina funcionará de manera más eficiente. Haciendo esto..." Están centrados en las máquinas, pero en realidad necesitamos centrarnos en las personas, en cómo hacen programas o cómo manejan las aplicaciones en los ordenadores. Nosotros somos los jefes. Ellos son los esclavos. ” – Yukihiro “Matz” Matsumoto
  • 8. Ruby Características Orientación a objetos pura Todo es un objeto
  • 9. Ruby Características Interpretado Es un lenguaje de scripting
  • 10. Ruby Características Altamente Portable Interprete disponible para los SO más importantes
  • 11. Ruby Características Altamente Dinámico Posee mecanismos altamente dinámicos
  • 12. Ruby Características Introspección de tipos ...es la capacidad de algunos lenguaje de programación orientado a objetos de determinar el tipo de un objeto en tiempo de ejecución – Wikipedia
  • 13. Ruby Características Reflexión En informática, reflexión (o reflexión computacional) es la capacidad que tiene un programa de ordenador para observar y opcionalmente modificar su estructura de alto nivel. – Wikipedia
  • 14. Ruby Características Metaprogramación ...consiste en escribir programas que escriben o manipulan otros programas (o a sí mismos) como datos, o que hacen en tiempo de compilación parte del trabajo que, de otra forma, se haría en tiempo de ejecución. Esto permite al programador ahorrar tiempo en la producción de código. – Wikipedia
  • 15. Ruby Características Manejo de Excepciones
  • 16. Ruby Características Expresiones Regulares nativas
  • 17. Ruby Características Sobrecarga de operadores
  • 18. Ruby Características Generador de documentación RDoc
  • 19. Ruby Características Herramienta propia de build: Rake
  • 20. Ruby Características Repositorio Central de “Gemas”
  • 21. Ruby Características ● Gestor de paquetes de Ruby ●Proporciona un formato estándar y autocontenido (llamado gem) ●Se usa para distribuir programas o librerías en Ruby ●Posee una herramienta destinada a gestionar la instalación de éstos. ● Y un servidor para su distribución. ● Equivalente a CPAN y PEAR en los lenguajes Perl y PHP, respectivamente.
  • 23. Ruby on Rails ...es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura Modelo Vista Controlador (MVC) – Wikipedia
  • 24. Ruby on Rails Origen
  • 25. Ruby on Rails ●Escrito por David Heinemeier Hansson y liberado en Julio de 2004. ●Extraido de un proyecto de 37signals llamada Basecamp. ● Actualmente se encuentra en la versión 3.1
  • 26. Ruby on Rails Características
  • 27. Ruby on Rails Características ● Arquitectura Modelo Vista Controlador (MVC). ● Aprovecha al máximo la Metaprogramación de Ruby. ●Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código. ● Opinionated (un framework con opinión). ● Cuenta con un potente motor de generación de código. ●Se puede extender su funcionalidad a través de plugins o gemas.
  • 28. Ruby on Rails Características... ● Conexión a varios motores de base de datos. ●Manejo de cambios a base de datos a través de migraciones (con código ruby). ●No se usa SQL directamente en las consultas a base de datos (pero se puede). ●Unobtrusive AJAX integrado (jQuery por defecto a partir de la versión 3.1, antes prototype). ●Gran cantidad de Helpers (ayudantes) para generar elementos repetitivos (formularios, campos, etc.). ● Cuenta con una consola interactiva
  • 29. Ruby on Rails Características... ●Manejo de assets (JavaScript, css, imagenes), comprimido, minificado (a partir de la versión 3.1). ●Cuenta con preprocesadores de CSS y JavaScript por defecto (CoffeScript y Sass) ●Posee varias tareas rake predefinidas para operaciones comunes como migraciones, test, etc. ● Maneja el ruteo de manera muy fácil y dinámico ● Soporte integrado a Internalización (i18n) y Localización ● Manejo de “gemas” y sus dependencias
  • 30. Ruby on Rails La filosofía
  • 31. Ruby on Rails La Filosofía ● DRY (Don't Repeat Yourself) No te repitas significa que las definiciones deberían hacerse una sola vez. ● Convention over Configuration. Convención sobre configuración significa que el programador sólo necesita definir aquella configuración que no es convencional
  • 32. Ruby on Rails La Arquitectura
  • 33. Ruby on Rails La Arquitectura MVC
  • 34. Ruby on Rails Model
  • 35. Ruby on Rails Model (Modelo) ● Clases que presentan a las tablas de la base de datos ● Gestionadas por ActiveRecord ● Mapea automáticamente la tabla y las columnas de la misma ● Detalla las relaciones entre clases con sentencias de mapeo objeto relacional ● Se encarga de las rutinas de validación ● Posee un sistema de Callbacks ● Encargada de la “lógica de negocio”
  • 37. Ruby on Rails View (Vista) ● Es la lógica de visualización ● Consiste en una cantidad mínima de código incluido en HTML ● El sistema de plantillas por defecto de Rails es Ruby Embebido (ERB) ● Se pueden usar otros sistemas de plantillas (como HAML, Liquid, etc.) ● En ellas se pueden usar los helpers (ayudantes) para generar formularios, campos y otros elementos. ● Se pueden reutilizar código mediante el uso de partials. Extrayendo código repetitivo e incluyendólos donde corresponda ● Se utilizan layouts para definir el maquetado.
  • 38. Ruby on Rails Controller
  • 39. Ruby on Rails Controller (Controlador) ● Responden a la interacción del usuario e invocan a la lógica de la aplicación. ● Manipula los datos de las clases del Modelo y muestra los resultados usando las Vistas ● Son invocados por el usuario usando el navegador web ● La implementación del Controlador es manejada por el ActionPack de Rails, que contiene la clase ActionController ● Presenta los datos usando el archivo de plantilla /app/views/ejemplo/método.html.erb
  • 40. Ruby on Rails Componentes
  • 41. Ruby on Rails Plugins
  • 42. Ruby on Rails Plugins ● Una forma para que los desarrolladores puedan compartir ideas nuevas sin perjudicar a la base de código estable. ●Una arquitectura segmentada para que las unidades de código puede ser corregidas o actualizadas con calendarios de lanzamientos propios. ● Una salida para los desarrolladores principales de manera que no tengan que incluir todas las características nuevas e interesantes.
  • 43. Ruby on Rails Generadores
  • 44. Ruby on Rails Generadores ●Son básicamente scripts de Ruby que generan una serie de modelos, vistas, controladores, etc. ● Son fácilmemente personalizables. ● Agilizan de sobre manera la creación de códigos repetitivos como ABM, etc. ●Los plugins generalmente poseen sus propios generadores para facilitar la instalación o configuración
  • 45. Ruby on Rails Helpers
  • 46. Ruby on Rails Helpers ●Es un módulo que ayuda a tus vistas definiendo funciones para que las mismas sean más que nada HTML y no contengan demasiado código. ●En un sistema de modelo MVC, la idea es que la vista (la "V" de MVC) sea tan simple como sea posible. ● Rails viene con varios Helpers predefinidos. ●Normalmente los helpers producen contenido para el HTML or Javascript
  • 47. Ruby on Rails ActionMailer
  • 48. Ruby on Rails ActionMailer ●Permite enviar mensajes de correo electrónico desde su aplicación mediante un modelo mailer y vistas. ●En Rails los correos electrónicos son utilizados creando mailers que se heredan de ActionMailer::Base y están ubicados en app/mailers ● Los mailers tienen asociado vistas que aparecen junto a las vistas del controller en app/views. ●Se pueden enviar correos de tipo plain text o con formato HTML de manera muy simple
  • 50. Ruby on Rails REST ●REST significa Representational State Transfer y es la base de la arquitectura RESTful. ● REST en términos de los Rails se reduce a dos principios fundamentales: ● El uso de identificadores de recursos como las direcciones URL para representar a los recursos. ● La transferencia de las representaciones del estado de ese recurso entre los componentes del sistema. ● DELETE /fotos/17
  • 51. Ruby on Rails Testing
  • 52. Ruby on Rails Testing ● Rails posee desde sus inicios un sistema de Testing. ●Al generar un model o un controller automáticamente se crean archivos de esqueleto para las pruebas ●Las pruebas de Rails pueden simular las peticiones del navegador y de esta manera se puede probar la respuesta de la aplicación sin la necesidad de un navegador. ● En Rails 3 existen 4 tipos de pruebas: ● Functional (Controller) ● Integration (interacción entre Controller) ● Unit (Model) ● Performance (Benchmarking, Profiling)
  • 53. Ruby on Rails Recursos
  • 54. Ruby on Rails http://www.ruby-lang.org/
  • 55. Ruby on Rails http://rubygems.org/
  • 56. Ruby on Rails http://rubyonrails.org/
  • 57. Ruby on Rails http://tryruby.org/
  • 58. Ruby on Rails http://railsforzombies.com/
  • 59. Ruby on Rails ᆰ http://guides.rubyonrails.org/
  • 60. Ruby on Rails http://railsapi.com/
  • 61. Ruby on Rails http://railscasts.com/
  • 62. Ruby on Rails Conclusión
  • 63. Ruby on Rails Muchas Gracias Nos vemos mañana