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 Ausnahme BotCommandException(MESSAGES.getString("Run.Exception.InvalidWorkingDirPath")) aus.
  • Lösen Sie keine allgemeinen Fehlermeldungen aus, etwa ex.message.
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");