阿里Java开发手册:编程规约_命名风格

最近写代码被人吐槽,风格命名以及文件位置都有不少问题,被人安利看一下代码规范。推荐的书就是这个《阿里巴巴Java开发手册》,类似于人家的内部总结,好像纸质版叫什么码出高效。说到看书想起来,第一份做偏维护的工作,那时候组长要求看一下《鸟哥的私房菜》大致看了电子版两遍,纸质版也大致看一遍,当然看的质量也就那样,但是还是很受益,计算机原理,网络,linux操作这些都有涉及,自己上学的知识也唤醒了一点。可能算是我那几年,少有的有收益的东西吧。

文章来源,大家可能网上资料一大堆,然后一到下载发现什么乱七八糟的网盘,CSDN直接就是要收积分,也是没谁了。我推荐的是guthub上的,好处是什么:一不是二手的,有很多鱼龙混杂东西冲进来博关注,这个最起码是人家官方的原版。二是更新,最新的也能看到,我看到一些老哥很热心把资料放出来但是几年过去了,人家已经更新的1.5版本了。

地址

[github上Java开发手册](https://github.com/alibaba/p3c)

你可能发现这个名字不是什么开发手册,其实这个p3c类似他们搞得一个插件什么的,就是保证你代码风格。这个文档在里面的第一级目录可放心食用。

开始读书学习了:

前言

大致扫了一下就是告诉你这本书就是以Java开发者为中心视角,编程规约,异常日志,单元测试,安全规约,MySQL数据库,工程结构,设计规约(其实发现这就是下面几章的标题,但还是挺全的。)

顺便安利一下他们的云效和阿里云插件。

他这里的“强制”,不是说必须要这么做,而是不这么做有风险或者风格不同意,可读性差,所以要求“强制”

编程规约

一 命名风格

强制

(1)代码中命名均不能以<font color="0000FF">下划线或者美元符号</font>来开始,也不能以下划线和美元符号结束。

反例:_ZpHandsome,\$ZpHandSome,ZpHandSome_,ZpHandsome$\

这些一下划线和美元符号\$为开头和结尾的都不行,原因可能是一是标准库里面经常会有用到下划线开头的,如果你注意看console的话,有时候经常会遇到什么\$XXX,_XXX的东西然而和你的代码无关都是加载的库的代码,所以为了不能搞混,就不要下划线和美元符号\$命名。

强制

(2)代码中命名禁止使用拼音与英文混合的方式,更不许用中文的方式命名

<font color="008000">正例</font>:alibaba,huawei,taobao,youku这些都是国际通用的名称视为英文

反例:getPingfenByName(评分)

看得出来就是让你尽可能用英文,确实你中英掺杂会有很多问题,我自己遇到一个命名图灵,拼音Tuling英文Turing看起来差不多实际差很多,你怎么知道他是拼音呢,拼音翻译过来可能对应好几个词,你确定是那个吗?除了一些品牌地名名人这些国际上也这么叫的都统一英文命名。你看马云都是Jacky Ma,都用英文来命名没毛病。

强制

(3)类名使用UpperCamelCase风格,但以下情形例外DO/BO/DTO/VO/AO/PO/UID等

<font color="008000">正例</font>

UserDO,XmlService,TupUdpDeal

<font color="FF0000">反例</font>

XMLService,TCPUDPDeal,javaScriptPlatform

首先这个是**类名**,要求用驼峰来命名,就是一些专有大写的名词也要按照*首字母大写驼峰*除非DO,VO这些。我是没想到这个,我就会很容易写出XMLService,CSVHandler这种命名,这规范要求类的命名必须驼峰不管你什么专有名词。

强制

(4)方法名,参数名,成员变量名,参数变量名统一使用lowerCamelCase

正例

getParams,localValue

和上面的类名不同采用首字母小写的驼峰命名

强制

(5)常量名全部大写,单词间下划线分隔,力求语义表达清晰,不要嫌弃名字长。

正例

MAX_STOCK_COUNT,CACHE_EXPIRE_TIME

反例

MAX_COUNT,EXPIRE_TIME

这里他举得例子还挺有意思的,常量大写大家都知道,下划线也大概都会用,但是例子突出的是一个“语义清晰”,什么最大值,是“存货最大值”(马上就联想到库存),“超时时间”,什么超时时间是“缓存超时时间”

强制

(6)抽象类命名使用Abstract或Base开头,异常类命名使用Exception结尾,测试类命名以他的类名做开头,Test做结尾

正例

UserOrderServiceTest

这里抽象类用Abstract或者Base命名,该有Exception都没说的,我主要是单元测试的测试类经常瞎写一通,这个规范还是有参照意义的。这里提到的不要怕名字长,我记得一本书上也是这么说的,要做到见词知意。

强制

(7)类型与中括号紧挨相连表示数组

正例

定义整形数组 int[] arrayDemo

反例

main参数里,使用String args[] 来定义

这个就是限制数组定义不要出现 int [] numArrs 这样不紧挨着类型中括号的代码了,看起来顺眼点。

强制

(8)POJO类中布尔类型变量都不要加is前缀否则部分框架会引发框架解析引起序列化错误

说明

在本文MySQL规约的建表约定第一条,表达式与否的命名方式采用的是is_XXX,所以在ResultMap中设置is_XXX与XXX的关系

反例

定义基本数据类型为Boolean的 “isDeleted”一个属性,他的方法也是isDeleted RPC框架反向解析的时候会以为这个属性是“Deleted”

难得解释了一下,说明is前缀命名布尔类型属性名有坑的

强制

(9)报名统一用小写,点分隔符之间有且只有一个自然语义的英语单词,包名统一用**单数**形式,类名有复数含义可以用复数来命名

正例>

com.alibaba.ai.util  里面的类名MessageUtils

这个解决了我的一个疑问就是包名怎么命名,我之前会这样“userOrder”看起来像是一个变量名,其实可以分开全部小写user.order来区分。

(10)

(11)

(12)

(13)

(14)

(15)

(16)

(17)

(18)

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