A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 liukun11 于 2017-9-12 20:42 编辑

JAVA 编码规范(命名篇)
何为编码规范?
所谓编码规范,指的是代码编写者(程序猿)在程序编码时所要遵循的约定俗成的规则。
为什么需要遵循编码规范?
有过开发经验的朋友都知道,在软件产品的开发阶段,通常情况不是由一个开发人员独立完成,而是多人协作。试想一下,如果一个产品团队的成员在编写代码的过程中,没有科学统一的规范进行约束,而是按照个人习惯进行编码。那么团队成员将会很难快速清晰的阅读和理解他人的代码。这个问题轻则影响团队的协作效率,延长项目的开发周期,重则引起团队内部矛盾,影响团队和谐。

另外,在一个成熟软件产品的生命周期中,超过 70% 的时间在于产品的维护。更重要的是,绝大多数情况下,会有多个开发人员在不同的阶段参与到维护工作中。如果从最初的开发人员到后面的维护人员也是按照个人的习惯随心所欲的编写代码,那么随着时间的推移,产品的维护难度会变得越来越大。因为,后面的维护人员可能需要去理解和熟悉一个项目中由前面多个参与者留下的多种风格混合的大杂烩代码。因此,你会经常在技术社区,技术交流群里看到很多程序员吐槽,自己刚进入一家公司,接手了一堆「屎一样的代码」。
应该遵循哪些规范?

1.文件编码规范
所有源代码文件采用 UTF-8 编码。避免因开发环境的不同产生中文乱码。
2.命名规范
命名包含 包名,类名, 方法名,常量变量名等。在命名时要力求做到统一,简介,达意。尽可能的避免拼音的出现,某些情况下,实在有困难,至少也要杜绝出现英文和拼音的混合。
2.1 包名
包名总是小写,通常采用公司的域名开始。而且包名的前缀一般是一个顶级域名。如:comcnorgedugovnet 等。另外在包名中尽量不要出现除小写字母和不可避免的数字之外的其它特殊字符。

  
应该是
   
   
而不是
   
  
com.itheima.store
  
  
czbk.itheima.Store_v2.0
  
2.2 类名
类名应该是一个名词,采用大小写混合的方式,每个单词的首字母大写。同时应该避免使用除了已经广泛使用的单词缩写(如,URL,URI,JDBC),但是如果使用缩写,缩写部分字母通常大写。

   
应该是
   
   
而不是
   
  
ProductDao
  
  
productDao或者Productdao
  
  
JDBCUtils
  
  
JdbcUtils
  

类名应该有一个合适的后缀,常用后缀如下表:
  
   
后缀
   
   
含义
   
   
示例
   
  
Servlet
  
  
表示一个 Servlet
  
  
UserServlet
  
  
Service
  
  
表示一个业务类
  
  
UserService
  
  
Dao
  
  
表示这个类中封装了对数据访问的操作
  
  
UserDao
  
  
Bean
  
  
表示这是一个 JavaBean
  
  
UserBean
  
  
Impl
  
  
表示这是一个接口实现类
  
  
UserServiceImpl
  
  
Factory
  
  
表示这是一个产生对象用的工厂类
  
  
BeanFactory
  
  
Util
  
  
表示这是一个工具类
  
  
CookieUtils
  
  
Wrapper
  
  
这是一个包装类
  
  
HttpServletRequestWrapper
  
  
Action
  
  
一个请求处理和逻辑管理类
  
  
UpdateOrderAction
  
  
Filter
  
  
表示这是一个过滤器
  
  
AutoLoginFilter
  
......
一些通用的抽取,或者基类。建议以特定的前缀开始,如 Base
2.3 接口
接口的命名规范基本与类一致。至于接口是否以 Inter 或者 Interface 结尾,并无大碍,采用一致的方案即可。
2.4 方法名
方法名通常以动词作为前缀,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写,遵循驼峰法则。
  
应该是
   
   
而不是
   
  
initData()
  
  
InitData() 或者 initdata()
  

常见的动词前缀如下表:

   
后缀
   
   
含义
   
   
示例
   
  
get
  
  
获得
  
  
getName()
  
  
set
  
  
设置
  
  
setName()
  
  
do
  
  
执行某个任务
  
  
doParseJob()
  
  
insert
  
  
插入
  
  
insertProduct()
  
  
delete
  
  
删除
  
  
deleteProduct()
  
  
update
  
  
更新
  
  
updateUser()
  
  
find
  
  
查找
  
  
findUserById()
  
  
send
  
  
发送
  
  
sendNotificationMessage()
  
  
receive
  
  
接收
  
  
receiveCategoryList()
  
  
create
  
  
创建
  
  
createOrder()
  
  
init或则initialize
  
  
初始化
  
  
initUserInfo()
  
  
prepare
  
  
准备
  
  
prepareResponseData()
  
  
copy
  
  
拷贝
  
  
copyProductList()
  
  
calculate
  
  
计算
  
  
calculateTotalPrice()
  
  
dispatch
  
  
分发
  
  
dispatchRequest()
  
  
analysis
  
  
分析
  
  
analysisMemory()
  
  
convert
  
  
转换
  
  
convertType()
  
  
write
  
  
写入
  
  
writeToCache()
  
  
read
  
  
读取
  
  
readFromCache()
  
2.5 字段
2.5.1 变量
·         第一个单词的首字母小写,其后单词的首字母大写,遵循驼峰法则。
·         变量名应该简洁,便于记忆。但是要尽量避免单个字符的变量名,如 i,j 等,除非是类似于 for 循环中使用的临时变量。
·         变量名不建议以下划线或者美元符开始,虽然语法上是允许的。
2.5.2 常量
·        量应该全部大写。
·        常量的单词间用下划线分割。
·        枚举的命名方式与常量一致。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马