构建之法阅读笔记 01

  构建之法这本书对于我的意义已经不再是单纯的软件工程系学生必读经典书籍了,他已经是我们软件工程系的教科书了,随着建民老师的教课,我开始了对构建之法一书的探索。

  首先看了看构建之法一书的读者反馈:“惊艳!打开《构建之法——现代软件工程》,就停不下来,作者把软件开发方法 讲得清晰有趣实用,程序员应该人手一册,通读完毕,思维水平立马从业余升级 到专业! ”

一、初级软件工程师如何成长?

  1. 积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能 力)。例如:对Java、C/C++、C#的掌握,诊断/提高效能的技术,对设备驱动 程序(Device Driver)、内核调试器(Kernel Debugger)的掌握;对于某一开 发平台的掌握。
  2. 积累问题领域的知识和经验(例如:对金融或医疗行业的了解)。第一点和第二点都可以在很多简历上都可以看到,也可以比较容易地检测出来。随着经验的 增长,一个工程师可以掌握更广泛、更深入的技术和问题领域的知识。
  3. 对通用的软件设计思想和软件工程思想的理解。这一方面就比较虚,什么是好 的软件设计思想?什么是好的软件工程思想?一个工程师开了博客,转发了很多 别人的文章,这算有思想么?另一个工程师坚持做任何设计都要画UML图,这算 有思想么?
  4. 提升职业技能(区别于技术技能)。职业技能包括:自我管理的能力,表达和 交流的能力,与人合作的能力,按质按量完成任务的执行力,这些能力在IT行业 和其他行业都很重要。
  5. 实际成果。绝大部分软件工程师的工作成果都是可以公开的,你参与的产品用 户评价如何,市场占有率如何,对用户有多大价值?你在其中起了什么作用?行胜于言,这些实际的工作成果,是最重要的评价标准。

  随着建民老师逐课的讲解和我自己对本书的阅读,一幅全新的关于软件工程的篇章向我展开,此书不像其他一些书籍都是古板的专业名词,其中穿插着大量的生动有趣又很形象的关于软件工程的小故事,例如用魔方的口诀来还原魔方这个小例子,简直完美的向我们展示了关于编程应该学到什么程度的问题“把第二层拼好,我只知道找到某个模式,按照某个口诀执行即可。但是 我并不了解为什么这个口诀能把第二层拼好,同时又不打乱第一层的结果。我更 不知道如果在执行中走错了几步,如何随机应变,挽回局面。离开了口诀的话, 我只能把魔方的一面拼出来。”

二、结对编程

  “现代软件产业经过几十年的发展,一个软件由一个人单枪匹马完成,已经很少见了,软件都是在相互合作中完成的。”而要在团队里工作,就有得注意两个问题:

  1. 代码风格规范。主要是文字上的规定,看似表面文章,实际上非常重要。 这一块儿主要包括缩进、行宽、括号、断行与空白的{}行、分行、命名、下划线、大小写和注释等规范。
  2. 代码设计规范。牵涉到程序设计、模块之间的关系、设计模式等方方面面的通 用原则。这一块儿主要包括函数、goto、错误处理、如何处理C++中的类等统一。

 总的来说,这一阶段的阅读给我的启发是巨大的,同时我也深深地爱上了这本书,不知不觉中对软件工程的兴趣也有了一定的加强。

原文地址:https://www.cnblogs.com/zhangzhongkun/p/11059376.html