Posts

Posts mit dem Label "Clean Code" werden angezeigt.

IT Stability Health Radar

Bild
How to run IT applications stable in production? Instead of providing one more operations readiness checklist, I created an IT Stability health radar. This helps in agile projects to choose the next stability improvement depending on current situation. All non-functional requirements in this health radar are prioritized by levels, so that you and your Product Owner can plan them properly. IT Stability Health Radar Companies have often operations readiness checklists, which describe what to do before customers can use an IT system in production. These long lists with non-functional requirements are not easy to use and fulfill in agile working environments. Product owners and business stakeholders have a hard time to accept these requirements, if they come all at the same time and might block a big part of the team for several weeks.  In this article I focus on non-functional requirements related to IT stability. I group and order them, so that you learn where to start and which stabilit

Java 21: Die wichtigsten Features seit Version 17

Bild
Java 21, die neue Version mit verlängertem Support, ist da! Hier stelle ich die wichtigsten Features vor: Interface SequencedCollection, Record Patterns, Neuerungen bei switch und das Highlight virtuelle Threads Falls Ihr noch Java 11 verwendet, schaut euch hier die Features von Java 17 an:  java-17-features.html 🎓 Auf Udemy findet ihr meinen kostenloses Online-Kurs zu Java 21 . Java 21 at YouTube in English Interface SequencedCollection Die neuen Sequenced -Interfaces erweitern Listen-Implementierungen um den Direktzugriff auf das erste und letzte Element. Am Beispiel einer  ArrayList  zeige ich hier die neuen, selbsterklärenden Methoden: // Mutable list created. List < String > list = new ArrayList<>( List . of ( "1st" , "2nd" , "3rd" )); log .info( "Read first & last element in list: %s & %s" .formatted( list .getFirst(), list .getLast())); var reversedList = list .reversed(); reversedList .addFirst( "4th"

Performanz Tuning: Strategien und Tipps aus der Praxis

Bild
Performanz-Problemen sind meist schwierig zu lösen. Hier zeige ich euch, wie wir unser letzten Problem analysiert, gemessen und gelöst haben. Unter dem Zeitdruck des bevorstehenden Go-Lives wählten wir Strategien, um Risiken durch Seiteneffekte zu vermeiden. Analyse von Performanz-Problemen Aus Kundensicht ist unser System eine Browser-Anwendung. Wenn die Seiten im Browser langsam laden, haben wir ein Performanz-Problem. Die Diskussion, was langsam bedeutet und ob langsame Ladezeiten in manchen UseCases akzeptabel sind, ignoriere ich hier. Unsere Situation war eindeutig, statt Ladezeiten von 1-2 Sekunden dauerte es in einigen Fällen mehr als 10 Sekunden. Logs sind ein guter Startpunkt für die Analyse. Eventuell habt Ihr einen Log-Eintrag am Anfang und Ende der Anfrage. Mit den Zeitstempeln dieser beiden Log-Einträge könnt Ihr die Bearbeitungsdauer der Anfrage überprüfen. Das bestätigt objektiv euer Preformanz-Problem. Wo treten Performanz-Probleme auf? In unserem Fall betraf das Perfor

Java 17: Sprach-Freatures der neuen Langzeit-Support-Version

Bild
Welche Java Features helfen uns künftig besseren Code zu schreiben? In den Java Versionen 12 bis 17 gibt es spannende, neue Features - ich zeige euch diese hier: Text Blöcke Erweiterungen bei instanceof Neuerungen bei switch Records Versiegelte Klassen RandomGenerator 🎓 Auf Udemy findet ihr meinen kostenloses Online-Kurs zu diesem Blog-Artikel:  Java 17 @ Udemy Neue Java Versionen Seit Java 9 gibt es halbjährlich ein neues Release. Java 11 ist aufgrund des verlängerten Supports bis September 2026 ein wichtiges Release. Daher wird Java 11 aktuell häufig im Berufsumfeld eingesetzt. Seit September 2021 gibt es mit Java 17 ein neues Release mit verlängertem Support (LTS). Dieses wird Java 11 im Berufsumfeld mit der Zeit ablösen. Hier zeige ich Features der Java Versionen 12-17, welche direkten Einfluss auf die Code-Qualität haben und somit zum Thema Clean Code passen. Einen guten Überblick über Java Versionen, Erscheinungsdaten und Feature-Listen findet ihr bei Wikipedia:  https://en.wiki

Spring Boot: die wichtigsten Features für ein sauber konfiguriertes Projekt

Bild
Spring Boot ermöglicht uns das Erstellen neuer Spring Anwendungen in wenigen Minuten. Dazu bringt es vorkonfigurierte Spring Boot Starter und 3rd Party Bibliotheken mit, die ohne weitere Anpassungen produktionsbereit sind. In diesem Artikel stelle ich dazu die wichtigsten Spring Boot Features genauer vor. Alleinstehende Spring Anwendungen mit eingebettetem Tomcat In diesem Tutorial zeige ich euch, wie ihr eine neue Spring Boot Anwendung erstellt. Das ist eine alleinstehende Anwendung, da sie einen integrierten Tomcat Application Server hat und durch den Build Prozess in eine mit Java ausführbare jar-Datei gepackt wird. Spring Boot EntwicklerInnen müssen also keinen Application Server installieren und dann die gebaute Anwendung (z.B. als WAR Datei) deployen, sondern können einfach eine jar-Datei mittels folgendem Befehl starten: java -jar <Pfad zur jar-Datei im target Verzeichnis> Der eingebettete Tomcat ist eine 3rd Party Bibliothek, die Spring Boot mitbringt. Dieser Tomcat hat

Clean Code Dojo: Katas bei Code Wars

Bild
Du bist Software-EntwicklerIn und möchtest besser werden? Das geht durch eigene Übung und Lernen vom Code von anderen. Code Wars ist eine tolle Plattform, die genau das kostenlos anbietet.   Was ist Code Wars? Code was ist eine Plattform für Software-EntwicklerInnen, die Katas in (fast) allen gängigen verschiedenen Programmiersprachen anbietet. Katas sind Übungsaufgaben für Software-EntwicklerInnen, die ich hier schon ausführlicher vorgestellt hatte: clean-code-dojo.html . Das Tolle an Code Wars ist, dass es sehr viele Katas in unterschiedlichen Schwierigkeitsgraden gibt. Die Katas werden von der Code Wars Community erstellt, jeder kann Katas trainieren oder neue für andere Code Wars Benutzer schreiben. Deshalb gibt es hier bereits viele Übungsaufgaben und es werden immer mehr. Die Code Wars Community liefert dann auch den 2. tollen Lerneffekt. Wir können uns nämlich zu jedem Kata, die Lösungen von anderen Code Wars Benutzern anschauen und so Lernen wie andere Probleme lösen oder die