续一:《你的医书是假的!批评付施威的《DDD诊所——聚合过大综合症》

DDD领域驱动设计批评文集

“软件方法建模师”不再考查基础题

《软件方法》各章合集

我写了一篇文章,批评付施威的《DDD诊所——聚合过大综合症》(以下简称《DDD诊所》),文章是《你的医书是假的!批评付施威的《DDD诊所——聚合过大综合症》》(以下简称《你的医书是假的》)。

一、《你的医书是假的》关键内容

《DDD》诊所说,下面这个是不变式:

图片

图1 《DDD诊所》截图

我在《你的医书是假的》中提出以下批评:

(1)不变式是类的不变式。《DDD诊所》作者把它放在关系上是不对的,说明该作者没有理解不变式。

(2)《DDD诊所》作者引用的《领域驱动设计》译文的翻译很糟糕(参见《猴子掰玉米?比较不同版《领域驱动设计》说“不变式”和“聚合”》),关键内容的意思译反了,而《DDD诊所》作者并无察觉,反而整段引用作为依据。

(3)不变式不是用来描述像图中的“订单总价=sum(订单行总价)”这样的内容的。如果这样的约束被严格遵守,说明“订单”的“总价”属性在逻辑上是冗余的,应该删掉。既然“总价”属性没了,图1的所谓“不变式”自然也就没有了。

也就是说,改变订单属性值(包括加/删订单行以及其他操作)的时候,不需要判断某个含有“总价”属性的表达式是否为真——实际上也没法判断,“总价”属性都没有了嘛。

接下来,我再针对图1做进一步的阐述,帮助进一步理解不变式,并评点在《你的医书是假的》文章下面的留言。

二、等号和赋值号没搞混吧?

不变式是一个布尔表达式。

我在这里提这一点,到底是什么意思呢?

意思是:

如果发现有“不变式”表示为相等关系的表达式,那就要警惕一下,建模人员是不是把“=”当成赋值来理解了。

例如,图1的式子“订单总价=sum(订单行总价)”,有可能就会被误解成“把订单项的价钱之和赋值给订单总价以同步这两边的值”。

读者可以注意到,我在《你的医书是假的》画的图例中,没有相等关系的不变式。

读者还可以对比下面的例子: 

图片

图2 三角形及其不变式

这个还行,对吧?

那读者再看这个:

图片

图3 错例:等边三角形及其不变式?

这个是不是比较诡异?不过,这样的图倒是符合DDD伪创新的口味:投资少、见效快、门槛低、产量高、仪式感十足。

注意,我在图3中用“==”表示相等关系,而不是用“=”。其实这是违反OCL语法的,OCL里就是“=”表示相等关系,和SQL类似,但考虑到上面说的赋值误解(特别是显示在类图上时),我倒是觉得OCL应该改一下。

那么,可不可以有相等关系的不变式?可以有,但很少。相等关系表达式,经常是出现在前置条件和后置条件,而不是不变式。

什么时候可以有相等关系的不变式,这个就涉及到相当多的知识,不是本文能装得下的了,感兴趣的读者可以关注我的《软件方法》。

未完待续……

接下来内容:

▲“sum(订单行总价)”会在哪里出现?不变式和操作之间没有绑定关系

▲“订单总价=sum(订单行总价)”还存在一个问题

▲对《DDD诊所》作者付施威补充解释的评点

▲对林宁评论的评点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1549717.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

qq windows版客户端0day复现——远程代码执行(七夕小礼物)

##ps:本文章仅用来分享,请勿将文章内的相关技术用于非法目的,请勿将文章内的相关技术用于非法目的,请勿将文章内的相关技术用于非法目的!!如有非法行为与本文章作者无任何关系。一切行为以遵守《中华人民共…

停车场收费软件兼容电脑操作系统问题如何搞定?

随着网络快速发展各式各样软件应运而生,同时操作系统对软件的要求也越来越高,兼容性问题越发重要。安装停车场收费软件,为了保障高效稳定的运行,前提也要兼容电脑的操作系统。 为此,易泊车牌识别停车场收费软件&#…

专访捷顺科技:“停车老司机”的智慧生态构想

本公众号已经改版,推出了线上线下课程,并且推出免费2个月广告服务业界优质产品。 实现智慧停车的过程中,互联网驱动下的模式创新是必要的,但有一个前提,即行业本身的技术创新。近日,捷顺科技总经理赵勇在接…

资本加速圈地,智慧停车战火越烧越旺

配图来自Canva 半年前,AIPARK爱泊车宣布完成B1和B2轮融资,投资方包括中美绿色一期基金、蔚来资本、中金资本、中关村启航基金等。 6月3日,城市级智慧云停车平台享停车宣布已完成数千万元融资,并获得了上亿元配套建设资金&#x…

SSM停车场管理系统-计算机毕设 附源码97557

SSM停车场管理系统 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于停车场管理也是十分常见的。过去使用手工的管理方式对停车场进行管理,造成了管理繁琐、难以维护等问题,如今使用计算机对停车场的各…

django 停车场管理系统 计算机毕设源码19517

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作…

道闸系统服务器内存不足,停车场智能道闸系统常见问题及解决方法

[导读]停车场智能道闸系统一般是口控制机、出口控制机、智能道闸、地感线圈、余位显示屏、图象识别设备、系统软件、管理工作站等这些设备组成的,所以哪方面出了问题,就可以从哪方面着手解决。 停车场智能道闸系统一般是口控制机、出口控制机、智能道闸、…

北安服务器维修,北安停车场收费系统企业

捷顺智慧停车场采用的ETC停车是基于车牌识别管理系统,将ETC技术运用于智能停车场中,采用ETC车牌识别,实现不停车收费和无人值守,使车辆进出停车识别率无限靠近一百,ETC采用国家交通部颁布的标准,实名制管理…

python+停车管理系统 毕业设计-附源码271400

Python停车管理系统 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于停车场管理也是十分常见的。过去使用手工的管理方式对停车进行管理,造成了管理繁琐、难以维护等问题,如今使用计算机对停车场停车的…

uuid怎么获取_基于车位引导系统的捷顺室内导航项目怎么调试?

对于停车难,找车难,捷顺在几年前就已经推出成熟的解决方案,经过这几年,技术越发成熟、先进!那么对于这款可以在室内蓝牙导航的先进系统要怎么调试呢?下面就让我们一起来学习下吧! 一、介绍 基于…

《剑指Offer》模块2 二叉树【15道二叉树帮助你掌握二叉树】

二叉树 二叉树1. 树中两个结点的最低公共祖先方法一:公共路径方法二:递归 2. 重建二叉树根据前序遍历和中序遍历 得到树 补充题:树的遍历 3. 二叉树的下一个节点4. 树的子结构( 递归中调用递归 )5. 二叉树的镜像&#…

win7桌面图标突然消失,鼠标右键不管用―解决

win7电脑桌面图标突然消失,鼠标右键不管用–解决 我的电脑是win7,当时正在下软件,快下完的时候突然桌面上的图标都没了,只剩一张桌面壁纸,鼠标右键没用,关机重启也不行,去网上查了拼拼凑凑终于…

win7桌面图标不可读文件样式的东西遮挡

win7桌面图标不可读文件样式的东西遮挡 解决方法 1: 右击桌面空白处,打开“个性化”设置,更改Windows主题,让系统重新加载快捷方式图标; 2: 打开路径C:\Users\你的用户名\AppData\Local,找到其中…

简述计算机网络系统图标添加在桌面上的步骤,如何将网络图标添加到win7桌面上...

win7网上邻居在哪?相信对于一些刚从WinXP升级到win7的盆友来说,对win7这款操作系统都不是特别的了,以致许多的盆友都都无法找到网上邻居,那么那么网上邻居在哪呢,下面小编就来为大家揭晓一下哈~ 方法一、 1、最简单的方…

win7变成xp风格了怎么改回_win7桌面怎么改成xp风格

随着win7系统不断发展和稳定,许多用户都从xp系统升级到win7系统,可是一些用户反馈说win7功能虽然多,但是界面不习惯,很多设置都不知道如何操作,和xp界面有很大不同。有什么办法可以让win7桌面改成xp风格?方…

怎样固定计算机桌面背景,Win7桌面背景老是被修改如何将其锁定不让他人随意修改...

网友提问:有时候桌面老是被人乱改,有没有办法能够让别人改不了桌面背景?使用的是深度技术Win7旗舰版系统。 墨染暖心解答:可以利用Win7系统注册表来锁定桌面背景,从而解决桌面背景被修改的问题。 具体操作步骤如下: 1…

计算机桌面无法新建文件夹,Win7桌面不能新建文件夹和修改文件名怎么办?

在Win7系统中,用户为了方便查看文件喜欢在桌面上创建文件夹,但是不少用户会遇到这个问题:在Win7桌面不能新建文件夹,也无法修改文件名,系统弹出目标文件夹访问被拒绝的窗口,提示需要权限来执行操作&#xf…

win7桌面运行html,win7系统多桌面切换的解决方案

win7系统使用久了,好多网友反馈说win7系统多桌面切换的问题,非常不方便。有什么办法可以永久解决win7系统多桌面切换的问题,面对win7系统多桌面切换的图文步骤非常简单,只需要1.在电脑桌面任务栏左侧,点击“task view”…

计算机桌面黑底怎么弄,win7怎么设置桌面背景 win7桌面背景变成黑色问题

现在很多电脑用户都会设置个性化的桌面背景,现在各种精美的壁纸非常多,如果我们想要设置桌面背景的话怎么设置呢?方法很简单,下面小编为大家带来win7设置桌面背景的步骤教程,不知道怎么设置的朋友可以参照下面的步骤设置自己喜欢…

STM32之MPU6050获取欧拉角

STM32之MPU6050获取欧拉角 MPU6050MPU6050特点MPU6050电路图以及框图MPU6050框图MPU6050电路图 MPU6050相关寄存器电源管理寄存器1(0x6B)陀螺仪配置寄存器(0x1B)加速度计配置寄存器(0x1C)陀螺仪采样率分频寄…