技术派代码约束规范
选中新版正文中的对应文字,然后点“定位到这里”。
以下规范,来源于小米内部资料。
基本规则
- [必须] 使用 Java 8+ 版本。
- [可以] 尝试使用 Java 11 或更高版本,但需要保证兼容.
程序结构和命名
通用规则
- [必须] 使用小写字母来命名目录。如有必要,可以使用连字符 - 来分隔单词。
- [必须] 使用小写字母来命名 package, 使用单数形式,连续的单词连在一起或使用下划线分隔。
- [必须] 使用顶级类的类名来命名 Java 源文件,大小写敏感。
- [必须] 使用 UTF-8 作为文件 encoding , 要使用 Unix 格式,而不是 Windows 格式的换行符。
- [禁止] 使用拼音(部分混合,或全部) 来命名程序元素。
- 例外: 广泛使用的公司、实体、地名等例外,例如 xiaomi / beijing
- [建议] 命名中力求语义表达完整。为达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达。
- [禁止] 使用非常规单词缩写。Abstract -> Abs, Condition -> Condi 均为非常规。
- 有些惯例可以接受: Function -> Func
- [避免] 使用下划线或美元符号作为命名的开始和结束。
- [避免] 使用任何语言的种族歧视性词语。
类/枚举/接口
- [必须] 使用 UpperCamelCase 的风格来命名 class, interface, enum 等类型。 类名如果有复数含义,可以使用复数形式。
- [建议] 对类名中单词的缩写,双单词缩写两个字母都大写,多单词缩写第一个字母大写,其他小写。 如: IO, Tcp, Xml
- 例外: 某些 POJO 类型: DO, BO, VO, DTO
- 习惯用法: Id
- [建议] 按如下惯例使用前缀和后缀:
- 在抽象类命名使用 Abstract 开头 或 Base 结尾;
- 异常类命名使用 Exception 结尾;
- 测试类命名以它要测试的类的名称开始,以 Test 结尾。
- 接口的内部实现类可以使用 Impl 结尾。
- 和阿里规范不同,我们不建议为 enum 添加 Enum 后缀, 因为是否使用 enum 是一种实现决策。
- [建议] 类名可以体现常见设计模式。
public class OrderFactory;
public class LoginProxy;
public class ResourceObserver;
public class LogFacade;
变量/参数
- [必须] 使用 lowerCamelCase 的风格来命名 field, variable, parameter 。
- 例外: 在测试用例中可以使用下划线,例如 testFeatureA_InputB,
- 例外: 序列化的场景中,如果需要与外部格式(例如 json) 保持一致,允许保留下划线。 例如,你构建一个 HttpClient, 访问 github 的接口, 返回的 json 结果使用下划线作为字段名, 序列化为你的 Java 类...
未能定位到原文的划线
已加入星球,可直接知识星球授权登录
二哥编程星球目前包含:
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
真诚点赞 诚不我欺
回复