开发软件包的标准编码实践与指南
- Updated: 2022/05/19
本主题涵盖标准编码实践与指南,旨在确保开发高质量的软件包。
- 测试
- 确保高质量的代码。 为您的软件包写入充分的单元测试和集成测试。
- 图标
- 为您的软件包设置合适的图标。
- 手动设置版本
- 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");