《构建之法》阅读笔记01

 “软件工程讲的净是一些奇妙玄幻的概念,拗口的专业名词加上纷繁的复杂的流程”
软件=程序+软件工程(软件企业=软件+商业模式)
软件开发的不同阶段:玩具阶段→业余爱好阶段→探索阶段→成熟的产业阶段
软件所具有的特殊性:复杂性、不可见性、易变性、服从性、非连续性。
重要的单元测试:有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得到稳定的、量化的保证。
好的单元测试的标准:在最基本的功能/参数上验证程序的正确性;单元测试必须由最熟悉代码的人(程序的作者来写);单元测试过后,机器的状态保持不变;单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟);单元测试应该产生可重复、一致的结果;独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性;单元测试应该覆盖所有代码路径;单元测试应该集成到自动测试的框架中;单元测试必须和产品代码一起保存和维护
单元测试的基础上能够建立关于这一模块的回归测试,目的是:验证新的代码的确改正了缺陷;同时验证新的代码有没有破坏模块的现有功能,有没有Regression。

个人感受:以前敲代码只是瞎胡乱搞,老师说要弄什么就弄什么,说怎么弄就怎么弄,或者看别人的来弄,很多时候都不太懂基本的流程,导致十分盲目。程序流程图很重要,之前也没注意过,还有,抄代码不只是抄代码。要解决这个问题,首先要多敲代码,就算是抄别人的也要先研究流程图,在尽量手打一遍,不要只会复制粘贴。以前还有一个不太好的地方就是总想着从头到尾全部手动打出来,在一些小地方还好,不过要是稍微做一些大一点的项目就会出现效率低下的严重问题,这是一个很大的问题,在这里就体现了灵活套用模板的重要性。

原文地址:https://www.cnblogs.com/vvxvv/p/13029992.html