本项目代码规范基于Google Java 编程风格指南。
此外仍需遵守以下规范:
- 对于文件路径,谨慎使用
File
,应使用Path
或URL
。 - 当方法参数可能为
null
时,应添加@javax.annotation.Nullable
注解。 - 当方法返回值可能为
null
时,应使用Optional
作为返回值。 - 当方法参数、返回值不可能为
null
时,应添加@javax.annotation.Nonnull
,并使用Validate.notNull()
检查参数值。 - 任何确认为线程安全的类或认为必须为线程安全的类需注解为
@ThreadSafe
。 - 当方法使用JOML库的向量或矩阵类时,除非需要修改传入参数,否则应当使用其接口(即后带c的类型,如
Vector3fc
,Matrix4fc
)作为传入类型。 - 文件夹、目录和包名名称以单数形式命名。
- 在串行的场景下迭代时,谨慎使用Stream-API。
每一条提交消息由标头、详情和结尾组成。其中标头具有特殊格式,包含类型、范围和主题:
<类型>(<范围>): <主题>
<空行>
<详情>
<空行>
<结尾>
标头必写的,标头中的范围是选写的。
Commit消息中的任一行都不应超过100个字符!这可以使Commit消息在Github和各种Git更易阅读。
结尾应包含一个issue的关闭引用(如果有的话)
例如:
docs(README): update README
feat(Mod): support to load mod in development environment
必须是下述类型之一:
- build: 构建过程或辅助工具的变动
- docs: 文档的更改
- feat: 添加一个新特性
- fix: 修复一个bug
- perf: 提高性能的更改
- refactor: 重构
- style: 不影响代码的更改(空格, 格式化等)
- test: 添加测试
主题包含了对更改的简洁描述:
- 使用祈使句,现在时:“change”而不是“changed”也不是“changes”。
- 不要大写第一个字符
- 结尾没有句号(.)
和主题中的一样,使用祈使句,现在时:“change”而不是“changed”也不是“changes”。详情应该包含更改的原因,和其与此前的对比。
结尾可包含issue的关闭引用或破坏性更改的详细信息。
如果要恢复以前的Commit,则其标头应由revert:
开头,后接标头的主题。在详情中应写This reverts commit <hash>.
,其中hash是要还原的commit的SHA。