序
很长时间都处于"拖延症"的晚期,一直想写写东西,但是一直不知道写什么好?最近很难静下心来看书或"禅道",无意间看网上一篇关于将道德经转换为软件设计和企业建设的观点,感觉非常实用或者说这“牛逼”吹的很清新脱俗。想想也是,其实自己一直信奉王阳明思想,“知行合一”。
想想这段时间很少看书了,小姑凉已经在家抱怨很长时间说我没有看书,没有学习。想想也是,最近二个月也是很少看书了。回家基本上是打打手游,看看电视,是应该静下心来看看书了。选择一下,看看国学《道德经》也不错,这样将来也可以吹吹清新脱俗的牛逼了。
闲话少说,进入正题。
软件设计之道----抽象
道可道,非常道。名可名,非常名。无名,天地之始。有名,万物之母。故常无欲以观其妙。常,有欲以观其徼。此两者同出而异名,同谓之玄。玄之又玄,众妙之门。
---<道德经第一章>
“道”如果可以用言语来表述,那它就是常“道”(“道”是可以用言语来表述的,它并非一般的“道”);“名”如果可以用文辞去命名,那它就是常“名”(“名”也是可以说明的,它并非普通的“名”)。“无”可以用来表述天地浑沌未开之际的状况;而“有”,则是宇宙万物产生之本原的命名。因此,要常从“无”中去观察领悟“道”的奥妙;要常从“有”中去观察体会“道”的端倪。无与有这两者,来源相同而名称相异,都可以称之为玄妙、深远。它不是一般的玄妙、深奥,而是玄妙又玄妙、深远又深远,是宇宙天地万物之奥妙的总门(从“有名”的奥妙到达无形的奥妙,“道”是洞悉一切奥妙变化的门径)。
---译文
开始我的清新脱俗的吹牛逼吧(国学真他妈的没那么简单,第一章看了四天,译文不知道读了多少遍,才有小小领悟)。
软件设计的本质,是将客户或市场的需求(道),转化为开发人员能够理解的设计文档(名)。
客户或者市场的需求,我们可以看到,或者听到,但是不是所有的需求我们都能摸到。这些从客户或者市场传达过来的需求,但是我们无法用很清晰和严谨的语言表达出市场或者客户的需求。
那么软件设计就是将这些不是很严谨的或者清晰的语言,通过我们的专业设计人员,设计出严谨和清晰的文字或者专业名词,提供给我们的开发人员。
软件的设计通常都是从“无”到“用”,但无法确切的说明一定是从“无”到“有”(或者说从道到名),因为计算机的严谨性会出现从“名”到“道”的概念。
软件设计之初我们往往要从“无”中寻找“道”的奥秘,并且在“道”中搜索规律。我们还需要常常在“有”中观察和体会“道”的端倪,搜索到漏洞。
什么是“有”,什么是“无”。“有”和“无”是相对的。
“有”我可以理解为实实在在从市场或者客户过来的需求(道),而“无”我可以认为是从客户或者市场过来的需求中我寻找出来的漏洞。
软件设计的第一章,我们往往是学会如何抽象,抽象往往是从“有”到“无”。人是实实在在存才的,而Person Class又只是计算机才能读懂的计算机语言,对于现实状况它又是“无”。软件的设计我们往往是“无中生有”,软件的设计往往也是一个从“0”到“1”的过程,同时也是一个从“无”到“有”的过程。
软件设计的奥秘或者玄机往往是我们要自动切换“有”,“无”的概念。在我们做软件设计的时候,我们是不是通常能够深层次的体会到“有”和“无”的互生之道呢?我们通过观察“道”的存在来创建我们的Class,然后通过Class的存在创建计算机识别的二进制。那么是不是可以很简单的说明成我们从“用”(道)生产出我们的“无”(名),然后又从“无”(名)中生产出“有”(道,计算机语言,二进制文件)。而这一切的诞生都是无形中将你的思考转化为你有行编码或者UML中。这种感觉是不是很玄妙。这是不是就是瀚海的软件设计宇宙中一切设计的总门。
PS:非常佩服老子,从有到无,从无到有,难道不是在说软件设计中如何将实体转化为抽象的过程吗?
网友评论