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

Von Schweinen und Hühnern

Chicken: Let’s start a restaurant!Pig: What would we call it?Chicken: Ham ‘n’ Eggs!Pig: No thanks. I’d be committed, but you’d only be involved! Die bekannteste Fabel in der agilen Gemeinde und ein ganz wichtiger Fingerzeig auf eines der Grundübel im gemeinschaftlichen Arbeiten. Bei den meisten Projekten gibt es eine Vielzahl von Personen, die mitreden wollen. Einige nur, um sich … Read more

Viereckige Räder und Miniaturen

I’m constantly surprised when people say, ‘But you haven’t changed!’ It’s like saying, ‘You’ve got a wheel. Now why don’t you make it a square?’ Angus Young In der Software Entwicklung arbeiten Kreative, Schöpfer, Künstler und Leute, die sich dafür halten.  Tagtäglich werden von ihnen neue Bibliotheken und Frameworks ersonnen um dem User ein paar … 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.

Clarke’s First Law

„When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong.“ Statt Wissenschaftler kann man hier auch IT-Leiter, Projektleiter, Architekt oder Software Entwickler einsetzen. Die Aussagen, die sich um die Nutzung erworbenen Wissens drehen, kann man ruhigen Gewissens, … Read more

Goodhart’s law

„Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.“ Was Charles Goodhart für den Markt als Gesetzmäßigkeit feststellte, gilt auch für beliebige Organisationen und damit auch für Software Entwicklungsabteilungen. Eine andere Formulierung des Gesetzes lautet „Wenn ein Maß zum Ziel wird, ist es kein gutes Maß mehr“. Versucht … Read more

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.

Sturgeon’s Law

„90 per cent of everything is crap.“ Ursprünglich wurde dieses Gesetz von Theodore Sturgeon zur Verteidigung der Science Fiction Literatur aufgestellt. Den Hinweis auf die mindere Qualität vieler SF Romane konnte Sturgeons mit der Beobachtung relativieren, dass auch in allen anderen Bereichen fast nur Mist produziert wird. Leider trifft Sturgeon’s Law auch auf die Software … Read more

Catch 304 – Der faule Trick

Beim Experimentieren mit der Spring Boot Rest-Schnittstelle fiel mir wieder einmal auf, dass ich beruflich nur wenige Rest-Services kennengelernt habe, die den HTTP Status Code 304 verwenden. Bei den Projekten, an denen ich teilgenommen habe, gab es tatsächlich nur eine einzige Rest-Schnittstelle, die von diesem Feature gebraucht machte. Der HTTP Status Code 303 NOT Modified … Read more