Hi All,
I gave a talk at Adelaide.rb last night about OO in Rails.
http://www.slideshare.net/adzdavies/oo-and-rails

I wasn't sure where to go with it, but it ended up being aimed at
motivations for practical OO design....
...what I've absorbed, and what is online to make better code, and
especially, as it applies to Ruby.

For those interested, below is run through of some of my sources -- some
talks & books I found really interesting...

---

My first point was that we are lucky to have (some) of the creators of our
core ideas still with us...
In understanding OO design, we can look at the creators of this stuff.

Barbara Liskov gave a great speech, very interesting on the early
thinking...
 - How did they come up with OO?  40ish years ago?
 - What were they thinking?  What problems were certain techniques solving?
 - BTW: Barbara was at the forefront of programming research then, and
still is today!
http://www.infoq.com/presentations/liskov-power-of-abstraction/

Stefan Ram wanted clear definition on what OO was, so he asked the guy who
coined the term (Alan Kay):
http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en

---


FREE ONLINE BOOK: Objects on Rails: Flexible Web Application Desigin, Avdi
Grimm
 - Excellent book, a tour in building an app with practical design in mind
 - Avdi applies principle and patterns along the way (in fact, he sneaks
them in)
 - The goal? Producing single-responsibility, decoupled code...
 - Buy the deluxe version!
    -> You get an EXCELLENT 2.5h recorded discussion between Avdi and Sandi
Metz
http://objectsonrails.com/


BOOK: Agile Software Development, Principles, Patterns, and Practices
 - The point?
   - How to write good code
   - General guiding principles helping you to decouple dependencies
 - Lot's of code (unfortunately its java and C++)
 - He demonstrates, with code examples, how to apply "S.O.L.I.D." principles
 - He does the same with design patterns
 - Also on agile practices

SOLID is a set of guiding principles first gathered together by Robert C
Martin in this book...

So, they seemed to come out of static languages?
But... Uncle Bob is no stranger to dynamic languages, having been into
Smalltalk and now Ruby.

Is SOLID relevant at all to Ruby???
Yes, especially the first three.   but sometimes not exactly the same way

VIDEO PRESENTATION: SOLID Ruby, by Jim Weirich
 - Jim tries to get the ideas *behind* SOLID
 - How to best apply them to ruby?
http://www.confreaks.com/videos/185-rubyconf2009-solid-ruby

VIDEO PRESENTATION: SOLID OO Design, by Sandi Metz
 - Shows off SOLID in how it applies to Ruby
 - Real code samples show how the code gets better with little effort
 - WATCH IT!
http://www.confreaks.com/videos/240-goruco2009-solid-object-oriented-design

VIDEO: RailsConf 2009 Keynote: "What killed smalltalk could kill ruby too"
 - An interesting talk by Uncle Bob, entertaining...
 - C++ guys HAD to do good design just to do anything...!
 - Smalltalkers could 'get away' with bad design because it was far more
powerful... but not forever...
 - They walled themselves off from the rest of the world
 - They didn't want to deal with that ugly enterprise stuff
http://blip.tv/railsconf/railsconf-09-robert-martin-what-killed-smalltalk-could-kill-ruby-too-2099970

PODCASTS: Ruby Rogues - in-depth technical discussions
http://rubyrogues.com/object-oriented-programming-in-rails-with-jim-weirich/
http://rubyrogues.com/046-rr-objects-in-rails-part-2/
http://rubyrogues.com/056-rr-david-heinemeier-hansson/

PODCASTS: Ruby Rogues on SOLID
http://rubyrogues.com/rr-60-solid-with-jim-weirich/

BOOK: Practical Object Oriented Design in Ruby, by Sandi Metz
 - Not-yet-released (can get a 'rough cut')
 - Looks to be awesome

Review:

> There’s a lot of Ruby community interest lately about applying extra rigor
> to SOLID OOP and recognizing where procedural habits, coupling, and
> unnecessary dependencies sneak into our code. This book positions itself as
> a pragmatic superset of all the trends I’ve been reading more and more of
> lately.
>
> I believe this book has some of the most clear, concise, and pragmatic
> presentations of these topics I’ve come across to date. It’s inspiring and
> is a great transition to more theoretical OOP material.
>
> http://blog.oneif.net/2011/12/04/5-min-book-review-practical-object-oriented-design-in-ruby-by-sandi-metz/
>


Hope you find some of that interesting, and continue to delve into the
'practical' side of OO design.
Adam

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
or Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rails-oceania?hl=en.

Reply via email to