在自己的简历上面添加一个阿里巴巴编码规范认证证书,肯定会是一个加分项,阿里规约是阿里巴巴和开课吧技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与打磨完善,系统化地整理成册。阿里巴巴规范以Java开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度。
手册的愿景是码出高效,码出质量。从愿景能够看出来,这本手册可以快速提高自己的编程效率和编程能力,所以作为一名Java程序员好好学习并且将它赋予实践,是一件多么划算的事情。赶紧进入正题。
1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
反例:_name / __name / $name / name_ / name$ / name__
解释:但是我们发现有很多开源代码是下划线开头,这是为啥呢?因为python下划线开头是内部变量,此规定是让其他语言转过来的开发者更容易理解,作为Java程序员我们直接按照规约来就行。
2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。
说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。
正例:renminbi / alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3
解释:汉字会有编码问题,中文有同音字,Pingfen:评分,平分等,别人在阅读代码的时候可能会产生疑惑。
3. 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。
正例:JavaServerlessPlatform / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:javaserverlessplatform / UserDo / XMLService / TCPUDPDeal / TAPromotion
解释: 现在知道在项目中怎么命名了,不用担心自己命名不规范了,或者可以找出项目中不规范的命名。
DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。
BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。
VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
AO (Application Object) :应用对