On Nov 3, 2:38 ¨Βν¬ Νιλε ΜοπλΌςεημο®®®ΐγαβμεοξε®ξετχςοτεΊ > Stefan Rusterholz wrote: > > Mike Lopke wrote: > >> I'm curious about everyone's take on Bob Martin's S.O.L.I.D. design > >> principles. They seem to be getting a lot of traction with statically > >> typed languages such as C# and Java but I haven't heard much buzz about > >> it in the Ruby community. > > >> Any thoughts on how duck typing impacts the usefulness or necessity of > >> these design principles? For instance, I don't really hear much > >> regarding Liskov's Substitution Principle around Ruby programmers and am > >> interested in opinions as to why. I was a SOLID developer in my C# days, but I don't feel it applies as well to dynamic languages like Ruby. The S, I still agree with: single responsibility per class. The O is something I'm on the fence about. Ruby allows you to open classes and modify them, and I've seen how valuable this is when you know what you're doing. The LID (substitution, inteface granularity, dependency injection) are just non-issues for me with Ruby. I enjoy duck-typing so much more than worrying about interface granularities, and I don't need to use dependency injection anymore (which I really only used to make things more testable, which I can do with Mocha nowadays anyway). I'd be interested in other viewpoints on this, but I think SOLID is great advice only for statically-typed languages and isn't quite as important with a language like Ruby. For me, the SOLID equivalent would go like this: Single Responsibility per Class Drive your development with unit tests Have fun ...but "SDH" isn't as easily pronounced as SOLID. :-) Jeff www.purpleworkshops.com