SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Preparado por Carmen Diaz Echauri. Ingenieria Informatica, UCA. Asuncion - Paraguay
Ruby On Rails 3.0.0
Carmen Diaz Echauri
cdechauri@gmail.com
  Esta charla / demo esta enfocado a personas
que ya sepan algo de programacion en otros
lenguajes. No es necesario saber ruby
  Nociones basicas
  Estructura / Esqueleto
  MVC en action
  Obs, no es un tutorial
  Exploracion de procesos de desarrollo
  TDD
  BDD
  Experiencia personal
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
“ Ruby es un lenguaje de programación interpretado y
orientado a objetos inventado por Yukihiro Matsumoto a
comienzos de los 90’s. “
 Open source
 DRY
 Sintaxis. Lenguaje flexible e intuitivo, interpretado
por humanos y maquinas.
 Patrones Comunes
Un framework facilita al programador clases que
implementan funcionalidades comunes en las aplicaciones
web, incluyendo: abstraciones en las base de datos (queries,
independientemente de cual BD se este utilizando),
plantillas, url amigables, etc.
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
“Rails es un Framework o un conjunto de librerias
diseñado para crear aplicaciones web escrito en Ruby.”
 DRY (ya que esta basado en Ruby)
 Basado en convenciones y anotaciones, en vez de
configuraciones.
 Desarrollo Agil
 Full stack testing framework
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Originado como una aplicacion de manejo de hosts, llamado
Basecamp por David Heinemeier Hanson (HDD) para la
empresa 37signals.
Rails fue extraido como un framework de una real aplicacion
en uso, para poder utilizarlo en el desarrollo de otras
aplicaciones que la empresa 37signals tenia en mente.
Beta
July 2004
Version 1.0
Dic 2005
Version 2.0
Dic 2007
Version 2.x
Dic 2008
Version 3.0.0
29 Agosto 2010
$ rails new jugando
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
File/Directorio Proposito
README Breve instruccion de tu aplicacion.
Rakefile
Este file contiene batch jobs que pueden ser corridos desde la
terminal.
app/ Contiene los controladores, modelos y vistas de la aplicacion.
config/
Configuracion de la aplicacion como base de datos, ruteadores,
etc.
db/
Muestra la actual estructura de la base de datos, asi como las
migraciones.
doc/ Documentacion de tu aplicacion.
lib/ Modules extendidos de la aplicacion.
log/ Log files
public/
Directorio que es publico para todos. Aqui van las imagenes,
JavaScript, stylesheets (CSS), y otras paginas estaticas.
script/ Scripts otorgado por Rails para ciertos tasks.
spec/ Unit tests, fixtures, y otros test.
tmp/ Archivos temporales
vendor/ Codigos externos.
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
La separacion de los diferentes entornos se refleja en la
configuracion de la BD. config/database.yml contiene la
configuracion de la BD.
Por defecto Rails usa SQLite
Cada entorno tiene su propia DB
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Vistas
(views)
Controlador
es
(controllers)
Modelos
(models)
Database
1-Envia el request
2-Obtiene datos/actualizaciones3- Genera la vista
4-Envia HTML de vuelta
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
$ rails generate scaffold juego titulo:string descripcion:text url:string
$ rake db:migrate
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
index.html.erb
juegos_controller.rb
Juego.rb
DB
1- /juegos
3- Juego.all
4- Genera la vista
2 – routea la accion index
@juegos
Rails routes
HTML
HTTP request url Accion Proposito
GET /juegos Index Pagina que lista
todos los juegos
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Jugando::Application.routes.draw do
get "paginas/home"
get "paginas/contact"
resources :juegos
#
end
Esta regla mapea las
acciones home y contact en
el controlador “paginas”
Mapea el recurso con
operaciones CRUD del BD
REST Representational State Transfer
Mapeo entre HTTP verbs y los Urls y las acciones en los controladores.
  $ rails new jugando
  $ vim Gemfile
  source 'http://rubygems.org'
  gem 'rails', '3.0.0’
  gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
  $ bundle install
  $ rails generate scaffold juego titulo:string
descripcion:text url:string
  $ rake db:create # si la BD no es sqlite
  $ rake db:migrate
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
  En versiones anteriores al 3.0.0 instalabamos las gemas en el
system.
$ [sudo] gem install rails --version 2.3.8
$ [sudo] gem install rspec-rails --version 1.3.2
$ [sudo] gem install sqlite3-ruby --version 1.3.1
….
Tambien en el config/environment.rb
Rails::Initializer.run do |config|
config.gem "factory_girl", :source => http://gemcutter.org
….
end
O bien utilizabamos .gems
•  will_paginate --version ">= 2.3.11" --source http://gemcutter.org
•  factory_girl --source "http://gemcutter.org
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Bundler. Una Gema entre Gemas.
Bundler nos permite manejar librerias y sus dependencias
de forma sencilla y a nivel aplicaciones.
  Desarrollo Basado en Pruebas
  se escribe pruebas primero antes que el código de la
aplicación.
  Prueba primero, implementación despues.
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
datos Pruebas
de controladores
Pruebas
de modelos
Integracion
de controladores
Performance
(memoria, velocidad)
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
⇒ Se aplica a todos los niveles de
estructura
⇒ Enfoque en las interacciones
entre personas y sistemas / objetos.
⇒ Combinación de
TDD Test Driven Development
ATDD Acceptance Test Drive
Development
DDD Domain Driven Design.
⇒ Enfoque principal en el comportamiento,
en lugar de la estructura.
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
* Grafico preparado por RubyFocus http://www.rubyfocus.biz
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Rspec provee un Dominio Especifico del
Lenguaje –DSL - para un comportamiento
especifico de objetos.
En Gemfile agregar las siguientes gemas
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Pretende describir el comportamiento de la aplicación como si
estuvieramos hablando con un cliente o otro programador.
Tu / Vos => Describe <representa el escenario>
Cuando, como, circunstancias => Context “when ….”
Alguien mas => It “should.. “ <describe el comportamiento deseado>
$ rails generate rspec:install
create .rspec
create spec
create spec/spec_helper.rb
create autotest
create autotest/discover.rb
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Plantilla generada al ejecutar $ generate controller Paginas
* Nota: solo si fue ejecutado con anterioridad: $ rails generate rspec:install
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Cucumber soporta colaboración entre el dueno de la
aplicacion (stakeholders) y el equipo de desarrolladores,
con el proposito de desarrollar un entendimiento comun de
los requerimientos
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Luego prepara el entorno con:
$ rake db:migrate
$ rake db:test:prepare
$ rake spec
$ rake cucumber
  Se definen los steps definitions
  Se escriben los features, que seria un la especificación del
requerimiento desde la perspectiva de la persona que usa el
sist.
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Confusión en la
lectura.
No es intuitivo
Rspec vs Unit::test
Output no es descriptivo
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
Rspec vs Unit::test
La sintaxis es clara aun
sabiendo solo Ingles
básico
Fácil de Leer y
entender
  $ rails new jugando
  $ vim Gemfile (crear el archivo con las gemas
necesarias)
  Ejemplo Gemfile: http://gist.github.com/623305
  $ bundle install
  $ rails generate rspec:install
  $ rails gen
  $ rails generate scaffold juego titulo:string
descripcion:text url:string
  $ rake db:migrate
  $ rails generate controller Paginas home contact
  $ rails generate resource voto juego_id:integer
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
  Wolfram Arnold
  http://www.rubyfocus.biz/
  Images de
  http://theappera.com/ (iphone & ipad games)
  http://www.extranoticias.cl/ (ferrocarril chino)
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay
  http://guides.rubyonrails.org
  http://rvm.beginrescueend.com/
  Tips p/instalar en Windows
  http://juan-capristan.net/blog/?tag=rails-3-0-0
  Instalar en os
  http://www.elsoftwarehamuerto.org/articulos/160
  Google 
Preparado por Carmen Diaz Echauri.
UCA, Asuncion - Paraguay

Weitere ähnliche Inhalte

Ähnlich wie Marchando sobre Rieles

Javier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins PdfJavier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins Pdfjavier ramirez
 
Rails Plugins. Javier Ramirez
Rails Plugins. Javier RamirezRails Plugins. Javier Ramirez
Rails Plugins. Javier Ramirezjavier ramirez
 
Programa en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier RamirezPrograma en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier Ramirezjavier ramirez
 
Framework kahana
Framework kahanaFramework kahana
Framework kahanaH31D1
 
Ruby on the Rails
Ruby on the RailsRuby on the Rails
Ruby on the Rails000ari2014
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCParadigma Digital
 
mini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLmini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLCarlos Gustavo Ruiz
 
Pre-procesadores CSS. SASS
Pre-procesadores CSS. SASSPre-procesadores CSS. SASS
Pre-procesadores CSS. SASSMarionaCruz
 

Ähnlich wie Marchando sobre Rieles (20)

Javier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins PdfJavier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins Pdf
 
Rails Plugins. Javier Ramirez
Rails Plugins. Javier RamirezRails Plugins. Javier Ramirez
Rails Plugins. Javier Ramirez
 
Programa en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier RamirezPrograma en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier Ramirez
 
Framework
FrameworkFramework
Framework
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Framework kahana
Framework kahanaFramework kahana
Framework kahana
 
Ruby on the Rails
Ruby on the RailsRuby on the Rails
Ruby on the Rails
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Tema 5
Tema 5Tema 5
Tema 5
 
Curso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.jsCurso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.js
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Curso avanzado de capacitación en DSpace
Curso avanzado de capacitación en DSpaceCurso avanzado de capacitación en DSpace
Curso avanzado de capacitación en DSpace
 
mini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLmini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQL
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
Pre-procesadores CSS. SASS
Pre-procesadores CSS. SASSPre-procesadores CSS. SASS
Pre-procesadores CSS. SASS
 
Presentación1
Presentación1Presentación1
Presentación1
 
Jdbc
JdbcJdbc
Jdbc
 

Kürzlich hochgeladen

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Kürzlich hochgeladen (20)

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Marchando sobre Rieles

  • 1. Preparado por Carmen Diaz Echauri. Ingenieria Informatica, UCA. Asuncion - Paraguay Ruby On Rails 3.0.0 Carmen Diaz Echauri cdechauri@gmail.com
  • 2.   Esta charla / demo esta enfocado a personas que ya sepan algo de programacion en otros lenguajes. No es necesario saber ruby   Nociones basicas   Estructura / Esqueleto   MVC en action   Obs, no es un tutorial   Exploracion de procesos de desarrollo   TDD   BDD   Experiencia personal Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 3. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay “ Ruby es un lenguaje de programación interpretado y orientado a objetos inventado por Yukihiro Matsumoto a comienzos de los 90’s. “  Open source  DRY  Sintaxis. Lenguaje flexible e intuitivo, interpretado por humanos y maquinas.  Patrones Comunes
  • 4. Un framework facilita al programador clases que implementan funcionalidades comunes en las aplicaciones web, incluyendo: abstraciones en las base de datos (queries, independientemente de cual BD se este utilizando), plantillas, url amigables, etc. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay “Rails es un Framework o un conjunto de librerias diseñado para crear aplicaciones web escrito en Ruby.”  DRY (ya que esta basado en Ruby)  Basado en convenciones y anotaciones, en vez de configuraciones.  Desarrollo Agil  Full stack testing framework
  • 5. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Originado como una aplicacion de manejo de hosts, llamado Basecamp por David Heinemeier Hanson (HDD) para la empresa 37signals. Rails fue extraido como un framework de una real aplicacion en uso, para poder utilizarlo en el desarrollo de otras aplicaciones que la empresa 37signals tenia en mente. Beta July 2004 Version 1.0 Dic 2005 Version 2.0 Dic 2007 Version 2.x Dic 2008 Version 3.0.0 29 Agosto 2010
  • 6. $ rails new jugando Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 7. File/Directorio Proposito README Breve instruccion de tu aplicacion. Rakefile Este file contiene batch jobs que pueden ser corridos desde la terminal. app/ Contiene los controladores, modelos y vistas de la aplicacion. config/ Configuracion de la aplicacion como base de datos, ruteadores, etc. db/ Muestra la actual estructura de la base de datos, asi como las migraciones. doc/ Documentacion de tu aplicacion. lib/ Modules extendidos de la aplicacion. log/ Log files public/ Directorio que es publico para todos. Aqui van las imagenes, JavaScript, stylesheets (CSS), y otras paginas estaticas. script/ Scripts otorgado por Rails para ciertos tasks. spec/ Unit tests, fixtures, y otros test. tmp/ Archivos temporales vendor/ Codigos externos. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 8. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay La separacion de los diferentes entornos se refleja en la configuracion de la BD. config/database.yml contiene la configuracion de la BD. Por defecto Rails usa SQLite Cada entorno tiene su propia DB
  • 9. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Vistas (views) Controlador es (controllers) Modelos (models) Database 1-Envia el request 2-Obtiene datos/actualizaciones3- Genera la vista 4-Envia HTML de vuelta
  • 10. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay $ rails generate scaffold juego titulo:string descripcion:text url:string $ rake db:migrate
  • 11. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay index.html.erb juegos_controller.rb Juego.rb DB 1- /juegos 3- Juego.all 4- Genera la vista 2 – routea la accion index @juegos Rails routes HTML HTTP request url Accion Proposito GET /juegos Index Pagina que lista todos los juegos
  • 12. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Jugando::Application.routes.draw do get "paginas/home" get "paginas/contact" resources :juegos # end Esta regla mapea las acciones home y contact en el controlador “paginas” Mapea el recurso con operaciones CRUD del BD REST Representational State Transfer Mapeo entre HTTP verbs y los Urls y las acciones en los controladores.
  • 13.   $ rails new jugando   $ vim Gemfile   source 'http://rubygems.org'   gem 'rails', '3.0.0’   gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'   $ bundle install   $ rails generate scaffold juego titulo:string descripcion:text url:string   $ rake db:create # si la BD no es sqlite   $ rake db:migrate Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 14.   En versiones anteriores al 3.0.0 instalabamos las gemas en el system. $ [sudo] gem install rails --version 2.3.8 $ [sudo] gem install rspec-rails --version 1.3.2 $ [sudo] gem install sqlite3-ruby --version 1.3.1 …. Tambien en el config/environment.rb Rails::Initializer.run do |config| config.gem "factory_girl", :source => http://gemcutter.org …. end O bien utilizabamos .gems •  will_paginate --version ">= 2.3.11" --source http://gemcutter.org •  factory_girl --source "http://gemcutter.org Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 15. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Bundler. Una Gema entre Gemas. Bundler nos permite manejar librerias y sus dependencias de forma sencilla y a nivel aplicaciones.
  • 16.   Desarrollo Basado en Pruebas   se escribe pruebas primero antes que el código de la aplicación.   Prueba primero, implementación despues. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay datos Pruebas de controladores Pruebas de modelos Integracion de controladores Performance (memoria, velocidad)
  • 17. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 18. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 19. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay ⇒ Se aplica a todos los niveles de estructura ⇒ Enfoque en las interacciones entre personas y sistemas / objetos. ⇒ Combinación de TDD Test Driven Development ATDD Acceptance Test Drive Development DDD Domain Driven Design. ⇒ Enfoque principal en el comportamiento, en lugar de la estructura.
  • 20. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay * Grafico preparado por RubyFocus http://www.rubyfocus.biz
  • 21. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Rspec provee un Dominio Especifico del Lenguaje –DSL - para un comportamiento especifico de objetos. En Gemfile agregar las siguientes gemas
  • 22. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Pretende describir el comportamiento de la aplicación como si estuvieramos hablando con un cliente o otro programador. Tu / Vos => Describe <representa el escenario> Cuando, como, circunstancias => Context “when ….” Alguien mas => It “should.. “ <describe el comportamiento deseado> $ rails generate rspec:install create .rspec create spec create spec/spec_helper.rb create autotest create autotest/discover.rb
  • 23. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Plantilla generada al ejecutar $ generate controller Paginas * Nota: solo si fue ejecutado con anterioridad: $ rails generate rspec:install
  • 24. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Cucumber soporta colaboración entre el dueno de la aplicacion (stakeholders) y el equipo de desarrolladores, con el proposito de desarrollar un entendimiento comun de los requerimientos
  • 25. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Luego prepara el entorno con: $ rake db:migrate $ rake db:test:prepare $ rake spec $ rake cucumber
  • 26.   Se definen los steps definitions   Se escriben los features, que seria un la especificación del requerimiento desde la perspectiva de la persona que usa el sist. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 27. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Confusión en la lectura. No es intuitivo Rspec vs Unit::test Output no es descriptivo
  • 28. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay Rspec vs Unit::test La sintaxis es clara aun sabiendo solo Ingles básico Fácil de Leer y entender
  • 29.   $ rails new jugando   $ vim Gemfile (crear el archivo con las gemas necesarias)   Ejemplo Gemfile: http://gist.github.com/623305   $ bundle install   $ rails generate rspec:install   $ rails gen   $ rails generate scaffold juego titulo:string descripcion:text url:string   $ rake db:migrate   $ rails generate controller Paginas home contact   $ rails generate resource voto juego_id:integer Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 30.   Wolfram Arnold   http://www.rubyfocus.biz/   Images de   http://theappera.com/ (iphone & ipad games)   http://www.extranoticias.cl/ (ferrocarril chino) Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay
  • 31.   http://guides.rubyonrails.org   http://rvm.beginrescueend.com/   Tips p/instalar en Windows   http://juan-capristan.net/blog/?tag=rails-3-0-0   Instalar en os   http://www.elsoftwarehamuerto.org/articulos/160   Google  Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay