Java开发手册(二):命名

从开发中涉及命名的各个点出发,描述其命名建议,方便读者更系统的记忆相关内容。

通用约束

  1. 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
  2. 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
  3. 杜绝完全不规范的缩写,避免望文不知义。反例:AbstractClass“缩写”命名成 AbsClass。
  4. 为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意,如从远程仓库拉取代码的类命名为 PullCodeFromRemoteRepository。
  5. 如果模块、接口、类、方法使用了设计模式,在命名时体现出具体模式。

在日常开发中常见的涉及命名的点有:项目名称、包名、类名、方法名、变量名、数据库名、表名、字段名、索引名称、URL命名、文件名。

1. 项目名称

小写字母或数字,不能使用数字开头,多个单词之间使用中划线连接,能准确的表达出项目的核心作用,如code-generator。(个人推荐)

2. 包名
  • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
  • 如果表示版本关系等特殊情况,可以使用数字,如org.apache.commons.lang3.StringUtils
3. 类名
  • 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO。
  • 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾。
  • 对于 Service 和 DAO 类,基于 SOA 的理念,暴露出来的服务一定是接口,内部的实现类用 Impl 的后缀与接口区别。
  • 枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开,如:枚举名字为ProcessStatusEnum的成员名称:SUCCESS / UNKOWN_REASON。
  • 禁止使用非字母字符,特殊情况下可以使用2、4等数字。
4. 属性名
  • 使用 lowerCamelCase 风格,必须遵从驼峰形式。
  • POJO类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误,如标记删除字段用deleted而不是isDeleted。
  • 尽量不要使用非字母字符
5. 方法名
  • 使用 lowerCamelCase 风格,必须遵从驼峰形式;
  • Service/DAO层方法命名规约
    1. 获取单个对象的方法用get做前缀。
    2. 获取多个对象的方法用list做前缀。
    3. 获取统计值的方法用count做前缀。
    4. 插入的方法用save/insert做前缀。
    5. 删除的方法用remove/delete做前缀。
    6. 修改的方法用update做前缀。
  • 尽量不要使用非字母字符,如数字,下划线,中划线等。
6. 参数名、变量名

使用 lowerCamelCase 风格,必须遵从驼峰形式。

7. 常量
  • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
  • 不允许任何魔法值(即未经定义的常量)直接出现在代码中。反例:String key = "Id#taobao_" + tradeId;
8. 数据库名

尽量和项目名称保持一致,如出现特殊情况按照项目名称命名规则进行命名。

9. 表名
  • 必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字,不允许出现任何大写字母,建议将类名内不同单词用下划线分割作为表名。
  • 表名不使用复数名词,表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数 形式,符合表达习惯。
  • 表的命名可以考虑加上“业务名称_表的作用”,但需要规范统一命名,不要多种方式混合使用,如果表数据不是特别大,没有必要使用。
  • 禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。
10. 字段名
  • 必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字,不允许出现任何大写字母,建议将属性名内不同单词用下划线分割作为字段名。
  • 禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字。
  • 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint ( 1表示是,0表示否)。如标记删除字段deleted对应的字段名为is_deleted。
11. 索引名
  • 主键索引名为 pk_字段名;
  • 唯一索引名为 uk_字段名;
  • 普通索引名则为 idx_字段名。
12. 文件名

必须使用小写字母或数字,禁止数字开头,多个单词使用中划线连接,涉及的内容有:js文件、图片、css文件、jsp页面等(个人推荐)。

13. URL命名
  • 必须使用小写字母或数字,禁止数字开头,多个单词使用中划线连接。
  • 限制URL层级不要太深(个人感觉3层以内较好)。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,928评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,192评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,468评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,186评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,295评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,374评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,403评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,186评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,610评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,906评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,075评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,755评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,393评论 3 320
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,079评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,313评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,934评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,963评论 2 351

推荐阅读更多精彩内容

  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 40,974评论 0 48
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 来源与:阿里云栖 禁止用于商业用途 ps:如果需要电子书 评论你们邮箱 我会发给你们 下面感觉还是有点乱 目录 一...
    小向资源网阅读 7,583评论 0 12
  • 又一次阅读阿里编程规范,发现有不少条目又给忘了,离上次阅读大概一个多月。我的阅读习惯应该还不错,每次看书籍之类的不...
    思与学阅读 3,973评论 5 3
  • 代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯。代码编写规范使用范围:J2EE...
    CoderBigBear阅读 870评论 0 4