CMD Master
Zurück zum Blog
Arnošt Havelka

Prompt Engineering für Entwickler

Praktisches Prompt Engineering für Entwickler: Implementierungsarbeit eingrenzen, Belege anfordern, Einschränkungen bewahren und Ergebnisse validieren.

Prompt Engineering für Entwickler

Prompt Engineering für Entwickler ist die Praxis, einem KI-Coding-Assistenten den Kontext und die Einschränkungen zu geben, die er für eine sichere technische Entscheidung braucht. Der nützliche Prompt ist nicht der ausgefeilteste. Er ist derjenige, der Umfang, Akzeptanzkriterien und Validierung eindeutig macht.

Behandle eine KI-Anfrage so, wie du ein gutes Implementationsticket behandeln würdest: Es sollte das Problem erklären, wichtiges Verhalten schützen und sagen, woran das Team erkennt, dass die Änderung funktioniert hat.

Der Prompt-Vertrag für Entwickler

Die meisten Programmieraufgaben können diesen kompakten Vertrag verwenden:

Problem: Was scheitert oder ist für einen Nutzer oder Maintainer schwierig?
Umfang: Welches Feature, welche Dateien oder welche Grenze soll der Assistent prüfen?
Ergebnis: Welches beobachtbare Verhalten soll sich ändern?
Einschränkungen: Was muss weiterhin zutreffen?
Akzeptanzkriterien: Was beweist, dass die Implementierung abgeschlossen ist?
Validierung: Welche Tests, Prüfungen oder manuellen Schritte sollen ausgeführt werden?

Füge nach dem Vertrag den relevanten Code, die Logs, die Designentscheidung oder den Testfehler hinzu. Das gibt dem Assistenten Fakten, mit denen er arbeiten kann, statt ihn zu bitten, auf das ganze System zu schließen.

Implementierungs-Prompts: Benenne die Nahtstelle

Ein Implementierungs-Prompt sollte den bestehenden Besitzer des Verhaltens benennen:

Füge der bestehenden Komponente für Suchergebnisse einen Leerzustand hinzu.

Die Seitenroute besitzt die Suchanfrage, und die Ergebnis-Komponente erhält eine
typisierte Liste. Behalte diese Zuständigkeit unverändert. Der Leerzustand muss
erklären, dass keine Ergebnisse übereinstimmen, die bestehende Aktion zum Leeren
der Suche anbieten und den Tastaturfokus beibehalten.

Füge einen Komponententest für das leere Ergebnis hinzu und bestätige, dass
gefüllte Ergebnisse unverändert gerendert werden.

Das Benennen der Nahtstelle verhindert, dass ein Assistent einen parallelen Suchzustand hinzufügt oder die Routenlogik in eine präsentierende Komponente verschiebt.

Debugging-Prompts: Frage zuerst nach Belegen

Für einen produktionsnahen Fehler strukturiere den Prompt nach Belegen, Hypothesen, Überprüfung, Korrektur und Validierung:

Belege: Anfragen nach einer Token-Aktualisierung geben einmal 401 zurück und sind beim
Wiederholungsversuch erfolgreich. Die UI zeigt weiterhin das Banner für abgemeldete Nutzer.

Erwartet: Das Banner verschwindet nach einem erfolgreichen Wiederholungsversuch.
Beobachtet: Daten werden geladen, aber das Banner bleibt.

Prüfe die Zustandsübergänge der Authentifizierung. Liste konkurrierende Hypothesen und
die kleinste Beobachtung auf, die jede bestätigt. Ändere keinen Code, bis der Fehlerpfad
reproduziert ist. Schlage dann eine Korrektur mit einem Regressionstest vor.

So zeigt der Assistent die Grenzen seiner Schlussfolgerungen. Du kannst eine beleggestützte Hypothese überprüfen, bevor ein umfassendes Umschreiben der Zustandsverwaltung im Diff erscheint.

Architektur-Prompts: Schütze Entscheidungen, nicht nur Dateien

Architekturarbeit braucht klare Nicht-Ziele:

Bewerte, ob Benachrichtigungseinstellungen im Benutzerprofildokument verbleiben
oder in ein separates Einstellungsmodell verschoben werden sollten.

Einschränkungen: Die Anwendung wird statisch exportiert, Schreibvorgänge erfolgen
clientseitig, bestehende Leser der Einstellungen müssen kompatibel bleiben, und keine
Migration darf die Auswahl eines Nutzers stillschweigend verwerfen.

Vergleiche die Optionen anhand von Lesezugriffsmustern, Autorisierung, Rollout-Risiko und
Testbarkeit. Empfiehl einen Ansatz mit Abwägungen, bevor du Code vorschlägst.

Bitte um Analyse vor der Implementierung, wenn die Aufgabe die Datenzuständigkeit, öffentliche Verträge oder das Bereitstellungsverhalten verändern könnte.

Code-Review-Prompts: Fordere Risiken an, keine Komplimente

KI-Review ist nützlicher, wenn es ein Ziel hat:

Prüfe diese Änderung auf Verhaltensregressionen, Lücken bei der Barrierefreiheit,
Fehlerbehandlung und Tests, die den nutzerseitigen Vertrag nicht mehr belegen.

Konzentriere dich auf die geänderten Dateien und die Aufrufstellen, die sie betreffen.
Melde Befunde nach Priorität mit den Belegen für jeden. Schlage keine reinen
Stiländerungen vor, es sei denn, sie verdecken einen Defekt oder machen den Vertrag unklar.

Das vermeidet ein allgemeines Review, das eine lange Liste von Formatierungsvorschlägen mit geringem Wert erzeugt.

Dokumentations-Prompts: Bewahre betriebliche Tatsachen

Dokumentation sollte anhand von Code überprüft werden:

Aktualisiere den Einrichtungsleitfaden für den neuen lokalen Umgebungsbefehl.

Erkläre Voraussetzungen, erwartete Ausgabe, Wiederherstellung nach einem Fehler und wie
zu prüfen ist, ob der Dienst bereit ist. Gleiche jeden Befehl mit den Package-Skripten ab
und dokumentiere keine Umgebungsvariablen, die tatsächlich nicht verwendet werden.

Der letzte Satz ist wichtig: Ein Assistent kann eine ausgefeilte Dokumentation für einen Befehl schreiben, der nie ausgeführt wird.

Test-Prompts: Wandle Akzeptanzkriterien in Szenarien um

Wenn du nach Tests fragst, gib jedem Szenario ein Ergebnis für Nutzer oder System:

Füge Regressionstests für die Korrektur des Suchfilters hinzu.

Stelle sicher, dass das Ändern eines Filters die Ergebnisliste aktualisiert, das Löschen
des Filters die vollständige Liste wiederherstellt und eine langsame vorherige Anfrage
ein neueres Ergebnis nicht überschreiben kann. Verwende die bestehenden Testkonventionen
und vermeide reine Assertions zu Implementierungsdetails.

Tests werden klarer, wenn sie das Verhalten beschreiben, das eine Implementierung bewahren muss.

Die Gewohnheit, die Prompts sicherer macht

Bevor du einen Coding-Prompt sendest, frage dich:

  • Würde ein anderer Entwickler verstehen, warum diese Änderung wichtig ist?
  • Könnte er erkennen, was nicht kaputtgehen darf?
  • Weiß er, wo er zuerst nachsehen soll?
  • Könnte er das Ergebnis mit den Akzeptanzkriterien beweisen?

Wenn die Antwort nein lautet, braucht der Prompt Kontext – nicht mehr Adjektive.

Beginne mit wie man bessere KI-Prompts schreibt für das zugrunde liegende Vorgehen, nutze die konkreten Anfragen in wie du ChatGPT fürs Programmieren promptest und vergleiche aufgabenspezifische Formulierungen in Prompt-Engineering-Beispielen für Softwareentwickler. Um die Fehlermuster zu vermeiden, die eine Implementierung riskant machen, lies Fehler von KI-Coding-Assistenten und wie du sie vermeidest. Wenn deine Arbeit Shell-Skripte, Logs oder Terminalausgaben enthält, übe den Kommandozeilen-Workflow, bevor du etwas automatisierst oder änderst.

Quellen

Diese Dokumentationslinks liefern verlässliche Details zu den in diesem Artikel verwendeten Befehlen.