- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java开发规范讲解
目录 开发规范的重要性 定义规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少出现错误的几率。 减少维护成本; 一个软件的生命周期中,80%的花费在于维护,另一方面,几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护,规范的编码减少人员变动带来的维护成本。 改善软件的可读性 可以让程序员尽快而彻底地理解新的代码。 程序的坏味道 1)在循环中对字符串操作时用String 2)不考虑Windows与Unix平台的互移植性 3)滥用synchronized 关键字 4)在循环中构造和释放对象 5)对文件或者数据库的操作不及时关闭 6)不写Main()方法 7)一个方法的代码过长,超过1000行 8)不写注释,或者注释不清晰;命名不规范;排版格式混乱,不注意缩进与对齐等 9)滥用public公共类定义 10)在程序中使用硬编码 11)出现http 404或http 500错误 12)在JSP页面中使用JDBC API,直接写SQL语句以及业务逻辑代码 13)在程序代码中存在垃圾数据文件(例如.bak,keep, cvs文件夹等) 14)JSP或者Java源文件文件中有^M的问题 15)所有调试信息直接System.out.print打印到控制台 16)对数组为空、数组越界、页面传递的参数为空等异常情况不做任何处理 17)上传附件的代码中,不检查文件名长度以及附件的文件大小不做限制 18)Socket,JDBC资源,File(I/O相关), LDAP连接,JMS连接,EJB,Non-Serialable Object等对象放入Session 19)方法的参数很多,超过5个 程序的坏味道(1) 在循环中对字符串操作时用String String sentence = ; for( int i = 0; i wordArray.length; i++ ) { sentence += wordArray[ i ]; } 用StringBuffer.append()优化,优化后为: StringBuffer buffer = new StringBuffer( 500 ); for( int i = 0; i wordArray.length; i++ ) { buffer.append( wordArray[ i ] ); } String sentence = buffer.toString( ); 程序的坏味道(2) 考虑Windows与Unix平台的互移植性 换行符 System.out.print(Hello,world!\n); 优化后: System.out.println(Hello,world!); 或者你构造一个带换行符的字符串: String newline = System.getProperty(line.separator); System.out.println(Hello world + newline); 路径分隔符 在UNIX和Windows环境下,会采用不同的路径分隔符,如Windows中用”\”,而UNIX下一般采用”/”,因此为了保证系统的可移植性,需要分别进行处理。 String file_path = dir + “/” + file_name; 优化后: String file_path = dir + File.separator + file_name; 程序的坏味道(3) 滥用synchronized 关键字 public ? class ?LazySingleton { ???? private ? static ?LazySingleton?m_instance = null ; ???? private?LazySingleton(){}; ?????synchronized?public?static?LazySingleton?getInstance(){ ????????if(m_instance==null) ????????????m_instance=new?LazySingleton(); ????????return?m_instance; ????} } 程序的坏味道(4) 在循环中构造和释放对象 程序的坏味道(5) 对文件或者数据库的操作不及时关闭 FileOutputStream fos = new FileOutputStream(projectFile); project.save(fos, “IDE Project File”); FileOutputStream fos = new FileOutpu
文档评论(0)