Divide it to a modular architecture

Recently I have integrated an interesting and challenging project, in which the code is really hard to deal with, the time of builds of some projects is over tow hours in some cases, average number of code line by some classes  is 10 KLOC. Add to this, code generation for Business Object classes, to integrate their logic with different tools and frameworks, so debugging generated code. Combining this with the use of  observers/observable pattern, witch is notifying everywhere that some value has changed.
The situation is really funny, this is legacy code, so what can we do about?

We can do a lot of things, there is too much work in fact.

First of all, let go for the key point, break system into sub-modules meeting the following targets:

  1. The sub-modules should be defined to be functionally significant.
  2. Possibility to make a pluggable system information, meeting more easily, each customer demand and functional needs, according to its budget.
  3. Each sub-module build should take just few mins. This reduce the high build time of the huge projects to a small amount of time of building a concrete a small and functionally significant sub-module we working in.

Reducing time of builds is a key to optimize the time rates cycle of development, build , test , failure, then correction. It also allows having an early feedback of all the quality management platform we have a set in our environment, and therefore having an early interpretation of its reports and taking the right action. (e.g. like detecting and avoiding Sonar violations, increase code coverage, etc.

Comentarios