Object-Oriented Programming (OOP) and related concepts have become almost ubiquitous in modern software projects. It was a novel idea a few decades ago that has been incorporated into many frameworks and languages. We even have situations where OOP was “bolted on” to existing systems. However, all of that out of the box OOP design can hide it from us and keep us from fully embracing it. Therefore, this season will start from the OOP foundations and point to ways to embrace it in an intentional rather than accidental way.
Avoid Duplication of Effort
Software development is all about solving problems. The more we solve, the better we can serve our audience or customers. Thus, we want to avoid answering the same question multiple times. It is a waste of effort and a negative impact on maintenance. It can even hurt scalability. That is one of the core reasons for an object-oriented approach. The goal is to keep solutions contained in a way that makes them easy to re-use. Think of Lego blocks and how they can easily be connected to build small or large objects or even systems.
A Model of The Real World
The objects part of object-oriented programming are ways to model the real world. We can take problems defined in real-world terms and map them to a series of objects. Thus, an ATM solution can become a collection of customer, transaction, and bank account objects. This approach makes it easier to communicate ideas and break a considerable challenge down into smaller problems that are easier to solve.
Practical Object-Oriented Programming
OOP is a theory at its core. That means there are many ways to embrace it and put it into practice. Our goal for this season is to point to ways to use OOP concepts every day but can do so better. We will look at how to find a balance between theory and putting these ideas into action. If we have a better understanding of OOP along the way, then that is even better.