====== 03. Code & Entwicklung ======
==== Überblick ====
KI-Systeme wie [[glossar:chatgpt|ChatGPT]], GitHub Copilot, Amazon CodeWhisperer oder Cursor können Entwickler:innen bei zahlreichen Aufgaben unterstützen – von der Codeerstellung über das Debugging bis zur Dokumentation.
Richtig eingesetztes Prompting spart Zeit, hilft beim Lernen neuer Technologien und beschleunigt Entwicklungsprozesse.
Typische Einsatzbereiche:
* Code generieren (Funktionen, Klassen, Module)
* Fehleranalyse und -behebung
* Refactoring und Performance-Tuning
* Dokumentation erzeugen
* Tests erstellen
* Konzepte erklären lassen
* Code zwischen Sprachen „übersetzen“
==== Aufbau eines effektiven Entwickler-Prompts ====
Ein guter Entwickler-Prompt sollte enthalten:
* **Sprache / Technologie:** z. B. Python, JavaScript, SQL, HTML, Docker etc.
* **Ziel:** Was soll der Code tun?
* **Kontext:** Gibt es Eingabedaten, Einschränkungen, bestehende Strukturen?
* **Format:** Kommentar, vollständiger Codeblock, Teilfunktion, Test etc.
* **Nutzungszweck:** Lernen, Prototyp, Produktivcode, Review etc.
* **Stil-Vorgaben (optional):** funktional, OOP, dokumentiert, minimalistisch
→ Je genauer du das Ziel und den Kontext beschreibst, desto zuverlässiger die Antwort.
==== 🔧 Beispiele für Code-Prompts ====
=== 🛠️ Code erstellen ===
**Prompt 1 – Python-Funktion schreiben**
> Schreibe eine Python-Funktion, die eine Liste von Zahlen entgegennimmt und die durchschnittliche Abweichung vom Mittelwert zurückgibt. Achte auf gute Lesbarkeit und füge einen Beispielaufruf hinzu.
def durchschnittliche_abweichung(zahlen):
if not zahlen:
return 0
mittelwert = sum(zahlen) / len(zahlen)
abweichungen = [abs(x - mittelwert) for x in zahlen]
return sum(abweichungen) / len(zahlen)
# Beispielaufruf
werte = [10, 15, 20, 25]
print(durchschnittliche_abweichung(werte)) # Ausgabe: 5.0
---
**Prompt 2 – SQL-Query generieren**
> Du hast eine Datenbank mit einer Tabelle „users“ (Felder: id, name, email, created_at). Schreibe eine SQL-Abfrage, die alle Nutzer:innen zeigt, die sich im letzten Monat registriert haben.
SELECT id, name, email, created_at
FROM users
WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
---
**Prompt 3 – HTML-Formular**
> Erstelle ein HTML-Formular zur Anmeldung für einen Newsletter. Es soll Felder für E-Mail, Vorname, Datenschutz-Häkchen und einen „Anmelden“-Button enthalten.
---
=== 🐛 Fehleranalyse & Debugging ===
**Prompt 1 – Python-Fehler erklären**
> `TypeError: unsupported operand type(s) for +: 'int' and 'str'`
# Fehlerhafter Code
liste = [1, 2, '3']
summe = sum(liste) # Fehler!
# Erklärung:
# sum() versucht, '3' (ein String) mit den Zahlen zu addieren.
# Lösung: Stelle sicher, dass alle Elemente numerisch sind.
# Korrigiert:
liste = [1, 2, int('3')]
summe = sum(liste) # Ergebnis: 6
---
**Prompt 2 – Code-Review anfordern**
*(nur als Platzhalter: hier kann realer User-Code eingefügt werden)*
// Verbesserungsvorschlag:
function sumArray(arr) {
if (!Array.isArray(arr)) return 0;
return arr.reduce((acc, val) => acc + val, 0);
}
---
=== 🔄 Refactoring & Optimierung ===
**Prompt 1 – Lesbarkeit verbessern**
Vorher:
def a(x):
for i in x:
if i>5:print(i)
Nachher (refactored):
def print_greater_than_five(numbers):
for number in numbers:
if number > 5:
print(number)
---
**Prompt 2 – List Comprehension**
Vorher:
squares = []
for i in range(10):
squares.append(i * i)
Nachher:
squares = [i * i for i in range(10)]
---
=== 📋 Dokumentation erzeugen ===
**Prompt 1 – Python-Docstring generieren**
def berechne_steuer(netto, steuersatz):
"""
Berechnet die Steuer und den Bruttobetrag auf Basis des Nettobetrags.
Args:
netto (float): Der Nettobetrag.
steuersatz (float): Der Steuersatz in Prozent (z. B. 19 für 19%).
Returns:
tuple: Enthält den Steuerbetrag und den Bruttobetrag.
"""
steuer = netto * (steuersatz / 100)
brutto = netto + steuer
return steuer, brutto
---
=== ✅ Tests erzeugen ===
**Prompt 1 – Unit-Test**
import unittest
from mymodule import calculate_discount
class TestDiscount(unittest.TestCase):
def test_normal_case(self):
self.assertEqual(calculate_discount(100, 20), 80)
def test_zero_percent(self):
self.assertEqual(calculate_discount(100, 0), 100)
def test_full_discount(self):
self.assertEqual(calculate_discount(100, 100), 0)
if __name__ == '__main__':
unittest.main()
---
=== 📘 Lernen & Erklären ===
**Prompt 2 – Vergleich „map“ vs. „forEach“ in JavaScript**
// map: Gibt ein neues Array zurück
const zahlen = [1, 2, 3];
const verdoppelt = zahlen.map(n => n * 2); // [2, 4, 6]
// forEach: Führt nur eine Aktion aus
zahlen.forEach(n => console.log(n * 2)); // Ausgabe: 2, 4, 6
----
==== Tool-Hinweise: Code- und Entwickler-KI ====
KI-Tools im Bereich Softwareentwicklung helfen beim Schreiben, Erklären, Optimieren und Testen von Code. Einige sind als Editor-Plugins verfügbar, andere arbeiten webbasiert oder als API-Dienst.
=== 🧰 Übersicht nützlicher Entwicklungs-KI-Tools ===
* **GitHub Copilot (OpenAI + GitHub)**
- KI-Code-Vervollständigung in Echtzeit
- Unterstützt viele Sprachen (Python, JavaScript, Go etc.)
- Integriert in VS Code, JetBrains, Neovim
- Gut für Boilerplate, Tests, kleine Snippets
* **Cursor**
- Spezialisierter KI-Code-Editor mit eingebautem Chat
- Kontextuelles Prompting direkt im Codebereich
- Ideal für komplexe Refactorings, Erklärungen und Paarprogrammierung
- Unterstützt GPT-4, Claude & Co.
* **Amazon CodeWhisperer**
- Besonders für Cloud-/AWS-Projekte geeignet
- Integration in Visual Studio Code und JetBrains
- Guter Support für Python, Java, JavaScript
* **[[glossar:chatgpt|ChatGPT]] (mit Code Interpreter / Advanced Data Analysis)**
- Flexibel für Erklärungen, Debugging, Tests
- Kann komplette Funktionen schreiben, umstrukturieren und erklären
- Auch für Datenbearbeitung, Regex, API-Beispiele
* **Tabnine**
- Autovervollständigung via KI, trainiert auf Open Source
- Lokal einsetzbar, mehr Datenschutz
- Schneller als viele Cloud-Tools, aber weniger „intelligent“ als GPT-basiert
* **Replit Ghostwriter**
- Integriert in Replit IDE (online)
- Besonders für schnelle Prototypen und kleine Projekte
- Unterstützt Pair Programming mit KI-Coach
* **Codeium**
- Kostenlose Alternative zu Copilot
- Gute Unterstützung für viele Sprachen
- Starke Integration in VS Code und JetBrains
- Datenschutzfreundlicher Ansatz
* **Kite (eingestellt, aber historisch relevant)**
- Früher Vorreiter im Bereich Code-KI
- Hinweis: 2022 eingestellt
=== 📎 Hinweis ===
Viele Tools setzen auf GPT-Modelle im Hintergrund. Wer maximale Kontrolle und Datenschutz benötigt, sollte auf **lokale Modelle** (z. B. Tabnine, Codeium mit Offline-Modus) oder gut konfigurierbare APIs achten.