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 be [...]
Continue Reading »
Tags: abstraction, classdiagram, dependencies, design, intent, pattern, patternity, problem, Programming, sequencediagram, solution, tree
Posted in Patternity, Patterns, Programming • No Comments »
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 are already [...]
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 arrangements [...]
Continue Reading »
Tags: abstraction, pattern, patternity, Programming, research, solution, tool
Posted in Patternity, Patterns, Programming • 1 Comment »
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 of [...]
Continue Reading »
Tags: convention, dependencies, design, intent, language, pattern, patternity, Programming
Posted in Patternity, Patterns, 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 »
Low coupling between objects is a key principle to help you win the battle against software entropy. Making sure your dependencies are under control matters. Several tools can enforce dependencies restrictions, such as JDepend. However in a real project with many classes, packages and modules, the real issue is how to decide and configure the [...]
Continue Reading »
Tags: abstraction, analysis, dependencies, design, domain, interface, java, oo, pattern, patternity, Programming, research, tool
Posted in Patternity, Patterns, Programming • No Comments »
In finance, options are powerful tools for traders, and many design practices including design patterns can be seen as options. Options can -perhaps- yield a great benefit for a certain and immediate cost. If this cost is cheap enough it can be quite attractive.
An option to buy a stock is a right to buy the [...]
Continue Reading »
Tags: abstraction, design, java, oo, pattern, patternity, Programming
Posted in Patternity, Patterns, Programming • No Comments »
Not all participants in a pattern are equal, some are aware there is a pattern, while other participants do not, cannot and must not. Let us have a look at that principle and its consequences for coupling and dependencies management.
Some patterns are intrusive, which means that adding them to an existing code base requires changing [...]
Continue Reading »
Posted in Patternity, Patterns, Programming • No Comments »
Composite patterns, such a the Bureaucracy pattern, are patterns built by the composition of other “smaller” patterns. However even usual design patterns can be considered composite patterns made of smaller subpatterns.
The goal is therefore to find out which are the main subpatterns that enable to reconstruct as many design patterns as possible.
The subpatterns
From an early [...]
Continue Reading »
Tags: classdiagram, combinatorial, java, oo, pattern, patternity, research, svg, tool, uml, variant, visual
Posted in Patternity, Patterns, Programming • 4 Comments »
As part of the Patternity effort, I spent some time creating a simple Java API to generate UML diagrams programmatically from Java, in SVG format.
This small API called for now Patternity Graphic is working and available here: patternitygraphic_src as a source Zip (alpha release of course).
It can render small class diagrams with hierarchic, flow and [...]
Continue Reading »
Tags: api, classdiagram, java, library, patternity, sequence, svg, tool, uml
Posted in Patternity • 1 Comment »