前段时间阿里开源了《阿里巴巴 JAVA 开发手册》,里面详细叙述了有关编程命名、sql规约、工程规约等内容,作为一个初学者,只讨论一下-编程规约-的部分。

这几天又重新回去看了看JavaSE的部分,使用的是毕向东的系列视频,别嫌弃人家是培训机构,这个系列的课程确实讲的很好,而且经典基础的部分改动很少,是不?

一、一般的参考书上对标识符定义的要求以下几个:

阿拉伯数字0-9,不做开头;
字符a-z,大小写皆可;
符号‘_’‘$’可用,其他符号不可用,可做开头;
非关键字;

这几个要求挺好满足的,很容易注意到,也很容易记住,但是这还不够,下面是几条我特别赞同的。

(1)Java里禁止使用那两个符号_ 、作为开头。(所以这里我有些费解)

(2)包名、类名、方法名、常量名、变量名,这几个点很好理解。

包名采用三段式命名,默认全部小写

【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

类名,首字母大写,并且遵循驼峰形式

【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: (领域模型的相关命名) DO / BO / DTO / VO 等。

方法名、常量名、变量名(成员,局部),首字母小写,驼峰形式

【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

有几点不理解的:

1关于不能使用下划线和美元符号作为变量或者方法开头的规则,为什么要这样用呢,记得初学的时候明确写着可以用,而且javascript和python都在大量使用这类命名方式。

2关于数组的命名方法,‘7. 【强制】中括号是数组类型的一部分,数组定义如下: String[] args;反例: 使用 String args[]的方式来定义。’,这两种类型的却别大吗?先留下一个坑,以后学静了再来填上。


这份文档的内容很多,对很多内容进行了限定,初拿到这份文档的时候,感觉真是‘繁文缛节’,后来随着学习的深入,意识到这些内容的价值不仅仅是一本关于命名规范的手册,还是对整个团队协作的大改进。

我们都知道Java是强类型语言,本身就制定了很多规范,正式这些规范造就了Java,现在回想那些动态语言,很多地方让人费解,在此留坑,日后再来填上。

最新文章

  1. SQLite剖析之锁和并发控制
  2. Quartz 入门详解
  3. Android UI 绘制过程浅析(四)draw过程
  4. Tableview 优化Cell的复用机制01
  5. C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法
  6. A WCF-WPF Chat Application
  7. 【USACO 1.4.4】母亲的牛奶
  8. KeyValuePair用法(转)
  9. Java(四、类和对象)
  10. MySQL 设置cmd命令行登陆
  11. Uncaught SyntaxError: Unexpected token export
  12. C# 异步通信 网络聊天程序开发 局域网聊天室开发
  13. leetcode5
  14. Java学习笔记46(多线程三:线程之间的通信)
  15. kettle学习笔记(五)——kettle输出步骤
  16. js学习(五)-全局函数和类内部函数区别
  17. centos 使用mutt发送邮件带附件
  18. 模型构建<2>:不平衡样本集的处理
  19. 一个简单的rest_framework demo
  20. poj 3461 - Oulipo 经典kmp算法问题

热门文章

  1. Python基础之常用模块(二)
  2. Spring源码情操陶冶-AbstractApplicationContext#registerBeanPostProcessors
  3. year:2017 month:7 day:19
  4. Base:一种 Acid 的替代方案
  5. iOS底层学习-KVC使用实践以及实现原理
  6. 单词方阵 洛谷 P1101
  7. Xen创建新虚拟机
  8. Vue过渡效果之CSS过渡
  9. 自动生成AWR报告
  10. 一步一步学J2SE-HashMap的实现原理