对于各种规模的系统,都可以使用Factory Method 来代替其中的Switch语句,该模式可以重用于系统中任何需要创建Transaction 类型场合。
要点:
- 使用布尔表达式简单可读,将非常有助于提高你的代码质量。
- 深层次的嵌套使得子程序变得难以理解。你可以相对容易的避免这么做。
- 机构化编程是一种简单并且仍然试用的思想,可以通过顺序,选择和循环三者组合开发出任何程序。
- 将复杂度降低到最低水平,是编写高质量代码的关键。
软件的外在特性:
正确性,可用性,效率,可靠性,完整性,适应性,精确性,健壮性
软件的内在特性:
可维护性,灵活性,可移植性,可测试性,可理解性
要点:
开发高质量的代码最终并没有要求你付出更多,只需要你对资源进行重新分配,以低廉的的成本来防止缺陷出现,从而避免代价更高的修正工作。
并非所有的的质量目标都可以全部实现,明确那些目标是你希望达到的,并就这些目标和团队成员进行沟通。
有任何一种错误检测方法能够解决全部问题,测试本身不是排除错误的最佳有效方法。成功的质量保证计划应该使用更多种不同的技术来检测各种不同类型的错误。
在构建期间当使用一些有效的质量保证技术,但在这之前,一些具有同样强大功能的质量保证技术也是必不可少的。错误发现的越早,其他与错误代码纠缠就越少,由此造成损失也就越小。
软件领域的质量宝成面向过程的,软件开发与制造业不一样,在这里并不存在会影响最终产品的重复阶段,因此,最终产品的质量受到开发软件所用的过程控制。
协同构建
协同开发,程序员代码复查是比较重要的。
要点
- 结构体可以使得程序更加简单,更容易理解,以及更容易维护。
- 每当你打算使用结构体的时候,考虑采用类会不会工作的更好。
- 指针很容易出错,访问器子程序或类以及防御式编程实践来保护自己代码
- 避免使用全局变量,不只是因为他们很危险,还是因为你可以用其他很好的方式来取代他们。
- 如果你不得不使用全局变量,那么就通过访问器子程序来使用它。访问器子程序能为你带来全局变量所能带来的一切有点,还有一些额外好处。
测试要点:
开发人员测试是完成测试策略的一个关键部分。独立测试也很重要。
同编码之后编写测试用例相比,编写开始之前编写测试用例,工作量和花费的时间差不多,但是后者可以缩短缺陷-侦测-修正这一周期。
即使考虑到了各种的测试手段,测试仍然只是良好软件质量计划的一部分。高质量开发方法至少和测试一样重要,这个包括尽可能减少需求和设计极端的缺陷。在检测错误方面,协同开发的成效至少与测试相当。这些方法所检测的错误类型也各不相同。
你可以根据不同的思路来产生把很多测试用例,这些思路包括基础测试,数据流分析,边界分析,错误数据类型以及正确数据类型等。你还可以通过猜测错误的方式得到更多的测试用例。
错误往往集中在几个容易出错的类和子程序上,找到这部分代码,重新设计和编写他们。
测试数据本身出错的密度往往比测试代码还要高。查找这种错误完全是浪费时间,又不能对代码质量有所改善,因此测试数据里边的错误,更加让人烦恼。要像写代码一样小心的开发测试用例,这样才能避免产生的这种问题。
自动化测试总体来说很有用,也是进行回归测试的基础。
从长远来看,改善测试过程中最好的办法就是将其规范化,并对其进行评估,然后用从评估中获得的经验和教训来改善这个过程。