Leitfaden für robuste Entwicklung mit KI: Cursor und Github Copilot


KI-Code-Assistenten haben sich in letzter Zeit aufgrund der Leistungsfähigkeit, die sie zur Beschleunigung der Softwareentwicklung bieten, verbreitet. Allerdings ist das Erlernen ihrer Nutzung nicht so einfach wie das Schreiben eines simplen Prompts. Die Lernkurve, um das volle Potenzial dessen auszuschöpfen, was sie bieten, ist nicht so gering, wie wir vielleicht denken. Wenn wir sie unterschätzen, riskieren wir a) Code von schlechter Qualität mit Fehlern und Sicherheitslücken zu produzieren oder b) die Fähigkeiten nur eingeschränkt zu nutzen und weniger Vorteile zu erzielen als verfügbar wären.
Dieser Beitrag soll ein Leitfaden für Programmierer sein, die mit KI-Code-Assistenten beginnen möchten, oder für diejenigen, die bereits begonnen haben, aber sie besser nutzen möchten. Obwohl wir im Titel über Cursor und VSCode Copilot sprechen, ist er tatsächlich auf die meisten Assistenten auf dem Markt anwendbar. Wir beginnen mit einigen Prinzipien, die wir als Schlüssel für das Programmieren mit Assistenten betrachten, und sprechen dann über Praktiken und Anwendungsfälle.
Prinzipien für die Entwicklung mit KI-Assistenten
Da Assistenten ein so mächtiges Werkzeug sind, das in der Lage ist, große Mengen an Code für uns zu generieren, halten wir es für wesentlich, über einige Prinzipien klar zu sein, die unsere Nutzung jederzeit leiten. Das Ziel ist es, mit ihnen Code produzieren zu können und dabei den Qualitätsstandard zu erhöhen. Wir glauben nicht an Ansätze, bei denen Geschwindigkeit priorisiert wird und wichtige Aspekte wie die Qualität und Sicherheit des generierten Codes übersehen werden.
Prinzip 1 - Überprüfung: Aktuelle Code-Assistenten machen häufig Fehler, daher müssen wir den generierten Code IMMER sorgfältig überprüfen.
Prinzip 2 - Verantwortung: Der von der KI generierte Code ist in jeder Hinsicht unser Code und wir sind die allein Verantwortlichen.
Prinzip 3 - Experimentieren: Derselbe Prompt kann in einigen Fällen funktionieren und in anderen nicht; eine anfänglich ungültige Antwort bedeutet nicht, dass die KI uns nicht helfen kann. Es ist ratsam, es erneut zu versuchen, indem man den Prompt ändert: Kontext hinzufügen, detailliertere Anweisungen geben, usw. Eine experimentelle Einstellung hilft uns zu lernen, das Beste daraus in unserem speziellen Kontext zu machen.
Prinzip 4 - Kontext: Die Qualität und Eignung der Antwort hängt weitgehend vom Kontext ab, den der Assistent hat. Ein angemessener Kontext sollte den notwendigen Quellcode enthalten, um die Änderung vorzunehmen, zusammen mit Anweisungen und Regeln, die leiten, wie sie durchgeführt werden soll. Darüber hinaus kann es in bestimmten Situationen notwendig sein, Projektdokumentation bereitzustellen.
Empfohlene Nutzungspraktiken
Entwicklungs-Best-Practices überprüfen: Code Reviews, automatische Tests, die Verwendung von Lintern usw. sind notwendiger denn je, da die Integration von KI in Ihr Team einer Skalierung des Teams gleichkommt; je mehr Sie produzieren, desto höher ist das Risiko, Fehler oder technische Schulden einzuführen.
Vor dem Start planen: Standardmäßig sind Assistenten darauf eingestellt, direkt zur Lösung zu springen und den Code zu liefern, um ihn dann zu erklären. Wenn wir jedoch Änderungen vornehmen möchten, die eine gewisse Komplexität erfordern, ist es ratsam, zunächst den Ansatz und Plan für die Änderungen zu entwerfen. So können wir den Ansatz überprüfen, Änderungen vorschlagen oder ihn verwerfen.
Teile und herrsche: Genau wie beim Angehen einer großen Aufgabe oder User Story ist es vorteilhaft, sie in kleinere Teilaufgaben aufzuteilen. Bei der Verwendung eines Assistenten ermöglicht es uns, ihn zu bitten, kleine Schritte auszuführen, damit wir sicherer vorankommen. Idealerweise: eine kleine Aufgabe anfordern -> den Code überprüfen und anpassen -> testen -> die Schleife wiederholen.
Bei Fehlern mit einem anderen Prompt oder Modell erneut versuchen: Wie bereits erwähnt, macht KI Fehler. Wenn sie jedoch eine falsche Antwort auf einen Prompt gibt, bedeutet das nicht, dass sie in diesem Fall nicht verwendet werden kann. In diesen Fällen ist es nützlich zu verstehen, woher der Fehler kommt, und es erneut zu versuchen. Beispiele:
Mangel an Kontext -> Quellcode-Dateien oder den vollständigen Code referenzieren. Dokumentationsdateien nach Modulen generieren, um sie der KI bereitzustellen, z.B.: Dokument mit dem Datenmodell.
Mangel an Spezifikation -> Anweisungen hinzufügen, die detailliert beschreiben, wie wir die Änderungen vornehmen möchten. Definition von Regeldateien.
Mangel an Kapazität aufgrund von Komplexität -> In kleinere und einfachere Aufgaben aufteilen. Ein fortgeschritteneres Modell mit Reasoning verwenden. Beispiel: Gemini 2.5 pro, Claude 3.7 Sonnet Thinking, o3, …
Mangel an Kapazität aufgrund fehlender Daten -> Zum Beispiel, wenn wir etwas sehr Nischenhaftes fragen, das das Modell zuvor nicht “gesehen” hat. In diesem Fall ist es am besten, die KI nicht zu verwenden und zur traditionellen Methode zurückzukehren.
Projektregeln definieren: Cursor und VSCode ermöglichen es Ihnen, Regeln zu definieren und sie in Ihre Repositories einzufügen, um Ihnen das wiederholte Schreiben zu ersparen. Diese Regeln ermöglichen es Ihnen, Konsistenz und Ausrichtung an Ihren Kontext in den KI-Antworten zu erreichen. Sie können den Stil definieren, wie Sie die Antworten und den vom Assistenten generierten Code wünschen. Zum Beispiel können Sie in einer Regel definieren, dass die Tailwind-Bibliothek immer für das Frontend-Styling oder camel case für das Naming verwendet werden soll.
Wählen, wann man es nutzt und wann nicht: Mit der Praxis lernt man, für welche Aufgaben es nützlich ist, KI einzusetzen, und für welche es kontraproduktiv ist. Als allgemeine Regel gilt: Wenn die Aufgabe komplex oder stark von unserem Kontext abhängig ist, scheint es vorzuziehen, ohne KI zu beginnen und sie begrenzt für spezifischere und einfachere Aufgaben einzusetzen. Für einfachere und sich wiederholende Aufgaben wird KI uns tatsächlich viel Zeit sparen.
Ein Forum zum internen Erfahrungsaustausch schaffen: Niemand ist besser geeignet als Kollegen, die Projekte und Kontext teilen, um ihre Erfahrungen zu teilen und zu lernen, was am besten funktioniert. Ein Slack-Kanal, ein Wiki oder ein geteiltes Dokument, in dem Erfahrungen festgehalten werden, kann das kollektive Lernen und die Identifikation von Best Practices für Ihren spezifischen Kontext beschleunigen.
Anwendungsfälle
Generative KI-Assistenten, die in die IDE integriert sind, unterstützen weit mehr Anwendungsfälle als nur das Schreiben von Code. Im Bild sehen wir einen Stackoverflow-Bericht über die Nutzung von KI im Jahr 2024, der zeigt, wie Entwickler die Technologie nutzen.

Informationssuche. Ermöglicht es uns, Fragen direkt zu stellen und verhindert, dass wir die IDE verlassen müssen, um einen Browser zu öffnen und bei Google zu suchen.
Code-Review. Die KI bitten, den Code auf Fehler, Probleme und Sicherheitsrisiken zu überprüfen; ein Referenzleitfaden kann bereitgestellt werden, damit sie weiß, wie die Überprüfung durchzuführen ist.
Tests erstellen. Wenn wir Code ohne Tests haben, können wir sie bitten, Unit-Tests für uns zu erstellen. Es wird empfohlen, ihr eine Referenz wie eine andere Testdatei zu geben, um konsistente Tests zu erstellen. Sie kann auch für TDD verwendet werden, wobei man sie bittet, mit den Tests zu beginnen, und wir sie verwenden, um die Funktionalität zu entwerfen.
Debugging. Wenn wir den Fehler-Stack-Trace einfügen und den Code-Kontext bereitstellen, kann sie debuggen und Lösungen vorschlagen, die oft korrekt sind. Es ist auch sehr nützlich, wenn wir sie bitten, Traces und Logs zum Code hinzuzufügen, um uns beim Debugging zu helfen.
Refactoring. Bei vorhandenem Code kann sie gebeten werden, beim Refactoring gemäß einem Leitfaden für Best Practices und Stil zu helfen.
Legacy-Code verstehen. Sie bitten zu erklären, Diagramme zu generieren, Fragen zu stellen, usw.
Dokumentation. Sie ist sehr effektiv beim Erstellen einer Struktur und eines Gerüsts und erspart uns den Start mit einer leeren Seite. Wir werden wahrscheinlich Dinge überprüfen und ändern müssen. Wir können Vorlagen für die Strukturierung der Informationen bereitstellen.
Brainstorming und Planung. Wenn wir ein neues Projekt oder eine neue Aufgabe angehen und Optionen erkunden möchten, kann der Assistent gebeten werden zu helfen und mehrere Ansätze vorzuschlagen. Ein Vorteil von LLMs ist die Generierung vieler Optionen, da sie mit riesigen Datenmengen trainiert wurden.
Spezifikationen. Wenn die Aufgabe nicht ausreichend spezifiziert ist, kann der Assistent verwendet werden, um eine Spezifikation vorzuschlagen, die als Basis für die Verfeinerung und Erlangung der gewünschten Spezifikation dient.
Technische Entscheidungen bewerten. Bei der Wahl zwischen verschiedenen Technologien oder Lösungen für ein Problem kann KI helfen, indem sie die Vor- und Nachteile jeder Option auflistet und die Punkte vertieft, die wir vertiefen möchten, um eine fundiertere Entscheidung zu treffen.
Aufgaben in der lokalen Umgebung automatisieren. Es funktioniert sehr gut für die Erstellung von Skripten, die lokale Arbeit automatisieren.
Migration zu anderen Technologien und Sprachen. Zum Beispiel die Migration eines Projekts von Java 8 auf Java 24 oder die Migration des verwendeten ORM.
Deployment- und Integrationsautomatisierung (CI/CD-Pipelines). Besonders wenn wir ein neues Projekt beginnen, ermöglicht es uns, Pipelines für die Plattform, die wir haben, in sehr kurzer Zeit zu erstellen.
Den Code barrierefrei machen. Es ist normalerweise eine etwas mühsame, aber sehr notwendige Aufgabe, die in der Regel nicht übermäßig komplex ist, was sie zu einem idealen Anwendungsfall für den Einsatz von KI macht.
Analyse von Logs und großen Datensätzen. Besonders wenn wir an der Untersuchung von Problemen in der Produktion arbeiten, kann KI uns erheblich bei der Analyse von Daten und der Erkennung von Mustern helfen. Anstatt jedoch ein Log an die KI zu übergeben, um Fehler zu extrahieren, ist der ideale Ansatz, sie ein Skript dafür konstruieren zu lassen. Dieser Ansatz liefert viel bessere Ergebnisse und verhindert, dass wir Produktionsdaten mit der KI teilen müssen.
Zusammenfassung
Generative KI-Assistenten in der Entwicklung sind gekommen, um zu bleiben, daher ist es wesentlich zu lernen, wie man das Beste aus ihnen herausholt, um die Entwicklung zu beschleunigen und die Softwarequalität zu erhöhen. Wenn Sie nur einige wenige Ideen aus diesem Dokument mitnehmen sollten, dann diese:
(Qualität) Fokus auf gute Entwicklungspraktiken zur Sicherung von Qualität und Sicherheit.
(Überprüfung) ALLEN generierten Code überprüfen.
(Verantwortung) Der von der KI generierte Code liegt weiterhin in IHRER Verantwortung.
(Teile und herrsche) Kleine Iterationen bevorzugen: Prompt -> Überprüfung und Anpassung -> Test.
(Kriterium) Entscheiden, wann man es nutzt und wann nicht.
(Gemeinsames Lernen) Foren zum Wissensaustausch im Unternehmen schaffen.
Als Fractional CTO habe ich mehreren Unternehmen geholfen, generative KI als Teil ihrer Entwicklungsprozesse einzuführen, daher weiß ich, wie man eine Strategie definiert und umsetzt, die den Wert dieser Werkzeuge maximiert und gleichzeitig Risiken begrenzt. Wenn Sie erwägen, diese Assistenten einzuführen und dies auf robuste Weise mit Garantien tun möchten, kann ich Ihnen helfen.