A级:
重构:修改软件系统的严谨方法,它在不改变代码的外部表现的情况下改进其内部结构。
测试驱动开发:编写代码之前优先完成该段代码的测试代码。
结对编程:两个程序员挨着坐在一起共同协作进行软件构造活动。分为Driver(驾驶员)负责输入代码和Observer(观察员)进行评审。
软件构造的主要活动:
详细设计
编程
测试
调试
代码评审:评审会议
集成与构建
构造管理
代码设计:(给定代码段示例,对其进行改进或者发现其中的问题)
易读性:
1)格式:使用缩进和对齐、将相关逻辑组织在一起、使用空行分割逻辑、语句分行。
2)变量命名:惯例和规则。
3)注释:文档注释,内部注释
易维护性:
1)小型任务:分解为多个高内聚、低耦合的小型任务。
2)复杂决策:使用布尔变量决策、有意义的名称来封装决策、表驱动编程。
3)数据使用:遍历与目的对应
4)明确依赖关系。
设计可靠的代码:
契约式设计(断言式设计):前置条件满足,后置条件满足
异常:代码开始执行判断前置条件,结束执行后判断后置条件,不符合抛出异常(throw)。
断言:代码开始执行检查前置条件,结束执行后检查后置条件,不符合抛出异常(assert)。
防御式编程:外界发生错误,内部不受损害。会增加复杂度降低易读性和性能,但是增加了可靠性。
使用辅助模型:决策表、伪代码、流程图。
考虑:
1)简洁性、可维护性。
2)使用数据结构消减复杂判定。
3)控制结构、变量使用、语句处理。
4)How to write unmaintainable code
5)防御与错误处理。
表驱动编程:(P307)
通过计算出决策表(P311)来判断是否发生事件(Level Array)。
Java中在Public方法中使用异常,Protected、Private方法中是用断言。
单元测试用例设计:(P313)
根据方法规格或者方法的逻辑结构开发单元测试用例。
软件构造:编码、验证、单元测试、集成测试和调试等工作的结合,生产可工作的软件的过程。简单点说就是以程序员为主完成的综合性任务
B级:
代码质量:
易读性
易维护型
可靠性
性能
安全性
代码复杂度度量:
流程图中V(G)=E-N+2
决策点数量:1开始,遇到if,while,repeat,for加1,case加一
C级:
软件构造是设计的延续
设计是规划软件构造方案的过程
源程序是软件构建方案的最后一个规划
编程属于设计活动
重构的时机:发现了代码的“坏味道”
例如:
太长的方法:太多任务
太大的类:不是单一职责
太多的方法参数:抽象层次太低
多处相似的复杂控制结构
重复的代码
一个类过多使用其他类的属性
过多的注释
测试驱动开发的优点
提高程序的正确性和可靠性
提高设计质量
提高生产力
调试:
过程:重现问题、诊断缺陷、修复缺陷
重现问题
控制输入
控制环境
修复缺陷注意事项:
一次只修复一个缺陷
保留旧版本的备份
使用测试和评审验证修复的有效性
检查和修复类似的缺陷
来源:CSDN
作者:什么你竟然不会敲代码
链接:https://blog.csdn.net/m0_37302219/article/details/104339600