Post Featured Image

Cut Out The Middleman

Too much decoupling in software development is arguably worse than too little. Excessive decoupling leads to software that is more complex, more verbose, harder to understand and much less maintainable. Don’t let your critical use cases get split up into little tiny bits and strewn about your application!

READ MORE

Post Featured Image

Autonomous Objects

A CPU is a linear instruction processor. Humans behave autonomously, using pattern recognition to dynamically respond to stimuli. The natural tendency is for programmers to shape their minds according to the CPU’s implementation. The software craftsman must know how to write software on both sides of the spectrum: linear procedures and autonomous objects.

READ MORE

Post Featured Image

Make Your Interfaces Abstract

Abstractions are very much abused in software development. Frequently, I encounter supposedly abstract interfaces that reveal too much and can only realistically be implemented in one way. This violates the entire concept of abstractions! Let me show you what I mean.

READ MORE

Post Featured Image

Virtues of a Great Microservice

Microservices are becoming very popular because they solve problems horizontally. They make it easy to deliver new business functionality swiftly, flexibly, and with no possibility of breaking existing functionality. What virtues guarantee these business values? I will tell you.

READ MORE