首页 > 其他分享 >[答疑]是不是互联网更适合用DDD

[答疑]是不是互联网更适合用DDD

时间:2024-10-27 15:51:21浏览次数:7  
标签:微信 美团 系统 答疑 互联网 领域 DDD

阿俊 2021-11-4 13:11

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

UMLChina潘加宇

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

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

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

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

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

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

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

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

当然管用了!

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

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

果然,患者好了。

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

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

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

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

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

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

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

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

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

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

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

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

啰嗦这么多,意思是:

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

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

标签:微信,美团,系统,答疑,互联网,领域,DDD
From: https://blog.csdn.net/rolt/article/details/143252851

相关文章

  • 2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis
    前言春招,秋招,社招,我们Java程序员的面试之路,是挺难的,过了HR,还得被技术面,在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今...近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备......
  • 2024最新互联网一线大厂最新高质量 Java 面试八股文汇总(附答案)
    最近很多粉丝朋友私信我说:熬过了去年的寒冬却没熬过现在的内卷;打开Boss直拒一排已读不回,回的基本都是外包,薪资还给的不高,对技术水平要求也远超从前;感觉Java一个初中级岗位有上千人同时竞争,内卷程度简直怀疑人生。事实也确实是这样:我国大概有400-700万程序员,其中光Java......
  • redis高级篇之IO多路复用select方法简介 第174节答疑
    1、bitmap最大1024位,一个进程最多只能处理1024个客户端2、&rset不可重用,每次socket有数据就相应的位会被置位3、文件描述符数组拷贝到了内核态(只不过无系统调用切换上下文的开销。(内核层可优化为异步事件通知)),仍然有开销。select调用需要传入fd数组,需要拷贝一份到内核,高......
  • redis高级篇之IO多路复用IOMultiplexing从学术到人话版 172节答疑
    ref:selectRecieve.png这图什么意思,select是阻塞的,然后呢?这张图展示了I/O复用模式下的工作流程,特别是使用`select`系统调用进行I/O复用的情况。在这种模式下,`select`用于监听多个文件描述符(如套接字),等待其中任何一个变为可读、可写或有异常发生。以下是图中各部分的详......
  • redis第152节答疑 redis源码分析String重要总结
    redis的string类型,如果数字大于10000,就不去共享整数中去取,然后就变成了embstr或者raw,为什么不是new一个redisobject,并且编码为int对于Redis的字符串类型(String),当字符串表示的是一个整数值时,Redis会根据具体情况选择不同的编码方式。对于数字大于10000的情况,Redis不会将其编......
  • redis高级篇之skiplist跳表 第164节答疑
    跳表查询的空间复杂度分析比起单纯的单链表,跳表需要存储多级索引,肯定要消耗更多的存储空间。那到底需要消耗多少额外的存储空间呢?我们来分析一下跳表的空间复杂度。第一步:首先原始链表长度为n,第二步:两两取首,每层索引的结点数:n/2,n/4,n/8..,8,4,2每上升一级就减少一半,......
  • 2024最新互联网工程师 Java 面试八股文及答案整理
    2024金九银十即将结束,竟很多同学会问Java面试八股文有必要背吗?!!我的回答是:很有必要!!!!你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。国内的互联网面试,恐怕是现存的、最接近科举考试的制度。而且,我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算......
  • 没有技术背景,如何成为一个互联网行业的项目经理
    没有技术背景成为一个互联网行业的项目经理的道路虽然挑战重重、但远非不可能。主要策略包括积累项目管理知识与经验、了解互联网行业的基本工作流程和术语、提升沟通协调能力、并持续学习和适应新技术。其中积累项目管理经验尤为重要,因为管理技能对于这一岗位是核心要求。一、......
  • 互联网十万个为什么之什么是路由?
    路由(Routing)是网络中数据包从源点到目的地的路径选择过程。它可以确定数据包在多个网络互联的设备(如路由器)之间传输的最佳路径。路由器使用预先定义的路由协议和策略来决定如何将数据包转发到下一个节点或最终目的地。这个决策是基于路由表的信息,该信息包含了网络中各路径的......
  • 【可答疑】基于51单片机的家庭防盗报警系统(含仿真、代码、报告、演示视频等)
     ✨哈喽大家好,这里是@每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~......