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