Spring-Projekte strukturieren mit Modulith

Stellen wir vor, wir arbeiten an einem ganz frischen Projekt, quasi auf der grünen Wiese, und so langsam wird es doch ganz schön groß. Wie können wir es strukturieren? In mehreren Projekte habe ich mit Entwicklern zusammengearbeitet, deren Antwort fast reflexartig war: Aufteilen in Microservices! Der Reflex hatte einen Grund: Sie hatten Erfahrungen mit einem …

Hilft uns Quantencomputing, das Paradoxon von Schrödingers Katze zu verstehen?

Quantencomputer wirken so wie die ersten Großrechner in den vierziger oder fünfziger Jahren: raumgroße Apparate, auf die nur eine kleine Anzahl von Experten Zugriff hat. Fast so wie das Orakel von Delphi mit seiner speziellen Kaste von Priestern. Anders als damals kann heute im Prinzip jeder diese Technologie über das Internet nutzen. Beispielsweise bietet Microsoft Azure …

Softwarearchitektur: Schichten und DTOs

Neulich stolperte ich ArchUnit, ein Tool, mit den man testen kann ob sich Java-Code (oder auch Kotlin-Code) an bestimmte Architekturvorgaben hält. Zum Beispiel kann es in einer Spring-Anwendung überprüfen, das keine Serviceklasse eine Controllerklasse aufruft. Eine solche Regel klingt überflüssig, warum sollte ich von einem Service einen Controller aufrufen?

Vier bemerkenswerte Videos zu Thema Microservices

In einer Microservices-Architektur arbeiten viele einzelne Prozesse mit begrenzten Aufgabengebiet zusammen, um komplexe Anforderungen zu bedienen. Die folgenden Videos handeln von Chancen und Fallstricken des praktischen Einsatzes von Microservices.

Back to the 60ties: Flussdiagramme

In den Zeiten von Lochkarten hat man den Algorithmus eines Programms meist mit einem Flussdiagrammen visualisiert. Erst danach hat man darauf aufbauend das eigentliche Programm „codiert“. Die Darstellungsmethodik wurde sogar in einer DIN-Norm 66001 spezifiziert und hat dann Eingang in viele Berufsausbildungen genommen. Auch heute noch sind Flussdiagramme in vielen Fachbüchern zu finden. Ironischerweise sind …

Migration zu Rails 4.x mit „Strong Parameters“

Eine hilfreiche Rake-Task Zur Zeit bin ich dabei, eine drei Jahre alte Ruby-On-Rails Anwendung von Version 3.2 auf Version 4.2 zu aktualisieren. Mit Rails 4.0 wanderte die Parameterüberprüfung von dem „Model“ in den „Controller“. Das ist auch gut so, denn je nach Kontext oder Nutzerrechten kann man so andere Felder erlauben. Jedoch macht die Migration …

Quantencomputing mit Ruby

Wenige wissen, dass man mit der japanischen Programmiersprache Ruby heute schon Quantencomputing betreiben kann. Wer einen Rubyinterpreter auf seinem Computer installiert hat, kann das folgende Experiment nachvollziehen, das von Erwin Schrödinger inspiriert ist. (Siehe auch meinen Beitrag aus dem Jahr 1997)

Analyse der App „NFC-Hunt“ von Google

Für die Entwicklerkonferenz IO-2013 hat Google eine Art Schnitzeljagd veranstaltet, um die praktische Nutzung von NFC zu demonstrieren. Die Teilnehmer brauchten dafür ein NFC-fähiges Android und haben sich dann eine App mit Namen „NFC-Hunt“ installiert. Die App gab Hinweise, wo in der realen Umgebung NFC-Tags zu finden sind. Diese Tags mussten gefunden und gescannt werden, …