那些让程序员崩溃又想笑的程序命名…

2次阅读

共计 2294 个字符,预计需要花费 6 分钟才能阅读完成。

本文旨在用最通俗的语言讲述最枯燥的基本知识
===================1===================
到一家创业公司上班的第一天,老员工刘 XX 给我看了公司他负责的项目,奇怪的是,命名是“LiuQXProject”,刘 XX 看着惊愕的我说:“怎么了?有什么错吗?”
===================2===================
给同事做双十一活动相关代码的 review,学到到了很多中英混血单词,获取双十一拼团活动数据的接口叫做“get_ShuangShiYi_GroupTuan_activity_data”,特等奖的命名:TeDeng_price…. 更气人的是,我们活动奖等有十级,他就虔诚地继续 OneDeng_price、TwoDeng_price 直到 JiuDeng_price。。。噢,no!!好气啊!!而且他还把”奖“的单词 prize 写成了 price,怎么说呢?好难受..===================3=================== 公司来了个刚毕业的小伙子,自诩前端未来之星,喜欢研读源码,对开源充满热爱,一个月后,无意间打开他写的一个 js 文件,让我惊讶的是:变量从 a 到 z 全部用完,更气人的是,26 个字母用完之后,他竟然丧心病狂的用起来了双拼,var aa=1,var ab=“12”,var ac=null… 我问他为什么这样命名,他说你没研读 jQuery 源码吗?人家就是这样做的,简洁大气上档次!===================4=================== 因为微信昵称经常有带有一些乱七八糟的表情或者字符,在正常情况下 utf- 8 编码的数据库是存不进去的,因此让同事帮忙写个把微信昵称转换成正常的字符串的一个工具函数,最终我拿到了这个工具函数,名字叫做:convertingWechatNicknameintoNormalCharacters(String nickName)===================5=================== 实习小伙子来的头一天就搞的满身大汗,我说怎么了,他说我明明写了 main 方法,为什么运行不了,我一看代码,我噻~main 写成了 mian,怎么可能跑得起来啊!更残暴的是:苹果手机是 apple_sj,Android 手机是 android_sj,哈哈~

以上的种种让人哭笑不得的命名问题.. 相信很多小伙伴也会碰过这样,有些是因为经验不足,有些是因为一直没有对自己写的代码做一些规范化的工作,有的是因为被老项目、前辈带出来的坏习惯 … 这些都是编程世界里非常不好的行为,拒不完全统计:在一个项目中,程序员 80% 的时间都是在和变量、函数、方法打交道,因此一个好的命名习惯,比注释或一份详细的开发文档都重要。针对于此,小编特意根据行业标准 — 阿里开发文档,做了一些参考和摘抄,整理出一份关于命名方面的规范,给需要的你作参考。
争取多写漂亮代码,少写注释!!!

文章提纲:

整体规范
包规范
类规范
方法规范
OOP 的一些强制规范

1. 整体规范

所有的命名必须以英文意译,不能以中文拼音意译,如:获取我的消息接口,可以写:myMessage;但不能写:myXiaoXi
尽量用精简的英文命名,但要完整表达其意义,杜绝 int a ,int a1 int aa 这种毫无意义的简化写法。
所有命名不能以特殊符号开始,如:_age,_username
常量用全大写定义,单词之间用下划线分割语义,如:public final int REDIS_MAX_IDLE=5;

2. 包规范

包名全小写,不能用特殊符号或者驼峰写法如:com.courseLog.uitl_con 是不合规范的。
包名要符合包的作用,比如数据层要写 dao, 工具包要写 util 等

3. 类规范

类名风格为大写开头的驼峰命名方式,如:ApiController、TestController 等
异常类命名使用 Exception 结尾,如:CustomerException
抽象类命名使用 Abstract 开头,如:AbstractCustomer
测试类命名以它要测试的类的名称开始, 以 Test 结尾, 如:CustomerControllerTest
枚举类命名要以 Enum 结尾,如果 CustomerRoleEnum
其它类型的类命名,在描述类作用的同时,也尽可能表达出类所用的一些设计模式

4. 方法规范

方法名使用驼峰写法,以小写字母开头,如:getUserCourse();
方法内的参数名、成员变量、局部变量均使用驼峰写法,以小写字母开头,如:int userName;
接口类的方法和属性不要加上任何修饰符,保证代码的简介。
方法定义必须要有注释,包括(方法作用、参数名、返回类型、创建时间等)
Service/DAO 层方法命名规约:

1) 获取单个对象的方法用 get 做前缀。2) 获取多个对象的方法用 list 做前缀。3) 获取统计值的方法用 count 做前缀。4) 插入的方法用 save/insert 做前缀。5) 删除的方法用 remove/delete 做前缀。6) 修改的方法用 update 做前缀。

5. OOP 的一些强制规范

尽量避免使用可变参数编程,相同参数类型, 相同业务含义, 才可以使用 Java 的可变参数, 避免使用 Object
接口过时必须加 @Deprecated 注解
不能使用过时的类或方法
所有的相同类型的包装类对象之间值的比较, 全部使用 equals 方法比较
类内方法定义顺序依次是: 公有方法或保护方法 > 私有方法 > getter/setter 方法。

觉得本文对你有帮助?请分享给更多人关注「编程无界」,提升装逼技能

正文完
 0