SlideShare una empresa de Scribd logo
1 de 22
RAILS
MAKE THE WEB GREAT AGAIN
¿Porque esta charla?
6 razones por las que debes usar rails
y algunas por las que NO deberías
Ruby hace a los
programadores poderosos
felices.
Algunas personas piensan que es
demasiado...
"1".to_i
#=> 1
class String
def to_i
raise 'foobar'
end
end
"1".to_i
#=> RuntimeError: foobar
class String
def to_i
self.to_f - 1.13
end
end
"2".to_i
#=> 0.8700000000000001
Es mucho mas que
“convention over configuration”
La flexibilidad está sobrevalorada
Las restricciones son liberadoras
Solo hay que saber leer!
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable
validates_numericality_of :years_of_experience,
:allow_blank => true
acts_as_taggable
acts_as_taggable_on :certificates, :expertise_kinds
validates_presence_of :first_name, :last_name, :email
has_many :translations
has_attached_file :avatar, :styles => {:small => "240x240>"}
has_attached_file :cv
Quieres hacer X?
Hay una gema para eso!
Manejo de dependencias integrado,
elegante y sencillo
TOTAL GEMS
127,111
TOTAL USERS
108,518
TOTAL DOWNLOADS
11,254,913,884
Rails == ‘no reinventar la rueda’
#=> True
Problem? Integrado? Hay gema? Gema/s
Paginación N/A Si Kaminari, will_paginate
Autenticación Si Device, Authlogic, Omniauth
Autorización Si CanCan
Test auto-generados Si Shoulda
Dependency-Management Si Si Bundler
Background-jobs N/A Si Resque, sidekiq, delayed_job
Minificar JS y CSS Si Jammit
Simular interaction real usuarios Si capybara
ecommerce Si Active Merchant
Deployment Si Si Passenger,
Better error management Si Si Better_errors
Email management Si Si Letter_opener,
Everything else Probably
ActiveRecord
Buscadores dinámicos
Person.find_by_name_and_company_id('Jorge Luis Borges', 42)
Scoping
class Shirt < ActiveRecord::Base
named_scope :red, :conditions => {:color => 'red'}
named_scope :dry_clean_only, :joins =>
:washing_instructions,:conditions
=> ['washing_instructions.dry_clean_only = ?', true]
end
Si llamamos Shirt.red esto hara un query a la base de datos con la condicion "color = 'red'"
La parte genial es que si combinamos mas de un parámetro ej:
Shirt.red.dry_clean_only
este va a construir un solo query, con todas las condiciones y todos los joins necesarios en la base de
datos.
Scaffolding
Generar una app completa con 3
lineas de codigo
rails generate scaffold Game name:string
rails generate scaffold HighScore game:references score:integer
rails db:migrate
Razones para NO usar rails
1. Performance (Fixed with ruby 3)
2. Aplicaciones/bases de datos existentes
3. Requires extensive code-review
4. Tal Vez pierda popularidad en el futuro
5. NO es para principiantes (demasiada magia)
Gracias!

Más contenido relacionado

Destacado

Equal Employment Opportunity Commission Preliminary Regulatory Reform Plan
Equal Employment Opportunity Commission Preliminary Regulatory Reform PlanEqual Employment Opportunity Commission Preliminary Regulatory Reform Plan
Equal Employment Opportunity Commission Preliminary Regulatory Reform PlanObama White House
 
Protect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDFProtect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDFJoseph Glocke
 
What to do when they've had too much Scratch?
What to do when they've had too much Scratch?What to do when they've had too much Scratch?
What to do when they've had too much Scratch?Neil Rickus
 
Trendy w turystyce - artykul - Ewa Bialek
Trendy w turystyce - artykul - Ewa BialekTrendy w turystyce - artykul - Ewa Bialek
Trendy w turystyce - artykul - Ewa BialekEwaB
 
Crew, FOIA,Documents 012367-012928
Crew, FOIA,Documents 012367-012928Crew, FOIA,Documents 012367-012928
Crew, FOIA,Documents 012367-012928Obama White House
 
Crew, Foia, Documents 012079- 012146
Crew, Foia, Documents 012079- 012146Crew, Foia, Documents 012079- 012146
Crew, Foia, Documents 012079- 012146Obama White House
 
Influencia soldadura (1)
Influencia soldadura (1)Influencia soldadura (1)
Influencia soldadura (1)DOUGLAS SANTOS
 
Bombardier reference
Bombardier referenceBombardier reference
Bombardier referenceAshley Jones
 
Hitech for HIPAA
Hitech for HIPAAHitech for HIPAA
Hitech for HIPAAdkarpinsky
 
Wikipedia15周年イベントのお知らせ
Wikipedia15周年イベントのお知らせWikipedia15周年イベントのお知らせ
Wikipedia15周年イベントのお知らせShinji Enoki
 
Складові комп"ютера та їх призначення
Складові комп"ютера та їх призначенняСкладові комп"ютера та їх призначення
Складові комп"ютера та їх призначенняsveta7940
 

Destacado (19)

Skills portfolio 2012 13
Skills portfolio 2012 13Skills portfolio 2012 13
Skills portfolio 2012 13
 
Equal Employment Opportunity Commission Preliminary Regulatory Reform Plan
Equal Employment Opportunity Commission Preliminary Regulatory Reform PlanEqual Employment Opportunity Commission Preliminary Regulatory Reform Plan
Equal Employment Opportunity Commission Preliminary Regulatory Reform Plan
 
Protect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDFProtect Office 365 data on unmanaged devices.PDF
Protect Office 365 data on unmanaged devices.PDF
 
Investment in Technology for non-profit @ Diffusion Pune 2012
Investment in Technology for non-profit @ Diffusion Pune 2012Investment in Technology for non-profit @ Diffusion Pune 2012
Investment in Technology for non-profit @ Diffusion Pune 2012
 
What to do when they've had too much Scratch?
What to do when they've had too much Scratch?What to do when they've had too much Scratch?
What to do when they've had too much Scratch?
 
Trendy w turystyce - artykul - Ewa Bialek
Trendy w turystyce - artykul - Ewa BialekTrendy w turystyce - artykul - Ewa Bialek
Trendy w turystyce - artykul - Ewa Bialek
 
GK
GKGK
GK
 
Crew, FOIA,Documents 012367-012928
Crew, FOIA,Documents 012367-012928Crew, FOIA,Documents 012367-012928
Crew, FOIA,Documents 012367-012928
 
Present
PresentPresent
Present
 
La familia
La familiaLa familia
La familia
 
Crew, Foia, Documents 012079- 012146
Crew, Foia, Documents 012079- 012146Crew, Foia, Documents 012079- 012146
Crew, Foia, Documents 012079- 012146
 
Influencia soldadura (1)
Influencia soldadura (1)Influencia soldadura (1)
Influencia soldadura (1)
 
Designed Art
Designed ArtDesigned Art
Designed Art
 
Bombardier reference
Bombardier referenceBombardier reference
Bombardier reference
 
Hitech for HIPAA
Hitech for HIPAAHitech for HIPAA
Hitech for HIPAA
 
Wikipedia15周年イベントのお知らせ
Wikipedia15周年イベントのお知らせWikipedia15周年イベントのお知らせ
Wikipedia15周年イベントのお知らせ
 
Складові комп"ютера та їх призначення
Складові комп"ютера та їх призначенняСкладові комп"ютера та їх призначення
Складові комп"ютера та їх призначення
 
La Recreación
La RecreaciónLa Recreación
La Recreación
 
EPA CAA Email 8.29.03 (b)
EPA CAA Email 8.29.03 (b)EPA CAA Email 8.29.03 (b)
EPA CAA Email 8.29.03 (b)
 

Similar a Rails 5 presentation for begginers

Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)lenny
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)INSIGNIA4U
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Nelson Rojas Núñez
 
Buenas Prácticas de desarrollo en Ruby on Rails
Buenas Prácticas de desarrollo en Ruby on RailsBuenas Prácticas de desarrollo en Ruby on Rails
Buenas Prácticas de desarrollo en Ruby on RailsSergio Gil
 
Reactvolution
ReactvolutionReactvolution
Reactvolution_Lagash
 
Conexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María ParraConexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María ParraMariaphlb
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)jomadega1
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2Steven Gomez
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsDavid Calavera
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, javaFaby Marcos Solis
 
Optimización, rendimiento y escalabilidad en ActiveRecord
Optimización, rendimiento y escalabilidad en ActiveRecordOptimización, rendimiento y escalabilidad en ActiveRecord
Optimización, rendimiento y escalabilidad en ActiveRecordEmili Parreno
 
Ruby on rails mvc | SoyProgramador.liz.mx
Ruby on rails mvc  | SoyProgramador.liz.mxRuby on rails mvc  | SoyProgramador.liz.mx
Ruby on rails mvc | SoyProgramador.liz.mxGovani Sanchez
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
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
 
Javier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins PdfJavier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins Pdfjavier ramirez
 

Similar a Rails 5 presentation for begginers (20)

Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
Descubriendo Ruby on Rails (Desarrollo Agil de Aplicaciones Web)
 
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
Descubriendo Ruby On Rails (Desarrollo Agil De Aplicaciones Web)
 
Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
Buenas Prácticas de desarrollo en Ruby on Rails
Buenas Prácticas de desarrollo en Ruby on RailsBuenas Prácticas de desarrollo en Ruby on Rails
Buenas Prácticas de desarrollo en Ruby on Rails
 
Hola RoR
Hola RoRHola RoR
Hola RoR
 
Reactvolution
ReactvolutionReactvolution
Reactvolution
 
Conexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María ParraConexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María Parra
 
Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)Examen febrero 2017-2018_daw_daw_solucion_ (1)
Examen febrero 2017-2018_daw_daw_solucion_ (1)
 
Base de datos
Base de datosBase de datos
Base de datos
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Funciones
FuncionesFunciones
Funciones
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y Rails
 
Servicios web en php, perl, java
Servicios web en php, perl, javaServicios web en php, perl, java
Servicios web en php, perl, java
 
Seguridad En Programación
Seguridad En ProgramaciónSeguridad En Programación
Seguridad En Programación
 
Optimización, rendimiento y escalabilidad en ActiveRecord
Optimización, rendimiento y escalabilidad en ActiveRecordOptimización, rendimiento y escalabilidad en ActiveRecord
Optimización, rendimiento y escalabilidad en ActiveRecord
 
Ruby on rails mvc | SoyProgramador.liz.mx
Ruby on rails mvc  | SoyProgramador.liz.mxRuby on rails mvc  | SoyProgramador.liz.mx
Ruby on rails mvc | SoyProgramador.liz.mx
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
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
 
Javier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins PdfJavier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins Pdf
 

Rails 5 presentation for begginers

  • 1.
  • 2. RAILS MAKE THE WEB GREAT AGAIN
  • 4. 6 razones por las que debes usar rails y algunas por las que NO deberías
  • 5. Ruby hace a los programadores poderosos felices.
  • 6. Algunas personas piensan que es demasiado... "1".to_i #=> 1 class String def to_i raise 'foobar' end end "1".to_i #=> RuntimeError: foobar class String def to_i self.to_f - 1.13 end end "2".to_i #=> 0.8700000000000001
  • 7. Es mucho mas que “convention over configuration”
  • 8. La flexibilidad está sobrevalorada Las restricciones son liberadoras
  • 9. Solo hay que saber leer!
  • 10. class User < ActiveRecord::Base devise :database_authenticatable, :registerable validates_numericality_of :years_of_experience, :allow_blank => true acts_as_taggable acts_as_taggable_on :certificates, :expertise_kinds validates_presence_of :first_name, :last_name, :email has_many :translations has_attached_file :avatar, :styles => {:small => "240x240>"} has_attached_file :cv
  • 11. Quieres hacer X? Hay una gema para eso!
  • 12. Manejo de dependencias integrado, elegante y sencillo TOTAL GEMS 127,111 TOTAL USERS 108,518 TOTAL DOWNLOADS 11,254,913,884
  • 13. Rails == ‘no reinventar la rueda’ #=> True
  • 14. Problem? Integrado? Hay gema? Gema/s Paginación N/A Si Kaminari, will_paginate Autenticación Si Device, Authlogic, Omniauth Autorización Si CanCan Test auto-generados Si Shoulda Dependency-Management Si Si Bundler Background-jobs N/A Si Resque, sidekiq, delayed_job Minificar JS y CSS Si Jammit Simular interaction real usuarios Si capybara ecommerce Si Active Merchant Deployment Si Si Passenger, Better error management Si Si Better_errors Email management Si Si Letter_opener, Everything else Probably
  • 17. Scoping class Shirt < ActiveRecord::Base named_scope :red, :conditions => {:color => 'red'} named_scope :dry_clean_only, :joins => :washing_instructions,:conditions => ['washing_instructions.dry_clean_only = ?', true] end Si llamamos Shirt.red esto hara un query a la base de datos con la condicion "color = 'red'" La parte genial es que si combinamos mas de un parámetro ej: Shirt.red.dry_clean_only este va a construir un solo query, con todas las condiciones y todos los joins necesarios en la base de datos.
  • 19. Generar una app completa con 3 lineas de codigo rails generate scaffold Game name:string rails generate scaffold HighScore game:references score:integer rails db:migrate
  • 20. Razones para NO usar rails
  • 21. 1. Performance (Fixed with ruby 3) 2. Aplicaciones/bases de datos existentes 3. Requires extensive code-review 4. Tal Vez pierda popularidad en el futuro 5. NO es para principiantes (demasiada magia)

Notas del editor

  1. Rails es uno de los frameworks mas subestimados, al mismo tiempo , es uno de los frameworks que se adapta mas fácilmente a un desarrollo agile. *rails personal experience with socialyte* me sorprende que en intellisys siendo tan agile no se utilize mas ruby on rails
  2. Talvez creas que tener a un junior en el equipo con tanto poder pueda ser peligroso, pero en el mundo real, estos casos no suceden ITS LIKE DRIVING A CAR. nadie maneja un carro a 300km/h
  3. One of the early productivity mottos of Rails went: “You’re not a beautiful and unique snowflake”. It postulated that by giving up vain individuality, you can leapfrog the toils of mundane decisions, and make faster progress in areas that really matter. Who cares what format your database primary keys are described by? Does it really matter whether it's “id”, “postId”, “posts_id”, or “pid”? Is this a decision that’s worthy of recurrent deliberation? No.
  4. Require volunteers!
  5. Require volunteers!
  6. Require volunteers!