SlideShare a Scribd company logo
Ruby Software Architecture All you ever wanted to know but were too afraid too ask
Agenda Developing with Ruby for a living Rails 3 Architecture Build your stack from the ground up
Developing with Ruby for a living Or how to make it profitable
Potatoe Patatoe Not different from other languages Prepare to explain "why Ruby" Talk $ (€ does also work) Hide behind Twitter (:
All about Ruby Cut the "voodoo" crap Aim for Productivity Aim for Maintenance Zero Try, if possible, to contribute
Rails 3:  Railties and Engines They ate their own dog food
Rails 3 Layered architecture  (Rails has always been that way) The "Great decoupling" Embed (Rack) applications All about Railties and Engines
How does it work Initializers Post After Generators Migrations load_paths, eager_load_paths, ... Rails.*
Living examples FTW Devise Authr3 Radiant's extensions (soon :)) Spawn yours   http://github.com/josevalim/enginex
From the ground up Some hints to get your started
From the ground up DRY accross projects "Make or Reuse" Make it extendable (rock SOLID) Using Rails? Architecture still matters
Ruby's here for us Meta Programming DSLs Dynamic module inclusion Famous projects, excellent code
Ad

More Related Content

Viewers also liked (20)

Ruby in the Clouds
Ruby in the CloudsRuby in the Clouds
Ruby in the Clouds
Franck Verrot
 
Intergrity Stock Exchange (2)
Intergrity   Stock Exchange (2)Intergrity   Stock Exchange (2)
Intergrity Stock Exchange (2)
Niro11
 
Learning and Development in Organizations
Learning and Development in OrganizationsLearning and Development in Organizations
Learning and Development in Organizations
Robert A. Sedlák
 
My Christmas Holidays
My Christmas HolidaysMy Christmas Holidays
My Christmas Holidays
IES GUINDAVOLS
 
Culture and Integration in Organizations
Culture and Integration in OrganizationsCulture and Integration in Organizations
Culture and Integration in Organizations
Robert A. Sedlák
 
Live-Note
Live-NoteLive-Note
Live-Note
Franck Verrot
 
Rails is Secure
Rails is SecureRails is Secure
Rails is Secure
Franck Verrot
 
Online mrm ver1.0
Online mrm ver1.0Online mrm ver1.0
Online mrm ver1.0
vijaydsouza
 
Active domain
Active domainActive domain
Active domain
Franck Verrot
 
Press Book Mathilde Durieux
Press Book Mathilde DurieuxPress Book Mathilde Durieux
Press Book Mathilde Durieux
Mathilde Durieux
 
Leadership Development in Organizations
Leadership Development in OrganizationsLeadership Development in Organizations
Leadership Development in Organizations
Robert A. Sedlák
 
prezentarechimie_GeambasuGeorgeLiviu
prezentarechimie_GeambasuGeorgeLiviuprezentarechimie_GeambasuGeorgeLiviu
prezentarechimie_GeambasuGeorgeLiviu
Geambasu George
 
Foresighted self renewal for Organizations
Foresighted self renewal for OrganizationsForesighted self renewal for Organizations
Foresighted self renewal for Organizations
Robert A. Sedlák
 
The Foreman
The ForemanThe Foreman
The Foreman
Retired49er
 
Lessons to be learned in recession
Lessons to be learned in recessionLessons to be learned in recession
Lessons to be learned in recession
Jayashree Prabhu
 
Business Market & Buying Behavior (Ppt 2003)
Business Market & Buying Behavior (Ppt 2003)Business Market & Buying Behavior (Ppt 2003)
Business Market & Buying Behavior (Ppt 2003)
Rehan
 
Digital Media Piracy
Digital Media PiracyDigital Media Piracy
Digital Media Piracy
guesteb94797
 
How To Prepare For A Film Shoot GUIDE
How To Prepare For A Film Shoot GUIDEHow To Prepare For A Film Shoot GUIDE
How To Prepare For A Film Shoot GUIDE
amar4life
 
Lijjat Papad
Lijjat PapadLijjat Papad
Lijjat Papad
Jayashree Prabhu
 
Grade 6 Nutrition Ppt
Grade 6 Nutrition PptGrade 6 Nutrition Ppt
Grade 6 Nutrition Ppt
sasmerritt
 
Intergrity Stock Exchange (2)
Intergrity   Stock Exchange (2)Intergrity   Stock Exchange (2)
Intergrity Stock Exchange (2)
Niro11
 
Learning and Development in Organizations
Learning and Development in OrganizationsLearning and Development in Organizations
Learning and Development in Organizations
Robert A. Sedlák
 
Culture and Integration in Organizations
Culture and Integration in OrganizationsCulture and Integration in Organizations
Culture and Integration in Organizations
Robert A. Sedlák
 
Online mrm ver1.0
Online mrm ver1.0Online mrm ver1.0
Online mrm ver1.0
vijaydsouza
 
Press Book Mathilde Durieux
Press Book Mathilde DurieuxPress Book Mathilde Durieux
Press Book Mathilde Durieux
Mathilde Durieux
 
Leadership Development in Organizations
Leadership Development in OrganizationsLeadership Development in Organizations
Leadership Development in Organizations
Robert A. Sedlák
 
prezentarechimie_GeambasuGeorgeLiviu
prezentarechimie_GeambasuGeorgeLiviuprezentarechimie_GeambasuGeorgeLiviu
prezentarechimie_GeambasuGeorgeLiviu
Geambasu George
 
Foresighted self renewal for Organizations
Foresighted self renewal for OrganizationsForesighted self renewal for Organizations
Foresighted self renewal for Organizations
Robert A. Sedlák
 
Lessons to be learned in recession
Lessons to be learned in recessionLessons to be learned in recession
Lessons to be learned in recession
Jayashree Prabhu
 
Business Market & Buying Behavior (Ppt 2003)
Business Market & Buying Behavior (Ppt 2003)Business Market & Buying Behavior (Ppt 2003)
Business Market & Buying Behavior (Ppt 2003)
Rehan
 
Digital Media Piracy
Digital Media PiracyDigital Media Piracy
Digital Media Piracy
guesteb94797
 
How To Prepare For A Film Shoot GUIDE
How To Prepare For A Film Shoot GUIDEHow To Prepare For A Film Shoot GUIDE
How To Prepare For A Film Shoot GUIDE
amar4life
 
Grade 6 Nutrition Ppt
Grade 6 Nutrition PptGrade 6 Nutrition Ppt
Grade 6 Nutrition Ppt
sasmerritt
 

Similar to Ruby Software Architecture (20)

DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
Robert Postill
 
Derailing rails
Derailing railsDerailing rails
Derailing rails
Panagiotis Papadopoulos
 
Intro to Rails
Intro to RailsIntro to Rails
Intro to Rails
lvrubygroup
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
Ken Collins
 
Ruby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequelRuby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequel
Jiang Wu
 
Practical JRuby
Practical JRubyPractical JRuby
Practical JRuby
David Keener
 
How to set up and test a Rails 3 Engine
How to set up and test a Rails 3 EngineHow to set up and test a Rails 3 Engine
How to set up and test a Rails 3 Engine
nicholasf
 
Ruby on Rails 3 Day BC
Ruby on Rails 3 Day BCRuby on Rails 3 Day BC
Ruby on Rails 3 Day BC
Northwest Independent Ruby Development
 
Ruby Loves Dot Net
Ruby Loves Dot NetRuby Loves Dot Net
Ruby Loves Dot Net
Ivan Porto Carrero
 
Concurrency in ruby
Concurrency in rubyConcurrency in ruby
Concurrency in ruby
Marco Borromeo
 
At&T Interactive: The Many Facets Of Ruby
At&T Interactive: The Many Facets Of RubyAt&T Interactive: The Many Facets Of Ruby
At&T Interactive: The Many Facets Of Ruby
Coby Randquist
 
Fabric: A Capistrano Alternative
Fabric:  A Capistrano AlternativeFabric:  A Capistrano Alternative
Fabric: A Capistrano Alternative
Panoptic Development, Inc.
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
Michael MacDonald
 
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 introduction
Ruby on Rails introduction Ruby on Rails introduction
Ruby on Rails introduction
Tran Hung
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
TAInteractive
 
Ruby on Rails
Ruby on Rails Ruby on Rails
Ruby on Rails
thinkahead.net
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
TAInteractive
 
Ruby
RubyRuby
Ruby
Aizat Faiz
 
DiUS Computing Lca Rails Final
DiUS  Computing Lca Rails FinalDiUS  Computing Lca Rails Final
DiUS Computing Lca Rails Final
Robert Postill
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
Ken Collins
 
Ruby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequelRuby off Rails---rack, sinatra and sequel
Ruby off Rails---rack, sinatra and sequel
Jiang Wu
 
How to set up and test a Rails 3 Engine
How to set up and test a Rails 3 EngineHow to set up and test a Rails 3 Engine
How to set up and test a Rails 3 Engine
nicholasf
 
At&T Interactive: The Many Facets Of Ruby
At&T Interactive: The Many Facets Of RubyAt&T Interactive: The Many Facets Of Ruby
At&T Interactive: The Many Facets Of Ruby
Coby Randquist
 
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 introduction
Ruby on Rails introduction Ruby on Rails introduction
Ruby on Rails introduction
Tran Hung
 
Sparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With SparkSparklife - Life In The Trenches With Spark
Sparklife - Life In The Trenches With Spark
Ian Pointer
 
Ad

Ruby Software Architecture

  • 1. Ruby Software Architecture All you ever wanted to know but were too afraid too ask
  • 2. Agenda Developing with Ruby for a living Rails 3 Architecture Build your stack from the ground up
  • 3. Developing with Ruby for a living Or how to make it profitable
  • 4. Potatoe Patatoe Not different from other languages Prepare to explain "why Ruby" Talk $ (€ does also work) Hide behind Twitter (:
  • 5. All about Ruby Cut the "voodoo" crap Aim for Productivity Aim for Maintenance Zero Try, if possible, to contribute
  • 6. Rails 3: Railties and Engines They ate their own dog food
  • 7. Rails 3 Layered architecture (Rails has always been that way) The "Great decoupling" Embed (Rack) applications All about Railties and Engines
  • 8. How does it work Initializers Post After Generators Migrations load_paths, eager_load_paths, ... Rails.*
  • 9. Living examples FTW Devise Authr3 Radiant's extensions (soon :)) Spawn yours http://github.com/josevalim/enginex
  • 10. From the ground up Some hints to get your started
  • 11. From the ground up DRY accross projects "Make or Reuse" Make it extendable (rock SOLID) Using Rails? Architecture still matters
  • 12. Ruby's here for us Meta Programming DSLs Dynamic module inclusion Famous projects, excellent code

Editor's Notes

  • #6: 1. train your developers 2. don't overdo 3. secure what's important _to users_, even if that means: "don't do some tests" 4. Your frameworks and plugins are likely to be boggus, fix them
  • #12: SOLID SRP (never more than one reason for a class to change) OC Principle (O for extension, C for modification) Liskov Substitution (OK to use derived class without knowing it) Interface Segregation (not depend on what you don't need) Dependency inversion (based on abstraction)