首页 > 代码库 > 《构建之法》读书笔记一

《构建之法》读书笔记一

通过第一章,我大概了解我将要从这本书中学习什么,如何落实学习。本书的作者——邹老师,通过设定简单的人物和简短的话语,使得书本远离枯燥无味,同时还条理清晰,这加强了我看书的耐心。

     1.1节通过3个简短的对话和一个生活实例,启发我对什么是程序,什么是软件,什么是软件工程,没有使用到算法需不需要学习、掌握,软件和算法,数据结构有无关联等问题的思考。仔细想想发现自己对这些概念模糊,毫无理解。通过继续往下看,我才渐渐的明白了一行行的代码是源程序,能满足各种功能的是应用软件,能保证维修的是软件服务…..也了解到了一个软件不是简简单单就能说写就写的,还需要考虑各种因素,如人们的需求,功能的可行性。当软件团队通过通力合作,克服重重困难写出软件后,需要考虑软件应用问题,是免费提供他人使用,还是收费,还是设有不同的版本再进行收费,这时候我不仅仅要了解什么是软件,还需要知道什么的软件企业的商业模式,要好好的遵循软件行业的职业道德规范。

     1.1.2节通过介绍航空的发展阶段,我明白了软件的发展和其差不多,一样需要从有想法到动手实现,再到不断探索,改进,扩大,形成一个成熟的体系。通过商业软件和爱好者程序,加强了我对商业软件开发的重视,明白开发软件不能随心而行,要多从客户的角度出发,考虑问题,只有充分考虑全面,才能快速解决突发情况,减少用户损失。只有自己能善于发现问题,解决问题时,才能使得自己更进一步,而不是停留练习阶段。

     1.2节详细的给软件工程下定义,介绍软件工程的特殊性,介绍软件工程中的“工程”的由来,讲述了软件工程与计算机科学的关系,软件工程的知识领域,强调了软降工程的目标——创建“足够好”的软件等等,告诉我软件开发中应用工程化原则的重要性;软件工程的魅力;不仅仅要学习好软件工程的知识还要将它和其他学科联合起来学习思考,还要多看书,多多了解软件工程的知识领域,使得自己强大起来;在开发软件时,结合时间,客户需求,争取在最适合的时刻开发出“好”的软件。

     问题:1.1.2最后提到合格的软件工程师,有什么具体的标准吗?还是说能写代码,又能发现问题解决问题就可以成为了呢?我们现阶段可以从哪方面开始培养自己的开发思维和能力,向工程师迈进?

第二章个人技术和流程

     如果说第一章我还有点概念,那么第二章我可以说一窍不通,什么是VSTS,什么是单元测试,什么是回归测试,还是什么是效能分析……好多的新名称,第一次看见,是那么的没有头绪。要不是百度了,仅仅看书,我完全不知VSTS——Visual Studio Team System,是由微软开发的一套具有高生产力、高集成性、可扩展的生命周期开发工具。

     2.1.1节图文并茂的告诉我,单元测试重要作用,可能是自己的能力不足,相关知识了解的太少了,一边看还一边想,单元测试怎么写?写在哪里?什么时候写?就算是按照书本上的代码写,那又用什么工具写?

     当全部看完时,我才明白了一点点,可以用VSTS来编写单元测试,VSTS能为我们提供单元测试的基本骨架;知道单元测试对编程程序是很重要的;在编写规格说明书时,最好能详细规划单元测试;编写时有单元测试的相关步骤,1.设置数据2.使用被测试类型的功能3.比较实际结果和预期的结果。我们在编写时要注意单元测试中的类库,要相对应。

     2.1.2节通过清晰的排版强调了一个好的单元测试的标准是如何产生的。这一小节告诉我:单元测试是在最低的功能或是参数上验证程序的正确性,在一般情况下,单元测试必须由最熟悉程序代码的人来编写,每一个单元测试过后,都不受上一个的影响…..

     2.1.3回归测试,我一看到这这个词语,还以为是将所以的单元测试都放入程序中进行整合,校验。没想到其本意是为了避免程序回归到原来不正常的状态,把所有发现并修复的bug找出路,一个个验证的大规模的全面的测试。

     从2.2节中,我了解到效能分析,本书通过一个例子介绍了VSTS提供了效能分析工具。效能分析的两种方法:抽样和代码注入。这两种方法各有优缺点,所以我们要将两者结合使用,达到最优。本章节有许多的效能分析名词,需要我有所了解,才能体会书本所提到的专有名词。在效能分析时,我们要结合实际报告看代码被调用的次数,了解到它们的耗时间长短,要善于思考,解决某部分代码耗时长的问题,还要考虑某部分的代码所占时间的比例,不可盲目优化。2.2中的提到的Release版本和Visual Studio,我都百度了一下,感觉有点深奥,不太了解。

     2.3个人开发流程,通过书本上大四学生和已工作3年的软件工程师的任务清单,我了解到从学生磨到职业的程序员,不仅仅是指编写代码时能高效率,更是不局限于某一种软件技术,有开发流程意识,花更多的时间来收集数据后,分析提高。

     2.4大节叫我们动手实践,但我未能将书本上的知识了解清楚,不知道如何下手,希望VSTS写的单元测试的例子能再详细点,再多一点。

 问题:a.2.1.2中提到的代码覆盖率是指单元测试能将程序中所有的代码都覆盖了,还是将代码实现的功能路径都实现,或是另有解析?

      b.2.1.2中提到的单元测试应该集成到自动测试的框架中,这是如何实现的呢?

      C.2.1.2中提到单元测试必须和产品代码一起保护和维护,我的理解的单元测试是在VSTS中编写的,产品代码是在某一技术软件编写的,那这两者是如何统一管理?

《构建之法》读书笔记一