《大道至简》观后感

发布时间 2023-07-27 19:57:30作者: kxzzow

       在老子的《道德经》中,老子认为“道”是宇宙的本源,是宇宙中一种无形的力量,其应简单和自然,并能运行万物。软件工程中也蕴含其中之“道”,通过阅读《大道至简》这本书,我在作者的文字下进行理解思考,对书中写的软件工程的“道”有了一些理解。

      书中前两章讲解了编程的精义和方法的简便。编程,编写程序,如书中所说是一件劳力活,顺序、分支和循环是其根本,掌握这些就可以进行庞大的工程,做那个移山的愚公。而这顺序、分支和循环就是编程的精义。人人都能编写程序,编程是一种行为,只需知道其逻辑和方法就可以了。书中程序 = 算法 + 结构 ,这个公式可解释编程是怎样,这里不存在代码,存在的是思想,代码语言只是工具。所以说编程的思想逻辑十分的重要。

     但单纯的掌握编程的逻辑只能是会编程,进行的只是愚公的劳力活。就像书中第二章“是懒人造就了方法”,只一味照旧,进行复杂俗套的劳力活,最终会影响做事成效的根本。模块化,让源文件分开进行结构化编程,化解了编程中的繁琐。方法能让我们在编程中不再进行愚公的苦差,不浪费不必要的精力。无论如何的设计,程序中的本质里始终有一种从简的思想。

     从编程到工程,先从语言到程序,再到方法,然后就到了过程。过程说的是很多的人(团队)如何组织在一起进行开发的问题。它首先把工程中的环节分解出来。这样,有了环节,就有了角色;有了角色,就有了沟通。按书所说,沟通在工程中举足轻重。在团队内部,沟通可体现在制度和角色的分工,团队中各个角色的扮演,分工,和团队制度的人性公平,决定团队进行项目的成功与否。团队制度的人性公平,可以决定管理者能力的高度。团队中各个角色的扮演,分工,可以使项目可靠进行。

      然而到了团队对外,对客户的沟通,更要在乎的是沟通的有效性。书中说“客户不会用 C,难道就会用 UML 吗?”,书可以直观地描述在于客u户沟通的有效性。你跟客户用c交流,客户不回一句“Can you speak chinese?”,or竖个中指,直接扬长而去。沟通要具有有效性,如你和客户讲的内容,流于形式、枯燥无味、毫无重点,让客户听得像一条早八狗一样,昏昏欲睡,那你不是要让客户把对你公司的好感全部掉光吗?

      然后我们进行到工程,工程至简是描述“做什么”和“做到什么”,实现是目的。我们不能“做”工程,而是要“组织”工程。项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同地完成这个项目。过程中的各种模型,学习思考其中的本质,得到其中的骨子。

    软件工程的体系中,“实现”作为软件开发的本质需求和基本动因,如同上帝之手在推动这几十年来的软件工程理论体系的形成。在现实中,在书中我们可以看到软件工程从每个孤立的层面来审视,各个层面都对主体“实现”进行着联系。工程的整体问题仍旧是“实现”。