Async ist ein Open-Source-Entwickler-Tool, das die drei Komponenten KI-Codierung, Aufgabenmanagement und Code-Review in einem Workflow integriert. Das Tool zielt darauf ab, die Entwicklungsherausforderungen ausgereifter Codebases zu lösen, indem es den gesamten Prozess der Zusammenführung von GitHub Issues zu Pull Requests automatisiert, um die Entwicklungseffizienz zu verbessern. Es setzt zunächst KI ein, um Codierungsaufgaben zu analysieren und Fragen zur Klärung der Anforderungen zu stellen, führt dann Codeänderungen in einer isolierten Umgebung in der Cloud durch und zerlegt große Aufgaben in mehrere Teilaufgaben, die leicht zu überprüfen sind. Auf diese Weise reduziert Async die Häufigkeit, mit der Entwickler zwischen verschiedenen Tools wechseln, erzwingt die Planung vor der Codierung und rationalisiert den Prozess der Aufgabenverfolgung und Codeüberprüfung.
Funktionsliste
- Automatisierte MissionsforschungAsync: Bevor Sie mit der Programmierung beginnen, analysiert Async automatisch die Codebasis und stellt klärende Fragen zu den Aufgabenanforderungen, um sicherzustellen, dass Sie in die richtige Richtung gehen.
- Isolierte Ausführung in der CloudDie Änderung und Ausführung des Codes erfolgt in einer isolierten Umgebung in der Cloud, ohne die lokale Entwicklungsumgebung des Entwicklers zu beeinträchtigen, und der Entwickler kann in der Zwischenzeit andere Aufgaben erledigen.
- Überprüfung der gestapelten VarianzEs zerlegt eine große Aufgabe in mehrere unabhängige Teilaufgaben und Commits und erzeugt gestapelte Diffs, die den Code-Review-Prozess klarer und effizienter machen.
- Durchgängiger ArbeitsablaufAsync wickelt den gesamten Entwicklungsprozess von der Erstellung eines GitHub-Problems bis zur endgültigen Zusammenführung des Codes ab, ohne dass der Benutzer die Anwendung jemals verlassen muss.
- Vereinfachung der AufgabenverfolgungDas Tool kann ausstehende Issues aus GitHub-Repositories automatisch als Aufgaben importieren, ohne dass zusätzliche Projektmanagement-Tools verwendet werden müssen.
- Integrierte CodeüberprüfungCode-Einreichungen können direkt in der Async-App kommentiert und bearbeitet und nach der Überprüfung direkt zusammengeführt werden.
Hilfe verwenden
Async ist eine komplexe Anwendung mit integrierten Front- und Back-Ends und erfordert eine Reihe von Umgebungskonfigurationen für seine Installation und Verwendung. Im folgenden Abschnitt wird beschrieben, wie Sie Async in Ihrer lokalen Umgebung einsetzen und ausführen.
Vorbereitung der Umwelt
Bevor Sie beginnen, vergewissern Sie sich, dass Sie das Tool Python Environment Manager auf Ihrem System installiert haben. Das Projekt empfiehlt die Verwendung vonuv
ein schneller Python-Paket-Installer und -Parser.
Schritt 1: Abrufen des Codes und Einrichten der virtuellen Umgebung
- Klonen Sie zunächst das Code-Repository des Projekts auf Ihren lokalen Rechner:
git clone https://github.com/bkdevs/async-server.git cd async-server
- ausnutzen
uv
Erstellen Sie eine neue virtuelle Umgebung. Dadurch wird eine neue virtuelle Umgebung im Home-Verzeichnis mit dem Namen.venv
Ordner, um Projektabhängigkeiten zu isolieren.uv venv .venv
- Aktivieren Sie die virtuelle Umgebung, die Sie gerade erstellt haben. Führen Sie sie unter macOS oder Linux aus:
source .venv/bin/activate ``` 激活后,你的命令行提示符前端会显示`(.venv)`字样。
Schritt 2: Projektabhängigkeiten installieren
- Nachdem Sie die virtuelle Umgebung aktiviert haben, verwenden Sie die
uv sync
Befehl zur Installation derpyproject.toml
Alle in der Datei definierten Abhängigkeiten.uv sync
- Als nächstes installieren Sie die Pre-Commit-Hooks für die Codeformatierung und die statische Prüfung.
pre-commit install
Dadurch wird sichergestellt, dass Ihr Code bei der Übermittlung automatisch den vom Projekt vorgegebenen Spezifikationen entspricht.
Schritt 3: Konfigurationsdatei
- Umgebungsvariablendatei::
Im Stammverzeichnis Ihres Projekts müssen Sie eine.env
Datei. In dieser Datei werden sensible API-Schlüssel und Konfigurationsinformationen gespeichert. Sie können sich auf die Datei des Projekts.env.local
Datei, um zu sehen, welche Variablen konfiguriert werden müssen.cp .env.local .env
Bearbeiten Sie dann die
.env
tragen Sie Ihre eigenen Konfigurationsinformationen ein, z. B. die Datenbankadresse, den GitHub-Schlüssel und die API-Schlüssel für Anthropic, OpenAI, Google und andere KI-Modelle. - Firebase Konfigurationsdateien::
Das Projekt verwendet Firebase Firestore als Datenbank. Sie müssen die JSON-Schlüsseldatei für das Dienstkonto von Ihrer Firebase-Projektkonsole herunterladen und ihr einen Namen gebenasync-firebase.json
und dann in das Stammverzeichnis des Projekts gelegt. - Google Cloud-Zertifizierung::
Da Async Google Cloud Run zur Ausführung von Cloud-Aufgaben verwendet, müssen Sie sich lokal für Google Cloud authentifizieren. Führen Sie den folgenden Befehl aus. Es öffnet sich ein Browser, der Sie durch die Anmeldeautorisierung führt:gcloud auth application-default login
Schritt 4: Lokal ausführen
- Starten Sie den Backend-Dienst::
Nachdem Sie alle oben genannten Konfigurationen vorgenommen haben, können Sie den Back-End-FastAPI-Dienst starten. Starten Sie ihn mit dem folgenden Befehl, und der Dienst wird auf8000
Hafen, und--reload
bewirkt, dass der Dienst nach einer Codeänderung automatisch neu gestartet wird.uvicorn src.server:app --reload --port 8000
- Codeprüfung und Formatierung::
Wenn Sie Ihren Code manuell formatieren und stilistisch überprüfen möchten, können Sie den folgenden Befehl ausführen:# 格式化代码 uv run ruff format . # 检查代码并自动修复问题 uv run ruff check . --fix
Schritt 5: Führen Sie den Test durch
Um sicherzustellen, dass alles ordnungsgemäß funktioniert, können Sie die mit dem Projekt gelieferten Unit-Tests ausführen:
python -m pytest
Einführung in den Workflow
Wenn Sie Async erfolgreich lokal ausführen, funktioniert es wie folgt:
- Delegation von Befugnissen und Übertragung von AufgabenAsync: Erlauben Sie Async den Zugriff auf Ihr Code-Repository über die GitHub App und es wird automatisch ungelöste Probleme im Repository als Aufgaben importieren.
- ForschungsphaseWenn eine neue Aufgabe erstellt wird, startet Google Cloud Run eine "Recherche"-Aufgabe, die Ihre Codebasis klont, den Code analysiert und Fragen zu den mehrdeutigen Anforderungen generiert.
- DurchführungsphaseNachdem Sie die Frage bestätigt oder beantwortet haben, beginnt eine weitere separate Cloud-basierte Aufgabe mit der Ausführung der Codeänderungen. Dabei wird das Claude Code-Modell verwendet, um einen neuen funktionalen Zweig zu erstellen, die Aufgabe in mehrere Teilaufgaben aufzuteilen und diese nacheinander als Commits einzureichen und schließlich automatisch einen Pull Request (PR) zu erstellen.
- Phase der ÜberprüfungSie können diesen PR in der Benutzeroberfläche von Async überprüfen, deren gestapelte Diffs-Ansicht es Ihnen ermöglicht, die Änderungen der einzelnen Teilaufgaben einzeln zu prüfen. Sie können direkt Kommentare abgeben, und wenn Änderungen erforderlich sind, erstellt das System automatisch eine neue Teilaufgabe; wenn die Überprüfung erfolgreich war, wird der Code zusammengeführt.
Anwendungsszenario
- Beschleunigt die Entwicklung von Funktionen für komplexe Codebasen
Async kann erfahrenen Entwicklern dabei helfen, Änderungen schnell zu finden und weniger Zeit für die manuelle Suche aufwenden zu müssen, indem es die Codebasis automatisch analysiert und die Anforderungen an die Aufgabe durch seine KI-Recherchefunktionen klärt. - Optimierung des Code-Review-Prozesses
In schnell arbeitenden Entwicklungsteams verlangsamen große Pull Requests oft die Überprüfung. Async verbessert die Effizienz und Qualität der Überprüfung, indem es eine große Aufgabe in mehrere logische Unteraufgaben (gestapelte Diffs) aufteilt, so dass die Prüfer sie einzeln aufschlüsseln und die Absicht jeder Codeänderung leichter verstehen können. - Reduzierung der Kontextwechsel während der Entwicklung
Entwickler müssen oft zwischen IDEs, Projektmanagement-Tools (wie Jira oder Linear), Code-Hosting-Plattformen (GitHub) und Kommunikationstools hin- und herwechseln. async integriert diese Prozesse in eine einheitliche Plattform, so dass alles von der Aufgabenzuweisung über die Code-Ausführung bis hin zur Code-Überprüfung an einem Ort erledigt werden kann, was die mentale Belastung durch das Wechseln der Tools drastisch reduziert.
QA
- Was ist das Hauptproblem, das mit dem Async-Tool gelöst wird?
Async konzentriert sich auf die Lösung von Effizienzproblemen, die bei der Entwicklung in ausgereiften und komplexen Codebasen auftreten. Es automatisiert den gesamten Prozess von der Problemerstellung bis zur Zusammenführung des Codes durch die Integration von KI-Codierung, Aufgabenverwaltung und Codeüberprüfung und wurde entwickelt, um den Kontextwechsel für Entwickler zu reduzieren, die Planung im Voraus zu erzwingen und den Codeüberprüfungsprozess zu rationalisieren. - Wie wird Async-Code in der Cloud ausgeführt?
Async verwendet Google Cloud Run, um eigenständige, containerisierte Aufgaben auszuführen. Wenn Code-Änderungen ausgeführt werden müssen, wird ein Cloud-Auftrag gestartet, der das Code-Repository in eine isolierte Umgebung klont, alle Abhängigkeiten installiert und dann den Code mithilfe eines KI-Modells wie Claude Code schreibt und festschreibt, das nach Abschluss automatisch eine Pull-Anforderung initiiert. Der gesamte Prozess hat keinen Einfluss auf die lokale Umgebung des Entwicklers. - Unterstützt das Projekt das Selbst-Hosting?
Ja, da es sich um ein Open-Source-Projekt handelt, bietet Async eine detaillierte Anleitung für die Bereitstellung lokal und in der Cloud. Die Benutzer müssen Cloud Run und Firebase unter ihrem Google Cloud Platform-Konto konfigurieren und die entsprechenden API-Schlüssel bereitstellen, um den gesamten Dienst selbst bereitzustellen und auszuführen. - Ist dieses Tool für unerfahrene Entwickler oder neue Projekte geeignet?
Der Dokumentation zufolge ist Async "für erfahrene Entwickler gedacht, die ihre Codebasis genau kennen". Am wertvollsten ist es bei der Arbeit an großen Projekten mit komplexen Verläufen und Strukturen. Für brandneue Projekte oder junge Entwickler sind die komplexen automatisierten Prozesse möglicherweise nicht notwendig.