设计国学,软件设计感悟

简介: 设计国学,软件设计感悟

今天谈点“高端”的东西——故弄玄虚,舞文弄墨,附弄风雅,巧言令色,云山雾罩,牵强附会……姑且名为“设计国学”,即从国学的片言只语,因某种契机的感悟,于心中不明所以而产生所谓的“道”,引入软件设计的思想体系之中。实乃游戏之作,不求体系,只谈感悟。


1



儒家:君君,臣臣,父父,子子。此为等级,架构是有等级的,谁为控制者,协调者,谁为服务者。此为儒家之礼,正名。孟子则突破礼制局限,非绝对的君君臣臣,认为政治之高位,必以德者居之。


有德之人为圣人,可为领袖,领袖之传承,需以民意。“民果归之,即天以天下与之,故荐之于天,即荐之于民也。”分布式集群之选举,即如此。天,实则为道,在软件世界,即“系统”,分布式系统之节点,即为民。


2



“巧言令色,鲜矣仁。”在设计中,就是少修饰,简约为美。


“克己复礼为仁”,讲的是设计的控制之道。


3


冯友兰论庄子,曰“故一有名言,似有所成而实则有亏也。凡一切名言区别,皆是如此”,王路解读:“我们用概念去定义的事物,必定是不能反应事物真实的。”


领域概念只能表达部分的真实,领域模型也只能表达现实世界的部分真实,更何况还有限界上下文的知识语境。


4



庄子大小之辩,可以推演为系统的大小之辩。既有统领一切的道,即为根本之设计原则,又有相对大小不同,做出的不同选择。


5


避免用人的主观来主宰物象形义的另一含义,是要我们做到“以物观物”。老子说的“以天下观天下”,庄子说的“藏天下于天下”,都是要回到未割的“全”。


方法之一,可以从无穷大的视角去看:


“视而不见,名曰夷;听之不闻,名曰希;搏之不得,名曰微。此三者不可致诘,故混而为一。其上不徼,其下不昧,绳绳兮不可名,复归于无物。是谓无状之状,无物之象,是谓惚恍。”


“道之为物,惟恍惟惚,惚兮恍兮,其中有象,恍兮惚兮,其中有物”,因此,庄子的《逍遥游》的大鹏有水击三千里,抟扶摇而上者九万里之飞。此种景象,可以想想庄子在抽离自己的视觉,以更高的视角观察击水三千里之大鹏。


“为什么中国山水画都让观者自由无碍地同时浮游在鸟瞰、腾空平视、地面平视、仰视等等角度,不锁定在单一的透视。中国山水画里的所谓透视,是不定向、不定位的透视,有时称散点透视或回游透视,前山后山、前村后村、前湾后湾都能同时看见。山下的树、半山的树、山顶上的树的枝干、树叶的大小都没有很大的变化。譬如宋人的一张《千岩万壑》里所见,我们仿佛由平地腾空升起一路看上去。这种视觉的经验,是画家不让观者偏执于一个角度和一种距离,而让他不断换位去消解视限,让几种认知的变化可以同时交汇在观者的感受网中。”


道家对全的观察视角,可以视为自顶向下的设计理念。


6


设计中,对变化的抽象与分离,实为名家“离坚白”的思想。名家认为:单独存在一种东西叫“坚”,因为“坚”不仅是石头的性质,还是铁等一切坚硬事物的性质。既然“坚”并不总是依附于石头,那就应该可以离开石头、铁等物质独立存在。“白”也一样。


7



中国古代星占学有一种说法曰:五星出东方利中国。这里的“五星”,是先秦所谓的太白、岁星、辰星、荧惑和镇星。秦汉以后,由于五行说的普及,它们又被称为金星、木星、水星、火星和土星。


王力先生讲到古代天文时,称这五星齐出为五星聚合。并给出星宿之间聚合的量化指标确定为小于∠30度。


甄别DDD聚合时,实际上是按照实体之间的耦合度来界定聚合边界的。于是,我突发奇想,可将星宿聚合之度数引入到聚合中来,以度数阐明耦合之强弱,也是一种趣味。


8



郑玄释《易》:“《易》一名而含三义:易简,一也。变易,二也。不易,三也。”


吕思勉说:“从平等中见其差别,则所谓易也。从差别中见其平等,则所谓不易也。所谓易简者,谓极错杂之见象,统驭于极简单之原理。”


《周易》之易,指的不是简单,而是变化。三个含义:易、不易与易简,其实就是我们在设计时要考虑的变化、不变和简单。


软件设计有一个原则,叫“共性可变性分析”,就是去寻找变化的特性,将变与不变隔离;对于变化,又需要寻求其共性特征,找到抽象层面上不变的地方,如此既能应对易,又能做到不易,通过抽象,还能做到易简。


回到领域驱动设计,菱形对称架构的内外分离,就是在寻找易,易之方向不同,则需要隔离。限界上下文的划分,同样是在隔离易。对外,以相同方式公开服务契约,管理之间的协作,通过这种一致性来做到易简。


9



《战国策·秦三》讲了一个有趣的故事:郑人谓玉未理者璞,周人谓鼠未腊者朴。周人怀朴过郑贾曰:“欲买朴乎?”郑贾曰:“欲之。”出其朴视之,乃鼠也,因谢不取。


战国策借这个故事表达了名实不符的道理。引入为领域驱动设计的统一语言与诸限界上下文,实则就是语境之差别。同为pu音,在郑为璞,乃未雕琢的玉器,在周为朴,乃未腌制的鼠肉,二者同音不同字,意义大相径庭,但对于卖朴的周人和买璞的郑国商人而言,都以为是同一个事物,只有“出其朴视之”,也就是可视化出来,才各自知道差异。交流语言需统一,又需要明确其上下文。要知道,买朴的周人若在周,或者买璞的郑贾在郑,大约就不会出现误解了。

相关文章
|
4月前
|
存储 容器
从代码中感悟生活:编程与人生哲学的交融
【9月更文挑战第27天】在键盘敲击的节奏中,隐藏着生活的哲理。代码不仅仅是冷冰冰的命令序列,它反映了我们解决问题的方式,甚至揭示了人生的智慧。本文将通过编程的视角,探讨如何将技术经验转化为对生活的深刻理解,用简单的例子说明复杂概念,让你在轻松阅读中获得启发。
|
5月前
|
算法
代码的诗意:从技术感悟到生活哲学
【8月更文挑战第30天】在数字世界的编织中,每一行代码都是诗行的缩影,承载着逻辑与情感的双重奏。本文将带领读者穿梭于技术的细节与生活的广阔之间,探索编程之美如何映照人生的哲理。从简单的算法到复杂的系统设计,我们将发现,代码不仅仅是冷冰冰的指令集合,它也能如诗般流淌,讲述着创造与和谐的故事。让我们一起走进代码的世界,解锁那些隐藏在键盘敲击声中的深刻启示。
|
5月前
|
Python
编程之禅的奇幻之旅:探寻代码世界与生活万象的惊世共鸣,颠覆你的认知!
【8月更文挑战第7天】编程不仅是技术活,更融汇艺术与哲学。它启示我们在生活里追求简洁高效,如Python列表推导式的优雅;教会我们面对挑战时冷静分析,正如调试代码;体现分工合作的重要性,像模块化设计;并鼓励持续优化,提升效能。编程所蕴含的生活智慧,能引导我们创造更美好、有序的人生。
57 1
|
8月前
|
设计模式 算法 程序员
代码与诗意:软件开发中的创造性思维
【2月更文挑战第16天】在数字世界的构建中,技术并非只是冰冷的逻辑与算法堆砌,它同样蕴含着创造力与艺术性。本文通过探索软件开发过程中的非传统元素,揭示了编程背后的创造性思维和艺术表现。从设计模式到代码重构,再到用户界面的美学设计,每一环节都体现了技术人员对于美的追寻和技术的诗性表达。文章将深入探讨如何将创造性原则融入日常开发工作,以提升软件质量并丰富开发者的技术体验。
|
人工智能 算法 定位技术
《游戏设计师修炼之道:数据驱动的游戏设计》一导读
视频游戏行业在过去十年得到了爆炸性增长,并且现在是家庭娱乐的主要提供者。自从NES(Nintendo Entertainment System,任天堂娱乐系统)于1985年发布了北美版本以来,根据市场研究公司NDP Group的调查研究,游戏行业的收入得到了显著增长,其中2009年在美国的总收入中差不多达到了200亿美元。
1759 1
《游戏设计师修炼之道:数据驱动的游戏设计》一3.5使数学知识保持简单
本节书摘来华章计算机《游戏设计师修炼之道:数据驱动的游戏设计》一书中的第3章 ,第3.5节,(美)Michael E Moore著 傅鑫陈征戴锋等译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
985 0
|
安全
《游戏设计师修炼之道:数据驱动的游戏设计》一2.1 简介
本节书摘来华章计算机《漏 洞 管 理》一书中的第2章 ,第2.1节,(美)Park Foreman 著 吴世忠 郭涛 董国伟 张普含 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1147 0
|
程序员
《游戏设计师修炼之道:数据驱动的游戏设计》一1.4小结
本节书摘来华章计算机《游戏设计师修炼之道:数据驱动的游戏设计》一书中的第1章 ,第1.4节,(美)Michael E Moore著 傅鑫陈征戴锋等译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1158 0