Start / Blog

Blog

Wissen aus der Praxis

Tutorials, Einordnungen und Neuigkeiten rund um unsere Seminare.

Peter Hecker

Monolith oder Microservices? Erst die Grenzen, dann die Verteilung

Microservices sind kein Synonym für moderne Architektur. Sieben Kriterien, mit denen du entscheidest, ob Monolith, modularer Monolith oder Services zu deiner Anwendung passen.

MicroservicesModularer MonolithSoftwarearchitektur Weiterlesen →
Peter Hecker

Jev oder ChatGPT, Claude und Gemini? Wann ein Modell nur entscheiden soll

Viele KI-Funktionen schreiben gar keinen Text, sondern sortieren, bewerten und leiten weiter. Sieben Kriterien, mit denen du einordnest, ob dafür fester Code, Jev oder ein LLM passt.

JevLLMTyped Decision ModelModell-Routing Weiterlesen →
Peter Hecker

Terraform oder OpenTofu: Belege die Entscheidung, statt sie zu vermuten

Beide Werkzeuge stammen aus derselben Quelle, entwickeln sich aber getrennt. Warum ein leerer Plan noch kein Nachweis ist und wann der Rückweg endgültig zugeht.

TerraformOpenTofuInfrastructure as Code Weiterlesen →
Peter Hecker

Unit, Integration, Contract oder E2E? Die Menge ist die falsche Frage

Wie viele Tests welcher Art — darauf gibt es keine Antwort. Sieben Kriterien, mit denen du je Risiko entscheidest, auf welcher Ebene es zuerst zuverlässig auffällt.

TeststrategieContract TestTestcontainersEnd-to-End-Test Weiterlesen →
Peter Hecker

Warum dein Angular-Effekt nur einmal läuft

Ein effect() liest ein Signal nach dem await — und feuert danach nie wieder. Warum das passiert und welches Mittel meistens das bessere ist.

AngularSignalsTypeScript Weiterlesen →
Peter Hecker

Warum dein Forge-Beispiel aus dem Netz nicht mehr funktioniert

UI Kit gibt es in zwei Fassungen — und das Netz ist voll von der alten. Vier Merkmale, an denen du veralteten Forge-Code sofort erkennst.

Atlassian ForgeUI KitJira Weiterlesen →
Peter Hecker

Dein KI-Agent gehorcht keinen Regeln mehr — sondern Beschreibungen

In Copilot Studio wählt der Agent selbst, welchen Baustein er nutzt. Gesteuert wird er über einen Satz, den kaum jemand schreibt: was ein Baustein ausdrücklich nicht tut.

Microsoft Copilot StudioKI-AgentenPower PlatformGovernance Weiterlesen →
Peter Hecker

Wenn der KI-Agent einkauft: Dein Shopify-Kanal läuft schon

Agentic Storefronts sind für geeignete Shops ab Werk aktiv. Was das für deine Produktdaten heißt — und warum der Fließtext dabei zum Problem wird.

ShopifyAgentic CommerceProduktdatenE-Commerce Weiterlesen →
Peter Hecker

Copilot, Coding-Agent oder Workflow? Die Stufe ist kein Reifegrad

Die drei Begriffe liegen nicht auf einer Ebene. Sieben Kriterien, mit denen du entscheidest, welche Stufe zu deinen Aufgaben und deiner Codebasis passt.

Coding-AgentIDE-CopilotAgentischer WorkflowGuardrails Weiterlesen →
Peter Hecker

Was ein KI-Agent in n8n wirklich tut

Ein Agent läuft je Anfrage mehrfach, nicht einmal — und jeder Lauf kostet. Warum das die Kostenrechnung, den Werkzeugschnitt und die Freigabe verändert.

n8nKI-AgentenHuman-in-the-LoopWorkflow-Automatisierung Weiterlesen →
Peter Hecker

Dreißig Monate: Was Baseline über Browserfunktionen sagt

HTML5 und CSS3 beschreiben Versionen, die es nie gab. Web Platform Baseline beantwortet die Frage, ob eine Browserfunktion einsatzreif ist, überprüfbar — und nennt dafür eine erstaunlich konkrete Zahl.

WebarchitekturFrontendBrowser Weiterlesen →
Peter Hecker

Chatbot, RAG oder KI-Agent? Die Frage steht meist falsch herum

Die drei Begriffe sind keine konkurrierenden Produkte, sondern Fähigkeiten. Sieben Kriterien, die für deinen Anwendungsfall wirklich entscheiden.

RAGKI-AgentArchitekturentscheidungLLM Weiterlesen →
Peter Hecker

MCP ohne Sitzung: Warum jede Anfrage jetzt für sich steht

Mit der Revision 2026-07-28 verliert MCP den Handshake und die Sitzung. Was das für eigene Server bedeutet — und welche Annahme dabei am teuersten wird.

MCPModel Context ProtocolCoding Agents Weiterlesen →
Peter Hecker

Die PromQL-Abfrage, die plausibel aussieht und falsch ist

Erst rate, dann sum — wer die Reihenfolge vertauscht, bekommt bei jedem Neustart einen Scheinausfall im Dashboard. Der Fehler wirft keine Meldung.

PrometheusPromQLObservability Weiterlesen →
Peter Hecker

Spring Boot oder Quarkus? Die Frage, die kein Benchmark beantwortet

Startzeiten vergleichen ist einfach — und hilft bei der Entscheidung fast nie. Sieben Kriterien, die für deine Anwendung wirklich zählen.

QuarkusSpring BootJavaMigration Weiterlesen →
Peter Hecker

SLSA Stufe 3 verlangt keine bitgleichen Builds

Zwei hartnäckige Annahmen über SLSA Build Level 3 kosten Projekte Monate: Reproduzierbarkeit sei Pflicht und der Build müsse offline laufen. Beides steht so nicht in der Spezifikation.

DevSecOpsSLSASoftware Supply Chain Weiterlesen →
Peter Hecker

Die Property, die im Container nichts bewirkt

In Quarkus sind manche Konfigurationsschlüssel nach dem Build festgeschrieben. Wer sie im Deployment setzt, ändert nichts — und bekommt keine Fehlermeldung.

QuarkusSpring BootJava Weiterlesen →
Peter Hecker

javax wird jakarta: der eine Sprung, der jede Datei berührt

Warum der Wechsel auf Jakarta EE 9 der teuerste Schritt der Modernisierung ist — und welche javax-Pakete dabei unbedingt stehen bleiben müssen.

Jakarta EELegacy-ModernisierungJava Weiterlesen →
Peter Hecker

Testcontainers 2: Der Import stimmt nicht mehr

Version 2 hat Artefaktnamen und Pakete umgestellt und die JUnit-4-Unterstützung gestrichen — was das für bestehende Integrationstests bedeutet.

TestcontainersJavaIntegrationstests Weiterlesen →
Peter Hecker

OIDC: der Zugangsschlüssel, den niemand aufbewahren muss

Warum ein kurzlebiges Token aus der Pipeline sicherer ist als der Cloud-Schlüssel im Repository-Secret — und woran der Umstieg meistens hängt.

GitHub ActionsOIDCCI/CDSecurity Weiterlesen →
Peter Hecker

Additiv heißt nicht kompatibel

Ein neuer Wert in einer Aufzählung fügt nur hinzu und entfernt nichts. Trotzdem ist er für viele Consumer ein Bruch — und fällt erst in deren Produktion auf.

RESTAPI-DesignContract Testing Weiterlesen →
Peter Hecker

Die Zeile „Offen“: was ein Agent sonst für dich entscheidet

Wer offene Fragen nicht aufschreibt, bekommt sie beantwortet — nur nicht von einem Menschen. Warum die kürzeste Zeile einer Spezifikation die wichtigste ist.

Spec-driven DevelopmentAgentic DevelopmentContext Engineering Weiterlesen →
Peter Hecker

Die Sandbox schützt den Rechner, nicht dein Repository

Codex kennt zwei Regler: was technisch möglich ist und wann gefragt wird. Wer nur den ersten kennt, verlässt sich auf einen Schutz, den es so nicht gibt.

OpenAI CodexKI-AgentenEntwickler-Workflow Weiterlesen →
Peter Hecker

Rootless-Container: Wem die Datei am Ende gehört

Ein Container ohne Administratorrechte verändert mehr als eine Zeile in der Konfiguration — sichtbar wird es am Eigentümer einer einzigen Datei.

DockerPodmanContainer Weiterlesen →
Peter Hecker

Die Suche findet TW-4471-A statt TW-4471-B

Ähnlichkeitssuche misst Nähe, nicht Richtigkeit. Bei Teilenummern, Fehlercodes und Baujahren führt genau das zur falschen Antwort — mit Beleg.

RAGRetrievalLLM Weiterlesen →
Peter Hecker

Selbstheilende Tests: Wann der Agent reparieren darf — und wann nicht

Playwrights Healer repariert fehlgeschlagene Tests selbstständig. Das ist nützlich — und gefährlich, sobald niemand die Fehlerklasse bestimmt.

PlaywrightTestautomatisierungKI-Agenten Weiterlesen →
Peter Hecker

Grüne Tests, die nichts prüfen

Ein Coding-Agent schreibt in Minuten ein Testnetz für ungetesteten Bestandscode. Ob es trägt, zeigt sich erst bei der Gegenprobe.

Legacy CodeCharacterization TestsCoding-Agenten Weiterlesen →
Peter Hecker

Langsame PostgreSQL-Abfragen: Der teuerste Knoten ist selten der auffälligste

Warum eine funktionierende Abfrage trotzdem ein Problem ist — und welche Zeile im Ausführungsplan dir verrät, wo die Zeit wirklich hingeht.

PostgreSQLPerformanceIndizierungDatenbank Weiterlesen →
Peter Hecker

Der Sprunglink, der nur scrollt

Ein Skip-Link zum Hauptinhalt ist schnell eingebaut — und funktioniert erstaunlich oft nur zur Hälfte. Der Grund ist ein einzelnes Attribut.

AccessibilityFrontendWCAG 2.2 Weiterlesen →
Peter Hecker

Spring Boot: Der Wert kommt nicht aus deiner Datei

Wenn eine Anwendung eine Einstellung ignoriert, liegt das selten am Code. Spring Boot liest Konfiguration aus vielen Quellen — und die stärkere gewinnt.

Spring BootJavaKonfiguration Weiterlesen →
Peter Hecker

TypeScript 7: Nicht der Code entscheidet über den Migrationstermin

Du schätzt die Umstellung nach Dateien und Codezeilen — aber die Zeile, die den Termin verschiebt, steht in der package.json deiner Werkzeuge.

TypeScriptTypeScript 7Migration Weiterlesen →
Peter Hecker

Tests nach dem Code: Warum sie den Fehler mit bestätigen

Ein Agent schreibt Tests zu fertigem Code — und schreibt jedes Missverständnis darin fest. Die Reihenfolge entscheidet, was am Ende geprüft wird.

TeststrategieCoding-AgentenClean Code Weiterlesen →
Peter Hecker

Next.js 16: Aus middleware.ts wird proxy.ts — und das ist keine Kosmetik

Die Umbenennung korrigiert ein Missverständnis: Der Proxy lief nie an der Stelle, an der man ihn für Anmeldung und Rechte gebraucht hätte. Wer ihn als einzige Absicherung nutzt, hat keine.

Next.jsNext.js 16App RouterSicherheit Weiterlesen →
Peter Hecker

Pinia: Warum dein Store nach dem Zerlegen aufhört, sich zu melden

Ein Pinia-Store lässt sich destrukturieren wie jedes Objekt — nur aktualisiert sich die Anzeige danach nie wieder. Kein Fehler, keine Warnung, nur eine tote Zahl auf dem Bildschirm.

Vue.jsPiniaVue 3 Weiterlesen →
Peter Hecker

N+1 in async SQLAlchemy: aus einem Performance-Problem wird ein Fehler

In synchronem Code lädt SQLAlchemy fehlende Beziehungen still nach — nur langsam. In async wirft es stattdessen eine Ausnahme. Das klingt nach Schikane und ist ein Frühwarnsystem.

SQLAlchemyPythonAsync Weiterlesen →
Peter Hecker

Zwei Agenten, ein Ordner: warum Git-Worktrees das Problem lösen

Mehrere KI-Agenten gleichzeitig arbeiten zu lassen scheitert selten am Denken — sondern am gemeinsamen Dateisystem. Git hat dafür seit Jahren eine Antwort.

GitKI-AgentenWorktrees Weiterlesen →
Peter Hecker

Domain Events: eine Tatsache melden, statt einen Auftrag zu erteilen

Wenn zwei Kontexte voneinander wissen müssen, hilft kein direkter Aufruf — sondern ein Ereignis, das nur sagt, was geschehen ist.

Domain-Driven DesignSoftwarearchitekturDomain Events Weiterlesen →
Peter Hecker

Das Monorepo entkoppelt eure Teams — beim Ausliefern nicht

Getrennte Projekte, getrennte Builds, getrennte dist-Ordner: Ein Angular-Monorepo fühlt sich unabhängig an. An einer Stelle täuscht das.

AngularMicro-FrontendsArchitektur Weiterlesen →
Peter Hecker

Closures: Was eine Funktion sich merkt

Warum eine Funktion Werte behält, die es eigentlich längst nicht mehr geben dürfte — und wozu das im Alltag gut ist.

JavaScriptECMAScriptFunktionen Weiterlesen →
Peter Hecker

Das vergessene static: wie eine innere Klasse den halben Kontext festhält

Ein einziges fehlendes Schlüsselwort bindet ein Objekt an seinen Erzeuger — mit Folgen für Speicher und Serialisierung, die erst im Betrieb auffallen.

JavaJava SE Weiterlesen →
Peter Hecker

Repository statt SQL im Code: eine Schnittstelle, die nichts von der Datenbank verrät

Wer Persistenz hinter eine Schnittstelle legt, gewinnt mehr als Austauschbarkeit — vor allem Tests, die ohne laufende Datenbank auskommen.

JavaJDBC Weiterlesen →
Peter Hecker

Server-State ist kein Client-State

Warum Daten vom Server sich nicht wie normaler Zustand verhalten — und was das für React-Anwendungen bedeutet.

ReactTanStackTypeScript Weiterlesen →
Peter Hecker

WooCommerce: Die zweite Testbestellung ist die wichtigere

Zahlungsarten für den deutschen Markt auswählen, im Testmodus prüfen — und den Schritt nicht vergessen, an dem die meisten Shops Geld verlieren.

WooCommerceWordPressE-CommerceOnlineshop Weiterlesen →
Peter Hecker

Projektvertrauen ist ein Ladeschutz, kein Sandkasten

Pi fragt beim Öffnen eines Repos nach Vertrauen. Was diese Frage absichert — und was eben nicht: der Unterschied zwischen Konfiguration laden und Dateien anfassen.

PiCoding AgentSicherheitKI-Entwicklung Weiterlesen →
Peter Hecker

Threat Modeling: Vier Fragen vor der ersten Zeile Code

Bedrohungen findet man am Entwurf, nicht im fertigen System. Wie ein leichtgewichtiges Datenflussdiagramm und STRIDE das strukturiert machen.

Security by DesignThreat ModelingSTRIDE Weiterlesen →
Peter Hecker

ChatGPT im Unternehmen: Erst die Datenflüsse klären

Der Einsatz eines KI-Werkzeugs ist eine Entscheidung über Datenflüsse — nicht über Features. Was vor dem ersten produktiven Prompt geklärt sein sollte.

ChatGPTDatenschutzPrompt Engineering Weiterlesen →
Peter Hecker

Claude Code: Was agentisches Coding im Alltag ändert

Ein Werkzeug, das die Codebasis liest, plant und Befehle ausführt — und warum der Wechsel weniger am Tippen liegt als am Kontext.

Claude CodeKI-EntwicklungEntwickler-Workflow Weiterlesen →
Peter Hecker

KI im Code Review: Die richtige Stufe im Ablauf

Ein Review-Bot am Pull Request ist nicht die erste Verteidigungslinie. Was vorher laufen muss — und was die KI dann tatsächlich beiträgt.

GenAICode ReviewQA Weiterlesen →
Peter Hecker

Panache: CRUD ohne den ewigen Boilerplate

Datenzugriff in Quarkus bleibt standardbasiert — JPA und Hibernate. Panache legt nur ein Muster darüber, das die immergleichen Methoden überflüssig macht.

QuarkusJavaPanache Weiterlesen →
Peter Hecker

React-Apps für Atlassian Forge: Was die Plattform abnimmt

Serverlos für Jira und Confluence entwickeln — Hosting, Auth und Datenspeicher kommen von Atlassian. Was das für den Projektaufbau bedeutet.

ReactAtlassian ForgeTypeScript Weiterlesen →
Peter Hecker

Reaktiv oder Virtual Threads? Eine Entscheidung pro Endpunkt

Quarkus läuft auf einer reaktiven Engine — aber du musst nicht alles reaktiv schreiben. Wann Mutiny passt und wann Virtual Threads der bessere Weg sind.

QuarkusJavaReaktiv Weiterlesen →
Peter Hecker

Sub-Agenten: Warum Delegieren den Kontext rettet

Recherche flutet das Kontextfenster. Sub-Agenten arbeiten in eigener Sitzung und liefern nur das Ergebnis zurück — mit spürbarer Wirkung auf lange Sitzungen.

Claude CodeKI-EntwicklungEntwickler-Workflow Weiterlesen →
Peter Hecker

Vitest: Tests, die sich die Vite-Config teilen

Ein Test-Runner, der dieselbe Konfiguration nutzt wie die App — und warum das mehr spart als die reine Laufzeit.

ReactVitestTesting Weiterlesen →
Peter Hecker

Warum Quarkus für Microservices überzeugt

Schneller Start, kleiner Speicher-Fußabdruck, Standards statt Speziallösungen — ein kurzer Blick auf die Stärken von Quarkus.

QuarkusJavaMicroservices Weiterlesen →
Peter Hecker

Willkommen bei Learning Master

Warum wir Entwickler-Seminare in kurze Modul-Videos zerlegen — und wie du am meisten davon hast.

AnkündigungLernen Weiterlesen →