Beim Entwickeln von Code müssen Sie ihn häufig testen, bevor Sie ihn in die Entwicklungs- oder Produktionsumgebung übertragen. Das Warten auf eine Bereitstellung mit GitHub-Aktionen oder CDK-Stack-Bereitstellungen mit CDK ist jedoch zeitaufwändig.
Solche zeitaufwändigen Aufgaben sind tödlich Iterationsgeschwindigkeit, Dies ist ein entscheidender Faktor, wenn Sie Code effektiv entwickeln möchten. Dies liegt daran, dass Sie Ihre Implementierungen ordnungsgemäß testen müssen, um sicherzustellen, dass sie funktionieren. Dann müssen Sie es nach jeder Änderung erneut testen.
Mit den neuesten Codierungsagenten ist die Entwicklung vollständiger lokaler Testskripte superschnell und etwas, das ich jeden Tag mache, wenn ich als Datenwissenschaftler Code schreibe.
In diesem Artikel erkläre ich Ihnen, warum Sie ein effizientes lokales Check-Setup erstellen müssen, indem Sie ein Docker-Picture ausführen und Testereignisse senden. Ich zeige auch, wie ich es selbst mache und wie es mir hilft, ein effizienterer Ingenieur zu werden.
Ich werde hauptsächlich darüber sprechen, wie man mit Infrastructure as Code (IaC) arbeitet, denn damit arbeite ich hauptsächlich im Alltag. Das Konzept der effizienten lokalen Ausführung Ihres Codes gilt jedoch für die gesamte Programmierung.

Warum Sie Code lokal ausführen müssen
Zunächst möchte ich erläutern, warum wir Code lokal ausführen müssen. Die einfache Antwort lautet:
Die Iterationsgeschwindigkeit ist einer der wichtigsten Aspekte, um funktionierenden Code effizient in die Produktion zu bringen
Je schneller Sie Ihren Code iterieren können, desto besser. Wenn Sie neue Funktionen entwickeln (oder alte Funktionen reparieren), möchten Sie schnell testen, ob sie funktionieren, und dann den Code iterativ korrigieren, bis er wie beabsichtigt funktioniert.
Wenn Sie vor dem Testen 5 bis 15 Minuten auf die Bereitstellung Ihres Codes warten müssen, liegt ein ernstes Drawback vor. Jedes Mal, wenn Sie nicht in der Lage sind, ein Drawback sofort zu lösen, verschwenden Sie 5 bis 15 Minuten damit, einfach auf die Bereitstellung zu warten.
Stattdessen sollten Sie Ihren Code lokal ausführen. Wenn Sie beispielsweise mit IaC wie AWS CDK arbeiten, können Sie Docker-Photos lokal erstellen und ausführen und so im Wesentlichen die Produktionsumgebung replizieren, jedoch auf Ihrem eigenen Laptop. Auf diese Weise wird die Iterationsschleife vereinfacht und die Zeit, die zum Erstellen des Docker-Photos und zum Ausführen des Codes benötigt wird, verkürzt.
Das Erstellen des Docker-Photos geht normalerweise sehr schnell, wenn man bedenkt, dass Docker frühere Builds zwischenspeichert. Daher verbringen Sie wahrscheinlich die meiste Zeit damit, den Code mit Testeingaben auszuführen und zu überprüfen, ob die Ausgabe wie erwartet ist.
Wenn Sie an einer Webanwendung arbeiten, sollten Sie (und tun dies wahrscheinlich auch bereits) die Anwendung lokal ausführen, bevor Sie Ihren Code bereitstellen. Bei der Arbeit mit IaC sollte es keinen Unterschied geben.
Wie man sich lokal entwickelt, als wäre es eine Produktionsumgebung
Ein wichtiger Aspekt bei der lokalen Entwicklung ist, dass Sie die Produktionsumgebung genau nachbilden können. Wenn Sie IaC schreiben, Docker-Photos erstellen und das Docker-Picture lokal ausführen:
Sie testen mit genau demselben Code und denselben Eingabepfaden, und wenn Sie Ihre .env-Datei in die .env-Produktionsdatei spiegeln, spiegeln Sie auch alle Variablen. Daher ist die lokale Ausführung von Docker-Photos der richtige Weg, wenn Sie dazu in der Lage sind.
Erstellen Sie lokale Skripte mit Codierungsagenten
Vor der Veröffentlichung von Codierungsagenten wie Cursor und Claude Code battle es normalerweise eine mühsame Aufgabe, Code einzurichten, um alles lokal auszuführen. Sie mussten das Docker-Picture korrekt erstellen, es so einstellen, dass es mit Ihrer .env-Datei ausgeführt wird usw. Oder Sie möchten Ihren Code stattdessen lokal als FastAPI-Server ausführen, was in diesem Fall zu ähnlichen Herausforderungen führen würde.
Dies ist jedoch kein Drawback mehr. Um die lokale Ausführung zu starten, gebe ich Cursor normalerweise die folgende Anweisung:
Create a shell script for me to run this code domestically. The shell script
ought to run the docker picture, and have an elective --build flag, which builds
the docker picture earlier than operating it. The docker picture ought to load setting
variables from the .env file.
Dadurch wird ein effizientes Shell-Skript erstellt, das Sie verwenden können. Ich magazine das optionale –– bauen Tag, da es manchmal zeitaufwändig ist, das Docker-Picture zu erstellen, und ich es nicht immer vor der Ausführung erstellen muss.
Außerdem ermöglichen mir die folgenden Faktoren, das Skript problemlos auszuführen:
- Ich speichere niemals tatsächliche Geheimnisse in .env. Ich speichere nur geheime Referenzen, die mein Code dann vom AWS Secrets and techniques Supervisor abruft. Somit kann ich meine Env-Datei pushen, ohne befürchten zu müssen, dass Geheimnisse preisgegeben werden. Darüber hinaus ist es dadurch auch für andere einfacher, die Skripte auszuführen, wenn sie den Code von GitHub abrufen
- Ich erstelle eine weitere Datei mit Testereignissen, in der ich Ereignisse einfach an das laufende Docker-Picture senden kann. Auf diese Weise kann ich die Ein- und Ausgabe einfach überprüfen
- Ich stelle die Testskripte auf Git bereit, damit auch alle anderen Zugriff darauf haben. Dazu gehört wie erwähnt auch die env-Datei, da diese keine Geheimnisse enthält
Jetzt haben Sie genau das Setup, das Sie benötigen, um Ihren Code lokal auszuführen und zu testen. Jedes Mal, wenn Sie Änderungen vornehmen, erstellen Sie das Docker-Picture neu und senden die Testereignisse, um sicherzustellen, dass alles wie vorgesehen funktioniert.
Ich empfehle, diese lokalen Testskripte für alle Ihre Repos einzurichten und sie zur Freigabe an Git zu übertragen. Durch den Zugriff auf diese Skripte wird Ihr gesamtes Crew als Programmierer effizienter.
Weitere Tipps zum lokalen Laufen
Ich möchte außerdem zwei zusätzliche Tipps geben, um angesichts dieser lokalen Testdateien noch effizienter zu arbeiten:
- Führen Sie das Docker-Picture mit Pre-Commit-Hooks aus und testen Sie es
- Geben Sie Ihrem Programmieragenten Zugriff auf diese Skripte
Hooks vorab festschreiben
Pre-Commit-Hooks sind Code, der vor jedem Commit an Git ausgeführt wird. Zu den typischen Pre-Commit-Hooks gehören:
- Laufen Schwarz . zum Formatieren
- Laufen mypy zur Typensicherheit
- Laufen Pytest-Exams um sicherzustellen, dass alle Exams bestanden werden
Ein Pre-Commit-Hook garantiert, dass Sie nie vergessen, solche Befehle auszuführen, bevor Sie Ihren Code übertragen. Das ist unglaublich nützlich und eine große Zeitersparnis. Es fällt mir schwer zu zählen, wie oft ich vor dem Festschreiben vergessen habe, eine schwarze Formatierung durchzuführen, und die Bereitstellungstests schlagen fünf Minuten später fehl, was mich viel Zeit kostet.
Wenn das Erstellen, Ausführen und Testen des Docker-Photos nicht besonders zeitaufwändig ist, empfehle ich, dies auch zu den Pre-Commit-Hooks hinzuzufügen. Auf diese Weise stellen Sie sicher, dass Sie vor dem Pushen von Code getestet haben, ob der Code in einer Produktionsumgebung ausgeführt wird und dass Sie für eine bestimmte Eingabe die erwartete Ausgabe erhalten. Wenn Sie dies als Pre-Commit-Hook implementieren, werden Sie in Zukunft wahrscheinlich viel Zeit sparen.
Gewähren Sie Cursor Zugriff auf Testskripts
Der zweite Tipp ist, dass ich immer Cursor- und Claude-Code-Zugriff gebe, um meine Testskripte auszuführen. Dann sage ich Cursor, dass er die Testskripte ausführen soll, nachdem Änderungen vorgenommen wurden und bevor die aktuelle Implementierung beendet wird.
Wenn Ihr Coding-Agent Docker-Photos ausführt und testet, erhöht sich die Anzahl der einmaligen Implementierungen erheblich
Dadurch sparen Sie viel Zeit, wenn Ihr Coding-Agent eine Funktion implementiert und Sie das Docker-Picture dann manuell ausführen und testen müssen. Wenn Sie nun auf einen Fehler stoßen, müssen Sie diesen in Ihren Codierungsagenten einfügen und der Zyklus wiederholt sich, bis der Code funktioniert.
Dies ist Zeitverschwendung und Sie sollten hart daran arbeiten, dies zu vermeiden. Wenn Sie Ihrem Programmieragenten Zugriff auf die Testskripts gewähren, ist das im Wesentlichen so, als würden Sie Ihrem Programmieragenten ein Werkzeug geben, das die Leistung bei Softwareentwicklungsaufgaben erheblich verbessert. Ich kann gar nicht genug betonen, wie viel Zeit ich dadurch spare.
Abschluss
In diesem Artikel habe ich erläutert, wie Sie lokal realistische Produktionsumgebungen erstellen können, indem Sie Skripts erstellen, um Docker-Photos lokal zu erstellen, auszuführen und zu testen. Dadurch wird die Iterationsgeschwindigkeit verringert, die für einen effizienten Programmierer von entscheidender Bedeutung ist. Darüber hinaus habe ich beschrieben, wie ich das in der Praxis mache: indem ich Cursor auffordere, die Testskripte zu erstellen, und einige Beispielereignisse, die ich auf dem Docker-Picture ausführen kann. Dann gebe ich Cursor und Claude Code Zugriff, um diese Skripte auszuführen, was meine Programmierung erheblich effizienter macht.
Ich glaube, dass eine schnelle Iterationsgeschwindigkeit für quick alle Softwareentwicklungsaufgaben von entscheidender Bedeutung ist und dass Sie danach streben sollten. Das Erstellen lokaler Testdateien und das Gewähren des Zugriffs Ihres Codierungsagenten auf diese erhöht die Iterationsgeschwindigkeit erheblich, weshalb ich glaube, dass es meine Produktivität als Programmierer erheblich gesteigert hat, wenn ich dies selbst getan habe.
👉 Meine kostenlosen Ressourcen
🚀 Verzehnfachen Sie Ihr Engineering mit LLMs (kostenloser 3-tägiger E-Mail-Kurs)
📚 Holen Sie sich mein kostenloses E-E book „Imaginative and prescient Language Fashions“.
💻 Mein Webinar zu Imaginative and prescient Language Fashions
👉 Finden Sie mich in den sozialen Netzwerken:
📩 Abonnieren Sie meinen Publication
✍️ Medium
