《软件方法》第8章 分析 之 分析类图——知识篇Part1(20211029更新)


阿俊 2021-11-4 13:11

您发的第八章有一个调查一篇DDD文章提到几个类,我留意看过的文章和演讲,是像您说的那样!我还发现作者除了TW公司的人,还有大部分是互联网公司,而且都会提到微服务。我想问您的问题是,是不是互联网更适合用DDD,微服务架构更适合用DDD?

UMLChina潘加宇

你说的这个问题很有意思。我没有统计过你说的作者的情况,不过印象里和你说的差不多,印象最深是“美团抽奖”。

最近几年的DDD宣传主要是由Thoughtworks公司发起,所以Thoughtworks员工或前员工写文章或演讲多很正常。宣传建模是好事。

针对“是不是互联网更适合用DDD”,我说说我的观点:

(1)你有没有发现,“互联网”也“更适合”用“敏捷”。

《软件方法》第8章也提到:

互联网的兴起带来了这样一种系统:这种系统功能很简单,开发这种系统时需要思考的领域逻辑很少,但是这样的系统可以通过互联网让非常多的人使用,问题的关键变成了“如何在大用户量下保持性能”。

很多开发人员就进入了类似的“互联网公司”,开发或维护类似的系统。因为不需要剖析复杂的领域逻辑,开发人员有没有掌握分析的技能已经无所谓,于是,很多打着“敏捷”旗号的“方法”就在这类公司大行其道,导致软件开发人员的分析能力普遍退步。

经常有人和我说,潘老师,敏捷这一套做工厂管理系统之类的可能不太行,但不得不承认,做互联网很管用噢!

当然管用了!

有个巫医发明了一种治疗方法。他坦言,我这个方法对付癌症可能不太行,但对付感冒很管用噢!你不信,找个感冒患者来!

感冒患者找来了,医生让患者躺在一张绘有八卦图案的方桌上,然后绕着患者绕了八八六十四圈(看到没,他也是有一套方法的!),然后对患者说,回去该吃吃该喝喝,五天之内就好了!

果然,患者好了。

医生四处宣传他的治疗方法,由于此方法简单易学,迅速收获了大批粉丝。

更多内容参见我之前写的文章:互联网公司的很多“建模体会”没有价值。

(2)某些“DDD实践”实际上就是另一个“敏捷”

既然以“领域驱动设计”为名,按道理应该是领域逻辑越复杂的系统越需要“领域驱动设计”,对吧?

如果比较领域逻辑的复杂程度,许多“互联网系统”肯定排不上号。“互联网系统”的用户多,而用户多的系统,往往要做减法,功能取公约数。

例如,微信应该是目前用户最多的应用。如果有微商希望微信提供“美化营销话术”的功能,能根据对方的工作性质、性格等美化发过去的信息,让其更容易打动对方……张小龙肯定理都不理。

当然,第三方厂商可以为这些特定人群开发相应的微信小程序,那是另外的应用了。

美团比微信功能更多,领域逻辑更复杂,相应的,用户量没有微信多。如果身体有某种特殊疾病的食客希望美团提供“健康检测”功能,检测所点的外卖是否会恶化食客所患的疾病,美团估计也是不会做的,为了极少数人添加大多数人不需要的功能,不值得。

以上不是说微信和美团的开发用了“领域驱动设计”,而是举例说明用户多的时候,功能的增加是很谨慎的。

而为特定行业,甚至为某个特定行业的某个特定机构的工作定制的系统,往往功能更多、领域逻辑也更复杂。

我去过一家物探公司讲课,公司的同学介绍,一些物探软件或设备是被“卡脖子”的,只能自己研发。

而微信、美团是不会被“卡脖子”的,这样的系统做起来并不难。微信就是模仿的米聊,后来还有易信、来往……。微信的对手们之所以在竞争中落败,原因不是软件开发本身,而是资源、营销等方面。

啰嗦这么多,意思是:

某些“DDD实践”为什么喜欢挑“互联网”下嘴,原因可能和上面所说的某些“敏捷”一样,实际上这副药治不了复杂的病,只好挑感冒病人来治。

从这个角度说,“互联网”(感冒病人)更适合某些“DDD实践”,是正确的。

[答疑]是不是互联网更适合用DDD相关推荐

  1. 更适合用c语言编程的情况是,不大适合用汇编语言编程,更适合用C语言编程的情况是( )。...

    不大适合用汇编语言编程,更适合用C语言编程的情况是( ). 挪威的滑雪运动,不大编语距今约有四千多年的历史,是世界滑雪的故乡. 适合不同平台的点位不一样 整数历史点位对股市有支撑作用,用汇言编C语言编 ...

  2. 哪些App适合用HTML5开发?

    本文转发自:http://www.educity.cn/wenda/11971.html 哪些移动互联网产品适合用HTML5开发? 1.搜索产品 的确,由Android系统定义的移动互联网搜索生态,是 ...

  3. 什么样的企业适合用 OKR?

    首页OKR 什么样的企业适合用 OKR? OKR 是⼀套企业运营管理体系,运营管理通过帮助企业"正确地做事"驱动企业绩效的提升.⽬前,任⾏业.规模.阶段与类型的企业都或多或少⾯临同 ...

  4. Oracle业务适合用PostgreSQL去O的一些评判标准

    标签 PostgreSQL , Oracle 背景 Oracle业务适合用PG去O的一些评判标准: 功能指标 如果评估出来的业务中具备这些特性,非常适合使用PostgreSQL. 1.业务使用的数据类 ...

  5. 《Total Commander:万能文件管理器》——第2.5节.问题:我适合用TC吗?

    本节书摘来自异步社区<Total Commander:万能文件管理器>一书中的第2章,第2.5节,作者 张玉新,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第 ...

  6. 为什么互联网更容易产生泡沫?

    为什么互联网更容易产生泡沫? 为什么互联网更容易产生泡沫?我先举个造汽车的例子:从前期的设计研究:中期的生产投入:后期的产品测试,每个环节都需要投入大量的人力.物力.财力.对于任何一辆汽车的生产而言, ...

  7. 万向控股肖风:区块链不依赖摩尔定律,发展速度一定比互联网更快

     关注ITValue,查看企业级市场最新鲜.最具价值的报道! 本文是万向控股有限公司副董事长.万向区块链股份公司董事长兼总经理.万向区块链实验室发起人肖风在2月28日金融科技海上夜话的演讲.肖风分享了 ...

  8. 让互联网更快:新一代QUIC协议在腾讯的技术实践分享

    本文来自腾讯资深研发工程师罗成在InfoQ的技术分享. 1.前言 如果:你的 App,在不需要任何修改的情况下就能提升 15% 以上的访问速度,特别是弱网络的时候能够提升 20% 以上的访问速度. 如 ...

  9. 【互联网人的英语】什么时候适合用“词根词缀法”来背单词?

    上一节我们对The Product-Minded Software Engineer这篇文章做了一个背景介绍,今天我们进入这篇文章的正文.我会为你精讲文章的第一段.你可以先自己读一下这段话. 1. P ...

最新文章

  1. SQL Server 查看identity值的几种方法。
  2. java 链表中倒数第k个结点
  3. GPU Gems1 - 2 水刻蚀的渲染
  4. win10如何修改IP地址
  5. 编译OSG的FreeType插件时注意的问题
  6. 菜单黑暗模式UI动画素材模板
  7. C#中DataRow的初始化
  8. 【WH】MVC数据分页扩展类
  9. 文件上传下载--DiskFileUpload
  10. 易语言静态连接器提取_正确易语言链接器link.exe,使易语言支持静态编译
  11. 深入浅出理解奈奎斯特(Nyquist)稳定判据
  12. 用友软件计算机时间格式,如何正确设置系统日期格式?_速达软件_用友,速达,管家婆,微软,金蝶,方正,博世通,数据博士,进销存,财务软件-飞鸿软件帮助中心 -...
  13. 青春期的我们……妥协…挣扎…惊醒
  14. 网络会议openmeetings下的openmeetings-util文件分析3
  15. pwnable.kr wp passcode
  16. 【MFC】基于OpenCV的魔镜
  17. 《金融怪杰》读书笔记
  18. Idea报错[Cannot access com.xxx] 的 [解决办法]
  19. mysql 初次进入_怎么初次进入mysql?
  20. windows下配置PPPoE服务器

热门文章

  1. 【DPDK】dpdk样例源码解析之三:dpdk-l3fwd_001
  2. Python实例:网络爬虫抓取豆瓣3万本书(5)
  3. 一文全览神经网络模型
  4. mistral 工作流组件之二 思维导图
  5. phpdesigner 7 注册码 注册机 汉化版
  6. 新闻发布系统 毕业论文
  7. 跟我学UDS(ISO14229) ———— 0x11(ECUReset)
  8. matlab mean nan,为什么Matlab运行的结果是NaN呢,急盼解答
  9. 华电控制科学与计算机学院,华北电力大学(北京)控制与计算机工程学院简介...
  10. 浅析智慧充电桩云平台的技术设计方案