[答疑]DDD伪创新哪有资格和仿制药比

DDD领域驱动设计批评文集

做强化自测题获得“软件方法建模师”称号

《软件方法》各章合集


远航 2025-1-24 10:40

最近的热门话题仿制药,想到您经常批评的伪创新,这两者是不是很像?

UMLChina潘加宇

伪创新哪有资格和仿制药比。

仿制药的定义:

通用名药物,也称学名药、非专利药、仿制药。原始药品的专利权到期后,通用名药物才得以销售。因为通用名药物的化学活性成分与原始药品相同,所以前者的医学特性被认为与原始药品等效。在某些特征上,例如制造过程、药剂剂型、赋形剂、颜色、味道、和包装,会有所不同。

仿制药是有药效的真药,国内厂商如果想要认真仿制,是可以做出和真药效果类似的仿制药的。之所以挨骂,可能是为了压缩成本,没有好好仿制而已。

伪创新是无效的药。他们根本没有好好去研究真药——当然,也用不着,而是以极低成本炮制一些“简单”、“接地气”的无效药,大量精力投入到盘外招上。

以前几年的新冠为例: 

图片

切换到软件开发。

如果有一位同学认真研究了《软件方法》和我的所有资料(或其他非伪创新的严谨方法学),熟练掌握之后,自立门户开展和我相似的建模课程。这个是仿制药。

伪创新圈子不会去研究前人已有的知识,大多数情况下靠自己“悟”或者封闭圈子“讨论”,所以“悟”出来的内容很多是错的、有害的,或者是几十年前已经出现的知识,但伪创新圈子却不知道,仍然美滋滋地“我发现”、“我领悟到”。

但是,就是这样的东西非常“接地气”,因为很多开发人员也是这样的,不喜欢学习,什么都靠自己“悟”,两个脑电波就对上线了。

关于“接地气”,前一段时间写的《领域驱动设计拆分系统和“大道至简”话术》已经做了比较详细的剖析。

=====以下是扩展=====

根据我这些年对伪创新圈子的观察和接触,归纳出这么几个特点,大家看看身边有没有可以对号入座的:

(1)喜欢创新和造词

动不动发现什么,提出什么,说的每一句话甚至都能当PPT演讲题目。各种造词手法:换词、砌词、加前缀、加后缀……参见《软件方法》第1章。

(2)复读机(念经)

说话也好,写文章发视频也好,一开头就念经“领域驱动设计是解决复杂业务系统的方法学”。

谁告诉你“领域驱动设计是解决复杂业务系统的方法学”了?都是圈子互吹互捧出来的!

DDD属于自己的东西,只是一些零散的心得,如果用原理、原则、模式来套的话,勉强算是模式。

“DDD是分析和设计的一些模式”这个表述勉强可以。其中很多内容既不新、也不深,甚至是错误和倒退的。

更多细节参见文章:

★DDD浮夸,Eric Evans开了个坏头(https://mp.weixin.qq.com/s/fzRG27uyDSWtNN9thi6Lrw)

★领域驱动设计割裂历史,哪里有详细一些的真实历史?(https://mp.weixin.qq.com/s/NmfCoeFp-Qv67JEcMu12CA)

值得警惕的是,圈子营造的这些内容已经大量污染了AI,AI也在跟着念经。

(3)反智

伪创新圈子拒绝去学习知识。稍微复杂一点的知识,他就觉得不接地气,动不动就喊“大道至简”,把“大道至简”歪曲成“简即大道”。这个仍然要看《领域驱动设计拆分系统和“大道至简”话术》。

(4)基础知识缺失

这里的基础知识并不是说UML和《软件方法》,而是说计算机科学和软件开发的基础知识。

在过去二三十年“唯有IT高”的氛围下,以及编程门槛的降低,许多非计算机专业的毕业生纷纷加入IT业,包括我自己。

但这些知识(特别是计算机科学)的系统训练,我是自行一一弥补的,并且这些年来一直持续学习。我自己的经历可以看UMLChina公众号精选(umlchina.com/url/jingxuan.html)的系列文章(位置在页面底部)

而令人惊讶的是,伪创新圈子很多人一些基础概念都分不清楚,但不妨碍他们爱DDD,爱敏捷,甚至到处去布道。更麻烦的是,给他们指出来,辩解是“不要纠结细节”。

参见:为什么要对术语"吹毛求疵"(https://mp.weixin.qq.com/s/a1_UCtZZmCGigyYTivOqdA)

再说一遍,这里的基础知识不是在说UML。

(5)不阅读,爱讨论

这是我感受最深的。

有很多DDD粉丝来跟我讨论。我说,你看看我写的文章,或者把题做一下,就算怀着批判的心态去看或去做题也行啊。他根本看不下去,做不下去的。

或者问我一个问题,我已经很清楚地回答了,写得清清楚楚明明白白。他也不看,明明已经写清楚的问题,又问了好几遍,我只好把刚才那几行字又贴一遍。这是这个圈子的一个很大的问题——缺乏静下心来阅读和思考的能力。

(看视频也属于阅读。也同样有类似情况,截个我视频的图发过来问我,实际上我视频里明明已经讲得很清楚,他不认真看的。)

他们就是爱讨论,因为讨论很热闹,能带来仪式感。他们描述的场景中,很少谈到具体怎么推理怎么思考(事实上他们也不会),而是拉一群“专家”讨论,然后Duang的一下,结果就出来了。

(6)爱输出

随意扫半页纸,就可以输出十倍长度的心得,各种基础知识的缺失,并不妨碍他输出。这也许就是天赋吧!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2】阿里面试题整理

[1]. 说一下Java与C的区别。 Java和C是两种在软件开发领域应用非常广泛的语言,但它们的设计理念和应用场景有所不同。 Java是一种基于JVM的解释型语言,具有跨平台性,使用自动垃圾回收机制,这使得开发者可以更专注于业务逻辑&…

线性调整器——耗能型调整器

线性调整器又称线性电压调节器,以下是关于它的介绍: 基本工作原理 线性调整器的基本电路如图1.1(a)所示,晶体管Q1(工作于线性状态,或非开关状态)构成一个连接直流源V和输出端V。的可调电气电阻,直流源V由60Hz隔离变压器(电气隔离和整流&#…

拦截器快速入门及详解

拦截器Interceptor 快速入门 什么是拦截器? 是一种动态拦截方法调用的机制,类似于过滤器。 拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行。 拦截器的作用:拦截请求,在指定方法调用前后,根…

1561. 你可以获得的最大硬币数目

1561. 你可以获得的最大硬币数目 题目链接&#xff1a;1561. 你可以获得的最大硬币数目 代码如下&#xff1a; class Solution { public:int maxCoins(vector<int>& piles) {sort(piles.begin(), piles.end());int res 0;for (int i piles.size() / 3;i < pil…

一文掌握ADB的安装及使用

文章目录 一、什么是ADB&#xff1f;二、 安装ADB2.1 下载ADB2.2 配置环境变量 三、连接Android设备四、 常用ADB命令五、ADB高级功能5.1 屏幕截图和录制5.2 模拟按键输入5.3 文件管理5.4 系统设置管理5.5 系统操作指令5.6 日志操作指令5.7 APK操作指令5.8 设备重启和恢复 六、…

【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}

文章目录 介绍redis的引入 分布式系统单机架构应用服务和数据库服务分离【负载均衡】引入更多的应用服务器节点 单机架构 分布式是什么 数据库分离和负载均衡 理解负载均衡 数据库读写分离 引入缓存 数据库分库分表 引入微服务 介绍 The open source, in-memory data store us…

springboot使用rabbitmq

使用springboot创建rabbitMQ的链接。 整个项目结构如下&#xff1a; 1.maven依赖 <dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>3.4.1</version> </dependency>application.y…

Codeforces Round 987 (Div. 2)题解 A~D

A- Penchick and Modern Monument 由于给定的数是非递增的&#xff0c;所以 h [ i ] ≥ h [ i 1 ] h_[i]\geq h[i1] h[​i]≥h[i1]&#xff0c;如果 h [ i ] > h [ i 1 ] h[i]>h[i1] h[i]>h[i1] 那么二者至少要改其一。因为最终要求的数是非递减的&#xff0c;所…

论文阅读(九):通过概率图模型建立连锁不平衡模型和进行关联研究:最新进展访问之旅

1.论文链接&#xff1a;Modeling Linkage Disequilibrium and Performing Association Studies through Probabilistic Graphical Models: a Visiting Tour of Recent Advances 摘要&#xff1a; 本章对概率图模型&#xff08;PGMs&#xff09;的最新进展进行了深入的回顾&…

ubuntu20.04.6下运行VLC-Qt例子simple-player

下载examples-master.zip&#xff08;https://github.com/vlc-qt/examples&#xff09;&#xff0c;编译运行simple-player 参考链接&#xff1a; https://blog.csdn.net/szn1316159505/article/details/143743735 本文运行环境 Qt 5.15.2 Qt creator 5.0.2 主要步骤&#xf…

php twig模板引擎详细使用教程

php twig模板引擎 1. 什么是Twig模板引擎 Twig是一个强大且灵活的PHP模板引擎&#xff0c;它提供了一种更简洁和可扩展的方法来创建PHP应用程序的视图层。Twig模板引擎旨在将设计与业务逻辑分离&#xff0c;并为开发人员提供一种更加清晰和易于维护的方式来构建网页。Twig由S…

蓝桥杯之c++入门(一)【C++入门】

目录 前言5. 算术操作符5.1 算术操作符5.2 浮点数的除法5.3 负数取模5.4 数值溢出5.5 练习练习1&#xff1a;计算 ( a b ) ⋆ c (ab)^{\star}c (ab)⋆c练习2&#xff1a;带余除法练习3&#xff1a;整数个位练习4&#xff1a;整数十位练习5&#xff1a;时间转换练习6&#xff…

c语言中mysql_query的概念和使用案例

在 C 语言中&#xff0c;使用 MySQL 数据库需要用到 MySQL C API。mysql_query() 函数是 MySQL C API 中的一个函数&#xff0c;用于执行 SQL 语句。 概念 mysql_query() 函数的原型如下&#xff1a; int mysql_query(MYSQL *mysql, const char *stmt_str)mysql&#xff1a;…

WebForms SortedList 深度解析

WebForms SortedList 深度解析 引言 在Web开发领域,对于数据结构的理解与应用至关重要。其中,SortedList类在WebForms中是一个常用的数据结构,它能够帮助开发者高效地管理有序数据集合。本文将深入解析SortedList类在WebForms中的应用,包括其基本概念、常用方法、性能特点…

图论——spfa判负环

负环 图 G G G中存在一个回路&#xff0c;该回路边权之和为负数&#xff0c;称之为负环。 spfa求负环 方法1:统计每个点入队次数, 如果某个点入队n次, 说明存在负环。 证明&#xff1a;一个点入队n次&#xff0c;即被更新了n次。一个点每次被更新时所对应最短路的边数一定是…

设想中的计算机语言:可执行对象的构造函数和析构函数

经典 C语言的内存管理&#xff0c;是一块一块的&#xff0c;用malloc分配内存&#xff0c;用free释放内存。 C有对象&#xff0c;一个对象是好几片内存&#xff0c;用指针连接起来&#xff0c;用构造函数和析构函数管理对象。 创意 如图&#xff0c;是一个“可执行对象”&am…

SAP系统中的主要采购类型/采购模式总结

在 SAP 系统中,采购类型主要有以下几种: 一、标准采购订单(Standard Purchase Order) 描述:这是最常用的采购类型,用于一次性采购货物或服务。采购部门根据需求部门提出的采购申请,向供应商发出采购订单,明确规定了采购的物料、数量、价格、交货日期等详细信息。 应…

我的毕设之路:(2)系统类型的论文写法

一般先进行毕设的设计与实现&#xff0c;再在现成毕设基础上进行描述形成文档&#xff0c;那么论文也就成形了。 1 需求分析&#xff1a;毕业设计根据开题报告和要求进行需求分析和功能确定&#xff0c;区分贴合主题的主要功能和拓展功能能&#xff0c;删除偏离无关紧要的功能…

kamailio-5.8.4-centos9编译

安装必要的依赖包 在开始编译之前&#xff0c;你需要安装编译 Kamailio 所需的一些基础依赖包&#xff1a; dnf install -y make gcc gcc-c flex bison libxml2-devel openssl-devel sqlite-devel mysql-devel pcre-devel libcurl-devel下载并解压 Kamailio 源码包 假设你已经…

spring中解决循环依赖的方法

为了避免这种循环依赖问题&#xff0c;Spring 引入了三级缓存的机制&#xff0c;分为&#xff1a; 一级缓存&#xff08;singletonObjects&#xff09;&#xff1a;这是存放已经完全创建好的单例 Bean 的缓存。当 Bean 完全初始化并且可以被使用时&#xff0c;会存放在这里。 …