Your SlideShare is downloading. ×
0
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Ruby Software Architecture
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ruby Software Architecture

2,768

Published on

RubyCampLyon presentation on Software Architecture in a Ruby world

RubyCampLyon presentation on Software Architecture in a Ruby world

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,768
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 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
  • 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)
  • Transcript

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

    ×