Blog

Gedanken über Frameworks, Algorithmen und Software Engineering

2. Apr 2018

Exaktes String Matching in der Praxis

Zunächst war mein Interesse an Textsuchalgorithmen eher akademischer Natur - einfach nur den Algorithmus verstehen und implementieren können. Nachdem aus dieser Leidenschaft ein kleines Projekt (StringSearchAlgorithms) enstanden ist - begann ich Vergleiche anzustellen …

Es stellte sich heraus, dass viele Algorithmen zwar im akademischen Sinne funktionieren, aber in der Praxis erschwert (oder gar nicht) einsetzbar sind. Tatsächlich sind die akademischen Algorithmen für ganz bestimmte Situationen optimiert und sehr spezifisch gebunden an:

  • Prozessorarchitekturen
  • Encoding-Formaten
  • Programmiersprachen (APIs)

Es folgt eine Übersicht über die Herausforderungen, die die Praxis an Textsuche stellt.

weiter lesen

29. Mai 2017

Testrecorder – Quo Vadis

Nach meinem Vortrag auf dem Karlsruher Entwicklertag habe ich jetzt auch einmal Zeit ein wenig über die Zukunft von Testrecorder zu reden … Testrecorder ist ein Java-Werkzeug zum Aufzeichnen von Laufzeitsituationen. Ausgehend von einem Methodenaufruf werden der Zustand davor und der Zustand danach aufgezeichnet. Das Ergebnis wird dann als JUnit-Test ausgegeben.

weiter lesen

12. Okt 2016

Naming von Interfaces und Implementierungen

Wie ist eure Konvention für Implementierungsklassen? Lieber FormDataValueImpl oder IFormDataValue ?

Eigentlich müsste man froh über so eine Frage sein - immerhin kümmert sich überhaupt jemand um Namenskonventionen … aber irgendwie ist doch beides Murks. Leider sind die oben genannten Muster so üblich geworden, dass meine Kritik wohl wenig Wirkung zeigen wird. Hier folgt sie:

weiter lesen

10. Aug 2016

Textsuche in Java (mit der JDK-API)

Textsuche ist eine recht häufiges Problemstellung, die immer dann auftritt, wenn wir prüfen ob ein String in einem anderen vorkommt. Die JDK-Standard-API bietet hier ein paar Grundfunktionalitäten, allerdings gibt es deutlich effizientere Methoden, insbesondere für größere Muster und größere Texte.

Dieser Beitrag könnte für diejenigen von Interesse sein, die sich für Textsuche und die Möglichkeiten der Java-API (bzw. Alternativen darüber hinaus) interessieren.

weiter lesen

21. Mai 2016

Private Variablen erreichen mit XRayInterface

In diesem Beitrag möchte ich eine Möglichkeit eröffnen wie man auf private Variablen und Methoden zugreifen kann, indem man seine Klassen an passende Interfaces adaptiert. Warum? In meinem früheren Beitrag über das Reparieren von Legacy Code habe ich kurz erwähnt, dass eine große Herausforderung beim Testen der Zugriff auf den verborgenem Zustand (private Variablen/Felder) vor und nach der Ausführung der Methoden ist.

weiter lesen

27. Mär 2016

Reparieren von Legacy-Code – Automatisch

Viele Projekte verwenden bereits automatisierte Regressionstests. Leider ist das genau dann nicht gegeben, wenn man es am nötigsten hat, nämlich bei Übernahme von fremdem (ungetesteten) Legacy-Code. Hier wünsche ich mir nicht nur automatisierte Regressionstests, sondern auch automatisierte Testerstellung. Warum gibt es so etwas nicht?

weiter lesen

Entwicklertag 2018

Trefft mich auf dem Entwicklertag 2018. Urs Metz und ich werden dort Werkzeuge zur automatischen Testgenerierung vorstellen.

XP-Days 2017

Auf den XP-Days 2017 biete ich einen Workshop mit Testrecorder an. hier erwartet uns ein Refactoring eines ausgewählten “Legacy Code”-Projekts nach dem Schema:

  • Record (Aufnehmen von Tests)
  • Refactor (Vereinfachen des Codes)
  • Replay (Ausführen der Regressionstests)