Posts

Microservices mit REST-API in Kotlin und Spring Boot

Bild
Ein angenehmer Aspekt von Microservices ist, dass ihre Entwicklung häufig auf der grünen Wiese startet. Ein neuer Microservice ist also immer eine Chance einen neuen Technologie-Stack auszuprobieren. Für eingefleischte Java-Entwickler bietet sich dazu die Programmiersprache Kotlin an.  Als JVM basierte Programmiersprache kann Kotlin problemlos das bei Java-Entwicklern beliebte Spring Framework verwenden. Daher zeige ich in diesem Artikel, wie ihr mit Spring Boot schnell einen Kotlin Microservice mit REST-API aufsetzt. Neuer Microservice, die Gelegenheit mit Kotlin anzufangen... In meinem beruflichen Umfeld entwickeln wir deutlich häufiger neue Microservices als neue Systeme mit klassischen Software-Architekturen oder als Monolithen. Da sich Microservices auf eine Geschäfts-Capability konzentrieren, siehe auch https://www.martinfowler.com/microservices , ist ihre Codebase im Vergleich zu herkömmlichen Systemen meist deutlich kleiner. Die Situation, einen neuen Microservice auf der g...

Spring Session für Web-Anwendungen mit Zuständen

Bild
Web-Anwendungen mit Zuständen sind häufig aufgrund der benötigten Session kein leichtes Thema. Daher gibt es im Spring Framework das Projekt Spring Session, welches uns ohne großen Aufwand die Daten der Session vom Application Server auslagert, so dass wir unsere Web-Anwendung clustern können. Hier werde ich zeigen, wie einfach ihr Spring Session in eurer Spring Boot Projekt einbinden könnt. Spring Session in Spring Boot Projekten integrieren In einem anderen Blog-Artikel habe ich eine Web-Anwendung mit Thymeleaf gebaut. In dieser Anwendung wurde die Session bisher weder benutzt noch persistiert, so dass die Daten des Benutzers nach einem Anwendungsneustart oder Serverwechsel im Cluster weg waren. Spring Boot ermöglicht uns dank vorbereiteter Default-Konfiguration das Integrieren einer persistenten Session in 2 Schritten. Diese werde ich euch hier mit MongoDB als Datenbank zum Persistieren der Session zeigen. Neben der MongoDB kann die Session auch in einer JDBC basierten Datenbank, R...

Clean Code am Minesweeper Beispiel

Bild
Mit Clean Code ist man nie fertig... Als ich mir den Code zu meinem vorherigen Clean Code Artikel ein zweites und drittes Mal angeschaut habe, habe ich immer wieder neue Punkte gefunden, die nicht so richtig sauber waren. Deshalb möchte ich in diesem Artikel weitere Beispiele für Clean Code anhand meiner Minesweeper Demo zeigen . Im Code zum Artikel wird das Spiel Minesweeper implementiert, die Regeln findet ihr  hier .  Den kompletten Code von mir findet ihr in GitHub: https://github.com/elmar-brauch/minesweeper.git Und ein passendes Online-Training bei Udemy . Verzicht auf (unnötige) Setter Häufig generieren wir für alle Attribute unserer Klassen Getter und Setter Methoden. Das hat zum Beispiel den Nachteil, dass wir ungenutzte und damit unnötige Attribute in unserer Klasse nicht erkennen, da sie vom Getter und Setter genutzt werden.  In der Klasse Cell des Minesweeper Spiel ist mir aber noch ein 2. Nachteil aufgefallen. Aus Clean Code wissen wir, dass die optimale Meth...

Bedrohungslage Rot: Ist meine Anwendung von der kritischen log4j Schwachstelle betroffen?

Bild
Das Bundesamt für Sicherheit in der Informationstechnik hat wegen einer Schwachstelle im stark verbreiteten Java Logging-Framework log4j die IT-Bedrohungslage 4 / Rot ausgerufen. Daher schreibe ich aus aktuellem Anlass diesen Artikel, um euch eine Hilfestellung bei der Analyse zu geben. Seit dem 12.12.2021 geht dieser Alarm durch die Presse, hier Meldungen: https://www.heise.de/ratgeber/Schutz-vor-schwerwiegender-Log4j-Luecke-was-jetzt-hilft-und-was-nicht https://www.spiegel.de/netzwelt/web/log4-j-schwachstelle-ja-leute-die-scheisse-brennt-lichterloh https://www.bsi.bund.de/DE/Service-Navi/Presse/Alle-Meldungen-News/Meldungen/Schwachstelle_Log4j Wie prüfen, ob mein System betroffen ist? Um herauszufinden, ob ihr betroffen seid, durchsucht ihr die Dependencies bzw. verwendeten Bibliotheken in euer Software. Dabei prüft ihr, ob ihr generell log4j verwendet und wenn ja in welcher Version. Laut BSI sind die Versionen 2.0 bis 2.14.1 von log4j betroffen. Die ältere Version 1.x ist nicht betr...

Clean Code Regeln zum Loslegen

Bild
In diesem Artikel stelle ich euch einige von mir ausgewählte Clean Code Richtlinien und Regeln vor. Sie sollen euch dabei helfen künftig leichter verständlichen und besser wartbaren Code zu schreiben, damit ihr euren KollegInnen das Entwickler-Leben angenehmer macht. Im Code zum Artikel wird das Spiel  Minesweeper  implementiert - ihr findet den Code in GitHub: https://github.com/elmar-brauch/minesweeper.git Und ein passendes Online Training bei Udemy . Namen mit Bedeutung Regel: Verwende Namen, welche die Absicht der Variable, Methode oder Klasse verraten. Im folgenden Code-Ausschnitt habe ich Kommentare ergänzt, um auf schlechte oder zumindest suboptimale Variablennamen hinzuweisen: public class MineField {      // Not optimal names: cells, field, listOfListOfCells, ...      private List<List<Cell>> fieldRows = new ArrayList<>();      ...      // Bad names: x, y, r, c      public Mi...