Ü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

Kobayashi-Maru

Der Kobayashi-Maru-Test ist ein fiktives Übungsszenario, dass in mehreren Filmen und Episoden von Star Trek erwähnt wird. In dem Test wird geprüft, wie Kadetten in einer ausweglosen Situation handeln. Obwohl niemand diesen Test bestehen kann, hat der Kadett James T. Kirk den Test erfolgreich absolviert, indem er das Übungsszenario manipulierte. Der Begriff Kobayashi-Maru steht für ausweglose … Read more

Dependency Injection mit ParameterResolver in JUnit 5

JUnit 5 bieten eine ganze Reihe neuer Möglichkeiten um Unit Tests kompakt und strukturiert zu schreiben. Unter anderen gibt es nun die Möglichkeiten die Test Methoden mit Parametern zu versehen. Genauer gesagt können Konstruktoren und alle Methoden, die mit @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @BeforeEach, @AfterEach, @BeforeAll oder @AfterAll annotiert sind, um Parameter ergänzt werden. Die Parameter werden je nach Typ beim Aufruf 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.

Fluent Builder statt komplexe Konstruktoren

Immer wieder trifft man auf Klassen die diverse Parametern für ihre Konstruktoren gebrauchen. Abgesehen davon, dass zu viele Parameter ein Code Smell sind, kann es je nach Typ der Parameter auch schon einmal zu einer Verwechslung kommen.

The Sixth Sense of Company Culture

“I see people, they don’t know they are dead” – Cole Sear You may know Cole Sear, the young boy from the movie “The Sixth Sense”. He saw and spoke with dead people, most of them angry, sad or lethargic. They all didn’t realized, that they are dead. They ignored all signs and tried to life … Read more

SNAFU

SNAFU (Situation Normal, All Fucked Up) ist ein Akronym aus der amerikanischen Soldatensprache. Das SNAFU-Prinzip von den Roman Autoren Robert Anton Wilson und Robert Shea besagt, dass innerhalb von Hierarchien immer wichtige Informationen zurückgehalten werden. Vorgesetzte geben nicht alle Informationen an ihre Untergebenen weiter, um einen Informationsvorsprung zu behalten oder ihre Inkompetenz zu kaschieren. Untergebene verheimlichen … Read more

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