KI-gestützte Softwareentwicklung: Ein Workflow für beschleunigte Codegenerierung
Dieser Blogartikel wurde automatisch erstellt (und übersetzt). Er basiert auf dem folgenden Original, das ich für die Veröffentlichung auf diesem Blog ausgewählt habe:
My LLM codegen workflow atm | Harper Reed’s Blog
.
KI-gestützte Softwareentwicklung: Ein Workflow für beschleunigte Codegenerierung
Die Entwicklung von Software hat sich durch Large Language Models (LLMs) erheblich beschleunigt. Um die Effizienz zu maximieren und Fallstricke zu vermeiden, hat sich ein Workflow etabliert, der auf Brainstorming, detaillierter Planung und iterativer Ausführung basiert.
Der Prozess im Detail
Dieser Workflow lässt sich in zwei Hauptszenarien anwenden: Greenfield-Entwicklung und inkrementelle Arbeit an bestehenden Codebasen.
Greenfield-Entwicklung
Bei der Greenfield-Entwicklung folgt man einem strukturierten Ansatz:
-
Ideenfindung mit einem Konversations-LLM:
- Ein Konversations-LLM (z.B. ChatGPT) wird genutzt, um eine detaillierte Spezifikation der Idee zu entwickeln. Durch iterative Fragestellungen wird ein umfassendes Anforderungsprofil erstellt.
- Der resultierende Entwurf beinhaltet Anforderungen, Architektur, Datenhandhabung, Fehlerbehandlung und einen Testplan.
-
Planung mit einem Reasoning-Modell:
- Die Spezifikation wird an ein Reasoning-Modell übergeben, um einen detaillierten, schrittweisen Plan zu erstellen.
- Dieser Plan wird in kleine, iterative Schritte unterteilt, die mit Test-Driven Development (TDD) umgesetzt werden können. Alternativ ist auch eine nicht-TDD-basierte Vorgehensweise möglich.
- Das Ergebnis ist eine Reihe von Prompts für ein Code-Generierungs-LLM.
- Ausführung mit einem Code-Generierungs-Tool:
- Tools wie Aider oder Cursor werden verwendet, um die generierten Prompts auszuführen und den Code zu erstellen.
- Aider bietet den Vorteil, dass es Tests ausführen und Fehler beheben kann.
Inkrementelle Arbeit an bestehenden Codebasen
Für inkrementelle Verbesserungen an bestehenden Projekten wird ein leicht abgewandelter Ansatz verwendet:
-
Kontext erfassen:
- Ein Tool wie Repomix wird verwendet, um den relevanten Quellcode zu extrahieren und in ein Format zu bringen, das von LLMs verarbeitet werden kann.
-
Transformationen durchführen:
- Mithilfe von Befehlen und Prompt-Templates werden Transformationen auf den Code angewendet (z.B. Code-Reviews generieren, fehlende Tests identifizieren).
- Integration in den Entwicklungsprozess:
- Die generierten Ergebnisse werden in den Entwicklungsprozess integriert, beispielsweise durch das Erstellen von GitHub-Issues oder das Aktualisieren der Dokumentation.
Prompts für bestehende Codebasen
Es gibt Prompts, die verwendet werden können, um bestehende Codebasen zu untersuchen:
- Code-Review erstellen You are a senior developer. Your job is to do a thorough code review of this code. You should write it up and output markdown. Include line numbers, and contextual info. Your code review will be passed to another teammate, so be thorough. Think deeply before writing the code review. Review every part, and don't hallucinate.
- Top Probleme des Codes auflisten You are a senior developer. Your job is to review this code, and write out the top issues that you see with the code. It could be bugs, design choices, or code cleanliness issues. You should be specific, and be very good. Do Not Hallucinate. Think quietly to yourself, then act - write the issues. The issues will be given to a developer to executed on, so they should be in a format that is compatible with github issues
- Liste von fehlenden Testfällen und Code-Tests erstellen You are a senior developer. Your job is to review this code, and write out a list of missing test cases, and code tests that should exist. You should be specific, and be very good. Do Not Hallucinate. Think quietly to yourself, then act - write the issues. The issues will be given to a developer to executed on, so they should be in a format that is compatible with github issues
Herausforderungen und Perspektiven
Eine der größten Herausforderungen bei der KI-gestützten Softwareentwicklung ist die Integration in Teamumgebungen. Aktuelle Workflows sind oft auf Einzelpersonen zugeschnitten, was die Zusammenarbeit erschwert. Es besteht Bedarf an Lösungen, die eine nahtlose Multiplayer-Erfahrung ermöglichen.
Trotz dieser Herausforderungen bietet die beschleunigte Codegenerierung durch LLMs erhebliche Vorteile. Sie ermöglicht es Einzelpersonen, in kürzerer Zeit mehr Code zu produzieren und neue Programmiersprachen und Tools zu erkunden.
Fazit
Die KI-gestützte Softwareentwicklung hat das Potenzial, die Art und Weise, wie wir Software entwickeln, grundlegend zu verändern. Durch die Kombination von Brainstorming, detaillierter Planung und iterativer Ausführung lassen sich beeindruckende Ergebnisse erzielen. Zukünftige Entwicklungen werden sich darauf konzentrieren müssen, die Zusammenarbeit in Teams zu verbessern und die Integration in bestehende Entwicklungsprozesse zu vereinfachen.