087 RR Book Club: Practical Object-Oriented Design in Ruby with Sandi Metz




The Ruby Rogues show

Summary: Panel Sandi Metz (twitter github blog POODR) Josh Susser (twitter github blog) James Edward Gray (twitter github blog) David Brady (twitter github blog ADDcasts) Avdi Grimm (twitter github blog book) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion Practical Object-Oriented Design in Ruby (POODR) 04:51 - Please take part in our survey: Best of Ruby Rogues 2012 rubyrogues.com/survey 05:03 - Next Book Club Pick Patterns of Enterprise Application Architecture by Martin Fowler 06:09 - Sandi’s Writing & Speaking Processes Sandi Metz Talks Ratio of prose vs code samples 14:07 - Parallelism between the process for writing software and the process for writing prose 17:23 - The Flow of POODR 21:57 - Design Understanding Concepts and Explaining them to Others Rules and Using Best Judgement Recipes are like Coding 34:00 - Practical Prescriptions and Visualizations Go Ahead, Make a Mess by Sandi Metz RubyTapas The Shape of Code 41:20 - Beyond POODR Objects on Rails Sponsor Edition Rails App Advice Best Practices in the Rails Community 45:11 - Rails Null Object Pattern 51:03 - Frameworks 54:40 - Object-Oriented Design, Dependency Injection, Hiding Instance Variables vs YAGNI (You Ain’t Gonna Need It) 01:00:45 - Inheritance 01:06:25 - Chapter 9: Designing Cost-Effective Tests Testing Private Methods Integration Tests 01:17:46 - Sandi’s Programming Rules Breaking the Rules vs Not Breaking the Rules 01:35:28 - Too Many Small vs A Few Big Code Climate 01:43:50 - New Media Expo Picks The Deep Synergy Between Testability and Good Design by Michael Feathers (James) Endless Space (James) defective yeti: The 2012 Good Gift Games Guide (James) 37. Penn.12.10.28.SS - George Takei: It’s OK To Be Takei (Avdi) Dan Carlin’s Hardcore History (Avdi) The Infinite Monkey Cage (Avdi) Marked (Josh) Aeron Chair by Herman Miller (Chuck) iOS Development Podcast (Chuck) BubbleTimer.com (Sandi) iRobot Looj 330 Gutter Cleaning Robot (Sandi) Next Week Concurrency and Celluloid with Tony Arceri Transcript DAVID:  I tweeted this morning. I’ve gained seven pounds since I got a Fitbit for Christmas. This thing clearly does not work. And somebody wrote back and said, “You have to shake it.” [Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.] [This episode is sponsored by Jet Brains, makers of Ruby Mine. If you like having an IDE that provides great inline debugging tools, built-in version control and intelligent code insight and refactorings, check out Ruby Mine by going to JetBrains.com/Ruby.] [This podcast is sponsored by New Relic. To track and optimize your application performance, go to RubyRogues.com/NewRelic.] CHUCK:  Hey everybody, and welcome to Episode 87 of the Ruby Rogues podcast. This week on our panel, we have Josh Susser. JOSH:  Hey, good morning everyone. Happy New Year! CHUCK:  James Edward Gray. JAMES:  I’ll be your cyborg panelist for this episode. CHUCK:  David Brady. DAVID:  Happy New Year, everybody! Well, I guess, last week was when you listened to me anyway. Happy January. Hi! CHUCK:  Avdi Grimm. AVDI:  Hello from sunny [inaudible]. And if I sound a little funny this week, it’s because I’m presently coating myself in sand trail in order to assume an immortal pre-worm form. [laughter] CHUCK:  Awesome. I'm Charles Max Wood from DevChat.tv and I'm working hard on RailsRampUp.com, so go check it out. Katrina isn’t here this week. She’s off chasing reindeer in Norway. And we’ve got a special guest, and that’s Sandi Metz. SANDI:  Hi! CHUCK:  So, I'm sure it comes as no surprise to anybody that we have Sandi here since she wrote the Book Club Book:   Practical Object-Oriented Design in Ruby. DAVID:  I'm surprised she agreed to come. [laughter] SANDI:  Withall the hype in the Fall,