【建议大家尝试早睡觉,多运动,不吃宵夜,不抽烟,不喝酒,早睡早起,养成一个良好的生活习惯,久而久之,你就……一个朋友都没有了,好可怜的样子啊!】
大家好,我录制的视频《Java之优雅编程之道》已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定会收获到很多知识的。谢谢大家的支持……
视频地址:http://edu.csdn.net/lecturer/994
项目开发过程中应该注意的几点编码规范???
本来不想写这篇文章的。之前在《优雅编程系列》的文章中,都有提过了。但是主管说要收集一些编码规范的建议,就针对公司情况.下面分享几点,get起来,以后不要再犯了……
不用再加public修饰
可以避免空指针。
如:
if("123".equals(str)){
}
类中import 没用的类要及时删除。
for (int i = 0, int length = list.size(); i < length; i++)
如:
for (int i = 1; i <= count; i++){
Object obj = new Object();
}
改为:
Object obj = null;
for(int i = 0; i <= count; i++){
obj = new Object();
}
如:
public class A{
private static B b = new B();
}
此时静态变量b的生命周期与A类相同,如果A类不被卸载,
那么引用B指向的B对象会常驻内存,直到程序终止
如:return null;
1.返回List:
private List sortDecisionAndBackTask(List pcsTaskDTOList) throws Exception{
if(CollectionUtils.isEmpty(pcsTaskDTOList)) return null;
}
解决方法:
private List sortDecisionAndBackTask(List pcsTaskDTOList) throws Exception{
if(CollectionUtils.isEmpty(pcsTaskDTOList)) return Collections.EMPTY_LIST;
}
2.返回Set:
Collections.EMPTY_SET
3.返回Map:
Collections.EMPTY_MAP
小心第三方测试公司弄死你!
如:
/**
* 只做一件事
*/
public void onlyDoOneThing(){
String ay = "";
Boolean flag = true;
/** 第一层级 不错 **/
if(flag){
/** 第二层级 还能接受 **/
if(flag){
/** 第三层级 没法接受了 **/
if(flag){
}
}
}
}
如果一个方法的代码超过一屏幕,建议拆分为多个
如:
if(){
..业务代码1
}else{
..业务代码2
}
for(int i=0;i<100;i++){
..业务代码3
}
对于if,和for中的代码,如果是处理业务代码,一般可以抽出单独的一个代码,改成
if(){
method1();
}else{
method2();
}
for(int i=0;i<100;i++){
method3();
}
method1(){
//业务代码1
}
method2(){
//业务代码2
}
method3(){
//业务代码3
}
如果函数超过2元:应该将其中的某些参数封装成类;
例:
/**
* 只做一件事
* @param arg1 参数1
*/
public void onlyDoOneThing(String arg1){
System.out.println("一个参数,不错!!!");
}
/**
* 只做一件事
* @param arg1 参数1
* @param arg2 参数2
*/
public void onlyDoOneThing(String arg1,String arg2){
System.out.println("两个参数,能接受和理解!!!");
}
/**
* 只做一件事
* @param arg1 参数1
* @param arg2 参数2
* @param arg3 参数3
* @param arg4 参数4
*/
public void onlyDoOneThing(String arg1,String arg2,String arg3,String arg4){
System.out.println("3个或3个以上的参数,没法接受!!!");
}
除非那段代码,删掉,人会死掉。
错误注释比不注释跟可怕,最好做到代码既注释。
如:下面提供一个例子,方便理解:
package com.hwy.test;
/**
* 代码整洁之道
* Created by Ay on 2016/7/11.
*/
public class CodeCleanTest {
public static void main(String[] args) {
/** 这段代码是不需要注释的,看方法名称就可以清楚知道意图了 **/
engagements();
boolean isMerryMe = canMerryMe();
if(isMerryMe){//避免括号后面的注释,例如这
getMarried();
/** 删掉被注释掉的代码; **/
//String ring = "";
}
/** TODO注释,提示尚未完成的工作 **/
//TODO 结婚生子
/** 悄悄话内容,这里涉及到一些业务上的事,所以需要注释下 **/
String whisperContent = getwhisperContent();
}
/**
* 获得悄悄话内容
* @return
*/
public static String getwhisperContent(){
return "XXX OOO";
}
public static void engagements(){
System.out.println("约会");
}
public static boolean canMerryMe(){
boolean isLoveMe = true;
if(isLoveMe)return true;
return false;
}
public static void getMarried(){
System.out.println("结婚");
}
}
时间一长,自己都不清楚自己当初的命名是什么意思
比如小写字母l和大写字母O,因为他们和数字的1和0很像(老话题了)
如:
public void getUsers();
public void getData();
public void isCompleted();
应该保持一致,比如对于绑定数据的方法,不要有的地方用BindData,而另一些地方使用DataBind ;
例:
//错误
String userList = "";
//正确
List userLit = new ArrayList<>();
错误:
int s = 0;
for(int i=0;i<100;i++){
s = s + i;
}
正确:
//起码sum在搜索时比较方便
int sum = 0;
for(int i=0;i<100;i++){
sum = sum + i;
}
以不拖动滚动条为准则,代码行长度80个字符可以接受,最多120个字符,再多,你想逆天啊!
代码部署到生产环境前,去掉全部System.out.println
来自 弗兰西斯·培根《培根论人生》
【有个小弟在脚踏车店当学徒。有人送来一部坏了的脚踏车,小弟除了将车修好,还把车擦拭得漂亮如新,其他学徒笑他多此一举。车主将脚踏车领回去的第二天,小弟被挖到他的公司上班。启发:原来出人头地很简单,勤快点就行】
【1】写出优雅性能的JAVA程序必须遵守的35个原则
【2】Effective java 第二版本
【3】clean code(代码整洁之道)
【4】Thinking in Java(Java编程思想)
如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎点赞、顶、欢迎留下宝贵的意见、多谢支持!