读《构建之法》

《构建之法》刚面市不就就买了纸质版,后来出了多看版后也第一时间购买了电子版。这也是第一本同时购买了纸板和电子版的技术书籍。周筠老师在微博上催过我几次书评,无奈年后一直忙于公司产品的研发,直到最近才看完,进度很缓慢。

《构建之法》是一本讲软件工程的书,但又不是一本传统的软件工程的书。先说下本书的几个特点:

  1. 接地气,不枯燥,有很多生动的例子;
  2. 沿用了《移山之道》里面的人物虚拟场景,对于之前看过《移山之道》的朋友来说会觉得特别熟悉;
  3. 不按常理出牌,以独特的视角让阅读者能全面了解企业软件开发的过程。

记忆中大学是软件工程课上每次都是老师念PPT,一学期结束唯一记住了的就是瀑布模型。没有项目实践、没有编码。除了瀑布模型里的那几个阶段的概念,还是不知道软件工程到底有什么用。所以当看到《构建之法》这本书的时候,有种相见恨晚的感觉。

在本书的前言部分的课程安排建议、师生关系的比喻以及八条建议直接吸引我将该书看下去。

  1. 课程安排不仅可以对老师和助教提供参考,其中提到的很多在实际软件开发中的工具和方法论,对学生也有很大的参考价值。举个例子,最近半年面试了很多应届生,大多都没有用过源码管理工具,知道Git或使用过Github的更是寥寥无几。我想他们如果有幸读到这本书的话,肯定也会有相见恨晚的感觉;
  2. 师生关系的比喻最终说明一个道理,学习要有主观能动性,记得小时候母亲经常教导我,要将老师“要我学”变成我们自己“我要学”,这样才能提高成绩;
  3. 八条建议是对老师和助教的建议,我倒觉得学生从中也能反推自己应该如何来进行学习。

我理解的软件工程是:利用合适的工具、手段、方法快速、高质量地完成软件开发的过程。而我们学过的软件工程都是自顶向下的,从需求分析、设计、开发、测试到最后的交付。当年在学习软件工程这门课的时候,根本就没有任何编程经验,所以那些理论知识很难理解的很透彻。

在《构建之法》中恰恰是按照最容易理解的步骤,从开发测试、开发人员成长、团队管理一直讲到需求分析、设计以及用户体验等。先让我们知道开发为何物,每个人都有了编码实践的经验后再一步步到需求分析、设计就会理解的更透彻。

一本好书除了本身的内容外,还需要能引发读者思考,能够学习到更多的扩展知识。记得之前网上有人回答怎样找到一本好的技术书时说过:

在一本经典的书籍上找找所参考的书籍或引用的书籍,大致都还不错。

我认为还是挺有道理的。《构建之法》的正文以及练习与讨论中有大量有价值的引用,这些内容可以让我们了解更多更广的知识,练习中大量的习题如果都能够独立思考并想办法解决的话,对我们的实际动手能力会有很大提升。

总之,这是一本值得反复阅读的技术书、一本可以教会我们怎样去做好一名合格软件工程师的书、一本无论是对在校学生还是一线软件工程师都会受益的书、一本很适合阅读电子版的书。本书内容很多,我也只是选了几个我认为还比较重要的视角进行了阐述,希望对您有所帮助。