大道至简第六章阅读感想
大道至简第六章阅读感想
今天我阅读了大道至简的第六章,标题为从编程到工程。首先作者通过自己的示例告诉我们,并且强调了语言只是工具。作者以他的经验告诉我们,整天讨论这门语言好,那门语言坏的人是可悲的,因为语言仅仅是完成项目的工具,而且语言之间是相通的,谈论语言的好坏只是在浪费时间而已,实现或者说完成项目才是我们最终的目的。
作者再次提到了程序=算法+结构,因为对于程序来说,编程的精义于此,后来就出现了“方法”和“方法论”。长期的编程实践,自然的归演与总结,必须沉淀为某种(软件开发)方法,于是“过程”出现了,“对象”出现了,相关的方法论也就出现了。
方法。方法不是某个人或者某个组织创造的,它是实践的成果。过程。过程是伴生工程而出现。过程解决的是工程中角色间的关系问题。过程中的问题,就是角色、沟通和环节的问题。常会听到人们说“我只要结果,不要过程”这样的话,可是过程并不是不重要,并且对于真正做项目的人来说,过程才是最重要的,没有好的过程也肯定不会有好的工程。
工程、组织。工程和组织是分不开的,对于软件开发公司而言,它不仅需要开发人员来完成项目,也需要一些管理及组织人员来进行正确的管理和疏导,从而共同完成项目的开发。
在一个团队里,真正的BOSS并不是那个付你薪水的人,付薪水的只是上司,是部门经理或者说团队经理,并不是真正的BOSS,真正意义上的BOSS是属于经营范畴的,他的职权范围是管理层,并不决定开发人员的薪水。真正的BOSS是经营者。BOSS决定的是一个团队发展的方向,组织者的职能是保证决策与方向的同步,工程则是在这样的方向和决策构架下的具体行为,开发者的职能便是这些行为的实际操作者。
上帝之手。从最初的简单编程开始,到现在工程团队的组织开发,实现(一个软件)都是最终的目的。所以可以这样说:实现,是软件开发的本质需求。而后,基于某种数据结构的编程实践(的不断积累),决定了软件开发方法理论的产生。从这一点可以看出:方法,是对既有行为的归纳总结。因而实现方法总是最先出现的,而后才有分析和设计方法。可以看到面向对象分析(OOA)、设计(OOD)与编程(OOP)的出现顺序,与它们在工程过程中的实作顺序正好相反,而与编程实践行为的顺序则正好相同。软件工程的体系中,“实现”作为软件开发的本质需求和基本动因,如同上帝之手在推动这几十年来的软件工程理论体系的形成。