Software development technologies and trends are not particularly tangible things, yet we need to reason on them. At Arolla, the company I’m part of, we’ve designed an « ancient world map » of software development, as a cartography of the universe of software development we live in. Built for our own purpose, we also share it so [...]
Continue Reading »
Tags: agile, arolla, development, game, language, map, skill, software, technique, technology, tool, visualization, worldmap
Posted in Programming, Soft skills • 1 Comment »
The Composite pattern is a very powerful design pattern that you use regularly to manipulate a group of things through the very same interface than a single thing. By doing so you don’t have to discriminate between the singular and plural cases, which often simplifies your design. Yet there are cases where you are tempted [...]
Continue Reading »
Tags: closureofoperation, composite, design, fold, functional, intentionrevealing, interface, java, language, oo, pattern, Programming, trick
Posted in Functional style, Programming • Comments Off
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 »
You keep hearing about functional programming that is going to take over the world, and you are still stuck to plain Java? Fear not, since you can already add a touch of functional style into your daily Java. In addition, it’s fun, saves you many lines of code and leads to fewer bugs. What is [...]
Continue Reading »
Tags: ddd, design, functional, interface, java, language, predicate, Programming, specification, trick
Posted in Programming • 6 Comments »
As suggested by its name, Domain-Driven Design is not only about Event Sourcing and CQRS. It all starts with the domain and a lot of key insights that are too easy to overlook at first. Even if you’ve read the « blue book » already, I suggest you read it again as the book is at the [...]
Continue Reading »
Tags: analysis, ddd, design, domain, insight, language, methodology, model, Programming
Posted in Programming, ddd • 1 Comment »
Now that enterprises have chosen stable platforms (JVM and .Net), on top of which we can choose a syntax out of many available, which language will you pick up as your next favourite? New languages to have a look at (my own selection) Based on what I read everyday in various blogs, I arbitrarily reduced [...]
Continue Reading »
Tags: .net, clojure, F#, functional, groovy, java, language, oo, platform, Programming, scala, syntax, trend
Posted in Programming • 4 Comments »
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
With Object-Oriented programming we often have many classes, therefore it is really important to name them well. It’s amazing how I can spend so much time searching for good names for classes, and I do think it is worth doing it well, after all naming is all about making the code easy to read and [...]
Continue Reading »
Tags: convention, java, language
Posted in Programming • Comments Off
I recently taught design pattern to 20 of my co-workers in a kind of training session, here are some thoughts I had while preparing this presentation… In OO you usually end up with many classes, especially when you correctly use design patterns; each class is also generally very simple and rather short. Thus classes are [...]
Continue Reading »
Tags: abstraction, design, language, uml, visual
Posted in Programming • Comments Off