我读《构建之法》一、二、十六章
这几天一直在看书本,诸事繁多,看的比较缓慢。我是总共读了三遍,第一遍是粗略的浏览了一遍内容,第二遍是静下心来圈画重要内容和标注疑惑内容,第三遍是翻看书本、解答疑惑。
我读第一遍时,因为老师在上课时已经讲过一二章的内容,故我看的很快,第十六章还未讲授所以只留了一个基本的印象。我读第二遍时,特意静下心来拿起纸笔在桌前认认真真的读了一个下午。我读第三遍时主要是回忆知识和解答疑惑。那么,我就结合后两遍来主要说一说我的问题以及我的思考。首先来说说第一章,我看到第一小节的标题是“软件=程序+软件工程”,心里很清楚程序是指源代码,那么什么是软件工程呢?为什么“软件=程序+软件工程”呢?后来,我百度了一下,百度百科的说法是“软件是一系列按照特定顺序组织的计算机数据和指令的集合。......简单的说软件就是程序加文档的集合体。......”“软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。”,然而,根据我目前所学的知识,我认为软件工程定义的范围大于软件,我熟知的软件是等于程序加文档加数据的。后来,我在书上第二节小字部分找到了作者关于软件工程的定义“软件工程是把系统的、有序的、可量化的方法应用到软件开发、运营和维护上的过程”,我才理解本书所说的“软件”是指一个完整软件(网页、APP等)是等同于“程序”加“软件工程(开发前后的过程)”。但我的困惑是这样定义是不是有点缩小了范围,除非看到后面作者的想法否则很容易让人误解。
再来说说第二章,第一小节讲的是单元测试,开始直接讲的是单元测试可以让模块保质、之后代码举例创建单元测试的步骤以及单元测试的标准,可是并没有说明什么是单元测试。于是我读的时候一直都很疑惑,究竟什么是单元测试呢?后来我上网查了相关资料,百度百科说“单元测试,是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。”根据我的实践,我认为“单元测试”就是对一个个单元进行测试可行与否。但是我很困惑的是如何对一个个单元竞选如何进行一对一的测试,未免太过于繁重。
最后是第十六章,这章主要讲“创新”,我看了第一小节的“迷思之五:要成为领域的专家才能创新”,我看了里面的文字内容“但是统计表明,70%的创新者说,他们最成功的创新,是在他们拿手领域之外发现的”,有这个问题“难道成为一定要某个领域的之一.......,还比不上观众才能够创新吗”“什么又是创新呢”。我百度了一下,说是“创新是:在经济和社会领域生产或采用、同化和开发一种增值新产品;更新和扩大产品、服务和市场;发展新的生产方法;建立新的管理制度。它既是一个过程,也是一个结果。创新是指以现有的思维模式提出有别于常规或常人思路的见解为导向,利用现有的知识和物质,在特定的环境中,本着理想化需要或为满足社会需求,而改进或创造新的事物、方法、元素、路径、环境,并能获得一定有益效果的行为。”根据我的实践,我得到的经验是创新是根据自己的兴趣爱好和能力来的,与是否要成为该领域的人并无直接关系,而且创新有大有小,无论大小只要有改进我认为都是创新。这一章除此之外目前无其他困惑。
对于我而言,精读是家常便饭,我从小读书的习惯就是如文中这样“一而再再而三”。对于这三章,每一章我都认真看过、思考过,自己从书、网上找答案,但是可能我的经验不足,提出的问题、思考的维度都不够有深意,但这样解决之后,理解也更加深刻。