Programmieren auf Französisch – Tourette

“Die Behandlung dieser einzigartigen Störung oder mehr oder weniger ihre vollständige Behandlung bleibt noch zu entwickeln.“— Georges Gilles de la Tourette Kennen Sie diese Entschuldigungen? “Wir hatten wenig Zeit“, “Für Reviews stand kein Kollege zur Verfügung“, “Da reglementiert uns keine Checkstyle Regel“, “Was Sonarqube nicht bemerkt, hat ausreichende Qualität“? Und natürlich die die Mutter aller … Read more

Verwalter – oder wie Organisationen verrotten

Sind sie auch schon einmal an einen früheren Tätigkeitsbereich zurückgekehrt und es hat sich dort nichts verändert? Dutzende von Buzzword-Hype-Changes, aber unter dem frischen Anstrich von Agilität und digitaler Transformation schaut immer noch die alte Kontroll Mentalität durch?

Sie sind in das Reich der Verwalter eingedrungen, hier finden keine Veränderungen statt, neue Prozesse und Methoden werden hier den “Erfordernissen” angepasst. Egal ob Kanban, Scrum oder XP, hier wird nur nach dem Sinatra Prozess gearbeitet (“I did it my way”).

Überall nur Bäume hier, Entscheidungsbäume

Meinen letzten Text zur Künstlichen Intelligenz schrieb ich in den neunziger Jahren, als Werkstudent am Lehrstuhl für Künstliche Intelligenz. Jetzt also widme ich mich, dem aktuellen Hype geschuldet, wieder einmal diesem Thema. Es ist mehr als 25 Jahre vergangen und eine Menge hat sich getan, die Verfahren sind qualitativ und quantitativ besser geworden, die Rechner schneller und der Speicher größer.

Immer Ärger mit Hierarchien

“Es dürfte Ihnen schwer fallen zu erklären, warum Sie eine Leiche vergraben, die Sie nicht getötet haben.” aus dem  Film “Immer Ärger mit Harry” In Scrum arbeiten selbstorganisierte, selbständige Teams an der Entwicklung der Software. Sie stellen am Ende eines jeden Sprints ein neues lauffähiges System für den Kunden bereit. Auf diesem System kann der … Read more

Mehr zum Fluent Builder

Kaum erscheint der Beitrag  Fluent Builder statt komplexe Konstruktoren, da regt sich auch schon der Unmut bei den Lesern.
Denn der Verwechslungsgefahr bei den verschiedenen Parametern, kann auch durch eigene Typen für Vorname, Nachname und Anrede vorgebeugt werden.

Guard Decorator

Das Decorator Pattern bietet die Möglichkeit einem Objekt dynamisch zusätzliches Verhalten hinzuzufügen. Dazu werden Klassen die einen gemeinsamen Basistyp haben, ineinander geschachtelt.  Ein sehr bekanntes Beispiel für das Decorator Pattern ist in den Java IO Klassen zu finden. Zum Lesen aus einem Stream, wird die Klasse InputStream, bzw. eine ihrer vielen Subklassen verwendet. In diesem … Read more

Befreit die APIs von Nullen

In vielen Schnittstellen werden noch immer null Werte zurück geliefert. Das führt zu aufwendigen Code in der eigenen Anwendung, da alle Rückgabewerte auf null geprüft werden müssen. Dieses Beispiel prüft, ob der Name des Vaters gesetzt ist und nicht leer ist. Dabei müssen die Rückgabewerte zwei mal geprüft werden, da sonst ggf. eine NullPointerException geworfen wird. … Read more

Noch mehr Besucher

Im vorherigen Beitrag wurde das Visitor Pattern auf ein Enum angewendet, um das Enum nicht mit vielen Methoden zu überfrachten. Wie andere Klassen sollte ein Enum nicht gegen die Prinzipien des objektorientierten Designs verstoßen. Die vorgestellte Lösung funktioniert zwar sehr gut, aber was soll der Entwickler machen, wenn neue Klassen die Bühne betreten? Nachdem er also ein … Read more