# 统一语言 Ubiquitous language ## 定义 埃里克·埃文斯(Eric Evans)的“领域驱动设计”(Domain Driven Design)(2003)中描述的一种设计方法,主要包括努力使用给定业务领域的词汇表,不仅是在讨论软件产品的要求时,而且在设计时很好,一直到“产品的源代码本身”。 (Evans的书详细介绍了其他补充技术,但“无处不在的语言”这个名称传达了主要意图。) ## 预期收益 许多软件开发人员面临的问题之一是,两种技术词汇之间的转换不断产生摩擦,一方面是业务领域,另一方面是开发人员。 在某种程度上,这种二重性是不可避免的:开发人员必须根据算法和计算来框架他们的工作,而算法和计算通常在业务词汇中没有直接的等价物。 但是,技术词汇往往倾向于从合理的边界中“漏出”并接管设计对话,以至于业务专家开始感到疏远并脱离关键的对话。 故意并明确采用“普遍存在的语言”策略可以减轻这些困难,因此是敏捷项目成功的因素。 ## 起源 - 1999年:在制定极限编程的早期,提出了“系统隐喻”实践来解决商务技术翻译和认知冲突的问题,但是这种实践理解甚少,未能流行开来。 - 2003年:“领域驱动设计”一词由Eric Evans提出,并在同名书中进行了描述,最终成为“系统隐喻”的可行替代品