代码开发规范2020/11/24

通用规则

  1. 源代码就是设计:简洁、关注命名、不鼓励太多注释;
  2. 除非特殊原因(比如properties文件固定要求使用ISO-8859-1编码),文件优先选择UTF-8无BOM编码格式;
  3. 在catch{}中严禁使用Exception 的printStackTrace()方法,不能处理的错误建议转为RuntimeException抛出;
  4. 通过finally{}释放关键的资源 ;
  5. 尽力避免 SQL 注入风险:通过PrepareStatement 执行 SQL语句,避免 SQL语句的拼接;
  6. 一般 API 方法名首字母小写, Yigo 二次开发公式方法名首字母大写 ;

关于通用类库

使用推荐的第三方工具库:
Apache Commons:
http://commons.apache.org/

Google Guava:
https://github.com/google/guava

Jodd:
https://github.com/oblac/jodd

1.1 Java程序编码规范

  1. 缩进采用4个空格
  2. 注意{ }的对齐
for (...) 
{    
... // program code
}
  1. 较长的语句、表达式或参数要分成多行书写
  2. 不允许把多个短语句写在一行中,即一行只写一条语句
  3. if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while等语句的执行语句无论多少都要加括号{}。
if(writeToFile){
	writeFileThread.interrupt();
}
  1. 相对独立的程序块之间、变量说明之后必须加空行。
{
代码块
}

变量

{
代码块
}
  1. 逗号、分号只在后面加空格。
int a, b, c; 

比较操作符, 赋值操作符"="、 “+=”,算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格。

if (current_time >= MAX_TIME_VALUE) 
a = b + c;

"."前后不加空格。

p.id = pid;

注释

  1. 类和接口的注释写在包的下面,类和接口的上面

  2. 类属性、公有和保护方法注释:写在类属性、公有和保护方法上面。

  3. 成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地方。

  4. 公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。

/*** 〈一句话功能简述〉
* 〈功能详细描述〉
* * @param [参数1]   [参数1说明]
* * @param [参数2]   [参数2说明]
* * @return [返回类型说明]
* * @exception/throws [违例类型] [违例说明]
* * @see          [类、类#方法、类#成员]
* * @deprecated
* */
  1. 注释与所描述内容进行同样的缩排。
    将注释与其上面的代码用空行隔开。
public void example( ){     
        // 注释
    CodeBlock One	
        
        // 注释 
    CodeBlock Two
    }

命名规范

  1. 包名
    包名采用域后缀倒置的加上自定义的包名,采用小写字母。

  2. 类名
    类名和接口使用类意义完整的英文描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。

OrderInformation, 
CustomerList, 
LogManager, 
LogConfig
  1. 方法名
    方法名使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。
calculateRate
addNewOrder
  1. 变量名
    属性名使用意义完整的英文描述
customerName
  1. 常量名
    常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰。
public final static int MAX_VALUE = 1000;

编码规范

1.明确方法功能,精确(而不是近似)地实现方法设计。一个函数仅完成一件功能,即使简单功能也应该编写方法实现。

说明:虽然为仅用一两行就可完成的功能去编方法好象没有必要,但用方法可使功能明确化,增加程序可读性,亦可方便维护、测试。

  1. 所有的数据类必须重载toString() 方法,返回该类有意义的内容。
  2. 数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close()。
  3. 异常捕获后,如果不对该异常进行处理,则应该记录日志。说明:若有特殊原因必须用注释加以说明。
try{
//.... ...
}catch (IOException ioe){
Logger.error(ioe);
}
  1. 避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量来代替。
private final static int TRUNK_IDLE = 0;
private final static int TRUNK_BUSY = 1;
private final static int TRUNK_UNKNOWN = -1;	

if (state == TRUNK_IDLE){
state = TRUNK_BUSY;
... 
 // program code
}
  1. 数组声明的时候使用 int[] index ,而不要使用 int index[] 。
  2. 调试代码的时候,不要使用 System.out 和 System.err 进行打印,应该使用Logger框架进行统一打印。说明:代码发布的时候可以统一关闭调试代码,定位问题的时候又可以打开开关。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值