How can we approach being consistent within a codebase while also continuing to evolve?| Kevin Murphy
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