Monday, November 12, 2012
MODULAR ARCHITECTURE TODAY
In
this presentation Kirk Knoernsschild talked about the importance of developing
modular software. Besides reusability one of the main benefits he emphasized
was the maintainability of the code. Just
ask yourself how much time you spend on just trying to understand existing old
code (sometimes your own) prior to fixing or adapting it. Software following
the layered (Data Access, Domain, UI) paradigm is not really modular if each
layer does not result in a separate jar. You should for instance be able to
deploy just the Data Access and Domain layer to be able to do some batch
processing for instance that doesn’t require user interaction. Another thing he
pointed out was that refactoring existing monolithic systems into a modular
system can be painstakingly hard. The fact that the release of Jigsaw has been
delayed to 2015 is all the more evidence that this isn’t trivial at all. The
best refactoring plan is to start with the layers. After the coffee break he
showed how easy it is to deploy modular software in an OSGi container. OSGi is
far less intrusive as I thought. It only requires some entries in the manifest
file and in the Spring configuration files. All though it was quite impressive
how easy it is to redeploy just one jar instead of the whole war, I don’t think
OSGi is something we will use in the near future. Modularity on the other hand
is really something we should pursue.
Subscribe to:
Post Comments (Atom)
What I took away from this talk is that we should not litter our code with too many interfaces. They're useful at the boundaries of you modules, and not for every implementation class. I'm quite charmed by the idea of OSGI and deploying only what you need. When developing software we should attempt to write our software in a way that we can adapt it without having to changecode all over the place. In my opinion OSGI enables that on t he operational side as well. You can reduce the deployments to the part that actually has changed. In his talk Kirk showed that integrating OSGi is just a matter of configuration...
ReplyDeleteThis comment has been removed by the author.
ReplyDelete