本主题涵盖标准编码实践与指南,旨在确保开发高质量的软件包。

测试
确保高质量的代码。 为您的软件包写入充分的单元测试和集成测试。
图标
为您的软件包设置合适的图标。
手动设置版本
SDK 软件包构建版本会在每次构建时自动更新。 但是,您可以在通用 build.gradle 文件的命令项目中手动设置版本。
  • 在构建之前,更新 build.gradle 文件。
  • 输入最多四个数字,用句点分隔,如下所示:
. . . ext { version '2.0.8' } dependencies {...}
依赖项
将所有依赖项嵌入到软件包 JAR 中。 通过将依赖项提取至临时位置以在运行时加载。 请确保在依赖项加载后清理临时位置。
依赖 JAR 文件
build.gradle 文件的依赖项中以实施形式添加依赖 JAR 文件,以确保其被打包。
. . . 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' } . . .
向现有软件包添加新操作
向现有软件包添加新操作时,请确保在打包前进行清理。 建议始终执行干净构建:gradlew.bat clean build shadowJar。
错误消息
提供有意义的错误消息。
  • 务必抛出有意义的错误消息。 例如,使用带有 BotCommandException 的 i18n API 的本地语言,抛出一个新的异常 BotCommandException(MESSAGES.getString("Run.Exception.InvalidWorkingDirPath"))
  • 切勿抛出一般性错误消息(如 ex.message)。
基本验证
使用验证注解规则(如包含在此开发工具包中的 @NotEmpty)。 无需为代码添加基础验证。 请参阅 验证注释
循环
避免在代码中使用长时间运行的循环。 长时间运行循环会导致 CPU 占用过高,引发“机器人无响应”等错误。
添加日志记录
使用机器人运行时框架中提供的默认 log4J 记录器。 请勿添加您自己的记录器。 有关详细信息,请参阅示例代码。
日志记录级别
  • 错误/致命: 用户受到影响且没有解决方法的严重错误事件。
  • 警告: 发生意外错误,但系统已从该错误中恢复。
  • 信息: 有关状态更改的信息性消息,例如,已接受的请求。
  • 调试: 出错时调试所需的详细诊断信息。
  • 跟踪: 捕获有关应用程序行为的所有信息。

    如果您不确定日志级别,请将其设置为跟踪

正在加载资源
应使用当前线程上下文类加载器加载所有资源,如下例所示:
Thread.currentThread().getContextClassLoader().getResourceAsStream("resource.json");