`
pesome
  • 浏览: 67988 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对领域模型的认识

阅读更多

最近看了看领域模型驱动这本书,只看了前面几章,但也深切的感受到了模型的重要性。通过与代码同步的模型,能够维护一个很好的知识共享的空间,包括设计者与程序员之间,客户与设计者之间 …… 而且模型应该尽可能简单,让不同背景的人都能够很快学会,并都能对模型有所增益。

那么这个模型应该是什么样的?书我没有细看,只说说自己的体会。关于设计,很早就有数据驱动和对象驱动的提法。在 Without EJB 里, Rod 也有讲:数据驱动或者说面向数据库设计更成熟,工具更多;而对象驱动更符合面向对象程序的特性,但由于掌握的人较少,风险较大。而通过模型驱动,我认为很大程度填补了 2 种方式的鸿沟,核心是模型,具体是对象模型还是数据模型并不重要,重要的是这个模型能够与需求、代码、数据库保持一致。

说到这里,顺便谈一谈我对文档的理解。我一直是 XP 的坚定支持者,甚至有点偏执。而由于文档不易阅读和沟通,且经常会出现与设计和代码的脱节,导致其可读性更差,所以我一向对文档不大感冒,更倾向于使用代码说话。但在目前的公司项目中,由于更多采用传统的软件过程,我也写了很多的文档,包括需求规格说明书、概要设计文档、详细设计文档等等。从对项目的帮助来看,文档作用并不太大,或者说是付出收益比太低,更多的是给客户写的,而不是给程序员写的。从程序员的需要来看,他关心的是每个实体的属性和关联,核心的接口、输入和输出,页面间的跳转和数据流,然后有一个统一的框架和编程模式。我的体会是:如果以文档为核心,很难描述清楚这些东西,且难以应对变化。

而通过以模型为核心(项目现在采用的 power designer 的概念模型为基础),辅以适当的描述,既能够加快大家对项目的认识(程序员是后面才加入),又能够节省一些写文档的时间,更早投入开发。

说到 power designer ,我也比较惭愧。用了好久,一直只是把它当成看数据库的工具。项目一开始就是从物理模型入手,结果举步维艰。后面从概念模型入手,就感受到了它的好处。使用概念模型,不用考虑太多关联表、外键什么的,而是从实体出发,然后确定相互间的关联,是一对一、一对多还是多对多。然后自动转成物理模型,并直接与相应的数据库挂钩。从这点上看与从对象设计出发真的非常相似。其实这也是合情合理的,正体现了这个世界的统一性吧(物理学界不也在搞什么统一场理论的证明吗)。 Power designer 也做了 conceptual model, physical model, object-oriented model xml model 的自动转换,我现在还没全部摸熟。

openfans 则是从对象入手,并通过 hibernate 建立与数据库的联系,也体现了一定的方便灵活性。但比较糟糕的是,只有代码和配置文件,没有清晰的便于交流的模型,谁要想参与只能先去慢慢看代码。所以我先通过 together reverse 出来一个类图,然后适当加以文字进行说明。类图已经做好,但比较乱,还需要更多的图例加以说明。文字说明就是下一篇 blog 的工作了。也算是预告吧!

分享到:
评论

相关推荐

    浅谈领域模型

    有人说:“领域模型是一个商业概念,同行业的企业,一定有内在的共性,是帮助系统分析人员认识现实业务的工具。”领域,即边界的意思,有了清晰的边界,协作才有了利益的基础;模型,即知识体系,深入理解了业务知识...

    对Geodatabase空间数据模型的再认识

    ### 对Geodatabase空间数据模型的再认识 #### 摘要 Geodatabase作为ESRI公司推出的一种新型空间数据模型,在地理信息系统(GIS)领域得到了广泛应用。它摒弃了传统的Coverage模型,转而采用面向对象的方法来描述...

    AI大模型AI大模型.zip

    8. **未来趋势**:探讨AI大模型的发展方向,如模型的持续增长、模型压缩、模型的可解释性,以及对计算效率和能效的追求。 9. **伦理与社会责任**:讨论大模型可能带来的社会影响,如隐私问题、算法偏见和人工智能...

    自然语言处理之BERT模型算法、架构和案例实战.pptx

    这些内容不仅让我对BERT模型有了更深入的了解,也让我对NLP领域的其他模型和技术有了更全面的认识。 此外,本书还提供了很多实用的案例和实战经验。作者通过介绍多个不同领域的实际应用案例,让读者更好地理解BERT...

    springboot-ddd-demo:如何做好一个项目?springboot与领域模型该如何结合?

    先说一下我对领域模型的认识:领域模型实际上就是尽可能的引用类去解决问题,而不是函数,也就是朝着面向对象的方向看齐。这样做当然是对的,但却引发了一个新的问题就是如何划分类与类的职责?实际上划分职责的过程...

    灰色及其改进模型

    灰色预测及其改进模型可以应用于各个领域,实现对不确定数据的预测和分析。该模型的优点是可以对不确定的数据进行预测,不需要考虑数据不准、关系不清、变化不明的因素和变量。 "灰色预测及其改进模型

    风力发电机模型.rar

    此外,这些模型也可以用于公众教育,提高人们对可再生能源的理解和认识。 总的来说,"风力发电机模型.rar"提供了一个全面的、互动的风能转换系统学习平台,借助Unity3D的强大功能,将抽象的科学概念转化为生动、...

    AI大模型+通用大模型与垂直大模型详细介绍

    【内容概要】主要包含如下几个方面的内容。 引言 通用大模型概述 垂直大模型概述 通用大模型与垂直大模型比较...·本文重点介绍通用大模型与垂直大模型的基本概念、特点及应用领域,帮助读者全面了解和认识这两种模型。

    Noah模型的应用

    Noah模型的这些功能使其成为气象研究、气候模型、农业管理、水资源规划等多个领域的有力工具。 值得注意的是,尽管Noah模型在陆面过程模拟方面具有优势,但在实际应用中仍需注意模型的局限性和不确定性。模型参数的...

    CT切片重构的STL模型与CAD模型之间的误差彩色云图显示.pdf

    在对精度要求较高的应用场合中,计算计算机断层扫描(CT)切片...通过分析误差的彩色云图,可以对误差分布有一个直观的认识,进而对模型的质量进行评估,为后续的改进提供依据。这在实际生产和科研中具有重要的意义。

    土壤侵蚀模型构建.doc

    土壤侵蚀模型构建是 GIS 领域中的一种重要应用,通过构建土壤侵蚀危险性模型,可以对土壤侵蚀的危险性进行评估和预测。本文将介绍如何使用 ArcGIS 的 Model Builder 工具构建土壤侵蚀模型,并对模型的构建过程进行...

    美国差分_人口模型_马尔萨斯模型_

    马尔萨斯人口模型,全称为托马斯·罗伯特·马尔萨斯的人口理论,是18世纪末19世纪初由英国...随着社会的发展和技术的进步,人们对人口增长和资源利用有了更深入的认识,但马尔萨斯的理论仍然是探讨这些问题的重要起点。

    并行编程模型及其应用领域的综述

    特别地,文中强调了SPMD模型作为一种典型的数据并行模型,在数值模拟、图像处理与科学计算等领域发挥着重要作用。另外还探讨了两种重要的并行编程模型——多任务共享存储编程模型与多任务消息传递编程模型,前者强调...

    室内植物3D模型

    这张图片可以帮助用户在不打开3D软件的情况下,对模型有一个直观的认识。 3. "max1579.max":这是3D Studio Max软件的模型文件格式。3D Studio Max是一款广泛使用的3D建模、动画和渲染软件,尤其在建筑可视化和游戏...

    Matlab模拟船舶三自由度MMG模型

    对于本科和硕士级别的学生来说,这个项目不仅能加深对Matlab编程的理解,还能提升在工程领域的应用能力,同时对船舶动力学和海洋工程有更深入的认识。在实际操作中,可以通过修改参数,观察不同条件下船舶的运动特性...

    基于年龄分组和种群增长模型的种群稳定收获模型

    首先,该模型的主要出发点是认识到不同年龄段的个体在繁殖和生存上的差异性。例如,年轻个体可能具有较高的繁殖率,但其存活率可能较低;而成年个体则可能有着较高的存活率,但繁殖率相对较低。因此,模型中对同一年...

    假山石头3d模型

    用户可以使用3ds Max打开此文件,对模型进行编辑、渲染或导出到其他兼容的应用程序。 "max1047.jpg"则可能是一个预览图像,展示了3D模型在不同角度或光照条件下的外观,帮助设计师快速评估模型的质量和适用性。这种...

    arc_model_new.rar_arc_model_new_cassie电弧模型_mayr_mayr arc_电弧仿真

    在电弧物理学领域,电弧模型是理解和模拟电弧放电现象的关键工具。"arc_model_new.rar" 是一个包含多种电弧模型...通过这些模型,我们可以对电弧的物理过程有更直观的认识,并能应用于实际的电力系统分析和优化设计中。

Global site tag (gtag.js) - Google Analytics