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


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.


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


  1. Prototype and jQuery: Should migrate to jQuery. There are a few pages which still use Prototype.

  2. Some Javascript code needs refactoring/remodeling. For instance, vsm_renderer.js has tests, but is not well organized.


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.

8.1.7 Make GoCD Server & GoCD Agent independent of jetty so that we can support all servers.

8.1.8 ‘util’ module should be used only by ‘server’

results matching ""

    No results matching ""