Inhaltsverzeichnis

03. Code & Entwicklung

Überblick

KI-Systeme wie 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:

Aufbau eines effektiven Entwickler-Prompts

Ein guter Entwickler-Prompt sollte enthalten:

→ 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.

<form action="/newsletter-anmeldung" method="post">
  <label for="vorname">Vorname:</label><br>
  <input type="text" id="vorname" name="vorname" required><br><br>
 
  <label for="email">E-Mail:</label><br>
  <input type="email" id="email" name="email" required><br><br>
 
  <input type="checkbox" id="datenschutz" name="datenschutz" required>
  <label for="datenschutz">Ich stimme der Datenschutzerklärung zu</label><br><br>
 
  <button type="submit">Anmelden</button>
</form>

🐛 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

📎 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.