最近大致通读了《构建之法》,以下是我读完《构建之法》的一些心得体会。
本书主要介绍了软件测试、软件工程师的成长、编写代码的规范、团队合作开发软件的重要性、还有开发软件项目的总体流程、IT的发展创新等等,书中的内容丰富多彩,跟其他的软件工程书不一样,其他书往往写得千篇一律,太生硬呆板,而这本书的内容给读者一种欢快的阅读体会,能让人更加的快速去接受里面的内容,并吸收为自己所用;并且里面的内容都举例生活中的例子,使人看上去更加的了解其实软件工程就在我们的身边。
在绪论中说到软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件开发维护。软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)是软件工程的核心内容。综述了一个大纲,思路清晰。
在面对软件bug中,我们要以客户的需求上去分析此问题是否是全局的缺陷,客户想要我们完成的功能我们却没有完成,当然,客户没让我们完成的功能我们也实现了,这同样是一个bug,当我们研发软件的时候,要通过实际的工作收集、提炼需求。需求来自于实际,而不是自己想象出来的,在软件开发的初级阶段。我们要对用户需求的分析有详细的文档说明,包括对将来发展的分析和计划,主要功能的设计文档和软件的实际行为一致,每次的修改记录都能看到,关键模块有可以正常执行的单元测试等。
单元测试应该在最低的功能/参数上验证程序的正确性。单元测试必须由最熟悉代码的人来写。单元测试过后,机器状态保持不变。单元测试要快,一个测试运行时间是几秒钟,而不是几分钟。单元测试应该产生可重复、一致的结果。独立性,单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。单元测试应该覆盖所有代码路径,包括错误处理路径,为了保证单元测试的代码覆盖率,单元测试必须测试公开的和私有的函数/方法。单元测试应该集成到自动测试的框架中。单元测试必须和产品代码一起保存和维护。
其实软件工程就是包括了“开发、运营、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营、维护的效率,以及提升用户满意度、软件的可靠性和维护性。”这就是书本中对什么是软件工程的概述。
在软件开发过程中,软件工程肩负着诸多责任。比如说将种种软件确定下来,把资源安排妥当,使工作过程确定清晰,产出稳定可靠。其中大量与人的协作、与时间的较量的经验和体会,都要通过实践才能慢慢累积起来。还有,软件团队的模式各种各样,不同的团队有不同的合作模式,都是基于团队成员的实际情况去规划部署,没有哪个万能的团队方案可以保证结果。有了团队之后,才可以涉及团队流程。也正是因为我们学生往往只有大量的经验,在老师谈瀑布模型,敏捷流程等的时候才会有所理解。 当我们真正身处一个团队项目中时,自己当初不在意的问题往往就成了阻碍项目进度的关键。所以这本书的五、六、七三章提到了多种团队项目的协作方案和理论,也让我也逐渐理解团队的不可缺少的,每一个都是其中一份子,不可缺少。
本次阅读了解到了很多知识。比如一名软件工程师的成长历程,软件的开发流程等,对自己以后的成长很有帮助。