advanced ruby and rails track introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/advanced ruby... ·...

11
Advanced Ruby and Rails Track Intro Glenn Vanderburg [email protected]

Upload: others

Post on 25-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

AdvancedRuby and Rails Track IntroGlenn Vanderburg

[email protected]

Page 2: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

“Advanced”

Higher-level features

Higher-level techniques

Higher-level tools

Photo by Toshihiro Oimatsu

Page 3: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Advanced means “lower-level”

Lower-level workto achieve higher-level goals

Photo by Jurek Durczak

Page 4: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Ruby and RailsKey characteristic for advanced development: openness

Photo by John Martinez Pavliga

Page 5: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Openness

Ability to see how things work at lower levels

Ability to use lower-level facilities

Ability to change how things work

Photo by Peter Lindberg

Page 6: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Leaky Abstractions

The Law of Leaky Abstractions is dragging us down.

—Joel Spolsky

Page 7: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Leaky Abstractions

Ring the bells that still can ring,Forget your perfect offering.

There is a crack in everything—That’s how the light gets in.

—Leonard Cohen

Page 8: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Leaky Abstractions

Embrace imperfection.

Ruby’s and Rails’ abstractions leak aggressively.

Encapsulation boundaries serve you.

(they don’t restrict you)

Photo by Ville Miettinen

Page 9: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Onion-skin APIs

Peel as little or as much as you like.

Photo by Tim Snell

Page 10: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

EncapsulateDon’t let the “advanced” piecescomplicate your entire system.

Photo by Art Bromage

Page 11: Advanced Ruby and Rails Track Introjaoo.dk/dl/jaoo-ruby-oslo-2008/slides/Advanced Ruby... · Versioning Your Data Model Scaling That Rails App Rails Without ActiveRecord Packaging

Talks and Speakers

Versioning Your Data Model

Scaling That Rails App

Rails Without ActiveRecord

Packaging Ruby Libraries with RubyGems

Ole Friis Østergaard

Christian Amor Kvalheim

Marius Mårnes Mathiesen

Nic Williams