ThinkWi-KI

Künstliche Intelligenz erklärt – verständlich und praxisnah

Benutzer-Werkzeuge

Webseiten-Werkzeuge


praxis:code

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
praxis:code [2025/05/20 07:15] – gelöscht 20.171.207.105praxis:code [2025/05/22 19:09] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== 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.
 +
 +<code python>
 +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
 +</code>
 +
 +---
 +
 +**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.
 +
 +<code sql>
 +SELECT id, name, email, created_at
 +FROM users
 +WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
 +</code>
 +
 +---
 +
 +**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.
 +
 +<code html>
 +<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>
 +</code>
 +
 +---
 +
 +=== 🐛 Fehleranalyse & Debugging ===
 +
 +**Prompt 1 – Python-Fehler erklären**  
 +> `TypeError: unsupported operand type(s) for +: 'int' and 'str'`
 +
 +<code python>
 +# 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
 +</code>
 +
 +---
 +
 +**Prompt 2 – Code-Review anfordern**  
 +*(nur als Platzhalter: hier kann realer User-Code eingefügt werden)*
 +
 +<code javascript>
 +// Verbesserungsvorschlag:
 +function sumArray(arr) {
 +  if (!Array.isArray(arr)) return 0;
 +  return arr.reduce((acc, val) => acc + val, 0);
 +}
 +</code>
 +
 +---
 +
 +=== 🔄 Refactoring & Optimierung ===
 +
 +**Prompt 1 – Lesbarkeit verbessern**  
 +
 +Vorher:
 +<code python>
 +def a(x):
 + for i in x:
 +  if i>5:print(i)
 +</code>
 +
 +Nachher (refactored):
 +<code python>
 +def print_greater_than_five(numbers):
 +    for number in numbers:
 +        if number > 5:
 +            print(number)
 +</code>
 +
 +---
 +
 +**Prompt 2 – List Comprehension**
 +
 +Vorher:
 +<code python>
 +squares = []
 +for i in range(10):
 +    squares.append(i * i)
 +</code>
 +
 +Nachher:
 +<code python>
 +squares = [i * i for i in range(10)]
 +</code>
 +
 +---
 +
 +=== 📋 Dokumentation erzeugen ===
 +
 +**Prompt 1 – Python-Docstring generieren**
 +
 +<code python>
 +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
 +</code>
 +
 +---
 +
 +=== ✅ Tests erzeugen ===
 +
 +**Prompt 1 – Unit-Test**
 +
 +<code python>
 +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()
 +</code>
 +
 +---
 +
 +=== 📘 Lernen & Erklären ===
 +
 +**Prompt 2 – Vergleich „map“ vs. „forEach“ in JavaScript**
 +
 +<code 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
 +</code>
 +
 +----
 +
 +==== 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.
praxis/code.1747718148.txt.gz · Zuletzt geändert: 2025/05/20 07:15 von 20.171.207.105

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki
Chat
WiKiBot ×
Laden...