SlideShare una empresa de Scribd logo
1 de 71
Workin’ on the Rails Road Obie Fernandez Original presentation delivered to the Object Technology User Group St. Paul / Minneapolis September 20 th  2005
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions and Slides ,[object Object],[object Object],[object Object]
Introduction to Ruby Programming “ Smalltalk was one of the main influences for Ruby. Whenever you find a main difference between Perl and Ruby there's a good chance to find this feature in Smalltalk.”  RubyGarden
What is Ruby? ,[object Object],[object Object],[object Object],[object Object]
Ruby is a Dynamic Language ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Powerful Features ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ruby Variables ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Variable Assignment ,[object Object],[object Object],[object Object],[object Object],[object Object]
Strings ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Regular Expressions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arrays and Hashes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Numerics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ruby Methods ,[object Object],[object Object],[object Object],[object Object]
Writing Methods ,[object Object],[object Object],[object Object],[object Object]
Calling Methods ,[object Object],[object Object],[object Object],[object Object],[object Object]
Access Control ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conditionals ,[object Object],[object Object],[object Object],[object Object],[object Object]
If and Unless ,[object Object],[object Object],[object Object],[object Object]
Iterators ,[object Object],[object Object],[object Object]
Exceptions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Memory Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
More Language Features ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ruby Tools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Pickaxe Book
Ruby on Rails Fundamentals “ Rails is a full-stack, open-source web framework in Ruby for writing real-world applications with joy and less code than most frameworks spend doing XML sit-ups” Rails Creator - David H.  Hansson
What Is Rails? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Big Productivity Gains ,[object Object],[object Object],[object Object],[object Object]
Rails Models ,[object Object],[object Object],[object Object],[object Object],[object Object]
ActiveRecord Basics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Rails Views ,[object Object],[object Object],[object Object],[object Object],[object Object]
ERB Template Example
XML Builder Example
Rails Controllers ,[object Object],[object Object],[object Object],[object Object]
Controller Basics ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Actually Working with Ruby on Rails Based on real-world project experience
Real Productivity Gains Possible ,[object Object],[object Object],[object Object],[object Object],[object Object]
Rails Doesn’t Make Data Modeling Any Easier ,[object Object],[object Object],[object Object]
Speaking of Rake ,[object Object],[object Object],[object Object]
Not much IDE support… ,[object Object],[object Object],[object Object],[object Object]
…  how to deal with it ,[object Object],[object Object],[object Object],[object Object],[object Object]
Unit Tests Crucial ,[object Object],[object Object],[object Object]
Learning Ruby ,[object Object],[object Object],[object Object]
Learning Rails ,[object Object],[object Object],[object Object]
You’ll Write Less Code ,[object Object],[object Object],[object Object],[object Object],[object Object]
Don’t Repeat Yourself ,[object Object],[object Object],[object Object],[object Object]
Don’t Reinvent the Wheel ,[object Object],[object Object],[object Object]
ActiveRecord Reminder ,[object Object]
Take Advantage of ActiveRecord Flexibility ,[object Object],[object Object],[object Object]
Belongs_to Table Must Have the Foreign Key ,[object Object],[object Object],[object Object]
Don’t Abuse HABTM ,[object Object],[object Object],[object Object],[object Object]
ActionMailer Notes ,[object Object],[object Object]
AJAX is Easier With Rails but… ,[object Object],[object Object],[object Object]
Other Gotchas ,[object Object],[object Object],[object Object]
Are Ruby and Rails Ready for Prime Time? No simple answers, so let’s discuss it…
The Future of Ruby ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Road to Rails 1.0 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Softer Issues ,[object Object],[object Object],[object Object],[object Object]
Common Apprehensions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Is Ruby better than..? ,[object Object],[object Object],[object Object],[object Object]
Pragmatic Dave on J2EE ,[object Object]
More Pragmatic Dave ,[object Object],[object Object],[object Object]
J2EE Backlash Fueling Interest in Rails ,[object Object],[object Object]
Web 2.0 and Rails ,[object Object],[object Object],[object Object],[object Object]
When should I use Rails? ,[object Object],[object Object],[object Object]
When not to use Rails! ,[object Object],[object Object],[object Object]
The Right Developer Attitude is Crucial  ,[object Object],[object Object],[object Object]
Ruby on Rails and Consulting Businesses ,[object Object],[object Object]
Future of Ruby on Rails ,[object Object],[object Object],[object Object]
Questions and Comments
In Conclusion… ,[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)Kiran Jonnalagadda
 
JSR 335 / java 8 - update reference
JSR 335 / java 8 - update referenceJSR 335 / java 8 - update reference
JSR 335 / java 8 - update referencesandeepji_choudhary
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryAniruddha Chakrabarti
 
Ruby Programming Introduction
Ruby Programming IntroductionRuby Programming Introduction
Ruby Programming IntroductionAnthony Brown
 
Javascript as a Platform
Javascript as a PlatformJavascript as a Platform
Javascript as a PlatformVlad Mysla
 
Week 8 intro to python
Week 8   intro to pythonWeek 8   intro to python
Week 8 intro to pythonbrianjihoonlee
 
php app development 1
php app development 1php app development 1
php app development 1barryavery
 
introduction to javascript
introduction to javascriptintroduction to javascript
introduction to javascriptKumar
 
Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Brian Sam-Bodden
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to ScalaSynesso
 
Community Tech Days C# 4.0
Community Tech Days C# 4.0Community Tech Days C# 4.0
Community Tech Days C# 4.0SANKARSAN BOSE
 
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416Chicago Hadoop Users Group
 

La actualidad más candente (18)

Overview of CoffeeScript
Overview of CoffeeScriptOverview of CoffeeScript
Overview of CoffeeScript
 
2CPP02 - C++ Primer
2CPP02 - C++ Primer2CPP02 - C++ Primer
2CPP02 - C++ Primer
 
Dart programming language
Dart programming languageDart programming language
Dart programming language
 
Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)
 
JSR 335 / java 8 - update reference
JSR 335 / java 8 - update referenceJSR 335 / java 8 - update reference
JSR 335 / java 8 - update reference
 
Ruby programming
Ruby programmingRuby programming
Ruby programming
 
NLP using JavaScript Natural Library
NLP using JavaScript Natural LibraryNLP using JavaScript Natural Library
NLP using JavaScript Natural Library
 
Ruby Programming Introduction
Ruby Programming IntroductionRuby Programming Introduction
Ruby Programming Introduction
 
Javascript as a Platform
Javascript as a PlatformJavascript as a Platform
Javascript as a Platform
 
Week 8 intro to python
Week 8   intro to pythonWeek 8   intro to python
Week 8 intro to python
 
Dart ppt
Dart pptDart ppt
Dart ppt
 
php app development 1
php app development 1php app development 1
php app development 1
 
introduction to javascript
introduction to javascriptintroduction to javascript
introduction to javascript
 
Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008Ruby Metaprogramming - OSCON 2008
Ruby Metaprogramming - OSCON 2008
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
Community Tech Days C# 4.0
Community Tech Days C# 4.0Community Tech Days C# 4.0
Community Tech Days C# 4.0
 
Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416Avro - More Than Just a Serialization Framework - CHUG - 20120416
Avro - More Than Just a Serialization Framework - CHUG - 20120416
 
Php
PhpPhp
Php
 

Destacado

Destacado (7)

2 slides
2 slides2 slides
2 slides
 
2 slides
2 slides2 slides
2 slides
 
How toconduct
How toconductHow toconduct
How toconduct
 
Jean lown5
Jean lown5Jean lown5
Jean lown5
 
2 slides 1 anim
2 slides 1 anim 2 slides 1 anim
2 slides 1 anim
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
 
The Near Future of CSS
The Near Future of CSSThe Near Future of CSS
The Near Future of CSS
 

Similar a Workin ontherailsroad

Ruby On Rails Tutorial
Ruby On Rails TutorialRuby On Rails Tutorial
Ruby On Rails Tutorialsunniboy
 
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Mark Menard
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
Page List & Sample Material (Repaired)
Page List & Sample Material (Repaired)Page List & Sample Material (Repaired)
Page List & Sample Material (Repaired)Muhammad Haseeb Shahid
 
Introduction to Ruby & Modern Programming
Introduction to Ruby & Modern ProgrammingIntroduction to Ruby & Modern Programming
Introduction to Ruby & Modern ProgrammingChristos Sotirelis
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Espen Brækken
 
Ruby On Rails Overview
Ruby On Rails OverviewRuby On Rails Overview
Ruby On Rails Overviewjonkinney
 

Similar a Workin ontherailsroad (20)

Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby On Rails Tutorial
Ruby On Rails TutorialRuby On Rails Tutorial
Ruby On Rails Tutorial
 
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Workin On The Rails Road
Workin On The Rails RoadWorkin On The Rails Road
Workin On The Rails Road
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Ruby Metaprogramming 08
Ruby Metaprogramming 08Ruby Metaprogramming 08
Ruby Metaprogramming 08
 
Ruby on rails for beginers
Ruby on rails for beginersRuby on rails for beginers
Ruby on rails for beginers
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Page List & Sample Material (Repaired)
Page List & Sample Material (Repaired)Page List & Sample Material (Repaired)
Page List & Sample Material (Repaired)
 
Ruby
RubyRuby
Ruby
 
Introduction to Ruby & Modern Programming
Introduction to Ruby & Modern ProgrammingIntroduction to Ruby & Modern Programming
Introduction to Ruby & Modern Programming
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
 
Ruby on Rails 3 Day BC
Ruby on Rails 3 Day BCRuby on Rails 3 Day BC
Ruby on Rails 3 Day BC
 
Ruby On Rails Overview
Ruby On Rails OverviewRuby On Rails Overview
Ruby On Rails Overview
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
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
 

Workin ontherailsroad

  • 1. Workin’ on the Rails Road Obie Fernandez Original presentation delivered to the Object Technology User Group St. Paul / Minneapolis September 20 th 2005
  • 2.
  • 3.
  • 4. Introduction to Ruby Programming “ Smalltalk was one of the main influences for Ruby. Whenever you find a main difference between Perl and Ruby there's a good chance to find this feature in Smalltalk.” RubyGarden
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 26. Ruby on Rails Fundamentals “ Rails is a full-stack, open-source web framework in Ruby for writing real-world applications with joy and less code than most frameworks spend doing XML sit-ups” Rails Creator - David H. Hansson
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 34.
  • 35.
  • 36. Actually Working with Ruby on Rails Based on real-world project experience
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. Are Ruby and Rails Ready for Prime Time? No simple answers, so let’s discuss it…
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 71.

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> <dc:title>Workin’ on the Rails Road</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>
  2. Based on experience, I suggest that presenters open up an IRB session and use actual Ruby code snippets to illustrate the concepts presented in this section of the presentation. I left out code examples, which makes a dry run through the slides an exercise in audience boredom and/or perplexment. -Obie
  3. At this point, you should fire up some console windows and an editor and begin to write a Rails application. This will allow the audience to see the concepts realized and demonstrate the actual productivity of the platform. -Obie