《构建之法》阅读笔记
软件”和“程序”是什么?
书中用了阿超给孩子题目开始到最后由于学校的需求发展成一个工程的例子,总结出了推论:软件=程序+软件工程。
程序是基本功,在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了一个软件企业的成败。作者通过介绍航空的发展阶段,展示事情的发展规律都差不多,除了遇到问题解决问题之外,提前做好准备才能应对突发情况。从客户的需求出发,思考问题,只有考虑全面,才能快速解决突发情况,减少用户损失。当自己能善于发现问题,解决问题时,才能使得自己更进一步。
绝大部分软件都是由多人合作完成的,在开始组成团队开始开发软件之前,还得确保团队里的成员是合格的软件工程师。为此即单元测试、回归测试和效能分析工具事必要的。一个团队需要一定的流程来管理开发活动,每个工程师在软件生命周期所做的工作也有一个流程。
单元测试
重要的单元测试:有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得到稳定的、量化的保证。
好的单元测试的标准:
在最基本的功能/参数上验证程序的正确性
单元测试必须由最熟悉代码的人(程序的作者来写)
单元测试过后,机器的状态保持不变
单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)
单元测试应该产生可重复、—致的结果
独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性
单元测试应该覆盖所有代码路径
单元测试应该集成到自动测试的框架中
单元测试必须和产品代码一起保存和维护
单元测试的基础上能够建立关于这一模块的回归测试,目的是:
1、验证新的代码的确改正了缺陷
2、同时验证新的代码有没有破坏模块的现有功能,有没有Regression
效能分析工具
效能分析方法:抽样和代码注入
个人开发流程
特点:1、不局限于某一种软件技术,而是着眼于软件开发的流程,这样,开发不同应用的软件工程师可以互相比较。
2、不依赖于考试,而主要靠工程师自己收集数据,然后分析、提高。
3、在小型、初创的团队中,很难找到高质量的项目需求,这意味着给程序员的输入质量不高。在这种情况下,程序员的输出(程序/软件)往往质量也不高,然而这并不能全部由程序员负责。
4、PSP依赖于数据(工程师输入数据的时间代价、数据可能遗失或者不准确的风险、可能会出现一些数据不利于工程师本人的情况)
5、PSP目的是记录工程耐如何实现需求的效率,而不是记录顾客对产品的满意度,工程师有可能很高效地开发出一个顾客不喜欢的软件。

浙公网安备 33010602011771号