将领域带回软件开发

  • Jan Stenberg
  • 冬雨

2017 年 2 月 13 日

话题:语言 & 开发架构

如果你理解如今的商业压力,将会发现商业方面会把 IT 看成令他们止步不前的障碍。从 80 年代开始,商业就已经在讨论敏捷了,而 IT 却是在 2000 年前期才开始去实现敏捷,David West 在近期阿姆斯特丹DDD 欧洲大会的演讲中说。

当《面向对象思维》的作者开始在一家银行于 60 年代初从事 IT 工作时,他是第一个非银行职员。因此,他接受了银行的强制性培训,每个季度 30 个小时。他后来成了一个编写代码的领域专家。这意味着他的工作是由领域驱动的,向领域作出响应,这也是他当时的职业状态。

随着软件工程方面高等教育的发展,领域以及用户的所有关注点已经与编程的关注点分离开了,这导致商业越来越多地把 IT 视为限制而非战略优势了。

在这些年间,人们尝试去调整 IT 和商业之间的关系;面向对象被用来创建公共词汇表就是这样的一个例子。当领域驱动设计出现时,它还承认了这样一个事实,就是我们所追求的专用机制是错误的;我们需要理解所从事的领域才能构建出有用的系统。

不幸的是,没有一种尝试能取得持久的效果。要寻找一种前进的路,我们需要一些先决条件,West 说。首先,我们需要更好地理解机制及其运转方式。其次,我们必须把关注焦点从机器上转移到领域上。他还说,我们在计算机科学和软件工程中存在的大多数问题本质上并不是我们要去解决的问题,但我们尝试解决这些问题时使用的却是计算机的做法。

West 强调说,即使你们全是大师级程序员,发挥的作用也很有限。好的设计和优秀的软件来自于交付团队,来自于具备多种技能的人才,来自于具备T 形或 Pi 形技能的人才,他们不仅是一个或两个领域的专家,而且还具备广泛的知识结构,能够与其他领域的专家协作。West 特别强调的其中一个领域是生物学,他从中找到许多用于解决问题的隐喻

按 West 的说法,我们最早需要做的是开始阅读,主要是我们所从事的领域的相关资料。如果你正从事银行业,通常就需要阅读银行以及商业方面的资料,特别是与你所从事的领域密切相关的主题,对于银行业来说,可能就是销售和管理方面。West 还建议说,阅读商业正在如何进行调整以适应变革的相关资料。然而,他也提到了阅读一些感兴趣的、与工作无关的书籍的重要性。

查看英文原文Bringing the Domain Back to Software Development

语言 & 开发架构