《构建之法》读后感
这学期的软件测试课程多加了《构建之法》这本书,这学期利用自己的课余时间学了这本书,感觉受益匪浅。 对于这本书可以简单地有两个词语来概括:“专业”、“接地气”。
这本书的开头就是给我解释什么事软件、什么是软件工程。上大学将近三年,说实话还没有一次真正的去了解过什么是软件,什么是软件工程,说来还是有些惭愧的。
首先,这是一本全景式图书,会让你更了解这个行业,能让毕业生在对行业从陌生到熟悉的过程中,较少地感到惊讶和出乎意料,这是一本与现实接轨的教材。
其次,这是一本最佳实践式的书,涵盖了科学、健康的软件工程开展中的每个方面,介绍了种种方法论,但不是高高在上、纲领性的方法论,而是方法论的最佳实践,确实可用,拿来就用。
第三,这本书让人有情怀,学生对“古老的”瀑布教材或“舶来的”敏捷书籍,难免会缺乏信心:这东西行吗?适用于现代吗?适用于中国吗?而如果到各大论坛、社区、或者询问“过来人”,往往会收获更多的负面信息,让本来有情怀的学生失望,让本来就缺乏情怀的学生甘心。但很明显我们这个行业需要的是更有情怀的人才、更好的职业道德和素养,如果学生在毕业前就俯首认输,行业还有什么希望可言?邹欣老师的教材会让学生知道“应该如此”而且“可以如此”,从这点上看,功德无量。
第四,这本书在介绍方法论的同时,居然会介绍方法论不适用的场景,介绍方法论在现实中是怎样跑偏的,这就好像讲下棋,“这样走,之后的发展会怎样怎样,所以不行”,怎样做会对,怎样做会错——什么叫宏观视角?什么叫最佳实践?什么叫算无遗策?就像画一棵决策树,向哪个分支走,结果会怎么样,清清楚楚,明明白白,让人信服。
第五,这本书在介绍方法论的时候,并没有把“人”放到“方法论”的下层,而是介绍了种种角色、有血有肉有情绪的人,能让学生了解到工作中接触的种种角色及其想法、诉求,避免“以程序为中心”思考问题,而懂得以人为中心来思考,毕竟程序要解决的,是人的事情。这个思想的转变,对程序员来说,至关重要。
通过这本书我对团队合作又有了新的看法了,我之前认为软件团队的模式就是一个人分配一个模块,自己负责自己的,也没什么模式可言,可是学习了《构建之法》之后,我才了解到原来软件团队有各种模式,并且每种模式都适用于不同的人员和需求。在一个项目的开发过程中,需求分析,把需求抽象成相应的软件模型,思考使用哪种设计模式,框架代码如何拥抱变化。软件工程师不能阻止需求的改变,只能最大限度地拥抱它。软件应做到在只修改配置文件的基础上自由地扩展和裁剪功能。这些是需要在团队动手之前想好的,否则后期会很难受,尤其在项目进度压力大的情况下,一个需求的扩展可能就搞得整个团队紧张兮兮。这真是让我大开眼界。其中让我印象深刻的有业余剧团模式、秘密团队、明星模式等待。这些都和我们的生活息息相关,我没想到原来软件团队模式离我们的生活怎么近。