当前位置: 首页 > article >正文

[答疑]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)爱输出

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

相关文章:

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

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 远航 2025-1-24 10:40 最近的热门话题仿制药,想到您经常批评的伪创新,这两者是不是很像? UMLChina潘加宇 伪创新哪有资格和仿制药比。 仿制药的…...

图漾相机——Sample_V1示例程序

文章目录 1.SDK支持的平台类型1.1 Windows 平台1.2 Linux平台 2.SDK基本知识2.1 SDK目录结构2.2 设备组件简介2.3 设备组件属性2.4 设备的帧数据管理机制2.5 SDK中的坐标系变换 3.Sample_V1示例程序3.1 DeviceStorage3.2 DumpCalibInfo3.3 NetStatistic3.4 SimpleView_SaveLoad…...

系统架构设计师教材:信息系统及信息安全

信息系统 信息系统的5个基本功能:输入、存储、处理、输出和控制。信息系统的生命周期分为4个阶段,即产生阶段、开发阶段、运行阶段和消亡阶段。 信息系统建设原则 1. 高层管理人员介入原则:只有高层管理人员才能知道企业究竟需要什么样的信…...

Kafka 深入客户端 — 事务

Kafka 事务确保了数据在写入Kafka时的原子性和一致性。 1 幂等 幂等就是对接口的多次调用所产生的结果和调用一次是一致的。 Kafka 生产者在进行重试的时候可能会写入重复的消息,开启幂等性功能后就可以避免这种情况。将生产者客户端参数enable.idempotence设置为…...

TensorFlow 2基本功能和示例代码

TensorFlow 2.x 是 Google 开源的一个深度学习框架,广泛用于构建和训练机器学习模型。 一、核心特点 1. Keras API 集成 TensorFlow 2.x 将 Keras 作为其核心 API,简化了模型的构建和训练流程。Keras 提供了高层次的 API,易于使用和理解。…...

ZZNUOJ(C/C++)基础练习1011——1020(详解版)

1011 : 圆柱体表面积 题目描述 输入圆柱体的底面半径r和高h,计算圆柱体的表面积并输出到屏幕上。要求定义圆周率为如下宏常量 #define PI 3.14159 输入 输入两个实数,表示圆柱体的底面半径r和高h。 输出 输出一个实数,即圆柱体的表面积&…...

Python 字典:快速掌握高效的数据存储方式

文章目录 一、什么是字典?字典的定义二、字典的基本操作1. 访问字典的值2. 修改字典中的值3. 添加新的键值对4. 删除键值对5. 获取字典长度三、字典的遍历1. 遍历键2. 遍历值3. 遍历键值对四、字典的常用方法1. `keys()`:获取所有键2. `values()`:获取所有值3. `items()`:获…...

Baklib探索内容中台的核心价值与实施策略

内容概要 在数字化转型的背景下,内容中台逐渐成为企业数字化策略中的关键组成部分。内容中台是一个集成的内容管理体系,旨在打破信息孤岛,使内容能够在各个业务部门和平台之间高效流通。这种管理体系不仅能够提升内容的生产效率,…...

网络安全攻防实战:从基础防护到高级对抗

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 在信息化时代,网络安全已经成为企业、政府和个人必须重视的问题。从数据泄露到勒索软件攻击,每一次…...

论文阅读(十三):复杂表型关联的贝叶斯、基于系统的多层次分析:从解释到决策

1.论文链接:Bayesian, Systems-based, Multilevel Analysis of Associations for Complex Phenotypes: from Interpretation to Decision 摘要: 遗传关联研究(GAS)报告的结果相对稀缺,促使许多研究方向。尽管关联概念…...

13.zookeeper开机自启动配置

要在Linux(RHEL7.7)系统中设置zookeeper开机自启动,可以创建一个系统服务单元文件。以下是为详细配置部署,假设你已经安装了zookeeper并且可以通过zkServer.sh命令启动它。 1.进入/lib/systemd/system目录 命令: cd /lib/systemd/system [root@rhel77 system]# cd /lib/…...

“““【运用 R 语言里的“predict”函数针对 Cox 模型展开新数据的预测以及推理。】“““

主题与背景 本文主要介绍了如何在R语言中使用predict函数对已拟合的Cox比例风险模型进行新数据的预测和推理。Cox模型是一种常用的生存分析方法,用于评估多个因素对事件发生时间的影响。文章通过具体的代码示例展示了如何使用predict函数的不同参数来获取生存概率和…...

Oracle Primavera P6 最新版 v24.12 更新 1/2

目录 引言 P6 PPM 更新内容 1. 在提交更新基线前预览调整 2. 快速轻松地取消链接活动 3. 选择是否从 XER 文件导入责任经理 4. 提高全局变更报告的清晰度 5. 将整个分层代码值路径导出到 CPP 6. 里程碑活动支持所有关系类型 6. 时间表批准 7. 性能改进 8. 安装改进 …...

AI大模型开发原理篇-2:语言模型雏形之词袋模型

基本概念 词袋模型(Bag of Words,简称 BOW)是自然语言处理和信息检索等领域中一种简单而常用的文本表示方法,它将文本看作是一组单词的集合,并忽略文本中的语法、词序等信息,仅关注每个词的出现频率。 文本…...

JavaWeb学习-SpringBotWeb开发入门(HTTP协议)

(一)SpringBotWeb开发步骤 (1)创建springboot工程,并勾选开发相关依赖 (2)定义HelloController类,添加方法hello,并添加注解 (3)运行测试 (二)HTTP入门概述 创建请求页面 package com.itheima.demo3; /*请求处理类,加上注解标识为请求处理类*/import org.spr…...

网站结构优化:加速搜索引擎收录的关键

本文来自:百万收录网 原文链接:https://www.baiwanshoulu.com/9.html 网站结构优化对于加速搜索引擎收录至关重要。以下是一些关键策略,旨在通过优化网站结构来提高搜索引擎的抓取效率和收录速度: 一、合理规划网站架构 采用扁…...

本地部署deepseek模型步骤

文章目录 0.deepseek简介1.安装ollama软件2.配置合适的deepseek模型3.安装chatbox可视化 0.deepseek简介 DeepSeek 是一家专注于人工智能技术研发的公司,致力于打造高性能、低成本的 AI 模型,其目标是让 AI 技术更加普惠,让更多人能够用上强…...

【deepseek】deepseek-r1本地部署-第二步:huggingface.co替换为hf-mirror.com国内镜像

一、背景 由于国际镜像国内无法直接访问,会导致搜索模型时加载失败,如下: 因此需将国际地址替换为国内镜像地址。 二、操作 1、使用vscode打开下载路径 2、全局地址替换 关键字 huggingface.co 替换为 hf-mirror.com 注意:务…...

sunrays-framework配置重构

文章目录 1.common-log4j2-starter1.目录结构2.Log4j2Properties.java 新增两个属性3.Log4j2AutoConfiguration.java 条件注入LogAspect4.ApplicationEnvironmentPreparedListener.java 从Log4j2Properties.java中定义的配置读取信息 2.common-minio-starter1.MinioProperties.…...

Spark Streaming的背压机制的原理与实现代码及分析

Spark Streaming的背压机制是一种根据JobScheduler反馈的作业执行信息来动态调整Receiver数据接收率的机制。 在Spark 1.5.0及以上版本中,可以通过设置spark.streaming.backpressure.enabled为true来启用背压机制。当启用背压机制时,Spark Streaming会自…...

刷题记录 贪心算法-2:455. 分发饼干

题目:455. 分发饼干 难度:简单 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸&a…...

360大数据面试题及参考答案

数据清理有哪些方法? 数据清理是指发现并纠正数据文件中可识别的错误,包括检查数据一致性,处理无效值和缺失值等。常见的数据清理方法有以下几种: 去重处理:数据中可能存在重复的记录,这不仅会占用存储空间,还可能影响分析结果。通过对比每条记录的关键属性,若所有关键…...

【大模型】Ollama+AnythingLLM搭建RAG大模型私有知识库

文章目录 一、AnythingLLM简介二、搭建本地智能知识库2.1 安装Ollama2.2 安装AnythingLLM 参考资料 一、AnythingLLM简介 AnythingLLM是由Mintplex Labs Inc.开发的一个全栈应用程序,是一款高效、可定制、开源的企业级文档聊天机器人解决方案。AnythingLLM能够将任…...

深入MapReduce——从MRv1到Yarn

引入 我们前面篇章有提到,和MapReduce的论文不太一样。在Hadoop1.0实现里,每一个MapReduce的任务并没有一个独立的master进程,而是直接让调度系统承担了所有的worker 的master 的角色,这就是Hadoop1.0里的 JobTracker。在Hadoop1…...

arkui-x 前端布局编码模板

build() {Column() {Row() {// 上侧页面布局实现}// 下侧页面布局实现}.width(Const.THOUSANDTH_1000).height(Const.THOUSANDTH_1000).justifyContent(FlexAlign.SpaceBetween).backgroundImage($r(app.media.background_xxx)).backgroundImageSize(ImageSize.Cover).backgrou…...

代理模式 -- 学习笔记

代理模式学习笔记 什么是代理? 代理是一种设计模式,用户可以通过代理操作,而真正去进行处理的是我们的目标对象,代理可以在方法增强(如:记录日志,添加事务,监控等) 拿一…...

sem_init的概念和使用案例

sem_init 是 POSIX 线程库中用于初始化未命名信号量&#xff08;unnamed semaphore&#xff09;的函数&#xff0c;常用于多线程或多进程间的同步。以下是其概念和使用案例的详细说明&#xff1a; 概念 函数原型&#xff1a; #include <semaphore.h>int sem_init(sem_t …...

JVM_类的加载、链接、初始化、卸载、主动使用、被动使用

①. 说说类加载分几步&#xff1f; ①. 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 第一过程的加载(loading)也称为装载验证、准备、解析3个部分统称为链接(Linking)在Java中数据类型分为基本数据类型和引用数据…...

ProfibusDP主机与从机交互

ProfibusDP 主机SD2索要数据下发&#xff1a;68 08 F7 68 01 02 03 21 05 06 07 08 1C 1668&#xff1a;SD2 08&#xff1a;LE F7&#xff1a;LEr 68&#xff1a;SD2 01:目的地址 02&#xff1a;源地址 03:FC_CYCLIC_DATA_EXCHANGE功能码 21&#xff1a;数据地址 05,06,07,08&a…...

Java设计模式:结构型模式→组合模式

Java 组合模式详解 1. 定义 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构以表示“部分-整体”的层次。组合模式使得客户端能够以统一的方式对待单个对象和对象集合的一致性&#xff0c;有助于处理树形结构…...