读《构建之法》的心得体会
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读《构建之法》的心得体会相关的知识,希望对你有一定的参考价值。
最近通读了《构建之法》,这本书来源于作者和国内多所大学进行软件工程共同合作教学经验的积累,书介绍了不少IT业正在使用的理论和技术,并且从从这些新思想、新技术中总结出对自己在未来的工作中有用的东西。以下是我读完《构建之法的一些》心得体会和疑问。
本书主要介绍了软件测试、软件工程师的成长、编写代码的规范、团队合作开发软件的重要性、还有开发软件项目的总体流程、IT的发展创新等等,书中的内容丰富多彩,跟其他的软件工程书不一样,其他书往往写得千篇一律,太生硬呆板,而这本书的内容给读者一种欢快的阅读体会,能让人更加的快速去接受里面的内容,并吸收为自己所用;并且里面的内容都举例生活中的例子,使人看上去更加的了解其实软件工程就在我们的身边。
在绪论中说到软件工程包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件开发维护。软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)是软件工程的核心内容。综述了一个大纲,思路清晰。
在面对软件bug中,我们要以客户的需求上去分析此问题是否是全局的缺陷,客户想要我们完成的功能我们却没有完成,当然,客户没让我们完成的功能我们也实现了,这同样是一个bug,当我们研发软件的时候,要通过实际的工作收集、提炼需求。需求来自于实际,而不是自己想象出来的,在软件开发的初级阶段。我们要对用户需求的分析有详细的文档说明,包括对将来发展的分析和计划,主要功能的设计文档和软件的实际行为一致,每次的修改记录都能看到,关键模块有可以正常执行的单元测试等。
单元测试应该在最低的功能/参数上验证程序的正确性。单元测试必须由最熟悉代码的人(程序的作者)来写。单元测试过后,机器状态保持不变。单元测试要快(一个测试运行时间是几秒钟,而不是几分钟)。单元测试应该产生可重复、一致的结果。独立性,单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。单元测试应该覆盖所有代码路径,包括错误处理路径,为了保证单元测试的代码覆盖率,单元测试必须测试公开的和私有的函数/方法。单元测试应该集成到自动测试的框架中。单元测试必须和产品代码一起保存和维护。
其实软件工程就是包括了“开发、运营、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营、维护的效率,以及提升用户满意度、软件的可靠性和维护性。”这就是书本中对什么是软件工程的概述。
还有比如书中讲用例子来更加清楚的说明团队和非团队之间的区别,给出了新的定义。“王屋村的居民大智要把一堆砖头从村头搬到村尾。他来到顶球酒吧前,看到三三两两地蹲着一些人,有些人面前放着一块包装箱纸板,上面写着“Java,五毛钱一行”;“网页前端,不酷不要钱”;“转做PS,擅长人体”;“通吃SQL、NoSQL”,等等。
在软件开发过程中,软件工程肩负着诸多责任。比如说将种种软件确定下来,把资源安排妥当,使工作过程确定清晰,产出稳定可靠。其中大量与人的协作、与时间的较量的经验和体会,都要通过实践才能慢慢累积起来。还有,软件团队的模式各种各样,不同的团队有不同的合作模式,都是基于团队成员的实际情况去规划部署,没有哪个万能的团队方案可以保证结果。有了团队之后,才可以涉及团队流程。也正是因为我们学生往往只有大量的经验,在老师谈瀑布模型,敏捷流程等的时候才会有所理解。 当我们真正身处一个团队项目中时,自己当初不在意的问题往往就成了阻碍项目进度的关键。所以这本书的五、六、七三章提到了多种团队项目的协作方案和理论,也让我也逐渐理解团队的不可缺少的,每一个都是其中一份子,不可缺少。
问题1: 成为一个好的程序员需具备哪些条件与素养?
问题2:没有多少项目经验,基础又不是很好的话,该怎样提高自己的能力,该如何调整自己呢?
问题3:在结对编程中,如何才能更好地分配两个人的工作?如果由于某些原因,你的同伴未能完成相应的任务,可是这个任务必须马上要提交,这时候该怎么做?
问题4:如果想成为产品经理,需要具备哪些能力?
问题5:怎样规避项目中存在风险?
以上是关于读《构建之法》的心得体会的主要内容,如果未能解决你的问题,请参考以下文章