Nachdem es einige Zeit ruhig um den Adventskalender für joomla! gewesen ist, habe ich den heutigen Tag mal dazu genutzt, eine Änderung, die ich bereits im November 2017 eingearbeitet habe in ein neues Release zu gießen. Die Änderungen waren wegen einer Veränderung bei der Behandlung von SEO-Links in den letzten joomla-Versionen notwendig geworden.

Festgestellt hatten das Problem meine Kunden aus den Niederlanden, denen ich die Anpassungen auf dem kleinen Dienstweg zur Verfügung gestellt hatte. In der vergangenen Woche erreichte mich dann eine Anfrage aus dem norden Deutschlands. Diese gab mir dann den notwendigen Anstoß endlich mal eine neue Version zur Verfügung zu stellen. Diese ist kompatibel mit joomla! 3.* Versionen.

Hier können die Dateien heruntergeladen werden:
Installationspaket: Adventskalender3.zip
Beschreibung: Beschreibung.pdf

Reguläre Ausdrücke sind eine tolle Sache. Richtig angewendet kann man damit viele nützliche Dinge treiben und eine Suche oder Textersetzung wird zum Kinderspiel. Leider kann man aber auch Einiges falsch machen und das ist mir heute auch passiert. Ich wollte nach einem Text mit eckigen Klammern und Sternen suchen und habe übersehen, dass die Suche nach Regulären Ausdrücken noch aktiviert war. Ich habe mich noch gewundert, warum das alles so lange dauert. Als ich das Ergebnis meiner Ersetzung gesehen habe, war mir auch klar warum.

FalscheRegExp

So sollte das irgendwie nicht sein und es zeigt sich mal wieder, dass nicht nur die Qualität des Werkzeuges wichtig ist sondern auch die Qualität und Fähigkeiten desjenigen der es benutzt.

Vor einigen Tagen haben wir eine neue Version einer Software beim Kunden in die Verteilung gegeben. An dem Projekt entwickeln wir zu zweit und jeder von uns ist dafür verantwortlich, dass seine Änderungen auch funktionieren bzw. das tun, was sie sollen.

Schon kurz nach dem Einstellen unserer Erweiterung in das System beim Kunden bekam ich eine Meldung, dass es bei einer bestimmten Verarbeitung zu einer Fehlermeldung kommt und tatsächlich konnte ich den Fehler schnell nachvollziehen. Genauso schnell war eine Änderung von meinem Kollegen als Ursache ausgemacht. Mit einem kurzen Test, nämlich genau einem Buttonklick, hätte der Kollege den Fehler ebenfalls bekommen müssen. Meine Nachfrage, ob er seine Änderungen eigentlich testen würde beantwortete er mit einem: „Ja, natürlich“. Nicht nur, dass er seine rudimentären Aufgaben nicht erfüllt, angelogen wird man auch noch, denn es war eindeutig, dass der von ihm entwickelte  Code nie funktionieren konnte.

Zugegeben macht es vermutlich kein Entwickler gerne, aber das Testen einer Softwareänderung, zumindest mit einem Entwicklertest gehört zu jeder Änderung dazu. Genauso wie eine saubere Benennung von Variablen und Methoden und einer aussagekräftigen Dokumentation und Kommentaren im Quellcode. Da kann sich auch aus meiner Sicht niemand mit mangelnder Erfahrung rausreden. Vergleichbar ist es etwa mit einem Autohaus, dass nach dem Einbau neuer Bremsscheiben das Auto einfach für den Kunden zur Abholung bereitstellt und auf einen Test verzichtet. Schließlich ist es ja nicht die erste Scheibe, die sie austauschen und es hat ja bisher immer funktioniert.

Bei uns im Projekt ist es zu einem geflügelten Ausspruch geworden, wenn sich jemand über einen anderen ärgert und seinem Ärger Luft macht: „Gib mir Tiernamen“. Da wir uns jetzt schon seit 16 Jahren kennen entspannt das die Lage meistens schnell.

Ob der Spamversender davon etwas weiß kann ich nicht sagen, aber die Anrede ist ja auch kein Tiername. In Zeiten immer schwerer zu erkennenden Spammails ragt diese Mail aus meinem Postfach schon ziemlich heraus. Schon die Anrede disqualifiziert die Mail als ernstzunehmende Nachricht.

Namen

Da ist James Kross schon eine gutes Stück weiter.

Von einem Kunden erreicht mich ein Hilferuf. Er will einen Report anzeigen und bekommt einen Fehler. Wie üblich sind die Rahmenbedingungen nicht genauer genannt und ich versuche erstmal den Fehler nachzustellen. Fehlanzeige. Der Report wird angezeigt, ohne Fehlermeldung und ohne Murren seitens der Software. Eine telefonische Nachfrage beim Kunden bestätigt auch dort ist das so, außer bei einem speziellen Report bzw. bei der Auswahl eines bestimmten Produkts.

Mit dieser Information komme ich weiter und kann den Fehler nachstellen. Alles deutet auf einen Stapelüberlauf wegen einer Endlosschleife hin. Daran kann eigentlich nur der Inhalt der Felder verantwortlich sein und als ich mir die Beschreibungen, die in HTML gespeichert wird, ansehe kann ich schnell ein strukturelles Problem erkennen. Hier scheint etwas mit der HTML-Struktur durcheinander geraten zu sein. Nach der Bereinigung der Daten kann dann auch der Report wieder angezeigt werden.

HTML

Die eigentliche Ursache bleibt unklar, ich vermute aber einen Zusammenhang mit einer nicht ganz unbekannten Bürosoftware bei der die HTML-Struktur hin und wieder ebenfalls etwas merkwürdig gestaltet wird.