In the first part of this article we introduced predicates, which bring some of the benefits of functional programming to object-oriented languages such as Java, through a simple interface with one single method that returns true or false. In this second and last part, we’ll cover some more advanced notions to get the best out [...]
Continue Reading »
Tags: ddd, design, functional, interface, java, language, logic, optimization, predicate, Programming, specification, subsumption, testing, trick
Posted in Patterns, Programming, ddd • 2 Comments »
If you happen to create your own annotations, for instance to use with Java 6 Pluggable Annotation Processors, here are some patterns that I collected over time. Nothing new, nothing fancy, just putting everything into one place, with some proposed names.
Continue Reading »
Tags: annotation, configuration, convention, default, dependencies, design, pattern, syntax, tool, trick, xml
Posted in General, Patterns, Programming • Comments Off
Domain-Driven Design encourages to analyse the domain deeply in a process called Supple Design. In his book (the blue book) and in his talks Eric Evans gives some examples of this process, and in this blog in several parts I will suggest some sources of inspirations and some recommendations drawn from my practice in order to help about this process.
Continue Reading »
Tags: analysis, ddd, design, domain, intent, maths, pattern, Programming, theory, tree
Posted in Patterns, Programming, ddd • 1 Comment »
For tools to be aware of patterns, the patterns must be formalized, at least partially. At this point I must quote Gregor Hohpe to clarify my thoughts, as I strongly agree with his skipticism: Typically, when people ask me about « codifying » or « toolifying » patterns my first reaction is one of skepticism. Patterns are meant to [...]
Continue Reading »
Tags: abstraction, classdiagram, dependencies, design, intent, pattern, patternity, problem, Programming, sequencediagram, solution, tree
Posted in Patternity, Patterns, Programming • Comments Off
Over time, patterns have appeared on many different topics, not all related to programming. Here is a list of patterns and pointers to other lists of patterns, to illustrate two things: Knowledge and experience in general can be packaged into patterns, often using the pattern form. Patterns are convenient for reuse, in any domain. There [...]
Continue Reading »
Tags: design, domain, pattern, patternity, problem, Programming, solution
Posted in Patternity, Patterns, Programming • 1 Comment »
In nature, out of every possible arrangement of several elements, only a few arrangements are stable. This is illustrated with atoms combined together, or smaller particles arranged together into atoms, where not every combination is sustainable. Unstable arrangements tend to move toward stable ones over time. Whenever you observe the elements, you mostly see stable [...]
Continue Reading »
Tags: abstraction, pattern, patternity, Programming, research, solution, tool
Posted in Patternity, Patterns, Programming • 1 Comment »
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 • Comments Off
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 • Comments Off
Patterns represent a couple (intent, solution); sometime they refer to a solution, more often they essentially represents an intent, independently of its solution. Sometimes the solution part of patterns includes a trick or a workaround to overcome the limits of a language, but patterns cannot be reduced to that trick. Indeed, a very important role [...]
Continue Reading »
Tags: convention, dependencies, design, intent, language, pattern, patternity, Programming
Posted in Patternity, Patterns, Programming • Comments Off
The Self-Descriptiveness pattern can save your life many times in the course of any software project. The power behind it is to harness the computer, rather than yourself. What is Self-Descriptiveness? Self-Descriptiveness is a property of any system that is able to describe itself with no external help. Just ask it « describe yourself » and it [...]
Continue Reading »
Tags: analysis, convention, guideline, principle, Programming
Posted in Patterns, Programming • Comments Off