摘要:
前面的章节强调过软件开发过程的重点:它必须以业务领域为中心。 我们说过让模型植根于领域、并精确反映出领域中的基础概念是建立模型的一个最重要的基础。 通用语言应该在建模过程中广泛尝试以推动软件专家和领域专家之间的沟通,以及发现要在模型中使用的主要的领域概念。 建模过程的目的是创建一个优良的模型,下一步是将模型实现成代码。 这是软件开发过程中同等重要的两个阶段。 ... 阅读全文
摘要:
对通用语言的需要通过前一章的案例,我们认识到由软件专家和领域专家通力合作开发出一个领域的模型是绝对需要的,但是,那种方法通常会由于一些基础交流的障碍而存在难点。 开发人员满脑子都是类、方法、算法、模式,总是想将实际生活中的概念和程序工件做对应。他们希望看到要建立哪些对象类,要如何对对象类之间的关系建模。 他们会按照继承、多态、面向对象的编程等方式去思考,会随时随地这样交谈,这对他们来说这太正常不过了,开发人员就是开发人员。 但是领域专家通常对这一无所知。他们对软件类库、框架、持久化甚至数据库没有什么概念。他们只了解他们特有的专业技能。 在空中交通监控样例中,领域专家知道飞机、路线、海拔、经度、 阅读全文
摘要:
软件脱胎于领域,软件由代码最终构成。这意味着,代码的目的在于反映出领域(这中间需要持续的设计、修改、简化直至清晰地反映出最初的愿景)。在启动一个软件项目时,我们应该关注软件涉及的领域。软件需要跟要它服务的领域和谐相处,否则,它会给领域引入麻烦,产生障碍、灾难甚至导致混乱等。我们怎样才能让软件和领域和谐相处呢?最佳的方式是让软件成为领域的反射(映射)。软件需要具现领域里重要的核心概念和元素,并精确实现它们之间的关系。软件需要对领域进行建模。当我们跟领域专家交流时,我们会学到好多领域知识,但这些未加工的知识不能被容易地转换成软件构造,除非我们为它建立一个抽象——在脑海中建立一个蓝图。开始时,这个蓝 阅读全文