Ruby on Rails - ETyC 2011

2,097 views
2,004 views

Published on

Presentación en marco de la ETyC 2011, Asunción - Paraguay

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,097
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
73
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Ruby on Rails - ETyC 2011

  1. 1. Una introducción aRuby on Rails Rafael Franco Aquino Desarrollador web de Puntopy
  2. 2. Ruby on Rails
  3. 3. Ruby…es un lenguaje de programacióndinámico y de código abiertoenfocado en la simplicidad yproductividad. Su elegante sintaxisse siente natural al leerla y fácil alescribirla. – Wikipedia
  4. 4. Ruby Origen
  5. 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 2006gracias en parte al framework Ruby on Rails.
  6. 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
  7. 7. Ruby Características
  8. 8. Ruby CaracterísticasOrientación a objetos pura Todo es un objeto
  9. 9. Ruby Características Interpretado Es un lenguaje de scripting
  10. 10. Ruby Características Altamente PortableInterprete disponible para los SO más importantes
  11. 11. Ruby Características Altamente Dinámico Posee mecanismos altamente dinámicos
  12. 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. 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. 14. Ruby Características Metaprogramación...consiste en escribir programas que escriben omanipulan otros programas (o a sí mismos) comodatos, o que hacen en tiempo de compilación partedel trabajo que, de otra forma, se haría en tiempode ejecución.Esto permite al programador ahorrar tiempo en laproducción de código. – Wikipedia
  15. 15. Ruby Características Manejo de Excepciones
  16. 16. Ruby CaracterísticasExpresiones Regulares nativas
  17. 17. Ruby CaracterísticasSobrecarga de operadores
  18. 18. Ruby CaracterísticasGenerador de documentación RDoc
  19. 19. Ruby CaracterísticasHerramienta propia de build: Rake
  20. 20. Ruby CaracterísticasRepositorio Central de “Gemas”
  21. 21. Ruby Características● Gestor de paquetes de Ruby●Proporciona un formato estándar yautocontenido (llamado gem)●Se usa para distribuir programas o libreríasen Ruby●Posee una herramienta destinada agestionar la instalación de éstos.● Y un servidor para su distribución.● Equivalente a CPAN y PEAR en loslenguajes Perl y PHP, respectivamente.
  22. 22. Ruby on Rails...es un framework de aplicacionesweb de código abierto escrito en ellenguaje de programación Ruby,siguiendo el paradigma de laarquitectura Modelo VistaControlador (MVC) – Wikipedia
  23. 23. Ruby on Rails Origen
  24. 24. Ruby on Rails●Escrito por David Heinemeier Hansson y liberado enJulio de 2004.●Extraido de un proyecto de 37signals llamadaBasecamp.● Actualmente se encuentra en la versión 3.1
  25. 25. Ruby on Rails Características
  26. 26. 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 dedesarrollar aplicaciones del mundo real escribiendo menoscó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 ogemas.
  27. 27. Ruby on Rails Características...● Conexión a varios motores de base de datos.●Manejo de cambios a base de datos a través demigraciones (con código ruby).●No se usa SQL directamente en las consultas a base dedatos (pero se puede).●Unobtrusive AJAX integrado (jQuery por defecto a partirde la versión 3.1, antes prototype).●Gran cantidad de Helpers (ayudantes) para generarelementos repetitivos (formularios, campos, etc.).● Cuenta con una consola interactiva
  28. 28. 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 pordefecto (CoffeScript y Sass)●Posee varias tareas rake predefinidas para operacionescomunes 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
  29. 29. Ruby on Rails La filosofía
  30. 30. Ruby on Rails La Filosofía● DRY (Dont Repeat Yourself)No te repitas significa que las definiciones deberíanhacerse una sola vez.● Convention over Configuration.Convención sobre configuración significa que elprogramador sólo necesita definir aquella configuración queno es convencional
  31. 31. Ruby on Rails La Arquitectura
  32. 32. Ruby on Rails La Arquitectura MVC
  33. 33. Ruby on Rails Model
  34. 34. Ruby on RailsModel (Modelo)● Clases que presentan a las tablas de la base de datos● Gestionadas por ActiveRecord● Mapea automáticamente la tabla y las columnas de lamisma● Detalla las relaciones entre clases con sentencias demapeo objeto relacional● Se encarga de las rutinas de validación● Posee un sistema de Callbacks● Encargada de la “lógica de negocio”
  35. 35. Ruby on Rails View
  36. 36. Ruby on RailsView (Vista)● Es la lógica de visualización● Consiste en una cantidad mínima de código incluido enHTML● El sistema de plantillas por defecto de Rails es RubyEmbebido (ERB)● Se pueden usar otros sistemas de plantillas (como HAML,Liquid, etc.)● En ellas se pueden usar los helpers (ayudantes) paragenerar formularios, campos y otros elementos.● Se pueden reutilizar código mediante el uso de partials.Extrayendo código repetitivo e incluyendólos dondecorresponda● Se utilizan layouts para definir el maquetado.
  37. 37. Ruby on Rails Controller
  38. 38. Ruby on RailsController (Controlador)● Responden a la interacción del usuario e invocan a lalógica de la aplicación.● Manipula los datos de las clases del Modelo y muestra losresultados usando las Vistas● Son invocados por el usuario usando el navegador web● La implementación del Controlador es manejada por elActionPack de Rails, que contiene la clase ActionController● Presenta los datos usando el archivo de plantilla/app/views/ejemplo/método.html.erb
  39. 39. Ruby on Rails Componentes
  40. 40. Ruby on Rails Plugins
  41. 41. Ruby on RailsPlugins● Una forma para que los desarrolladores puedan compartirideas nuevas sin perjudicar a la base de código estable.●Una arquitectura segmentada para que las unidades decódigo puede ser corregidas o actualizadas con calendariosde lanzamientos propios.● Una salida para los desarrolladores principales de maneraque no tengan que incluir todas las características nuevas einteresantes.
  42. 42. Ruby on Rails Generadores
  43. 43. Ruby on RailsGeneradores●Son básicamente scripts de Ruby que generan una seriede modelos, vistas, controladores, etc.● Son fácilmemente personalizables.● Agilizan de sobre manera la creación de códigosrepetitivos como ABM, etc.●Los plugins generalmente poseen sus propiosgeneradores para facilitar la instalación o configuración
  44. 44. Ruby on Rails Helpers
  45. 45. Ruby on RailsHelpers●Es un módulo que ayuda a tus vistas definiendo funcionespara que las mismas sean más que nada HTML y nocontengan 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 elHTML or Javascript
  46. 46. Ruby on Rails ActionMailer
  47. 47. Ruby on RailsActionMailer●Permite enviar mensajes de correo electrónico desde suaplicación mediante un modelo mailer y vistas.●En Rails los correos electrónicos son utilizados creandomailers que se heredan de ActionMailer::Base y estánubicados en app/mailers● Los mailers tienen asociado vistas que aparecen junto alas vistas del controller en app/views.●Se pueden enviar correos de tipo plain text o con formatoHTML de manera muy simple
  48. 48. Ruby on Rails REST
  49. 49. Ruby on RailsREST●REST significa Representational State Transfer y es labase de la arquitectura RESTful.● REST en términos de los Rails se reduce a dos principiosfundamentales: ● 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
  50. 50. Ruby on Rails Testing
  51. 51. Ruby on RailsTesting● Rails posee desde sus inicios un sistema de Testing.●Al generar un model o un controller automáticamente secrean archivos de esqueleto para las pruebas●Las pruebas de Rails pueden simular las peticiones delnavegador y de esta manera se puede probar la respuestade 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)
  52. 52. Ruby on Rails Recursos
  53. 53. Ruby on Rails http://www.ruby-lang.org/
  54. 54. Ruby on Rails http://rubygems.org/
  55. 55. Ruby on Rails http://rubyonrails.org/
  56. 56. Ruby on Rails http://tryruby.org/
  57. 57. Ruby on Rails http://railsforzombies.com/
  58. 58. Ruby on Rails ᆰ http://guides.rubyonrails.org/
  59. 59. Ruby on Rails http://railsapi.com/
  60. 60. Ruby on Rails http://railscasts.com/
  61. 61. Ruby on Rails Conclusión
  62. 62. Ruby on RailsMuchas GraciasNos vemos mañana

×