java开发规范:效率与避免问题

写大家都看的懂得代码,写健壮不易出错的代码,写运行性能好的代码。

遇到一些代码不忍直视

就好像我这篇…
刚接触正式项目的代码时候,才发现真的是天外有天,我以为我自己练习的代码随便写就算了,没想到,生产环境中的代码也有各种随便:
有一次调bug看旧的代码,首先是,原谅我不懂设计,各个功能的代码不是应该分类别写的吗,包之间应该有很好的区分啊,哪个包存放什么类型功能的代码。有时候也不知道弄的那么复杂干嘛,又不是大的系统。
一般来说同样模块的代码都是放在同一个路径下的,每个类,也是存放这个类相关的所有方法,但是往往就是类里面搞得一团乱,毫无层次感,没有结构,格式化又不好,写的方法名还特高深,看多几眼都不知道这个方法干嘛的,然后特么还不给注释,不给注释就算了,类里面的结构能清晰点吗,同一块功能的几个方法能别插到各个角落里吗,能不能别一个方法写完所有功能,还用上中文拼音了怎么不加上声调呢。
没有必要把事情搞复杂!
写个代码,不是为了耍酷,怎么简单怎么写,越傻越好,让别人一看代码的层次结构就大概知道这个系统有哪些功能模块,然后对应每个模块又能容易的看出来这个模块是怎样的结构实现的,到具体每个类一看里面额的方法,齐齐刷刷的各个方法具体的功能实现清晰的罗列出来。
对于复杂业务逻辑,不单说明方法实现的功能,关键节点还要注释下这样写是基于什么考虑,因为开发者也是深思熟虑之后才决定这样实现,要是给其他人同样的功能,不一定就会按这样的思路写代码,所以注释加上自己的考虑是可以的。

关于包名全部小写:com..*.util

project名称全部小写,类名使用驼峰命名法,首字母大写。
统一规范,这样就免得到时候其他人看的不舒服,大家统一习惯。

路径不要添加空格,避免报错。
代码中不应该出现中文,代码一般是使用ASCII中的字符,避免编译报错
代码命名不应该使用拼音,应该使用英文组合或者英文缩写,这样意思明确。
变量名参数名使用首字母小写的驼峰命名法,以标识这是一个字段。
常量命名强制使用全部大写,字母键“_”分割,比如public static final String SYSTEM_DEFAULT_PORT=”“,jdk里面都这么写。
异常类命名成什么异常(以Exception结尾),比如不好异常NoGoodException,找不到异常ThingNotFoundException
同理,类似的,分类单词放到最后,前面加上具体功能名称,比如AppleTest类,BananaTest,CharacterFilter,UserFilter。。
java中new数组,把[]紧跟String,正确:String[] args = new String[5];
多个参数超长,逗号后进行换行
方法调用的点符号与下文一起换行

命名尽量有意义,比如String userName;public void getSomeObject();
boolean类型字段不用添加is开头,错误:boolean isPerson;因为getter和setter方法会默认boolean字段的前缀是is,比如public boolean isPerson(){return this.person},有些框架直接把getter和setter的is去掉再小写首字母就当成字段用了,比如isSuccess方法,它的字段就是success。 SimpleDateFormat虽然有点像工具类,但是并不是线程安全,不用static修饰
在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使default空语句
判断和方法参数不要使用长表达式,应该使用表达式的结果,先把执行很长的方法或者表达式得到一个结果,再把这个结果作为参数,分清逻辑,不要为了省代码量。
异常不要用来做流程控制,条件控制,因为异常的处理效率比条件分支低

避免混淆与歧义:比如long型不要写long num = 432l而是写成432L
共享常量,根据共享范围独立写在一个constant中,这个constant的级别跟共享范围的级别一样大。

代码缩进不一致的话修改:

tab缩进统一为四个空格:
1、打开选项:General
-> Editors -> Text Editors
在右侧找到Displayed tab width:
把下面的“Insert spaces for tabs” 勾选之后html文件tab变成四个空格
2、“Window -> Preferences ->Java -> Code Style -> Formatter ->edit
Tab policy 右边的下拉框,选择Space only 空格4个
修改下Profile name然后保存
3、设置编码格式,防止linux系统等问题
General -> Workspace,
选择:Text file encoding为UTF-8,
New text file line delimiter为Unix

注释;

运行时程序是不执行注释的,注释的唯一作用就是备注代码编写逻辑,让代码不单单是机器能读,人也能看懂。
java中的注释有几种:

// 简单行内注释,只能写一行

/*
 * 简单块注释,能写多行的注释内容
 */

/**
  * javadoc注释,也就是会生成说明文档的注释
  */

首先如果是类,方法,类字段这些,能够在其他代码中new或者引用的,必须给javadoc注释,因为其他地方的代码,别人也许不想点进来看具体的实现,就是想看下这个类、方法是干嘛用的,所以要给javadoc注释。
至于方法内部的代码注释,使用javadoc注释其他地方也看不到提示,所以使用简单的块注释或者单行注释即可。
对于正在开发的代码,尽量在每个逻辑点都加上注释,虽然看起来注释一片(注释内容力求精简),但是不影响运行性能的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值