praxis:code
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| praxis:code [2025/05/20 07:15] – gelöscht 20.171.207.105 | praxis: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: | ||
| + | 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 | ||
| + | |||
| + | * **[[glossar: | ||
| + | - 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. | ||
praxis/code.1747718148.txt.gz · Zuletzt geändert: 2025/05/20 07:15 von 20.171.207.105
