Evolutive Design: A new approach to conceive complex system.

Posted on Thu 08 February 2024 in software_architecture

For a long time, I have considered that to build a complex system, you had to take a lot of care in the design phase, and this design phase should happen at the beginning of the project. You should carefully define your architecture and anticipate future needs in order to …


Continue reading

How to Design a Good API ?

Posted on Fri 28 July 2023 in software_architecture

The term "API," which stands for Application Programming Interface, has been a fundamental concept in computer science from its inception. Whenever you develop a function, create a class, or establish an entry point, you are essentially defining an API. However, the crucial question is: Who will be using your APIs …


Continue reading

Tests Are Good. But What Are Good Tests ?

Posted on Mon 25 April 2022 in software_architecture

Tests are an essential part of development. Well tested application have more line of code in tests than in actual code. But not all tests are equals and, unfortunately, some tests are written only for the sake of reaching a code coverage target or making QA happy to see test …


Continue reading

Chevron Anti-pattern

Posted on Wed 20 April 2022 in software_architecture

I will talk about an antipattern I've encountered a few time, but I didn't find it in literature, so I called it the "Chevron antipattern". Let-me know if you recognize it and if it has a true name 😉

Class Diagram

Let's start by an example. Assume you develop an application …


Continue reading

Optimizing Your Allocations With Resource Pool Pattern

Posted on Mon 28 February 2022 in software_architecture

Data allocation/deallocation may represent a significant amount of time in a processing workflow. In this article, we will see how to adress this issue with the Resource Pool Pattern.

What is your problem ?

Imagine we build an image processing pipeline acting on a movie. All images have the same …


Continue reading

To DRY or Not to DRY ?

Posted on Thu 17 February 2022 in software_architecture

When talking about clean code, DRY - Don't Repeat Yourself - often comes into place. DRY is a good practice. Two codes having the same purpose should be merged into single one. Unfortunately when a good practice becomes a dogma, it quickly becomes badly applied, and whenever two codes looks alike, developers …


Continue reading

Stop Coding, Start Developing !

Posted on Thu 10 February 2022 in software_architecture

Non-developer often imagine developer as people who just write code. Actually, some developers also imagine themselves as people who just write code. The point is that a person that just write code is not a developer. It is a coder. Nowadays, developers are no more that neardy guy writing strange …


Continue reading

About Value semantic and Entity semantic

Posted on Sun 30 January 2022 in software_architecture

When dealing with Object-oriented programming, whatever the langage we use, we generally face to two kind of objects which are conceptually different: objects which represent a Value, and objects which represent an Entity.

Value semantic

An object has a Value semantic if object is refered by its value (\<=> value of …


Continue reading