Fitness für Akzeptanztest

“Akzeptanz wird über Wissen erworben und nicht verliehen.” Justus Vogt Bei großen Software Projekten aber auch bei den kleinen Programmen für die Töchter möchten die Kunden gerne eigene Akzeptanztests auf den fertiggestellten Systemen durchführen. Da auch bei den Testern das Interesse nach Automatisierung groß, aber die Programmierfähigkeiten gering sind, müssen entsprechende Werkzeuge her. Ein auch … Read more

Effizient würfeln

Hin und wieder stolpert der Entwickler bei seiner Suche nach guten Lösungen über interessante Algorithmen, die er eigentlich gerade nicht braucht. In diesem Fall handelt es sich um Voses Algorithmus zum generieren von Zufallswerten anhand einer vorgegebenen Verteilung.

Caffeine – Doping für die Software

Obwohl die Grundregel der Optimierung lautet “Später!”, kann es immer wieder hilfreich sein, einen Cache in die eigene Software einzubauen.

Failsafe – Arbeiten mit unsteten Gesellen

Gerade beim Arbeiten mit entfernten Services ist es ein Ärgernis, wenn diese sich flatterhaft verhalten. Der Programmierer ist ein überschaubares, binäres Verhalten seiner verwendeten Helfer gewohnt, sie liefern das korrekte Ergebnis oder einen Fehler.

Eleganz

Für viele Entwickler und Manager ist das Thema Eleganz und Schönheit in der Software Entwicklung ein untergeordnetes Thema, falls sie sich überhaupt schon einmal Gedanken dazu gemacht haben. Häufig steht man diesen Begriffen mit einem gewissen Misstrauen gegenüber. Nicht umsonst gibt es den fatalen Aufruf “Schöner machen könnt Ihr später!”, dem in der Regel keinerlei Nacharbeiten folgen.

Optional Matchers for Hamcrest

Manchmal benötigt man ein kleines Feature, das so schnell aus den Fingern fließt, dass die Zeit nicht lohnt, nach existierenden Lösungen zu suchen. Wie enttäuscht war ich da, als ich beim Schreiben dieses Beitrags etwas ähnliches auf GitHub fand.

Poking Dead Bodies Anti-Pattern

Zur Entwicklung korrekter Unit Tests gibt es zwei ganz unterschiedliche Motivationen. Die ehrenhafte, der Entwickler möchte seinen Code absichern und die andere, der Programmierer wird zum Schreiben von Tests gezwungen. Im Beitrag Tolle Test habe ich einige Grundsätze für das Schreiben guter Unit Tests und die dabei üblichen Fehler skizziert. In diesem Beitrag möchte ich … Read more

Enums für die Ewigkeit

Ein schönes Feature der Persistenz unter Java ist das automatische Speichern von Enum-Werten. Wenn nicht weiter spezifiziert, wird der Ordinalwert der Enum Konstante in der Datenbank gespeichert. In unserem Beispiel gäbe es also den Wert 0 für GROUCHO und den Wert 3 für KARL in der Datenbank. Beim Rückmapping wird der Ordinalwert verwendet um wieder … Read more

Geschmeidige Suche mit Elasticsearch

Vergrößert sich der Datenbestand in der eigenen Anwendung merklich, dann wird es Zeit über eine geeignete Suchlösung nachzudenken. Es gibt eine Menge frei verfügbarer Suchmaschinen, die den Vergleich mit kommerziellen Produkten nicht scheuen müssen. Viele zeigen sich in ihrem Funktionsumfang sogar viel leistungsfähiger. Suchmaschinen liefern sehr schnell Ergebnisse, weil sie nur auf ihrem Index, einem aufbereiteten Extrakt der eigentlichen Daten arbeiten und nicht die gesamte Datenbasis durchsuchen müssen.

Ein alternativer Blick mit Jackson Views

Java Bibliotheken

Liest ein Entwickler seine Source ein zweites Mal, dann findet er mindestens drei Dinge die ihm nicht gefallen. Es gibt immer ein Design-Pattern, das hätte verwendet werden können, eine Bibliothek, die den Code kompakter gestaltet hätte oder ein Algorithmus, der alles vereinfachen würde. Die tatsächliche Implementierung eines Features ergibt sich aus Erfordernissen, Erfahrung und Eingebung des Moments. So kann es immer wieder passieren, dass dem Entwickler die ein oder andere gute Idee nicht in den Sinn kommt.