1127 Zeilen Code für eine Methode

Vor einigen Tagen habe ich mich mit einem Upgrade von Castor in einem unserer Projekte auseinandergesetzt. Ein paar Leute in unserer Firma hatten schon Erfahrungen mit einem Upgrade von Castor und habe nur gemeint, dass sie viele Probleme gehabt hätten und mich gefragt ob ich mir das wirklich antun will.

Nachdem ich alles umgestellt hatte, bekam ich dann einen Validierungs-Fehler beim Einlesen einer XML-Nachricht, die ich selber mit Castor erzeugt hatte. Der Fehler war recht schnell im Bugtrackingtool von codehaus.org gefunden. Es war aber über zwei Monate nichts mehr mit dem Bug passiert. Die Alternativen waren nun:

  • alles wieder zurück auf die alte Version von Castor
  • oder den Bug in Castor flicken (es ist ja Open Source).

Ich habe schlussendlich alles wieder auf die alte Version von Castor umgestellt. Der Grund ist recht einfach. Die entsprechende Methode marshal in der Klasse org.exolab.castor.xml.Marshaller ist per heute 1127 Zeilen lang. Mir ist nun auch klar, warum meine Kollegen bei der Umstellung so viel Probleme hatten und warum mit dem Bug nichts mehr passiert. An so einem grossen Codeblock Änderungen zu machen ist einfach schwierig. Eigentlich wäre ein Refactoring dieser Methode notwendig, damit man überschaubare kleinere Methoden bekommt, die auch vernünftig mit Unit-Tests testbar sind. Leider habe ich keine Zeit dafür.

Leave a Reply

Your email address will not be published. Required fields are marked *