97 Punkte von baeba 2025-06-05 | 5 Kommentare | Auf WhatsApp teilen

1. Einleitung: Prompts entscheiden über die Produktivität in der Entwicklung

  • Die Leistung von AI-Coding-Assistants hängt von der Qualität der Prompts ab. Klare Anfragen führen zu präzisem Code, vage Fragen zu unbrauchbarer Ausgabe.
  • Prompting ist inzwischen eine unverzichtbare Fähigkeit für Entwickler und ähnelt dem Training eines Entwicklungspartners.
  • Dieser Artikel zeigt anhand praxisnaher Beispiele und Vergleiche, wie „gute Fragen“ zu „gutem Code“ führen.

2. Sieben Prinzipien für effektive Prompts

Kontext bereitstellen
  • Da die AI den Hintergrund des Projekts nicht kennt, sollten Sprache, Framework, Bibliotheken, Fehlermeldungen und Ziel klar genannt werden.
  • Beispiel: technischer Kontext wie „TypeError beim Abrufen eines Users in einer Node.js + Express + Mongoose-Umgebung“.
Ziel klar formulieren
  • „Der Code funktioniert nicht“ hilft nicht weiter. Besser ist eine präzise Frage wie: „Das erwartete Ergebnis ist ○○, tatsächlich kommt aber △△ heraus. Warum?“
Komplexe Aufgaben zerlegen
  • Es ist effektiver, schrittweise zu fragen, statt die gesamte Funktionalität auf einmal anzufordern. Beispiel: Komponente > State-Management > API-Integration.
Ein- und Ausgabe-Beispiele einfügen
  • Wenn man ein Beispiel für die gewünschte Ausgabe zeigt, kann die AI die Absicht besser verstehen. (z. B. [3,1,4][1,3,4])
Eine Rolle zuweisen
  • Rollen wie „Reviewe den Code wie ein Senior-React-Entwickler“ erhöhen die Tiefe und Qualität der Antwort.
Dialogorientiert iterativ verbessern
  • Die erste Antwort muss nicht perfekt sein. Mit Feedback kann die AI den Faden aufnehmen und schrittweise präzisere Ergebnisse liefern.
Konsistenz im Code wahren
  • Wenn Funktionsnamen, Formatierung und Kommentare im Code konsistent sind, hält auch die AI diese Linie ein, was die Qualität verbessert.

3. Prompt-Strategien für das Debugging

Fehler klar angeben und mit dem erwarteten Verhalten vergleichen
  • Wenn Fehlermeldung, Problemsymptom, erwartetes Ergebnis und Eingabewerte zusammen angegeben werden, kann die AI eine präzise Diagnose liefern.
Nachverfolgung auf Zeilenebene anfordern
  • Eine Anfrage wie „Verfolge bitte Schritt für Schritt, an welcher Stelle dieser Variablenwert falsch wurde“ ist bei komplexen Logikfehlern wirksam.
Minimal reproduzierbaren Code bereitstellen
  • Statt des gesamten Codes sollte man nur den Kerncode zeigen, in dem das Problem auftritt; so kann die AI die Ursache genauer analysieren.
Klare Folgefragen stellen
  • Direkte Fragen wie „Welche Bedingung ist an dieser Stelle falsch?“ sind besser als „Warum kommt dieses Ergebnis heraus?“.
Beispielvergleich: schlechte Frage vs. gute Frage
  • Wer nur „Code funktioniert nicht“ schreibt, bekommt meist spekulative Antworten; mit Fehlermeldung und Code zusammen erhält man dagegen eine präzisere Lösung.

4. Prompt-Strategien für Refactoring und Optimierung

Das Ziel des Refactorings klar definieren
  • Statt einfach nur „Refaktoriere das“ zu sagen, sollte man konkrete Verbesserungsziele nennen, etwa „Lesbarkeit verbessern, Performance erhöhen, API modernisieren“.
  • Ist das Ziel unklar, versucht die AI womöglich zufällige Verbesserungen oder ändert den Code in eine unerwünschte Richtung.
Kontext zu Sprache und Umgebung liefern
  • Angaben wie „React von Klassenkomponenten auf Funktionskomponenten umstellen“ oder „Node.js-14-Umgebung“ helfen dabei, passende Transformationen vorzunehmen.
Auch eine Erklärung anfordern
  • Wenn man neben dem refaktorierten Code auch eine Erklärung dazu anfordert, „warum das so geändert wurde“, gewinnt man sowohl für die Qualitätsprüfung als auch für den Lerneffekt.
Mit rollenbasierten Anfragen das Niveau erhöhen
  • Anfragen wie „Refaktoriere das wie ein Senior-TypeScript-Entwickler“ führen eher zu moderneren und fundierteren Verbesserungsvorschlägen.

5. Prompt-Strategien für die Implementierung neuer Funktionen

Funktionen in Schritte aufteilen
  • Auch komplexe Funktionen liefern stabilere Ergebnisse, wenn man sie in Schritte wie „Struktur entwerfen → UI erzeugen → Logik anbinden“ aufteilt.
Den bestehenden Code-Stil mitgeben
  • Wenn ähnliche Komponenten oder interne Konventionen gezeigt werden, erzeugt die AI Code, der zur Konsistenz des Projekts passt. Beispiel: „Erstelle ProductList auf Basis von UserList“.
Absicht über Kommentare/TODOs vermitteln
  • Fügt man in der IDE natürlichsprachige Kommentare wie // TODO: 요청 유효성 검증 구현 ein, kann Copilot automatisch passenden Code dazu generieren.
Ein- und Ausgabe-Beispiele angeben
  • Wenn Eingabewerte und erwartete Ausgaben als Beispiel enthalten sind, versucht die AI gezielt, diese zu erfüllen, was die Genauigkeit erhöht.
Iterativ mit Feedback verbessern
  • Auch wenn das erste Ergebnis nicht den Erwartungen entspricht, kann die AI mit Feedback wie „Bitte map statt filter verwenden“ sofort nachbessern.

6. Sieben Muster gescheiterter Prompts (Anti-Patterns)

Vage Anfragen
  • Fragen wie „Warum funktioniert dieser Code nicht?“ führen nur zu bedeutungslosen allgemeinen Antworten. Fehlermeldung, Code und erwartetes Ergebnis sollten enthalten sein.
Überfrachtete Anforderungen
  • Komplexe Anfragen wie „Erzeuge die ganze App + füge Authentifizierung hinzu + liefere ein Deployment-Skript mit“ verursachen Auslassungen oder Verwirrung und sollten in Schritte getrennt werden.
Keine eigentliche Frage
  • Wenn man nur Code hineingibt, ohne eine Anfrage zu formulieren, neigt die AI dazu, zusammenzufassen oder irrelevante Ergebnisse zu liefern; daher sollte das Ziel der Frage klar sein.
Unklare Erfolgskriterien
  • „Mach es schneller“ oder „Mach es besser“ sind zu unpräzise. Man sollte messbare Kriterien vorgeben, etwa „auf O(n)-Zeitkomplexität verbessern“.
Fragen der AI ignorieren
  • Wenn die AI fragt „Ist das funktional oder klassenbasiert?“, sollte man darauf antworten, um eine optimierte Ausgabe zu erhalten.
Mangelnde Konsistenz
  • Wenn Stil, Syntax und Begriffe ständig wechseln, gerät auch die AI durcheinander. Ein einheitlicher Stil verbessert die Antwortqualität.
Vage Verweise wie „der obige Code“
  • Je länger ein Gespräch wird, desto unklarer wird „der obige Code“. Wenn möglich, sollte man den Code erneut zeigen oder den Funktionsnamen explizit nennen.

7. Fazit: Zusammenarbeit mit AI ist ein iterativer Dialog

  • Prompt Engineering ist inzwischen eine zentrale Kommunikationskompetenz für Entwickler. Kontext, klare Ziele und iterative Verbesserung bilden die Grundlage.
  • AI ist nicht nur ein Coding-Assistant, sondern auch ein Kollaborations- und Lernpartner. Wer sie gut nutzt, steigert nicht nur die Produktivität, sondern auch die eigenen Entwicklungsfähigkeiten.
  • Mit Strategien wie Experimentieren, Feedback und Rollenzuweisung lässt sich AI wie ein praktisches Teammitglied einsetzen.
  • Das endgültige Ziel ist zwar schnellere und präzisere Code-Erzeugung, zugleich sollte AI aber aktiv auch als Lernwerkzeug genutzt werden, um ein besserer Entwickler zu werden.

Vergleichstabelle: gute vs. schlechte Prompts

Kategorie Debugging Refactoring Funktionsimplementierung
Guter Prompt Hier tritt der TypeError auf. Der erwartete Wert ist ○○, aber es kommt NaN heraus. Bitte analysiere die Ursache. Entferne Duplikate in dieser Funktion und verbessere die Performance. Trenne den fetch-Teil in einen Helper aus und behalte die Fehlermeldungen bei. Erstelle eine ProductList-Komponente mit Suchfeld. Hole JSON von /api/products, filtere die Liste und berücksichtige auch Fehler- und Loading-Status.
Schlechter Prompt Warum funktioniert meine Funktion nicht? Refaktoriere das bitte. Erstelle bitte eine Suchfunktion.

5 Kommentare

 
bootno2316 2025-06-08

Unterscheidet sich offenbar nicht davon, wie man mit menschlichen Programmierern umgeht.

 
xguru 2025-06-08

Prompt-Engineering-Playbook für Programmierer

Siehe dir auch die von GN+ Summary Bot zusammengefasste Version an. Auch die zusammenfassenden Kommentare auf Hacker News sind lesenswert.

 
baeba 2025-06-09

Sie waren zuerst dran..
Danke.

 
bichi 2025-06-05

Man kann noch so oft bitten, es bitte nicht so zu machen – einer von zehn Typen macht es trotzdem so. -_-

 
mango 2025-06-05

Was weiß denn schon ein Mensch!