Rebuilding the Tower of #Hanoi http://t.co/f0XHPASo 1 day ago
Get in control with #Spring #Insight! http://t.co/YzHqZpqT 1 day ago
Archives for category: Development

Before talking about distribution, I will talk a little about OSGi.

This platform was primarily intended to work on mobile device. Therefore, it has been design to be light and focusing on the principal (KISS Principle).

Every developer who had used Java programming more than just some Hello World tests, will understand the Jar Hell and the fun with the Class-path.
OSGi has too primary goals, first its modular system which allow to manage module (they call it Bundle) life-cycle, module version management and module dependencies. It’s particularly important for applications who need to run with small memory to only load what is necessary.
The second important goal of the core of OSGi is its service registry, once again focus on the minimum and just allow a module to register its services on the registry in a really purely manner. (more…)

The dry principle, Don’t Repeat yourself is the second principles in my series of architecture principle I will write on.

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

I’m often talking about “meaning”, every piece of software should have only one meaning, other says responsibility. Therefore, if we have applying correctly this pattern, every times we have to made a change into our software, we don’t have to re-factor the whole stack. Exception of the cross-cutting concern (i18n, security, logging, …), modifying a module should not impact another module.

I’m not fan of code generator (someday i will write an article on that :) ), but for the sake of this principle, I think i would prefer having some code generation than having to copy/paste code. As long as the code generated is NEVER modified, it’s fine.

(more…)

I will write a series of article around architecture principles I follow.

Often, in the software industry, it’s hard to say “STOP, this software doesn’t need more”. We have a tendency as human to  wants more and we apply this pattern (Yes, I have said the word “pattern” :) ) to our software.

Therefore, following the KISS principle could be against nature. Every times I starting to design a component, writing some code, creating a information system architecture, I keep saying to myself, “do we really need this ?”, “Is that is not too much complicated ?”, “Is there something simpler to do the same job ?”…

I will become evangelist here. I see this principle as the prime principle :) . Before thinking of DRY or SOLID principles which are very important, as a whole, we should always keep modesty and try to add only what is really needed to our software. When i mean “add”, I mean, features, 3rd Parties libraries, source codes , commentaries…

By the way, I like this quote on the wiki link :

The principle most likely finds its origins in similar concepts, such as Occam’s razor, and Albert Einstein‘s maxim that “everything should be made as simple as possible, but no simpler”.[2] Leonardo Da Vinci‘s “Simplicity is the ultimate sophistication”, or Antoine de Saint Exupéry‘s “It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away”.