RR 60 SOLID with Jim Weirich




The Ruby Rogues show

Summary: Panel Jim Weirich (twitter github onestepback.org) Avdi Grimm (twitter github blog book) David Brady (blog witter github ADDcasts) Charles Max Wood (twitter github Teach Me To Code Rails Summer Camp) James Edward Gray II (blog twitter github) Josh Susser (twitter github blog) Discussion EdgeCase SOLID Principles (Wikipedia) Uncle Bob Martin Object Oriented Design SOLID is individual object design Java C++ Interface Segregration Principle is done for you in Ruby as long as you do it right. Enumerable RubyConf talk by Jim Weirich Goruco talk by Sandi Metz Jim's Presentation on github Resque Array DCI Specify an interface with a test ActiveModel::Lint Single Responsibility Principle "An object should only have one reason to change." Plataformatec blog post on why not to adopt Rack Connascence Name Position What Every Programmer Should Know About Object Oriented Design Duck Typing A warning sign may be if you're using a constant that's not in your scope Picks Safety Razors - Merkur razors (Avdi) Pair programming on open source projects (Avdi) RailsCasts on Security (James) Dragon Tattoo Trilogy - netflix, iTunes (James) Dungeon Defenders (James) How to Behave so Your Children Will Too (David) The Dog Whisperer (David) Golden Gate Ruby Conference (Josh) DefendInnovation.org (Josh) Mark Suster - bothsidesofthetable.com (Josh) Run 5k (Chuck) Internet Marketing for Smart People (Chuck) RubyMotion (Jim) Song of Fire and Ice (Jim) Youtube - Pink 5 (Jim) Transcript JOSH: In driver’s ed they always told us to aim high in steering, so shooting for the horizon is usually the right thing to do. [laughter] DAVE: You either had the worst or the best driver’s ed class ever. JOSH: They played us that great prom night video. It is called like “The Last Prom”, where the kids get drunk and then get in the car and drive to prom and they all die. [laughter] JAMES: So, is this driver’s ed or sex ed or what? JOSH: It was driver’s ed. DAVE: It was combined, you know. [laughter] [This podcast is sponsored by New Relic. To track and optimize your application performance, go to Rubyrogues.com/newrelic] [Hosting bandwidth provided by The Blue Box Group. Check them out at bluebox.net] [This episode is sponsored by JetBrains -- makers of RubyMine. If you like having an IDE that provides great inline debugging tools, built-in version control and path completion, then check out RubyMine by going to JetBrains.com/Ruby] CHUCK: Hey everybody and welcome to episode 60 of the Ruby Rogues Podcast! This week on our panel we have Avdi Grimm. AVDI: Hello from Pennsylvania! CHUCK: We also have David Brady. DAVE: Good morning! I have a fresh new bag of innuendo, all ready to go. (If you know what I mean.) CHUCK: (laughs) We have James Edward Gray. JAMES: Why do you make me follow him? Come on. CHUCK: Josh Susser. JOSH: Hey everybody! It’s great to be back. I had a few weeks off to go deal with my start-up stuff and that went well and happy to be back on the show. CHUCK: I'm Charles Max Wood from devchat.tv and this week, we have Jim Weirich! JIM: Hello there! I'm just happy to be here. CHUCK: Alright. Well we haven’t had you on for a while; do you want to do a brief introduction so people know who you are Jim? JIM: Okay that's fine. JOSH: Because nobody knows who Jim is. CHUCK: Jim: define. Go ahead Jim sorry about that. JIM: Oh, I'm sorry! You wanted me to introduce myself. I thought you guys were going to introduce me. Okay, so I'm Jim Weirich. I work for EdgeCase -- a New Context company. (We got to say the entire thing now since we have been bought). I've been in the Ruby world since like, forever. And just really love Ruby and love other technologies as well. Particularly interested in the topic today, the SOLID principles and have lots of opinions on that. So,