Tomas Tulka's Blog
Random thoughts about programming and other stuff.
Keeping options open is one of the most useful principles of Clean Architecture. Let’s dive deeper with code examples in Java and Spring framework.
Cohesion done right reduces the coupling and complexity of systems.
How to implement the ISP using simple functions to reduce coupling and complexity at the same time.
Do you really need a cluster of pods, service mesh, and stream-processing platform right now?
Which purpose has a Repository? To which layer does it belong to? And how to implement it correctly?
Collection, List and Set are terms very familiar to developers but hardly used by business experts. Therefore, they should not be part of the domain (API).
There are situations where events and commands seem to be a good solution for a problem. Where to use events and where are commands the best fit?
From time to time I attend discussions about OOP. Every time someone comes up with the argument of dealing with persistence. The typical question can be reduced to “should an object persist itself or rather be persisted?” I believe the question is fundamentally wrong.
There are a lot of articles about the SOLID principles. But usually a different example for a particular principle is to be found. Instead, would it be nice to demonstrate all of them on a single code snippet?
Object-oriented approach is a mighty concept making software more maintainable, which means cheaper and easier to understand. Problems come at boundaries, where objects have to be passed on into a different layer or another system. There, the objects become just data and should be treated like that.