¿Qué es Ruby?
Yukihiro Matsumoto
Diseñado y Desarrollado en los 90's
Influenciado por Perl, SmallTalk, Eiffel, Ada y Lisp
Características
100% orientado a objetos
Open Source
Multiparadigma
Muy Alto Nivel
Portable
Iteradores y Clausuras de Closures
Regex
Reflexión y Metaprogramación
Alteración de Objetos en Tiempo de ejecución
Sobrecarga de Operadores
Amplia librería Estándar
Documentación Abundante
IRB
(Interactive Ruby Shell)
- Provee una línea de comandos shell o command prompt para experimentación e interacción con el lenguaje.
-
Con IRB puedes ver los resultados inmediatamente, línea por línea.
Guía rápida sobre Ruby
http://tryruby.org/
David Heinemeier hansson
Framework open source de desarrollo web escrito en Ruby
Diseñado para crear aplicaciones Web más fácil al hacer suposiciones acerca de lo que necesita cada desarrollador para empezar
Características
RestFul
Desarrollo ágil
Mínimo de Configuración
Curva de aprendizaje muy baja
Seguridad
Reutilización de Código
ORM
Principios
Code Less
DRY (Dont Repeat Yourself)
MVC (Model View Controller)
Active Record Pattern
CoC (Convention over configuration)
¿Quién Usa RAILS?
HP
Nasa
Intel
basecamp.com
twitter.com
yellowpages.com
airbnb.com
Arquitectura MVC de Rails
1. Browser envía la petición
2. Controlador interactúa con el Modelo
3. Modelo consulta la base de datos
4. Controlador invoca la Vista
5. La Vista renderisa lo que presenta el Browser
Controller
ActionController
Métodos ActiveRecord (Crear)
Métodos ActiveRecord (Leer)
Métodos ActiveRecord (Leer)
Métodos ActiveRecord (Actualizar)
Métodos ActiveRecord (Eliminar)
Validaciones (Ror 3.1 >=)
Environments
(config/database.yml)
Development (Desarrollo)
Test (Prueba)
Production (Producción)
Bases de Datos
RubyGems
Manejador de paquetes para Ruby que provee librerías y programas llamados Gems
Es una herramienta diseñada para gestionar fácilmente la instalación de gems, y un servidor para su distribución, nos permiten tener nuevas funcionalidades para nuestras aplicaciones RoR
En aplicaciones de rails los gems que se necesiten se incluyen en un archivo llamado gemfile
www.rubygems.org
Entronos De Trabajo
IDE
Aptana
TextMate
SublimeText
GMate
Cloud
Nitrous.io
Cloud66.com
EngineYard.com
Heroku.Com
¿Cuándo Utilizar Rails?
Startups
Desarrollo ágil
Proyectos iterativos
Bajo presupuesto
Proyectos de un precio fijo
Aplicaciones Complejas
Herramientas + Rails = <3
Git
Heroku
CodeClimate