Android 代码风格
为什么要强制代码风格
我们旨在维护一个 一致和标准的代码库。通过强制执行代码风格:
- 我们减少 PR 上不必要的评论,使审查者可以专注于逻辑而不是格式。
- 我们确保代码更易于阅读和维护。
语言指南
- 所有代码必须用 英语 编写。
- 避免拼写错误和语法错误。虽然错误是可以接受的(因为许多贡献者不是母语者),但鼓励审查者建议更正。
- 使用拼写检查工具来帮助纠正错误。
KTLint 格式化工具
我们使用 KTLint 来强制执行 Kotlin 代码风格。它已集成到我们的 Gradle 模块中,并通过 .editorconfig
文件进行配置。
自定义规则
在必要时,我们会覆盖一些 KTLint 规则。要启用或禁用某个规则:
- 提交一个 专用的 PR,并对更改进行适当的解释。
- 如果更改影响代码库,请创建 两个提交:
- 一个用于更新规则。
- 另一个用于应用更改。
note
在被覆盖的规则上方的 .editorconfig
文件中添加备注,解释为什么更改了它。如果需要更多解释,可以链接到 GitHub 问题。
运行 KTLint
您可以通过 Gradle 使用 KTLint 自动重新格式化代码:
./gradlew :build-logic:convention:ktlintFormat ktlintFormat
CI 集成
如果检测到 KTLint 错误,CI 将失败,GitHub 会使用生成的 SARIF 报告在 PR 中报告该错误。
Yamllint
我们使用 Yamllint 来强制执行 YAML 格式 。所有 YAML 文件遵循 github
格式。
运行 Yamllint
在存储库根目录运行以下命令以检查 YAML 格式:
yamllint --strict --format github .
note
Yamllint 不会重新格式化您的代码;它仅报告需要修复的错误。使用您的 IDE 代码格式化工具或手动修复问题。
CI 集成
如果 YAML 格式无效,CI 将阻止 PR。
避免使用 TODO
代码中的 TODO 在时间推移中往往被遗忘。当某人稍后阅读它们时,它们通常已经过时或不相关。我们建议您在代码中避免使用 TODO。然而,如果在审查过程中,您和审查者一致认为某些内容需要稍后处理,则应创建一个 TODO
。为了正确跟踪 TODO,请始终将其与 GitHub 问题关联。
示例
// TODO 缺失功能(链接问题 #404)
常量
命名约定
我们遵循 Kotlin 属性命名指南。