从编程到工程——《大道至简》第六章读后感

     《列子.说符》中有言:“得其精而忘其粗,在其内而忘其外;见其所见,不见其所不见,视其所视,而遗其所不视。”意思是说观察事物得到了它的精微,而放弃了它的粗略,省察其内部而忘却其表象,看见了他所应当看见的地方,而没看见他不必看见的地方,考察了他所应当考察的地方,抛弃了他所不必考察的地方。这段话告诉我们观察事物应该具备的方法和角度,也就是人视事物的本质,应该注重观察反映本质的现象,和本质无关的其他现象可以忽略。那么,编程的本质是什么呢?有人说,就好像无论多么复杂的数学题,最终都可以一步步的那个拆分到最基本的运算和公理上一样;对于编程来说,每一个程序最终都可以被分解成一个个基本指令以及这些指令的契合方式。通过程序员对于问题的分析和理解,将其拆分成简单的结构并用合适的方法来描述就是,这个行为就可以称之为编程。把现实世界的逻辑抽象映射成数学逻辑,然后翻译成程序语言,进而转换成二进制码,最后用高低电平创造出一个新的世界。

     而在编程的世界中,似乎很多人都爱讨论语言的孰优孰劣。但是大家似乎都忘了,语言只是一种工具,实现才是目的。如果把重点只放在比较工具的优劣上而不去考虑原本你要实现什么,这是可悲的。编程的本源定义是“程序=算法+结构”,与代码有关的任何工作,最终都会回到这条规则上。经过长期的编程实践,人们的归演与总结,出现了软件开发的方法,还出现了过程和对象。这并不是某个人或组织创造出来的,其实是一种长期积累与实践的结果。在有人把它总结并展示给世人之前,许多人就已经在用这个方法了,只是他们不知道而已。方法其实并不神秘,正是你每天正在做或是你讨论的事情的事情,只不过GoF归纳、抽取、提升了这些行为的内在规律而已。

     随着软件规模的日益庞大,为了提高生产效率,人们开始学会合作开发软件,而很少出现一个人的单打独斗,就算有这样的牛人可以花上十几二十年时间写出一个庞大和复杂的操作系统,但在现实生活中他不会有这样的机会。这个时候,工程应运而生。做工程的一整个团队的协调一致非常的重要。那么,为了解决团队中各个角色的沟通问题。过程伴随工程而生,过程解决的正是工程中角色关系的问题。角色的确定、以及角色的沟通问题,在项目过程中同样重要。如果不能有效地管理团队并使他们中的每个人发挥自己的作用,那将是一场灾难的开始,没有什么能比一个一盘散沙的团队更可怕的事情了。工程组织是否合理、相互协作是否紧密,都是这个项目成功的保障。

原文地址:https://www.cnblogs.com/yanyuqing/p/4947233.html