handbook:formate:code
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| handbook:formate:code [2025/05/08 13:43] – Externe Bearbeitung 127.0.0.1 | handbook:formate:code [2025/05/08 14:56] (aktuell) – gelöscht 181.214.13.86 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== 3.3. Code & Entwicklung ====== | ||
| - | |||
| - | ==== Überblick ==== | ||
| - | |||
| - | KI-Systeme wie ChatGPT, GitHub Copilot, Amazon CodeWhisperer oder Cursor können Entwickler: | ||
| - | Richtig eingesetztes Prompting spart Zeit, hilft beim Lernen neuer Technologien und beschleunigt Entwicklungsprozesse. | ||
| - | |||
| - | Typische Einsatzbereiche: | ||
| - | * Code generieren (Funktionen, | ||
| - | * 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: | ||
| - | * **Ziel:** Was soll der Code tun? | ||
| - | * **Kontext: | ||
| - | * **Format:** Kommentar, vollständiger Codeblock, Teilfunktion, | ||
| - | * **Nutzungszweck: | ||
| - | * **Stil-Vorgaben (optional): | ||
| - | |||
| - | → Je genauer du das Ziel und den Kontext beschreibst, | ||
| - | |||
| - | ==== 🔧 Beispiele für Code-Prompts ==== | ||
| - | |||
| - | === 🛠️ Code erstellen === | ||
| - | |||
| - | **Prompt 1 – Python-Funktion schreiben** | ||
| - | > Schreibe eine Python-Funktion, | ||
| - | |||
| - | <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)) | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | **Prompt 2 – SQL-Query generieren** | ||
| - | > Du hast eine Datenbank mit einer Tabelle „users“ (Felder: id, name, email, created_at). Schreibe eine SQL-Abfrage, | ||
| - | |||
| - | <code sql> | ||
| - | SELECT id, name, email, created_at | ||
| - | FROM users | ||
| - | WHERE created_at >= DATE_SUB(CURDATE(), | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | **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="/ | ||
| - | <label for=" | ||
| - | <input type=" | ||
| - | |||
| - | <label for=" | ||
| - | <input type=" | ||
| - | |||
| - | <input type=" | ||
| - | <label for=" | ||
| - | |||
| - | <button type=" | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | === 🐛 Fehleranalyse & Debugging === | ||
| - | |||
| - | **Prompt 1 – Python-Fehler erklären** | ||
| - | > `TypeError: unsupported operand type(s) for +: ' | ||
| - | |||
| - | <code python> | ||
| - | # Fehlerhafter Code | ||
| - | liste = [1, 2, ' | ||
| - | summe = sum(liste) | ||
| - | |||
| - | # Erklärung: | ||
| - | # sum() versucht, ' | ||
| - | # Lösung: Stelle sicher, dass alle Elemente numerisch sind. | ||
| - | |||
| - | # Korrigiert: | ||
| - | liste = [1, 2, int(' | ||
| - | summe = sum(liste) | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | **Prompt 2 – Code-Review anfordern** | ||
| - | *(nur als Platzhalter: | ||
| - | |||
| - | <code javascript> | ||
| - | // Verbesserungsvorschlag: | ||
| - | function sumArray(arr) { | ||
| - | if (!Array.isArray(arr)) return 0; | ||
| - | return arr.reduce((acc, | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | === 🔄 Refactoring & Optimierung === | ||
| - | |||
| - | **Prompt 1 – Lesbarkeit verbessern** | ||
| - | |||
| - | Vorher: | ||
| - | <code python> | ||
| - | def a(x): | ||
| - | for i in x: | ||
| - | if i> | ||
| - | </ | ||
| - | |||
| - | Nachher (refactored): | ||
| - | <code python> | ||
| - | def print_greater_than_five(numbers): | ||
| - | for number in numbers: | ||
| - | if number > 5: | ||
| - | print(number) | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | **Prompt 2 – List Comprehension** | ||
| - | |||
| - | Vorher: | ||
| - | <code python> | ||
| - | squares = [] | ||
| - | for i in range(10): | ||
| - | squares.append(i * i) | ||
| - | </ | ||
| - | |||
| - | Nachher: | ||
| - | <code python> | ||
| - | squares = [i * i for i in range(10)] | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | === 📋 Dokumentation erzeugen === | ||
| - | |||
| - | **Prompt 1 – Python-Docstring generieren** | ||
| - | |||
| - | <code python> | ||
| - | def berechne_steuer(netto, | ||
| - | """ | ||
| - | 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** | ||
| - | |||
| - | <code python> | ||
| - | import unittest | ||
| - | from mymodule import calculate_discount | ||
| - | |||
| - | class TestDiscount(unittest.TestCase): | ||
| - | def test_normal_case(self): | ||
| - | self.assertEqual(calculate_discount(100, | ||
| - | |||
| - | def test_zero_percent(self): | ||
| - | self.assertEqual(calculate_discount(100, | ||
| - | |||
| - | def test_full_discount(self): | ||
| - | self.assertEqual(calculate_discount(100, | ||
| - | |||
| - | if __name__ == ' | ||
| - | unittest.main() | ||
| - | </ | ||
| - | |||
| - | --- | ||
| - | |||
| - | === 📘 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 | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ==== Tool-Hinweise: | ||
| - | |||
| - | 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, | ||
| - | |||
| - | * **Cursor** | ||
| - | - Spezialisierter KI-Code-Editor mit eingebautem Chat | ||
| - | - Kontextuelles Prompting direkt im Codebereich | ||
| - | - Ideal für komplexe Refactorings, | ||
| - | - Unterstützt GPT-4, Claude & Co. | ||
| - | |||
| - | * **Amazon CodeWhisperer** | ||
| - | - Besonders für Cloud-/ | ||
| - | - Integration in Visual Studio Code und JetBrains | ||
| - | - Guter Support für Python, Java, JavaScript | ||
| - | |||
| - | * **ChatGPT (mit Code Interpreter / Advanced Data Analysis)** | ||
| - | - Flexibel für Erklärungen, | ||
| - | - Kann komplette Funktionen schreiben, umstrukturieren und erklären | ||
| - | - Auch für Datenbearbeitung, | ||
| - | |||
| - | * **Tabnine** | ||
| - | - Autovervollständigung via KI, trainiert auf Open Source | ||
| - | - Lokal einsetzbar, mehr Datenschutz | ||
| - | - Schneller als viele Cloud-Tools, | ||
| - | |||
| - | * **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, | ||
| - | - 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. | ||
handbook/formate/code.1746704581.txt.gz · Zuletzt geändert: 2025/05/08 13:43 von 127.0.0.1
