正规的项目一般都会有代码规范,从变量定义到层级结构,林林总总,大部分coder会感到工作受到限制,以下是个人觉得靠谱的简单几点,如果能做到,保证你的代码易读且容易维护,不信请看。
心法:only one
一个类只干一件事,一个方法只干一件事,一个变量只干一件事
1,变量: 一个变量一个作用
Bad case
public void printSquareInfo(){
double result = 2*(height+width);
System.out.println(result);
result = height * width;
System.out.println(result);
}
Good case
public void printSquareInfo(){
double girth = 2*(height+width);
System.out.println(girth);
double area = height * width;
System.out.println(area);
}
2, 表达式:避免过长表达式
Bad case
if (userID != null && !(Constants.EMPTY_STRING).equals(userID.trim()) && (Double.parseDouble(money) != 0.0 || ("money").equalsIgnoreCase(fieldName)))
Good case
if(isShowAsLink(pojo, fieldValue))
3,方法:
1>圈复杂度别超过10,即一个方法里面不要超过有9个if;
2>行数尽量不要超过25
3>方法名能表现它所做的一切,如果描述作用导致方法名异常的长
解决方案:分割方法
将超过行数的代码压缩到方法中,但要保证相同的抽象级别;
4>参数过多
参数过多就采用Builder模式;
4,类:高内聚
5,框架
6,包结构
o Action层:
§ com.company.projectName.{module}.{sub-module}.action
§ com.company.projectName.{module}.{sub-module}.dto
o 业务层:
§ com.company.projectName.{module}.{sub-module}.service
§ com.company.projectName.{module}.{sub-module}.service.impl
o DAO层:
§ com.company.projectName.{module}.{sub-module}.dao
§ com.company.projectName.{module}.{sub-module}.dao.impl
§ com.company.projectName.{module}.{sub-module}.model
o JSP,resrouces:
§ webapp/jsp/{module}/{sub-module}
§ webapp/javascript/{module}/{sub-module}
§ webapp/css/{module}/{sub-module}
§ webapp/images/{module}/{sub-module}