Java开发规范V1.2 - 图文(9)
软件开发项目管理培训
第8章 表达式与语句 8.1 基本原则
表达式和语句应当清晰、简洁,易于阅读和理解,避免使用晦涩难懂的语句。
每行至多包含一条执行语句,过长当换行。
避免在构造方法中执行大量耗时的初始化工作,应当将这种工作延迟到被使用时再创建相应资源,如果不可避免,则当使用对象池和Cache等技术提高系统性能。
避免在一个语句中给多个变量赋相同的值。它很难读懂。 不要使用内嵌(embedded)赋值运算符试图提高运行时的效率,这是编译器的工作。
尽量在声明局部变量的同时初始化。唯一不这么做的理由是变量的初始值依赖于某些先前发生的计算。
一般而言,在含有多种运算符的表达式中使用圆括号来避免运算符优先级问题,是个好方法。即使运算符的优先级对你而言可能很清楚,但对其他人未必如此。你不能假设别的程序员和你一样清楚运算符的优先级。
不要为了表现编程技巧而过分使用技巧,简单就好。
8.2 控制语句
判断中如有常量,则应将常量臵与判断式的左侧。如:
27
软件开发项目管理培训
if ( true == isAdmin())... if ( null == user)...
尽量不使用三目条件判断。
所有if语句必须用{}包括起来,即便是只有一句:
if (true){ //do something...... } if (true) i = 0; //不要使用这种 过多的else分句请将其转成switch语句或使用子方法。 每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位臵添加注释。如:
switch (condition) { case ABC: //statements; //继续下一个CASE case DEF: //statements; break; case XYZ: //statements; break; default: //statements; break; }//end switch 28
软件开发项目管理培训
8.3 循环语句
循环中必须有终止循环的条件或语句,避免死循环。
当在for语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量,而导致复杂度提高。若需要,可以在for循环之前(为初始化子句)或for循环末尾(为更新子句)使用单独的语句。
因为循环条件在每次循环中多会执行一次,故尽量避免在其中调用耗时或费资源的操作,比较一下两种循环的差异:
//不推荐方式____________________________________________ while(index < products.getCount()){ //每此都会执行一次getCount()方法, //若此方法耗时则会影响执行效率 //而且可能带来同步问题,若有同步需求,请使用同步块或同步方法 } //推荐方式______________________________________________ //将操作结构保存在临时变量里,减少方法调用次数 final int count = products.getCount(); while(index < count){ } 第9章 错误与异常 9.1 基本原则
不能有未处理的异常,即不能把异常直接抛给客户;
异常要做日志,不能直接打印到控制台;正式代码中不应出现System.out.println()。
29
软件开发项目管理培训
通常的思想是只对错误采用异常处理:逻辑和编程错误,设臵错误,被破坏的数据,资源耗尽,等等。
通常的法则是系统在正常状态下以及无重载和硬件失效状态下,不应产生任何异常。
对于经常发生的可预计事件不要采用异常。 不要使用异常实现控制结构。 确保状态码有一个正确值。
在本地进行安全性检查,而不是让用户去做。
若有finally子句,则不要在try块中直接返回,亦不要在finally中直接返回。
9.2 已检查异常与运行时异常
已检查异常必须捕捉并做相应处理,不能将已检查异常抛到系统之外去处理。
对可预见的运行时异常当进行捕捉并处理,比如空指针等。通常,对空指针的判断不是使用捕捉NullPointException的方式,而是在调用该对象之前使用判断语句进行直接判断,如:
//若不对list是否为null检查,则其为null时会抛出空指针异常 if(null != list && 0 < list.size()){ for(int i = 0; i < list.size(); i++){ } }
建议使用运行时异常(RuntimeException)代替已检查异常
30
软件开发项目管理培训
(CheckedException),请参考网络资源以对此两种异常做更深入理解。
9.3 异常的捕捉与处理
捕捉异常是为了处理它,不要捕捉了却什么都不处理而抛弃之,最低限度当向控制台输出当前异常,如果你不想处理它,请将该异常抛给它的调用者,对每个捕捉到的异常都应调用日志工具输出异常信息,避免因异常的湮没。
多个异常应分别捕捉并处理,避免使用一个单一的catch来处理。如:
try { //do something }catch(IllegalStateException IllEx){ IllEx.printStackTrace(); //deal with IllEx }catch(SQLException SQLEx){ SQLEx.printStackTrace(); throw SQLEx; //抛给调用者处理 }finally{ //释放资源 } 第10章 测试与Bug跟踪 10.1 基本原则
测试不通过的代码不得提交到svn库release区或者发布。
31
…… 此处隐藏:253字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




