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.
-
Articles
- May 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- May 2011
- April 2011
- February 2011
- January 2011
- December 2010
- November 2010
- May 2010
- April 2010
- March 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- March 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
-
Meta





