大道至简读后感
——第六章
又是一个欢快的周二,我们又迎来了大道至简的读后感任务,这次是第六章的。那么第六章又说了些什么呢?
第六章的标题为“从编程到工程”,这一章又具体分为8个小结。依次为:
1.语言只是工具
2.程序
3.方法
4.过程
5.工程
6.组织
7.BOSS
8.上帝之手
每个人做事的时候都需要一个或者一些工具,就好比:我们说话的时候需要嘴这个工具,吃饭的时候需要筷子或者勺子。那么工具之间分优劣吗?那我们再来看这个例子,打电话。我们通过手机打电话,然而手机又分为好多种。例如:iPhone,诺基亚,三星,小米,华为等等。也许这些手机在质量上确实存在着差距,有着优劣之分,但是就打电话这个结果而言,只要我们能打出去电话就行了。什么样的手机都一样,难道不是吗?这个道理也同样适用于编程上。对于我们做软件设计的人来说,什么样的语言,我们可以不用去在意,无论优劣,只要最后能够把一个程序写好了,他能够成功运行就行了。换一种说法,我们只要最后的结果,用什么方式都无关紧要。在软件工程的书籍中,我们可能看到最多的话就是:程序=算法+结果。那你有想过为什么它出现的次数会这么多呢?这就证明了它的重要性。在方法这个部分中,给我们讲述了道理:长期的编程实践,自然的归演与总结,必须沉淀为某种(软件开发)方法。这是实践的成果。 方法不是某个人或者某个组织创造的。瓜熟而蒂落,实践积累达到一定的程度只要有人去总结,就会得出方法。过程伴生工程而出现。 过程解决的是工程中角色间的关系问题。过程说的是很多的人(团队)如何组织在一起进行开发的问题。它首先把工程中的环节分解出来。这样,有了环节,就有了角色;有了角色,就有了沟通。因此过程中的问题,就是角色、沟通和环节的问题。那么工程又是什么呢?最狭义的工程,是描述“做什么”和“做到什么” 。也就是说,是对目标的描述和成果的检测。至于这个工程目标的实现,是“过程”和“方法”的事;而有效、快速地实现“过程”和“方法”所需的,就是“工具” 。然而,工程这个词语里也是包括着组织的。一个工程的完成需要很多人。在这么多的人里面有一个人作为领导者来组织大家该如何做,什么人该做什么事,他能够进行有效的分析和组织。从最初的简单编程开始,到现在工程团队的组织开发,实现(一个软件)都是最终的目的。所以可以这样说:实现,是软件开发的本质需求。为了实现更大规模的软件系统而有了团队组织模式,而团队的协作决定了过程模型的产生。就是由于“实现”的这一个本质上的要求,推动了软件工程的发展,如同上帝之手在推动这几十年来的软件工程理论体系的形成。