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.
