Small details matter because you deal with them often. Any enhancement you make thus yields a benefit often, hence a bigger overall benefit. In other words: invest small care, get big return. This is an irresistible proposal!
Examples of small design-level details that I care about because I have experienced great payback from them:
Using Value Objects [...]
Continue Reading »
Tags: craftsman, ddd, design, domain, human, methodology, Programming, trick
Posted in Programming • No Comments »
The concept of degrees of freedom looks so relevant to software development that I am wondering why it is not considered more often. Fortunately Michael L. Perry dedicates a full section of his blog to that concept. In this post I will quote a lot, please consider that as a sign of enthusiasm.
A common concept [...]
Continue Reading »
Tags: analysis, ddd, design, dof, domain, education, maths, methodology, problem, Programming, solution
Posted in Programming • 1 Comment »
Many concepts look obvious because they are used often, not because they are really simple.
Small quantities that we encounter all the time in most projects, such as date, time, price, quantity of items, a min and a max… hardly are a subject of interest from developers “as it is obvious that we can represent them [...]
Continue Reading »
Tags: ddd, design, domain, experience, immutable, intent, java, methodology, oo, pattern, valueobject
Posted in Programming • 2 Comments »
In my very first job, I was doing R&D, working on a map-matching algorithm. The goal of this algorithm was to pinpoint a moving car on a vector map, based on the data from various sensors, including a GPS, an electronic compass and the car odometer. Such algorithm was essential for the business of the [...]
Continue Reading »
Tags: abstraction, analysis, design, methodology, pattern, problem, Programming, research, uml
Posted in Patterns, Programming • No Comments »
There is great power in being able to manipulate collective things as one single thing. It gives you simplicity, hence control. You can focus your attention on it and reason about it, even though behind the hood it is made of many parts. The composite thing is kept simple, therefore you can also deal with [...]
Continue Reading »
Tags: abstraction, classification, collective, design, group, methodology, multiplicity, pattern, problem, Programming, solution, solving
Posted in General, Patterns, Physical Computing, Programming • No Comments »
Patterns represent a couple (intent, solution), where the intent matters most. Based on that intents, that can be generic or specialized, I propose to consider patterns like types in languages with strong typing, for the compiler to enforce their constraints.
Declaring patterns: what for?
Consider the very simple Quantity pattern from Analysis Patterns (Fowler):
Represent dimensioned values with [...]
Continue Reading »
Tags: analysis, ddd, design, intent, java, methodology, pattern, Programming, tdd, typing
Posted in Patternity, Patterns, Programming • 1 Comment »
Economy is the management of limited resources. In software development the limited resources (*) are:
memory of the developer: names of types, methods signatures, tricks to know
time available to learn or discover new things
Therefore, every design decision should attempt to reach an optimal balance between both memory and time being consumed in the developer head.
Memory effort [...]
Continue Reading »
Tags: convention, design, management, methodology
Posted in Programming • No Comments »
What do you think about when you hear the word “architecture” about software? Fowler defines it: whoNeedsArchitect “In most successful software projects, the expert developers working on that project have a shared understanding of the design system design. This shared understanding is called ‘architecture.’”.
However for most people the word “architecture” comes full of middleware [...]
Continue Reading »
Tags: architecture, convention, design, domain, management, methodology, refactoring, syntax, tool, unittest
Posted in Programming • No Comments »
When a junior developer joins our team, it is interesting to realize how mastering language syntax and API is just a small part of the skills that matter.
Just after the syntax and API knowledge (actually knowing where to find what you want in the API is enough), there are a few other skills you definitely [...]
Continue Reading »
Tags: dependencies, education, methodology, Programming, refactoring, syntax, unittest
Posted in Programming • No Comments »
My father is a maths teacher, he trains individual students to get higher marks with personal lessons. When he helped me from time to time I remember his main advices:
always proceed step by step, and never skip a step, never jump to the result even if it seems to be obvious
always write in [...]
Continue Reading »
Tags: inference, methodology
Posted in Programming • No Comments »