Posts

Es werden Posts vom 2025 angezeigt.

Lessons Learned – von der Idee bis zum Go-Live unseres KI-Chatbots

Bild
Erfahrungen aus der Entwicklung bei Magenta Business Die Entwicklung eines KI-Chatbots mit modernen Sprachmodellen (LLMs) war für unser Team nicht nur spannend, sondern auch lehrreich. Der Weg war gespickt mit Erfolgen, Rückschlägen und vielen Lessons Learned. Heute wird unser Chatbot aktiv von Kund:innen genutzt, aber der Weg dorthin war nicht geradlinig. In diesem Beitrag teilen wir unsere Erkenntnisse – damit andere Teams schneller und mit weniger Stolpersteinen zum Ziel kommen. KI in Java? Geht – und zwar ziemlich gut Wer KI-Anwendungen entwickeln möchte, muss nicht zwingend in Python unterwegs sein. Für Java-Teams gibt es mittlerweile sehr gute Frameworks wie Spring AI und LangChain4J , die die Anbindung von Sprachmodellen wie GPT, Claude oder Mistral deutlich vereinfachen. Selbst das Integrieren von Backend-Funktionalität oder anderer Firmen-APIs per Tool in die KI ist mit diesen Frameworks einfach. So könnt Ihr relativ leicht einfache KI Agenten bauen. Unser Tipp: Baut f...

GIT Einführung und Best Practices

Bild
Ob Entwicklung, Test, Betrieb oder Projektmanagement – Git ist nicht nur ein Thema für Developer. Es ist ein zentrales Werkzeug, das die Zusammenarbeit im gesamten IT-Team unterstützt und absichert. Doch was macht Git eigentlich so wertvoll? Zentraler Zugriff auf den Code Mit Git arbeitet das ganze Team an einer gemeinsamen Codebasis. Egal ob Backend, Frontend, Testautomatisierung oder Infrastruktur-as-Code – alle Dateien liegen im selben Repository. Das sorgt für Transparenz und verhindert, dass einzelne Teammitglieder mit unterschiedlichen Versionen arbeiten. Jeder kann nachvollziehen, wie sich der Code entwickelt und welche Änderungen aktuell sind. Nachvollziehbarkeit von Änderungen Git protokolliert jede Änderung. Wer hat wann was geändert – und warum? Diese Informationen sind Gold wert, wenn man verstehen möchte, warum ein Fehler entstanden ist oder wie ein Feature genau implementiert wurde. Gute Commit-Nachrichten und sauber strukturierte Branches machen es möglich, die Entwicklu...

Testgetriebene Entwicklung (TDD) Schritt für Schritt

Bild
Testgetriebene Entwicklung besteht aus 3 Schritten: Rot: Schreib ausreichend viele fehlschlagende Unit Tests. Grün: Implementiere nur so viel Code, dass alle Unit Tests erfolgreich durchlaufen. Blau: Falls nötig, refaktorisiere den Code und Deine Unit Tests. Dieser Blog-Artikel demonstriert TDD anhand des Clean Code Bowling Game Katas in Kotlin mit JUnit Tests. Außerdem betrachten wir wie KI unsere Arbeitsweise bei TDD verändert. Passen die Idee von TDD und aktuelle KI-Tools wie GitHub Copilot oder ChatGPT überhaupt noch zusammen? Testgetriebene Entwicklung (TDD) Ich kenne testgetriebene Entwicklung aus Extreme Programming (von Kent Beck) und Clean Code (von Robert C. Martin). Beide beschreiben den TDD-Zyklus als Entwicklungsprozess in 3 sich wiederholenden Schritten. Im folgenden Bild seht Ihr den Zyklus mit entsprechenden Farben, abgeleitet aus dem Status der Testergebnisse. Rot - Test schlägt fehl In der ersten Phase ROT wird mindestens ein neuer Testfall geschrieben oder ein besteh...

Spring Boot vs. Security Vulnerabilities

Bild
Der Security-Scanner in eurer CI/CD-Pipeline hat eine kritische Security Vulnerability gefunden. In einer 3rd-Party-Bibliothek gibt es eine Schwachstelle. Der Scanner kennt bereits die Lösung: ein Upgrade der Bibliothek. Doch ist das wirklich immer die beste Idee? Oder gibt es Aspekte wie Wartbarkeit und Stabilität zu beachten? Security Scanner und Vulnerabilities CI/CD-Pipelines mit Code-Scannern sind essenzielle Werkzeuge in der professionellen Softwareentwicklung. In meinem Projekt nutzen wir eine GitLab CI/CD-Pipeline mit diversen Scannern. Einer davon analysiert unsere Third-Party-Bibliotheken auf Sicherheitslücken, also veraltete Abhängigkeiten mit bekannten Schwachstellen. Diese werden in einem Report aufgelistet. Für jede Schwachstelle sind detaillierte Informationen abrufbar.  Hier ein Beispiel aus einem Java-Projekt mit Spring Boot 3.4.2. Titel und Beschreibung der Vulerability bzw. des Security Problems. Severity: Kategorisiert die Kritikalität in fünf Stufen von "Inf...