Einleitung
Die Qualität der KI-Antwort hängt zu 80% vom Prompt ab. Trotzdem schreiben die meisten Entwickler ihre Prompts wie Google-Suchen: kurz, vage, ohne Kontext. Das Ergebnis? Generischer Code, ungenaue Antworten und Frustration.
In diesem Guide lernst du die 7 Prompt-Engineering-Techniken, die professionelle Entwickler nutzen – mit 20 Copy-Paste-Templates für den Alltag.
Inhaltsverzeichnis
- Warum Prompt Engineering wichtig ist
- Technik 1: Rolle definieren (System Prompt)
- Technik 2: Kontext-Sandwich
- Technik 3: Output-Format spezifizieren
- Technik 4: Few-Shot Prompting
- Technik 5: Chain of Thought
- Technik 6: Constraints & Negativ-Anweisungen
- Technik 7: Iteratives Prompting
- 20 Prompt-Templates für Entwickler
- Prompt Anti-Patterns
- Prompt-Unterschiede: Claude vs ChatGPT vs Copilot
- FAQ
Warum Prompt Engineering wichtig ist
Somit kannst du direkt mit der Umsetzung beginnen.
Derselbe Prompt, nur besser formuliert, kann den Unterschied machen zwischen:
- ❌ „Hier ist eine Funktion“ → Generischer, unvollständiger Code
- ✅ „Hier ist eine produktionsreife, typsichere Funktion mit Error Handling und JSDoc“ → Exakt was du brauchst
Prompt Engineering ist keine Raketenwissenschaft. Es sind 7 einfache Techniken, die du in 30 Minuten lernst und danach jeden Tag nutzt.
Technik 1: Rolle definieren (System Prompt)
Weiterhin ist es wichtig, die Grundlagen zu verstehen.
Sage der KI wer sie ist, bevor du fragst. Das aktiviert domänenspezifisches Wissen und ändert den Detailgrad der Antwort.
Schlecht
Allerdings gibt es einige wichtige Unterschiede zu beachten.
Schreib mir eine Funktion für Passwort-Validierung.
Somit sparst du Zeit und erhältst qualitativ hochwertigeren Output.
Gut
Grundsätzlich gibt es dabei einige Punkte zu beachten.
Du bist ein Senior TypeScript-Entwickler mit Expertise in Security Best Practices.
Schreibe eine Passwort-Validierungs-Funktion die:
- OWASP-Empfehlungen folgt
- TypeScript strict mode kompatibel ist
- Klare Error Messages für jede Regel zurückgibt
- Unit-testbar ist (keine Seiteneffekte)
Dementsprechend ist eine manuelle Überprüfung empfehlenswert.
Warum es funktioniert: Die Rolle „Senior TypeScript-Entwickler mit Security-Expertise“ primed das Modell auf andere Muster als „generischer Programmierer“. Du bekommst strengere Typen, bessere Error Messages und OWASP-konforme Regeln.
Rollen-Templates
Natürlich gibt es dabei verschiedene Herangehensweisen.
Du bist ein Senior Backend-Entwickler (Node.js/TypeScript) mit 10 Jahren Erfahrung.- Ebenfalls
Du bist ein Security-Researcher, der Code auf Schwachstellen prüft. Du bist ein Performance-Engineer, der für Sub-100ms Response Times optimiert.Du bist ein Staff Engineer, der Architektur-Entscheidungen für ein 20-Personen-Team trifft.
Technik 2: Kontext-Sandwich
Ebenfalls relevant sind die praktischen Anwendungsbeispiele.
Gib der KI allen relevanten Kontext – aber strukturiert. Das „Sandwich“-Format:
- Kontext: Was ist das Projekt, der Tech-Stack, die Constraints?
- Aufgabe: Was soll die KI konkret tun?
- Anforderungen: Welche Qualitätskriterien muss das Ergebnis erfüllen?
KONTEXT:
Ich arbeite an einer E-Commerce-App (Next.js 14, TypeScript, Prisma, PostgreSQL).
Der aktuelle Checkout-Prozess ist synchron und blockiert bei Payment-Provider-Aufrufen.
AUFGABE:
Refactore den Checkout zu einem Event-Driven-System mit Saga Pattern.
ANFORDERUNGEN:
- Nutze Bull Queue für asynchrone Verarbeitung
- Implementiere Kompensations-Aktionen (Rollback) für jeden Schritt
- TypeScript strict, keine any-Typen
- Error Handling für: Payment-Timeout, Inventory-Conflict, Shipping-Error
- Logging mit strukturiertem JSON (pino)
Im Grunde funktioniert dieser Ansatz mit allen gängigen AI-Tools.
Warum es funktioniert: Die KI kennt dein Projekt, versteht das Problem und weiß genau, was du erwartest. Ohne Kontext müsste sie raten – und das Ergebnis wäre generisch.
Technik 3: Output-Format spezifizieren
Tatsächlich ist dieser Bereich besonders wichtig für Entwickler.
Sage der KI exakt, wie die Antwort aussehen soll.
Analysiere diesen Code auf Performance-Probleme.
Antworte in diesem Format:
## Finding [Nummer]
**Severity:** Critical / Warning / Info
**Zeile:** [Zeilennummer]
**Problem:** [1 Satz]
**Fix:** [Code-Snippet]
**Impact:** [Geschätzter Performance-Gewinn]
Weitere Format-Optionen:
Antworte als JSON mit diesem Schema: { ... }Erstelle eine Markdown-Tabelle mit Spalten: Feature, Aufwand, PrioritätLiefere den Code als einzelne Dateien mit Dateiname als KommentarMaximal 5 Bullet Points, jeder maximal 20 Wörter
Technik 4: Few-Shot Prompting
Folglich profitierst du von einem besseren Verständnis dieser Konzepte.
Zeige der KI 2-3 Beispiele, wie das Ergebnis aussehen soll. Sie erkennt das Pattern und wendet es auf neue Fälle an.
Schreibe JSDoc-Kommentare in meinem Projekt-Style.
Beispiel 1:
/**
* Validates user email against RFC 5322 standard.
* Rejects disposable email providers from blocklist.
*
* @param email - Raw email string from user input
* @returns Normalized lowercase email
* @throws {ValidationError} If email format is invalid
* @throws {BlockedEmailError} If provider is on blocklist
*/
Beispiel 2:
/**
* Calculates pro-rated subscription amount for mid-cycle upgrades.
* Uses day-based proportional calculation (not monthly).
*
* @param currentPlan - Active subscription plan
* @param newPlan - Target upgrade plan
* @param cycleDay - Current day within billing cycle (1-30)
* @returns Pro-rated amount in cents (integer)
* @throws {InvalidPlanError} If downgrade is attempted
*/
Jetzt schreibe JSDoc für diese Funktionen:
[Code einfügen]
Insbesondere die Struktur des Prompts ist dabei entscheidend für gute Ergebnisse.
Warum es funktioniert: Statt abstrakte Regeln zu beschreiben, zeigst du das gewünschte Ergebnis. Die KI erkennt: „Aha, erster Satz beschreibt WAS, zweiter WARUM, @throws mit Custom Error Types.“
Technik 5: Chain of Thought
Ebenso wichtig ist es, die Best Practices zu kennen.
Bitte die KI, Schritt für Schritt zu denken, bevor sie antwortet. Das verbessert die Qualität bei komplexen Aufgaben drastisch.
Analysiere diesen Code und finde den Bug.
Denke Schritt für Schritt:
1. Lies den Code und verstehe den Zweck
2. Trace den Datenfluss mit Beispiel-Input
3. Identifiziere wo der erwartete und tatsächliche Output divergieren
4. Erkläre die Root Cause
5. Liefere den Fix
```typescript
[Code einfügen]
```
Ebenfalls sinnvoll ist es, verschiedene Varianten auszuprobieren.
Pro-Tipp für Claude: Nutze Extended Thinking (bei Claude Opus/Sonnet). Das Modell „denkt“ intern nach, bevor es antwortet – ähnlich wie Chain of Thought, aber automatisch und noch effektiver.
Pro-Tipp für ChatGPT: Nutze o1 oder o3 für Aufgaben, die tiefes Reasoning erfordern. Diese Modelle haben Chain of Thought eingebaut.
Technik 6: Constraints & Negativ-Anweisungen
Vor allem für den praktischen Einsatz sind diese Informationen wertvoll.
Sage nicht nur, was die KI tun soll – sage auch, was sie NICHT tun soll.
Schreibe einen Express.js REST Controller für User-CRUD.
MACHE:
- TypeScript strict mode
- Zod für Validierung
- Async Error Wrapper
- HTTP Status Codes korrekt
MACHE NICHT:
- Keine Klassen, nur Funktionen
- Kein ORM – nutze raw SQL mit pg
- Keine externen Bibliotheken außer Zod und pg
- Keinen Code für Datenbank-Migration
- Keine Kommentare die nur wiederholen was der Code tut
Deshalb empfiehlt es sich, den Prompt schrittweise zu verfeinern.
Warum es funktioniert: Ohne Negativ-Anweisungen neigen Modelle dazu, „sicherheitshalber“ alles hinzuzufügen: ORMs, Klassen-Hierarchien, überflüssige Kommentare. Constraints fokussieren das Ergebnis.
Technik 7: Iteratives Prompting
Deshalb lohnt es sich, dieses Thema genauer zu betrachten.
Komplexe Aufgaben nicht in einem Prompt lösen, sondern in mehreren Runden:
- Runde 1 – Planen: „Analysiere das Problem und erstelle einen Plan. Schreibe noch keinen Code.“
- Runde 2 – Implementieren: „Implementiere Schritt 1 und 2 aus dem Plan.“
- Runde 3 – Reviewen: „Reviewe den Code. Was fehlt? Was kann verbessert werden?“
- Runde 4 – Finalisieren: „Implementiere die Verbesserungen und liefere den finalen Code.“
Warum es funktioniert: KI-Modelle arbeiten besser, wenn sie zuerst planen und dann ausführen. Ein riesiger „Mach alles auf einmal“-Prompt überfordert und produziert inkonsistenten Code.
20 Prompt-Templates für Entwickler
Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.
Copy-Paste-ready Templates für die häufigsten Aufgaben:
1. Neue Funktion schreiben
Insbesondere für den Einstieg sind die folgenden Informationen hilfreich.
Schreibe eine [Sprache]-Funktion:
Zweck: [Was soll sie tun?]
Input: [Parameter mit Typen]
Output: [Rückgabetyp]
Edge Cases: [Was soll bei Fehlern passieren?]
Style: [Funktional/OOP, mit/ohne Kommentare]
2. Bug finden
Im Grunde vereinfacht dieser Ansatz den gesamten Workflow erheblich.
Finde den Bug:
```[code]```
Symptom: [Was passiert?]
Erwartet: [Was soll passieren?]
Schon geprüft: [Was du schon versucht hast]
Weiterhin ist es ratsam, die Ergebnisse immer kritisch zu prüfen.
3. Code reviewen
Dennoch solltest du einige Besonderheiten beachten.
Reviewe diesen Code auf: Bugs, Security, Performance, Readability.
Severity pro Finding: 🔴 Critical / 🟡 Warning / 🟢 Info
```[code]```
Folglich erhältst du mit diesem Ansatz deutlich bessere Resultate.
4. Refactoring
Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.
Refactore diesen Code. Ziel: [z.B. "Extract Methods, DRY, bessere Namen"].
Behalte das exakte Verhalten. Zeige vorher/nachher.
```[code]```
Natürlich solltest du den generierten Code vor dem Einsatz testen.
5. Unit Tests
Dementsprechend solltest du die folgenden Aspekte kennen.
Schreibe Unit Tests (Jest/Vitest) für:
```[code]```
Teste: Happy Path, Edge Cases, Errors. Beschreibende Testnamen.
6. Error Message erklären
Dabei spielen mehrere Faktoren eine wichtige Rolle.
Erkläre diesen Error und wie ich ihn fixe:
```[error + stack trace]```
Mein Code: ```[relevanter Code]```
Darüber hinaus lässt sich das Beispiel leicht erweitern.
7. Konzept erklären
Darüber hinaus bietet dieser Abschnitt konkrete Beispiele und Tipps.
Erkläre [Konzept] für einen [Junior/Mid/Senior]-Entwickler.
Nutze eine Analogie + ein Code-Beispiel in [Sprache].
Maximal [X] Absätze.
Außerdem kannst du den Prompt für verschiedene Programmiersprachen anpassen.
8. SQL-Query schreiben
Im Folgenden findest du alle wichtigen Details dazu.
Schreibe eine SQL-Query (PostgreSQL/MySQL):
Tabellen: [Schema beschreiben]
Ziel: [Was die Query liefern soll]
Anforderungen: [Performance, Indizes, Joins]
Grundsätzlich kannst du diesen Prompt an deine Bedürfnisse anpassen.
9. API-Endpunkt implementieren
Insbesondere für den Einstieg sind die folgenden Informationen hilfreich.
Implementiere einen REST-Endpunkt:
Framework: [Express/Fastify/NestJS]
Route: [METHOD /path]
Input: [Body/Query/Params]
Output: [Response-Schema]
Auth: [JWT/API-Key/Public]
10. Code-Migration
Im Grunde vereinfacht dieser Ansatz den gesamten Workflow erheblich.
Migriere diesen Code von [Alt] zu [Neu]:
```[code]```
Behalte das gleiche Verhalten. Nutze idiomatischen [Ziel]-Style.
Tatsächlich lässt sich dieser Code direkt in dein Projekt übernehmen.
11. README schreiben
Ebenso wichtig ist es, die Best Practices zu kennen.
Schreibe eine README.md für:
Projekt: [Name + Zweck]
Tech Stack: [Sprachen/Frameworks]
Sektionen: Install, Quick Start, API, Config, Contributing
Vor allem die detaillierten Anweisungen sorgen für präzisere Ergebnisse.
12. Regex erstellen
Weiterhin ist es wichtig, die Grundlagen zu verstehen.
Erstelle eine Regex die matched: [Beschreibung]
Matchen soll: [Beispiele]
NICHT matchen soll: [Gegenbeispiele]
Sprache: [JS/Python/etc.] Erkläre jeden Teil.
Dabei zeigt dieses Beispiel den grundlegenden Ansatz.
13. Git Commit Message
Somit kannst du direkt mit der Umsetzung beginnen.
Schreibe eine Conventional Commit Message für:
```diff
[git diff]
```
Format: type(scope): description
14. Datenbank-Schema
Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.
Designe ein Datenbank-Schema für: [Use Case]
DB: [PostgreSQL/MySQL/MongoDB]
Anforderungen: [Normalisierung, Indizes, Constraints]
Liefere: CREATE TABLE Statements + ER-Diagramm (Mermaid)
Deshalb empfiehlt es sich, den Prompt schrittweise zu verfeinern.
15. CI/CD Pipeline
Dementsprechend solltest du die folgenden Aspekte kennen.
Erstelle eine GitHub Actions Pipeline für:
Projekt: [Sprache/Framework]
Schritte: [Lint, Test, Build, Deploy]
Ziel: [Vercel/AWS/Docker]
Weiterhin ist es ratsam, die Ergebnisse immer kritisch zu prüfen.
16. Performance-Optimierung
Deshalb lohnt es sich, dieses Thema genauer zu betrachten.
Optimiere die Performance dieses Codes:
```[code]```
Aktuell: [z.B. "200ms für 1000 Einträge"]
Ziel: [z.B. "unter 50ms"]
Constraints: [z.B. "Keine externe Library"]
Natürlich solltest du den generierten Code vor dem Einsatz testen.
17. TypeScript-Typen erstellen
Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.
Erstelle TypeScript-Typen für diese JSON-Daten:
```json
[Beispiel-JSON]
```
Nutze: Interfaces, Generics, Utility-Types. Kein 'any'.
18. Docker Setup
Ebenfalls relevant sind die praktischen Anwendungsbeispiele.
Erstelle ein Docker-Setup für:
App: [Sprache/Framework]
Services: [DB, Cache, Queue]
Liefere: Dockerfile + docker-compose.yml + .dockerignore
Optimiert für: [Development / Production]
Insbesondere die Struktur des Prompts ist dabei entscheidend für gute Ergebnisse.
19. Code erklären
Dennoch solltest du einige Besonderheiten beachten.
Erkläre diesen Code Zeile für Zeile:
```[code]```
Zielgruppe: [Junior der [Sprache] lernt]
Hebe hervor: Nicht-offensichtliche Dinge und potenzielle Fallstricke
Ebenfalls sinnvoll ist es, verschiedene Varianten auszuprobieren.
20. Architektur-Entscheidung
Grundsätzlich gibt es dabei einige Punkte zu beachten.
Ich muss mich entscheiden: [Option A] vs [Option B]
Kontext: [Projekt, Team-Größe, Scale]
Erstelle eine Entscheidungsmatrix mit gewichteten Kriterien.
Gib eine klare Empfehlung mit Begründung.
Dabei zeigt dieses Beispiel den grundlegenden Ansatz.
Prompt Anti-Patterns
1. Der „Google-Prompt“
Allerdings gibt es einige wichtige Unterschiede zu beachten.
❌ react useEffect cleanup
✅ „Erkläre mir, wann und warum ich eine Cleanup-Funktion in useEffect brauche. Zeige 3 Beispiele: Timer, Event Listener, AbortController.“
2. Der „Alles-auf-einmal-Prompt“
Vor allem für den praktischen Einsatz sind diese Informationen wertvoll.
❌ „Baue mir eine komplette E-Commerce-App mit Auth, Payment, Shipping, Admin-Panel und Mobile-App.“
✅ Nutze Technik 7 (Iteratives Prompting). Starte mit dem Datenmodell, dann API, dann Frontend.
3. Der „Ohne-Code-Prompt“
Tatsächlich ist dieser Bereich besonders wichtig für Entwickler.
❌ „Mein Code funktioniert nicht, was ist falsch?“
✅ Immer den Code, die Fehlermeldung und den erwarteten Output mitliefern.
4. Der „Zu-höflich-Prompt“
Darüber hinaus bietet dieser Abschnitt konkrete Beispiele und Tipps.
❌ „Könntest du vielleicht eventuell so nett sein und mir helfen, eine kleine Funktion zu schreiben?“
✅ Direkt und spezifisch: „Schreibe eine TypeScript-Funktion die X tut. Input: Y. Output: Z.“
Prompt-Unterschiede: Claude vs ChatGPT vs Copilot
Folglich profitierst du von einem besseren Verständnis dieser Konzepte.
| Aspekt | Claude | ChatGPT | Copilot |
|---|---|---|---|
| Strukturierung | XML-Tags: <context>, <task>, <rules> | Markdown: ##, Bullet Points | Kommentare im Code |
| System Prompt | Projects → System Prompt | Custom Instructions | Nicht direkt möglich |
| Optimal für | Lange, strukturierte Prompts | Konversationelle Prompts | Inline-Kommentare |
| Kontext-Limit | 200K Tokens | 128K Tokens | ~8K Tokens (Editor) |
| Reasoning | Extended Thinking | o1/o3 Chain of Thought | Nicht verfügbar |
Claude-spezifisch
Natürlich gibt es dabei verschiedene Herangehensweisen.
<context>
TypeScript Full-Stack Projekt mit Next.js 14 und Prisma
</context>
<task>
Implementiere eine optimistic UI für Like-Funktionalität
</task>
<rules>
- Server Actions nutzen (kein API-Route)
- Zod Validierung
- Error Rollback im UI
</rules>
ChatGPT-spezifisch
Im Folgenden findest du alle wichtigen Details dazu.
## Kontext
TypeScript Full-Stack Projekt mit Next.js 14 und Prisma
## Aufgabe
Implementiere eine optimistic UI für Like-Funktionalität
## Regeln
- Server Actions nutzen (kein API-Route)
- Zod Validierung
- Error Rollback im UI
Dementsprechend ist eine manuelle Überprüfung empfehlenswert.
FAQ
Muss ich Prompt Engineering lernen oder wird das bald überflüssig?
Dabei spielen mehrere Faktoren eine wichtige Rolle.
Modelle werden besser darin, schlechte Prompts zu verstehen. Aber: Bessere Prompts liefern IMMER bessere Ergebnisse. Es ist wie Googeln – jeder kann suchen, aber wer gute Suchbegriffe kennt, findet besser.
Auf welcher Sprache soll ich prompten?
Ebenfalls relevant sind die praktischen Anwendungsbeispiele.
Für Code: Englisch liefert marginal bessere Ergebnisse, da die Trainingsdaten überwiegend Englisch sind. Für Erklärungen: Deutsch funktioniert hervorragend bei Claude und ChatGPT.
Wie lang sollte ein Prompt sein?
Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.
So lang wie nötig, so kurz wie möglich. Einfache Aufgaben: 2-3 Sätze. Komplexe Aufgaben: Strukturierter Prompt mit Kontext, Aufgabe, Constraints. Mehr Kontext = besseres Ergebnis, bis zu einem Sättigungspunkt.
Soll ich Prompts auf Englisch oder Deutsch schreiben?
Dementsprechend solltest du die folgenden Aspekte kennen.
Für technische Prompts (Code generieren, reviewen, debuggen) ist Englisch leicht im Vorteil. Für alles andere (Erklärungen, Dokumentation) funktioniert Deutsch ebenso gut.
Verwandte Artikel:
- 50 ChatGPT Prompts für Entwickler
- Weiterhin Claude Prompts für Programmierer
- Claude vs ChatGPT für Entwickler
Zuletzt aktualisiert: März 2026