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

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s