Scaling Your Database Instance

Understanding the huge importance of the response time is crucial. The purpose of a software application isn’t just to do what it is meant to do, but also to do it fast and to scale by keeping an eye on the response time and, implicitly, on the throughput. There are studies that show that 47% of consumers […]

The Open/Closed Principle and Strategy Pattern

SOLID are a set of principles formulated by Robert C.Martin that are meant to guide developers to design and implement software that is easily maintainable, clear, and scalable. In other words, following these principles helps us to write a more solid software. These five principles are: The Single Responsibility Principle: A class should have one, and only […]

About Immutability in OOP

This lesson on immutability in OOP considers the benefits and drawbacks of using immutable objects and tips for using them depending on your use case. To explain what immutability is, first we need to understand what mutability is. Mutability means the possibility to change the state of an entity while its identity remains the same. […]

About Dependency Injection

Still wrapping your head around DI? Let’s explore the philosophy and functionality behind it, then see how Guice, or any other such framework, can help. When I first heard about Dependency Injection at my first workplace, it sounded very fancy to me, and, somehow, a bit scary. And, in combination with Spring, it looked like […]

The Beautiful Law of Demeter

The Law of Demeter can help you apply the more abstract rules of Object Oriented Programming to ensure a scalable and maintainable application. We all know, and I hope that we try, to apply the “rules” of Object Oriented Programming when we code. We want our code to be properly encapsulated, loosely coupled, robust, and […]