SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
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
...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

Contenu connexe

Tendances

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
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 

Dernier (20)

Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 

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.
  • 22.
  • 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