Standard-Codierungsverfahren und Richtlinien für die Entwicklung von Paketen
- Zuletzt aktualisiert2022/05/19
Standard-Codierungsverfahren und Richtlinien für die Entwicklung von Paketen
In diesem Thema geht es um Standard-Codierungsverfahren und Richtlinien, die die Entwicklung qualitativ hochwertiger Pakete gewährleisten.
- Testen
- Gewährleisten Sie eine hohe Codequalität. Schreiben Sie ausreichende Einheitentests und Integrationstests für Ihr Paket.
- Symbole
- Legen Sie das richtige Symbol für Ihr Paket fest.
- Manuelle Einstellung der Version
- Die Build-Version des SDK-Pakets wird bei jeder Erstellung automatisch aktualisiert. Sie können sie jedoch im Projektbefehl einer gewöhnlichen build.gradle-Datei manuell festlegen.
- Aktualisieren Sie vor einer Build-Erstellung die build.gradle-Datei.
- Geben Sie bis zu vier Ziffern ein, getrennt durch einen Punkt, wie unten gezeigt:
. . . ext { version '2.0.8' } dependencies {...}
- Abhängigkeiten
- Betten Sie alle Abhängigkeiten in Ihr Paket-JAR ein. Laden Sie die Abhängigkeiten zur Laufzeit, indem Sie sie in einen temporären Speicherort extrahieren. Achten Sie darauf, den temporären Speicherort zu bereinigen, nachdem die Abhängigkeiten geladen wurden.
- Abhängige JAR-Dateien
- Fügen Sie abhängige JAR-Dateien in der build.gradle-Datei unter „dependencies“ als Implementierung hinzu, damit die abhängigen JAR-Dateien gepackt werden.
. . . dependencies { compileOnly name: 'command-annotations' compileOnly name: 'bot-runtime' compileOnly name: 'bot-api' implementation name: 'i18n-api' implementation name: 'mydependentjavafile.jar' apt name: 'command-processor' compileOnly group: 'org.apache.logging.log4j', name: 'log4j-core', version: "$loggerVersion" testImplementation "org.testng:testng:$testNgVersion" testImplementation name: 'bot-runtime' testImplementation name: 'bot-api' } . . .
- Neue Aktionen zum vorhandenen Paket hinzufügen
- Wenn Sie neue Aktionen zu einem vorhandenen Paket hinzufügen, sollten Sie es vor dem Packen bereinigen. Es empfiehlt sich immer, den Build mit „gradlew.bat clean build shadowJar“ zu bereinigen.
- Fehlermeldungen
- Stellen Sie aussagekräftige Fehlermeldungen bereit.
- Lösen Sie unbedingt aussagekräftige Fehlermeldungen aus. Wenn Sie beispielsweise in einer lokalen Sprache i18n-APIs mit
BotCommandException
verwenden, lösen Sie eine neue AusnahmeBotCommandException(MESSAGES.getString("Run.Exception.InvalidWorkingDirPath"))
aus. - Lösen Sie keine allgemeinen Fehlermeldungen aus, etwa
ex.message
.
- Lösen Sie unbedingt aussagekräftige Fehlermeldungen aus. Wenn Sie beispielsweise in einer lokalen Sprache i18n-APIs mit
- Basis-Validierung
- Verwenden Sie die in diesem Entwicklungskit enthaltenen Validierungsregeln, z. B.
@NotEmpty
. Fügen Sie keine Basis-Validierungen für Ihren Code hinzu. Einzelheiten finden Sie unter Validierungsanmerkungen. - Schleifen
- Vermeiden Sie lange Schleifen in Ihrem Code. Lange Schleifen können eine hohe CPU-Auslastung verursachen, was zu Fehlern wie „Bot reagiert nicht“ führt.
- Protokollierung hinzufügen
- Verwenden Sie den Standard-Logger log4J, der im Bot-Laufzeit-Framework bereitgestellt wird. Fügen Sie keinen eigenen Logger hinzu. Details finden Sie im Beispielcode.
- Protokollebenen
-
- FEHLER/SCHWERWIEGEND: Schweres Fehlerereignis, das Nutzer beeinträchtigt und für das es keine Problemumgehung gibt.
- WARNUNG: Ein unerwarteter Fehler ist aufgetreten, aber das System hat sich davon erholt.
- INFO: Informationsmeldungen über Zustandsänderungen, z. B. über eine angenommene Anfrage.
- FEHLERBEHEBUNG: Detaillierte Diagnoseinformationen, die zur Fehlersuche benötigt werden, wenn etwas schief läuft.
-
NACHVERFOLGEN: Es werden alle Informationen über das Verhalten einer Anwendung erfasst.
Wenn Sie sich nicht sicher sind, welche Protokollebene Sie wählen sollten, wählen Sie NACHVERFOLGEN.
- Ressourcen laden
- Alle Ressourcen sollten mit dem Klassenlader für den aktuellen Thread-Kontext geladen werden, wie im folgenden Beispiel gezeigt:
Thread.currentThread().getContextClassLoader().getResourceAsStream("resource.json");