1 / 31

Marchando Sobre Rieles

Marchando Sobre Rieles. Ruby On Rails 3.0.0 Carmen Diaz Echauri cdechauri@gmail.com. Agenda. 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

pearly
Download Presentation

Marchando Sobre Rieles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MarchandoSobreRieles Ruby On Rails 3.0.0 Carmen Diaz Echauri cdechauri@gmail.com Preparadopor Carmen Diaz Echauri. IngenieriaInformatica, UCA. Asuncion - Paraguay

  2. Agenda • Estacharla / demo estaenfocado a personas queyasepanalgo de programacion en otroslenguajes. No esnecesario saber ruby • Nocionesbasicas • 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. Ruby / RoR • “ Ruby es un lenguaje de programacióninterpretadoyorientado a objetosinventadopor Yukihiro Matsumoto a comienzos de los 90’s. “ • Open source • DRY • Sintaxis. Lenguaje flexible eintuitivo, interpretadoporhumanosymaquinas. • PatronesComunes Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  4. ROR => Framework Un framework facilita al programadorclasesqueimplementanfuncionalidadescomunes en lasaplicaciones web, incluyendo: abstraciones en las base de datos (queries, independientemente de cual BD se esteutilizando), plantillas, urlamigables, etc. “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 stacktestingframework Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  5. … . . . . Originadocomounaaplicacion de manejo de hosts, llamadoBasecamppor David Heinemeier Hanson (HDD) para la empresa 37signals. Rails fueextraidocomo un framework de una real aplicacion en uso, parapoderutilizarlo en el desarrollo de otrasaplicacionesque la empresa 37signals tenia en mente. Version 2.x Dic 2008 Version 2.0 Dic 2007 Beta July 2004 Version 1.0 Dic 2005 Version 3.0.0 29 Agosto 2010 Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  6. Esqueleto $ rails new jugando Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  7. Esqueleto Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  8. Entornos &BD Configuracion 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

  9. ModelViewController 1-Envia el request 4-Envia HTML de vuelta 3- Genera la vista 2-Obtiene datos/actualizaciones Controladores (controllers) Vistas (views) Modelos (models) Database Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  10. Scaffolding $ rails generate scaffold juegotitulo:stringdescripcion:texturl:string $ rake db:migrate Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  11. MVC en accion 1- /juegos Railsroutes 2 –routea la accionindex 4- Genera la vista HTML 3- Juego.all juegos_controller.rb Juego.rb index.html.erb @juegos DB Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  12. MVC en accion … REST Representational State Transfer Mapeo entre HTTP verbs y los Urls y las acciones en los controladores. 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 Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  13. Rails Web en 6 Pasos básicos • $ 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 juegotitulo:stringdescripcion:texturl:string • $ rake db:create # si la BD no essqlite • $ rake db:migrate Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  14. Librerias - Manifiesto • 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 bienutilizabamos .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. Librerias Bundler. Una Gema entre Gemas. Bundler nospermitemanejarlibreriasysusdependencias de forma sencillay a nivelaplicaciones. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  16. TDD test-driven development • Desarrollo Basado en Pruebas • se escribe pruebas primero antes que el código de la aplicación. • Pruebaprimero, implementacióndespues. Integracion de controladores datos Pruebas de controladores Performance (memoria, velocidad) Pruebas de modelos Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  17. Pruebas Unitarias – Unit Test Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  18. Pruebas Basadas en el Comportamiento • Enfoque principal en el comportamiento, • en lugar de la estructura. • Se aplica a todos los niveles de estructura • Enfoque en las interacciones entre personas y sistemas / objetos. • Combinación de • TDD Test DrivenDevelopment • ATDD Acceptance Test Drive Development • DDD DomainDrivenDesign. Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  19. Pruebas Unitarias – Unit Test Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  20. Testing en Capas * Grafico preparado por RubyFocus http://www.rubyfocus.biz Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  21. RSpec Rspecprovee un DominioEspecifico del Lenguaje –DSL - para un comportamientoespecifico de objetos. En Gemfile agregar las siguientes gemas Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  22. RSpec $ rails generate rspec:install create .rspec create spec create spec/spec_helper.rb create autotest create autotest/discover.rb Pretendedescribir el comportamiento de la aplicacióncomosiestuvieramoshablando con un clienteootroprogramador. Tu / Vos => Describe <representa el escenario> Cuando, como, circunstancias => Context “when ….” Alguien mas => It “should.. “ <describe el comportamiento deseado> Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  23. Rspec… Plantilla generada al ejecutar $ generatecontroller Paginas * Nota: solo si fue ejecutado con anterioridad: $ rails generate rspec:install Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  24. Cucumber Cucumber soportacolaboración entre el dueno de la aplicacion(stakeholders) y el equipo de desarrolladores, con el proposito de desarrollar un entendimientocomun de los requerimientos Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  25. Cucumber …. Luegoprepara el entorno con: $ rake db:migrate $ rake db:test:prepare $ rake spec $ rake cucumber Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  26. Una miradita a cucumber • Se definen los stepsdefinitions • 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. Experiencia personal Rspecvs Unit::test Confusión en la lectura. No es intuitivo Output no es descriptivo Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  28. Experiencia personal Rspecvs Unit::test La sintaxis es clara aun sabiendo solo Ingles básico Fácil de Leer y entender Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  29. En Resumen => 10 Pasitos básicos • $ rails new jugando • $ vim Gemfile (crear el archivo con lasgemasnecesarias) • EjemploGemfile: http://gist.github.com/623305 • $ bundle install • $ rails generate rspec:install • $ rails generate scaffold juegotitulo:stringdescripcion:texturl:string • $ rake db:migrate • $ rails generate controller Paginas home contact • $ rails generate resource votojuego_id:integer Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

  30. Agradecimientos • 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. Urls • 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  Preguntas? Preparado por Carmen Diaz Echauri. UCA, Asuncion - Paraguay

More Related