Design Patterns

Movie rental refactor challenge


I got this refactor challenge for a simple ruby script that has 3 objects and produces a statement. In effect we have a Movie object, a Rental object and a Customer object. The purpose of the script is to print out a statement with the customer’s name, order, amount due and frequent renter points. The [...]

How To Write a Custom Decoupled CSV Importer


Hey there! Last time I spoke about how to add a bit of microservices style architecture flavor to your monolithic app and the benefits of doing it in such a way. Now I’m going to go through a concrete working example of a modularly built, ‘plug-in and play’, intuitive and reusable CSV importer. We’ll have [...]

Applying Microservices Style Architecture to Monolithic Apps


Def: Microservices is a software development technique—a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services. – wikipedia “A collection on loosely coupled services”. Bit of a brain twist. Ok, loosely coupled we get from the get-go, it’s good software practice and design, but what [...]

Organizing Your Code With The Help Of Modules

1 comment

We know about classes and how they are an Object defined to “huddle up” like minded or similarly goal oriented objects (namely methods) and we know about class hierarchies, the perils that it imposes on our code through the thing called classical inheritance and how namespacing matters because the names we choose for our objects [...]

Classical Inheritance In Object Oriented Programming

1 comment

If you’ve been eying the opportunity to become a computer programmer for some time now, or even if you’ve just started venturing out onto this great and noble journey, chances are that you’ve hit yourself with this term quite a few times whether in books, booklets or even documentation sites, Classical inheritance has always been [...]

How Liskov Substitution Principle Can Save Your Classes


Liskov Substitution Principle is the L in the SOLID programming principles. It was announced to the world by Barbara Liskov in a 1987 conference keynote address titled Data abstraction and hierarchy. In that academic setting, using academic linguo, Liskov stated that in a computer program, if S is a subtype of T, then objects of [...]

Setting Up Good Interface Design

1 comment

At first glance your application is made up by methods, many in number and diverse in functionality. It is that diversity that has us make them “huddle up” in teams that share the same purpose, that satisfy the same end goal, or more simply put, that work together to get the “same job done”. Thus [...]

Good Code Abides By The Open-Closed Principle


Def: “In object-oriented programming, the open/closed principle states “software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification“; that is, such an entity can allow its behaviour to be extended without modifying its source code.” – wikipedia In layman terms, what the principle states is that the objects you create [...]

Comprehending Good Front-End Design

1 comment

What is Front-End Design, and most of all: Why is it important? To better understand this first we’ll have to break the concept into parts. So, what is front-end? In layman’s terms it is the main contact surface between your business and your customer. Without it no user, and more importantly no potential customer, could [...]