SlideShare una empresa de Scribd logo
1 de 52
Ruby on Rails Presentation to Agile Atlanta Group Originally presented May 10 ‘05 Obie Fernandez Agile Atlanta  Founder / ThoughtWorks  Technologist
Introduction ,[object Object],[object Object],[object Object],[object Object]
Presentation Agenda ,[object Object],[object Object],[object Object],[object Object]
Why Ruby? ,[object Object],[object Object],[object Object]
Principles of Ruby ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Principle of Least Surprise ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Principle of Succinctness ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ruby is Truly Object-Oriented ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Some Coding Conventions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dynamic Programming ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Enough About Ruby! What about Ruby on Rails?
Rails in a Nutshell  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Obligatory Architecture Slide
Demo ,[object Object],[object Object]
Model – View – Controller  ,[object Object],[object Object],[object Object]
Model Classes ,[object Object],[object Object],[object Object]
ActiveRecord ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ActiveRecord API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ActiveRecord Aggregations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ActiveRecord Models  are Multi-talented  actors ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ActiveRecord Associations ,[object Object],[object Object],[object Object]
ActiveRecord Timestamps ,[object Object],[object Object]
ActiveRecord Transactions ,[object Object],# Just database transaction  Account.transaction do david.withdrawal(100) mary.deposit(100)  end  # Object transaction Account.transaction(david, mary) do  david.withdrawal(100) mary.deposit(100)  end
ActiveRecord vs Hibernate ,[object Object],[object Object]
Rails Logging
ActionController API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Filters and Request Interception ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
From Controller to View ,[object Object],[object Object],[object Object],[object Object],[object Object]
View Template Approaches ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ERB Example
XmlMarkup Example
Similar to JSP is a Good Thing? ,[object Object],[object Object],[object Object],[object Object],Ruby is an excellent language for view logic (succinct, readable) and Rails is also made out of all Ruby. So there's no longing for a better suited template language and there's no pain relief in misappropriating business logic into the view. - David H. Hansson
Layouts and Partials ,[object Object],[object Object],[object Object],[object Object]
Built-in Caching ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Page Caching ,[object Object],[object Object],[object Object],[object Object]
Action Caching ,[object Object],[object Object],[object Object],[object Object]
Fragment Caching ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Pagination ,[object Object],[object Object],[object Object],[object Object]
Helper Modules ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Helper Methods Examples ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Quest for  Pretty URLs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
routes.rb ActionController::Routing::Routes.draw do |map| # Priority based on creation: first created -> highest priority # Keep in mind you can assign values other than :controller and :action # You can have the root of your site routed by hooking up '' # just remember to delete public/index.html. map.connect '', :controller => "bakery" map.connect 'query/:guid', :controller => “global", :action=>"query" # Allow downloading Web Service WSDL as a file with an extension map.connect ':controller/service.wsdl', :action => 'wsdl' map.connect ':controller/:action/:id’  # Default end
Rails to the Rescue ,[object Object],[object Object],[object Object],[object Object],[object Object]
ActiveSupport API ,[object Object],[object Object],[object Object],[object Object],[object Object]
ActionMailer API ,[object Object],[object Object],[object Object]
ActionWebService API ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Defining a WebService
Fixtures ,[object Object],[object Object],[object Object]
Unit Testing ,[object Object],[object Object],[object Object]
Rake ,[object Object],[object Object],[object Object],[object Object]
Rails Success Story ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Rails Community ,[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Building Web Interface On Rails
Building Web Interface On RailsBuilding Web Interface On Rails
Building Web Interface On Rails
Wen-Tien Chang
 
Rails Best Practices
Rails Best PracticesRails Best Practices
Rails Best Practices
Icalia Labs
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
arif44
 

La actualidad más candente (20)

Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
2011-02-03 LA RubyConf Rails3 TDD Workshop
2011-02-03 LA RubyConf Rails3 TDD Workshop2011-02-03 LA RubyConf Rails3 TDD Workshop
2011-02-03 LA RubyConf Rails3 TDD Workshop
 
Building Web Interface On Rails
Building Web Interface On RailsBuilding Web Interface On Rails
Building Web Interface On Rails
 
[2015/2016] Backbone JS
[2015/2016] Backbone JS[2015/2016] Backbone JS
[2015/2016] Backbone JS
 
[2015/2016] JavaScript
[2015/2016] JavaScript[2015/2016] JavaScript
[2015/2016] JavaScript
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 
What Is Hobo ?
What Is Hobo ?What Is Hobo ?
What Is Hobo ?
 
25 Real Life Tips In Ruby on Rails Development
25 Real Life Tips In Ruby on Rails Development25 Real Life Tips In Ruby on Rails Development
25 Real Life Tips In Ruby on Rails Development
 
Getting into ember.js
Getting into ember.jsGetting into ember.js
Getting into ember.js
 
Rails Best Practices
Rails Best PracticesRails Best Practices
Rails Best Practices
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
FITC - Exploring Art-Directed Responsive Images
FITC - Exploring Art-Directed Responsive ImagesFITC - Exploring Art-Directed Responsive Images
FITC - Exploring Art-Directed Responsive Images
 
ADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guideADF Mobile: 10 Things you don't get from the developers guide
ADF Mobile: 10 Things you don't get from the developers guide
 
Rails Best Practices
Rails Best PracticesRails Best Practices
Rails Best Practices
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
 
AEM Sightly Template Language
AEM Sightly Template LanguageAEM Sightly Template Language
AEM Sightly Template Language
 
Mastering the Sling Rewriter
Mastering the Sling RewriterMastering the Sling Rewriter
Mastering the Sling Rewriter
 
Jsp
JspJsp
Jsp
 

Similar a Ruby On Rails

Workin ontherailsroad
Workin ontherailsroadWorkin ontherailsroad
Workin ontherailsroad
Jim Jones
 
WorkinOnTheRailsRoad
WorkinOnTheRailsRoadWorkinOnTheRailsRoad
WorkinOnTheRailsRoad
webuploader
 

Similar a Ruby On Rails (20)

Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Introducing Ruby/MVC/RoR
Introducing Ruby/MVC/RoRIntroducing Ruby/MVC/RoR
Introducing Ruby/MVC/RoR
 
Ruby on rails for beginers
Ruby on rails for beginersRuby on rails for beginers
Ruby on rails for beginers
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby on Rails
Ruby on Rails Ruby on Rails
Ruby on Rails
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby On Rails Siddhesh
Ruby On Rails SiddheshRuby On Rails Siddhesh
Ruby On Rails Siddhesh
 
Rails interview questions
Rails interview questionsRails interview questions
Rails interview questions
 
Ruby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User GroupRuby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User Group
 
Ruby on rails RAD
Ruby on rails RADRuby on rails RAD
Ruby on rails RAD
 
Object- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkObject- Relational Persistence in Smalltalk
Object- Relational Persistence in Smalltalk
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
Intro ror
Intro rorIntro ror
Intro ror
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Workin ontherailsroad
Workin ontherailsroadWorkin ontherailsroad
Workin ontherailsroad
 
WorkinOnTheRailsRoad
WorkinOnTheRailsRoadWorkinOnTheRailsRoad
WorkinOnTheRailsRoad
 
Hibernate
HibernateHibernate
Hibernate
 
Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!
 
Front Range PHP NoSQL Databases
Front Range PHP NoSQL DatabasesFront Range PHP NoSQL Databases
Front Range PHP NoSQL Databases
 

Último

Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al MizharAl Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
allensay1
 
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan CytotecJual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
ZurliaSoop
 

Último (20)

Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al MizharAl Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
 
Buy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail AccountsBuy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail Accounts
 
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan CytotecJual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
Jual Obat Aborsi ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan Cytotec
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 
BeMetals Investor Presentation_May 3, 2024.pdf
BeMetals Investor Presentation_May 3, 2024.pdfBeMetals Investor Presentation_May 3, 2024.pdf
BeMetals Investor Presentation_May 3, 2024.pdf
 
Buy Verified TransferWise Accounts From Seosmmearth
Buy Verified TransferWise Accounts From SeosmmearthBuy Verified TransferWise Accounts From Seosmmearth
Buy Verified TransferWise Accounts From Seosmmearth
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
 
Over the Top (OTT) Market Size & Growth Outlook 2024-2030
Over the Top (OTT) Market Size & Growth Outlook 2024-2030Over the Top (OTT) Market Size & Growth Outlook 2024-2030
Over the Top (OTT) Market Size & Growth Outlook 2024-2030
 
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
 
Pre Engineered Building Manufacturers Hyderabad.pptx
Pre Engineered  Building Manufacturers Hyderabad.pptxPre Engineered  Building Manufacturers Hyderabad.pptx
Pre Engineered Building Manufacturers Hyderabad.pptx
 
TVB_The Vietnam Believer Newsletter_May 6th, 2024_ENVol. 006.pdf
TVB_The Vietnam Believer Newsletter_May 6th, 2024_ENVol. 006.pdfTVB_The Vietnam Believer Newsletter_May 6th, 2024_ENVol. 006.pdf
TVB_The Vietnam Believer Newsletter_May 6th, 2024_ENVol. 006.pdf
 
New 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck TemplateNew 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck Template
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptx
 
PHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation Final
 
CROSS CULTURAL NEGOTIATION BY PANMISEM NS
CROSS CULTURAL NEGOTIATION BY PANMISEM NSCROSS CULTURAL NEGOTIATION BY PANMISEM NS
CROSS CULTURAL NEGOTIATION BY PANMISEM NS
 
HomeRoots Pitch Deck | Investor Insights | April 2024
HomeRoots Pitch Deck | Investor Insights | April 2024HomeRoots Pitch Deck | Investor Insights | April 2024
HomeRoots Pitch Deck | Investor Insights | April 2024
 
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
 
joint cost.pptx COST ACCOUNTING Sixteenth Edition ...
joint cost.pptx  COST ACCOUNTING  Sixteenth Edition                          ...joint cost.pptx  COST ACCOUNTING  Sixteenth Edition                          ...
joint cost.pptx COST ACCOUNTING Sixteenth Edition ...
 
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGParadip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 

Ruby On Rails

  • 1. Ruby on Rails Presentation to Agile Atlanta Group Originally presented May 10 ‘05 Obie Fernandez Agile Atlanta Founder / ThoughtWorks Technologist
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Enough About Ruby! What about Ruby on Rails?
  • 12.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 26.
  • 27.
  • 28.
  • 29.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42. routes.rb ActionController::Routing::Routes.draw do |map| # Priority based on creation: first created -> highest priority # Keep in mind you can assign values other than :controller and :action # You can have the root of your site routed by hooking up '' # just remember to delete public/index.html. map.connect '', :controller => "bakery" map.connect 'query/:guid', :controller => “global", :action=>"query" # Allow downloading Web Service WSDL as a file with an extension map.connect ':controller/service.wsdl', :action => 'wsdl' map.connect ':controller/:action/:id’ # Default end
  • 43.
  • 44.
  • 45.
  • 46.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.

Notas del editor

  1. <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <Work rdf:about=""> <dc:title>Ruby on Rails</dc:title> <dc:date>2005</dc:date> <dc:description>Powerpoint Presentation: Introduction to Ruby and Ruby on Rails given to the Agile Atlanta user group on 5/10/2005 </dc:description> <dc:creator><Agent> <dc:title>Obed Fernandez</dc:title> </Agent></dc:creator> <dc:rights><Agent> <dc:title>Obed Fernandez</dc:title> </Agent></dc:rights> <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" /> </Work> <License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/"> <permits rdf:resource="http://web.resource.org/cc/Reproduction" /> <permits rdf:resource="http://web.resource.org/cc/Distribution" /> <requires rdf:resource="http://web.resource.org/cc/Notice" /> <requires rdf:resource="http://web.resource.org/cc/Attribution" /> <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> <requires rdf:resource="http://web.resource.org/cc/ShareAlike" /> </License> </rdf:RDF>