8.1 Technical Debt
Most codebases which have been worked on by many people, over a long, long time, usually have some parts which are not very nice. Here are some parts of the GoCD codebase (in no particular order) which could do with cleaning up -
8.1.1 Upgrade Spring 3.0.3 -> 4.x
8.1.2 Remove use of velocity for views
8.1.3 Hibernate and iBatis - Both used
Description
Some of the DAOs in the GoCD codebase still use iBatis. Some use Hibernate. This causes, for instance, the transaction management to be more complicated than it should be. It also stops GoCD from easily supporting multiple databases.
History
It was a planned and slow strangler move from iBatis to Hibernate, which got slower over time, rather than quicker.
Moving forward
Need to move iBatis code over to Hibernate whenever any work around an area is done. Might need to allocate some time specifically to move, too.
8.1.4 Javascript frameworks
Description
Prototype and jQuery: Should migrate to jQuery. There are a few pages which still use Prototype.
Some Javascript code needs refactoring/remodeling. For instance, vsm_renderer.js has tests, but is not well organized.
History
A consequence of a long-running project, probably. Some amount of stranglers left behind. Some cleanup should have been done before, but wasn't. Needs to be done now.