# 通用

camelCase:小驼峰;
PascalCase:大驼峰、帕斯卡命名法;
kebab-case:短横线隔开命名法。

  • 妙用介词,如for(可以用同音的4代替), to(可用同音的2代替), from, with,of等。如类名采用User4RedisDO,方法名getUserInfoFromRedis,convertJson2Map等。

变量命名的语义约定

位置 单词 意义 例子
pre is 对象是否符合期待的状态 isValid
pre can 对象能否执行所期待的动作 canRemove
pre should 调用方执行某个命令或方法是好还是不好,应不应该,推荐不还是不推荐 shouldMigrate
pre has 对象是否持有所期待的数据和属性 hasObservers
pre needs 调用方是否需要执行某个命令或方法 needsMigrate

方法命名的语义约定

位置 单词 意义 例子
pre is 对象是否符合期待的状态 isValid
pre can 对象能否执行所期待的动作 canRemove
pre should 调用方执行某个命令或方法是好还是不好,应不应该,推荐不还是不推荐 shouldMigrate
pre has 对象是否持有所期待的数据和属性 hasObservers
pre needs 调用方是否需要执行某个命令或方法 needsMigrate
用来检查的方法
pre ensure 检查是否为期待的状态 ensureCapacity
pre validate 检查是否为正确的状态 validateInput
按需求才执行的方法
suf IfNeeded drawIfNeeded
pre try tryCreate

# Java

类型 约束 例子
项目 kebab-case spring-cloud
类名 大驼峰
方法名 小驼峰
变量名 小驼峰
常量名 大写,单词间以”_”分隔 MAX_VALUE

https://blog.csdn.net/weixin_39608748/article/details/110723787 / https://zhuanlan.zhihu.com/p/138429217

包名

Java的包名都有小写单词组成,类名首字母大写;包的路径符合所开发的 系统模块的 定义,比如生产对生产,物资对物资,基础类对基础类。以便看了包名就明白是哪个模块,从而直接到对应包里找相应的实现。

类命名

位置 属性(类) 约束 例子
pre 抽象 Abstract或Base BaseUserService
suf 工具 Utils StringUtils
suf 异常 Exception RuntimeException
suf 接口名 Impl UserServiceImpl
suf 领域模型 DO/DTO/VO/DAO UserDAO
suf 设计模式 Builder、Factory ThreadFactory
处理特定功能 Handler、Predicate、Validator
suf 测试 Test UserServiceTest
suf MVC分层 Controller、Service、ServiceImpl