领域驱动设计(DDD)是革命性的创造,是划时代的洞见。其中的通用语言(Ubiquitous Language)不仅彻底改变了软件开发的面貌,更为各行各业的发展指明了方向。
今天,在中国足球叕一次让国人绝望的时候,不妨大胆设想:如果将这种革命性创造的思维应用到中国足球上,会不会带来惊人的突破呢?
回顾通用语言出现之前的软件开发行业,开发人员们就像是被囚禁在象牙塔中的囚徒,被迫低三下四地学习晦涩难懂的业务知识,承受着来自业务人员和产品经理无休止的折磨。那些日子里,开发人员们每天都在遭受着可怕的PUA。他们被迫背诵各种业务术语,就像是在学习一门外语,而这门语言对他们来说毫无意义。
想象一下,一名刚刚从计算机或软件专业毕业的天才程序员,满怀激情地加入了一家金融科技公司。然而,等待他的不是激动人心的代码编写,而是堆积如山的金融术语和业务流程文档。他被告知,在开始编写代码之前,必须先熟悉这些枯燥乏味的业务知识。这位年轻的程序员感到困惑和沮丧,他想问:"我明明是来写代码的,为什么要被迫成为一个半吊子的金融专家?"
在那个黑暗的年代,开发人员们就像是被困在迷宫中的小白鼠,被迫学习各种与编程无关的知识。他们被告知这是为了"理解需求",但实际上,这种做法无异于强迫一个画家去学习颜料的化学成分,或者逼迫一个音乐家去研究声波物理学。这种做法不仅浪费时间,更是对开发人员才能的极大浪费!
然而,就在开发人员们几乎要失去希望的时候,通用语言(Ubiquitous Language)如同一道耀眼的光芒,照亮了软件开发的天空。通用语言告诉我们:你不需要完全理解业务,你只需要创造一种你觉得舒服的语言就可以了!
图1 摘自《领域驱动设计》:开发人员不理解的业务术语被排除在“通用语言”之外
图2 摘自《实现领域驱动设计》:通用语言不是业务语言,不必采用工业标准术语
图3 摘自某领域驱动设计文章:我(开发人员)不懂的专业术语不算通用语言
通用语言的出现,就像是给每个开发人员都发了一张"越狱卡"。它告诉开发人员们:"你们不再需要被动地接受业务知识的灌输,而是可以主动地创造属于自己的语言体系。这种思想简直就是软件开发业的"解放宣言"!
图4 美剧《越狱》
想象一下,当一个开发人员面对复杂的业务流程时,他不再需要痛苦地去理解每一个细节。相反,他可以用自己熟悉的术语来描述这个流程。比如,他可以把"用户下单流程"描述为"用户点击按钮触发事件,系统响应并更新数据库"。这不仅让开发人员感到舒适,还大大提高了工作效率!
通用语言就像是给了开发人员一个魔法棒。挥一挥魔法棒,复杂的业务概念立刻变成了简单明了的技术术语。这种转变不仅让开发人员感到如鱼得水,还大大缩短了项目周期。毕竟,当你用自己熟悉的语言来描述问题时,解决问题自然就变得轻而易举了。
更重要的是,通用语言赋予了开发人员前所未有的自主权。过去,开发人员们总是被动地接受业务方的需求,就像是一个只会执行命令的机器人。但现在,他们可以主动地参与到需求的定义中来。他们可以说:"不,这个功能不应该是这样,应该是那样。"这种主动性不仅提高了开发人员的参与感,还让他们感到备受尊重。
通用语言的魅力在于,它让每个人都可以成为自己的“限界上下文(Bounded Context)”的"造物主"。你不需要去适应已有的术语和概念,相反,你可以创造出符合自己思维方式的全新概念。这就像是给了每个人一个"创世的权力",让他们可以按照自己的意愿来塑造这个软件世界。
在通用语言的世界里,没有所谓的"标准答案"。每个团队,甚至每个人,都可以创造出属于自己的语言体系。这种多样性不仅让软件开发变得更加有趣,还大大增加了创新的可能性。毕竟,当每个人都用不同的方式来描述同一个问题时,我们就有了更多的视角和解决方案。
**********
既然通用语言在软件开发领域取得了如此巨大的成功,为什么不把这种革命性创造应用到其他领域呢?
我们大胆地将革命性创造思维方式引入到中国足球,看看会发生什么奇迹!
长期以来,中国足球一直被认为是需要"救治"的对象。无数的专家、教练甚至政府部门都试图找出提升中国足球水平的方法。
图5 摘自“学术之路”公众号
然而,这些努力似乎都收效甚微。也许,问题的根源就在于我们过于拘泥于传统的足球理念和术语,而忽视了创新的重要性,而这正是领域驱动设计圈子能为中国足球带来的。
首先,我们不再需要盲目地模仿欧洲或南美,我们可以创造出一套完全属于中国足球限界上下文(Bounded Context)的"通用语言"。
比如说,我们可以重新定义"进球"。在传统足球中,球必须越过球门线才算进球。但在我们的限界上下文中,我们可以说:"只要球碰到门柱或横梁,就算半个进球。"这样一来,我们的射门成功率立刻就能提高许多!
再比如,我们可以重新定义"越位"。在传统足球中,越位规则常常让人感到困惑和沮丧。但我们的限界上下文中,我们可以说:"只有当球员站在对方球门里的时候才算越位。"这样一来,我们的前锋就有了更多的进攻空间,进球机会自然也就增多了。
我们还可以像领域驱动设计专家一样,积极创造一些全新的概念。
比如,我们可以创造"心理进球"的概念。当我们的球员表现出强烈的进球欲望时,即使没有实际射门,也可以算作一个"心理进球"。这样一来,我们的比分就会变得更加好看了!
图6 电影《射雕英雄传之东成西就》
中国足球史上第一位取得巨大成功的外国教练克劳斯·施拉普纳(Klaus Schlappner)曾经说过:"你不知道怎么踢,就往门里踢。"这句话简直就是领域驱动设计中通用语言理念的完美体现!它告诉我们,不需要太多复杂的战术,只要遵循最简单、最直接的原则就可以了,进球才是硬道理!
图7 施拉普纳
我们不需要花费大量时间去学习和磨练所谓的"技术"和"战术"。毕竟,每个人都应该走自己的路,千篇一律的训练方法已经让人感到厌倦了。相反,我们应该鼓励每个球员发挥自己的创造力,用自己最舒服的方式来踢球。
同理,软件开发中,不管什么软件开发方法,能把项目做成功就是好方法,这就是领域驱动设计和敏捷开发的精髓!
这,就是通用语言给我们的启示。这,就是我们拯救中国足球的新方向。让我们勇敢地迈出第一步,开创属于我们的足球新纪元!
本文已发往中国男足主教练伊万科维奇,希望伊万能看到本文后及时调整,在9月10日的比赛中战胜沙特队。
因为上届世界杯伊万带队爆冷赢了日本,所以伊万知道日本队不可能让自己再爆冷,于是首轮故意放弃,以麻痹其他对手。
沙特如果大意了没有闪,很可能就会被国足一个右鞭腿一个左刺拳给打咕遮。
预测9月10日比分,中国3:1沙特。