The SOLID principles are five software design principles that aim to make the code more clear, offer more flexibility and help with maintainability. Although they were originally aimed at object-oriented design, more specifically the design of classes, the general ideas behind most of them are universal and can also be applied to other paradigms like functional programming.| Convinced Coder
The open-closed principle needs no introduction. It’s a part of SOLID, it’s a valuable design tool, mountains of text have been written about it. To recap: The principle says to make your software open for extension, but closed for modification. Once you decide that following that principle is valuable for a component of your software, how do you implement it? Immediately everybody thinks of a polymorphic class hierarchy. After all, that’s the example used in virtually every article on ...| Here Be Braces
Here is a set of criteria to apply when determining between different options.| Kevin Murphy
In a previous post, we built an amplifier. Now, we'll learn to play the guitar with ruby code.| Kevin Murphy
Inheritance sets up a relationship or a taxonomy between classes to allow for code reuse. It is both a commonly reached for and commonly derided tool which has its place, but must be wielded with care. Here we'll use inheritance to write new songs for our concert setlist.| Kevin Murphy
Explore the benefits of delegating work to collaborators in object-oriented languages.| Kevin Murphy
Duck typing is commonly used by Rubyists and other users of dynamic languages. We'll demonstrate duck typing by helping a concert lighting team set up the lighting for a band.| Kevin Murphy
Dependency injection is a fancy term. It sounds intimidating. The purpose of this post is to explain what dependency injection is, how to use it, and why it can be beneficial.| Kevin Murphy