首页 > 其他分享 >领域、系统和组织-《实现领域驱动设计》中译本评点-第2章(4)

领域、系统和组织-《实现领域驱动设计》中译本评点-第2章(4)

时间:2024-03-29 09:30:24浏览次数:14  
标签:封装 软件系统 知识 中译本 领域 评点 驱动 客观规律

相关链接

DDD领域驱动设计批评文集>>

汪峰哭晕在厕所-《实现领域驱动设计》中译本评点-第2章(1)

可不是乱打的-《实现领域驱动设计》中译本评点-第2章(2)

“领域”的错误定义-《实现领域驱动设计》中译本评点-第2章(3)

《实现领域驱动设计》的翻译错误>>

[答疑]《实现领域驱动设计》的译者其实没错?(一)>>

[答疑]《实现领域驱动设计》的译者其实没错?(二)>>

图片

上一篇文章《“领域”的错误定义》讲述:《实现领域驱动设计》原文中把“领域”定义为“组织做的事”是错误的。

接下来,我们来看看领域和组织之间怎样能扯上关系。

很多学科都使用“领域(domain)”这个词,函数的定义域、网站的域名等等里面的“域”就是domain。

对于软件开发,domain指的应该是(软件系统需要封装的)知识领域(knowledge domain)。

(1)客观规律

宇宙、星系、星体、生命体、细胞、原子、基本粒子,当然,还有人类社会及其衍生物,万事万物都存在其运转的客观规律。

★无论人类存在还是已灭绝,无论人类是否认识这些客观规律,无论认识的精确度如何,这些客观规律就在那里。

(2)领域知识

经过不断积累和整理,人类对万事万物的认识形成各种领域知识,而且不断更新。有的更新朝着接近客观规律的方向,有的更新则有意无意地偏离客观规律。

虽然一直在进步特别是近200年进步飞快,但目前人类认识客观规律的总体精确度应该偏低——毕竟才0.7级文明嘛。

图片

当前存在的领域知识中:

①有一部分知识精确度最高,例如各种最新的科学研究成果。

②有一部分知识曾经精确度最高,但现在已经被精确度更高的知识取代,例如阴阳五行、地心说。当然,至今仍然有很多人相信或假装相信这些知识的精确度很高——“****博大精深”。

③有一部分知识是基于①②,为了某种目的想象和杜撰的。

可以为了娱乐而杜撰,例如武侠小说中的武学知识体系、当代网络小说中的修真体系、游戏中的英雄技能体系。大家明知不是真的,但依然乐在其中。

还可以为了**而杜撰,例如(此处作者删除283字)。

从上面可以看出:

★领域知识虽然源于客观规律,但不一定接近客观规律或追求接近客观规律。

许多软件系统封装的是②或③的知识,例如一款看风水的系统、一款修真游戏。

★领域知识中,涉及到人类社会或人体的知识,只占很少一部分,而且精确度偏低。

领域知识是人类对万事万物的认识,而人类自身(甚至包括其他生命体在内)在这万事万物中能占多少比例呢?

目前人类能造出机器人,造出宇宙飞船,但无法合成(不是繁殖)出一个细胞,合成生命体更是遥不可及了。

★封装在软件系统中的领域知识,涉及到人类社会或人体的比例更少。

当前的绝大多数软件系统中,和现实中有生命的“人”对应的类,与其相关的逻辑所占比例是非常少的。封装复杂逻辑的类,我们需要为之画出复杂状态机的类,往往是“订单”、“设备”、“房间”等,它们在现实中对应的是无生命的事物。

目前的软件系统关注较多的人相关的逻辑可能是“有权限”、“无权限”等等,其他逻辑还没有能力或余力照顾。例如,现实中,男性很在意一名女性是否漂亮、健康、善良,但有多少软件系统封装了这些逻辑呢?

(3)系统

此处只讨论封装领域知识、有计算能力的信息系统,它能将输入信息转成所需信息输出。

信息系统可以分为人脑系统和非人信息系统(软件系统)。

图片

人的大脑可以看作一台计算机,其中安装了许多信息系统。

例如,输入是一张人脸,输出是人的姓名,用人脑中的“人脸识别系统”辨认还是用计算机中的“人脸识别系统”辨认,本质是一样的。

注意,“封装领域知识”必须把相关的领域知识变成自己的计算能力。

人在身上揣一本数学书,或者大脑死记硬背这本数学书上的文字,却没有能力运用其中知识解数学题,那不算“封装领域知识”。

同理,计算机里放了一本数学书的pdf文件,也不算“封装领域知识”,因为也没有能力运用其中知识解数学题。

★无论有没有系统封装这些领域知识,这些领域知识都在那里。

还是用前面《“领域”的错误定义》的说法,γ射线暴啪的一下,人类没了,图书馆的书还在那里。如果“把字刻在石头上”,没准还能等来外星文明来阅读它们——参见阿瑟·克拉克的《星(The Star)》,三体的“把字刻在石头上”应该来源于此。

(4)组织

人脑系统,软件系统,以及其他非信息系统,可以组装成组织。

★无论是否组装成组织,这些系统就在那里,领域知识也封装在系统里。

(5)组织价值(做某事)

图片

可见,“组织做的事”和“领域”相隔如此之远,而且中间各个环节都是多对多的映射。从“组织做的事”来的定义“领域”是非常不妥的。

关于系统、组织的更深入论述,参见《软件方法》第9章。

给大家留几道题目:

1. [单选] 

可以把各种投资少、见效快、产量高、门槛低的领域驱动设计伪创新手法做进一款充满仪式感的工具,用来帮助(割韭菜)有这方面需要的开发人员。

如果在开发这款工具时,想寻找领域专家,以下说法最合适的是:

 A) 典型的不想付出努力但又急需某个“方法”充门面的开发人员张三,是领域专家。

 B) 研究和批评领域驱动设计伪创新多年的潘加宇老师,是领域专家。

 C) UML三友之一James Rumbaugh,是领域专家。

 D) 伪创新不属于领域知识,不存在领域专家。

2. [多选]

软件的“技术人员”在研究物理领域时,发现有很多看起来差不多的用语,例如:高度、深度,压力、压强,重量、质量,速度、加速度,平衡力、相互作用力……

通用语言(Ubiquitous Language)是领域驱动设计革命性的创造和划时代的洞见之一。如果“技术人员”想发挥“通用语言”的威力,用最少的思考来解决这些词语差异,以下做法值得赞扬的有:

 A) 认真阅读物理专业书籍,努力分辨这些用语之间的区别和联系,并且做相应的测试题来检查自己的学习成果。

 B) 把物理领域划分成若干限界上下文,并定义A上下文中的速度相当于B上下文的加速度。

 C) 兄弟们一起去轰趴,一边饮酒作乐,一边头脑风暴,投票选出最能够凝聚团队的通用语言。

 D) 找物理高考满分的高考状元请教,一边问问题,一边画类图来整理。

3. [多选] 

很多革命性划时代领域驱动设计创新有投资少、见效快、产量高等特点。

以下选项的图形中,有一些也向领域驱动设计学习,它们是:

 A) 

 

图片

 B) 

 

图片

 C) 

 

图片

 D) 

 

图片

标签:封装,软件系统,知识,中译本,领域,评点,驱动,客观规律
From: https://blog.csdn.net/rolt/article/details/137003899

相关文章

  • 领域驱动设计简介
    ​ 领域驱动设计(Domain-DrivenDesign,简称DDD)是一种软件开发方法论,旨在通过丰富的领域模型来解决复杂问题。它强调基于领域的逻辑来驱动设计,而非技术实现细节,以此来促进软件项目的成功。DDD的核心在于理解业务领域,并将这种理解反映在软件中。参考文档:领域驱动设计简介-CJavaPy......
  • 商业分析五大领域【工具技术】系列之——(二)商业分析规划
    商业分析第一大领域“需要评估”的输出是:商业论证得到发起人认可,通俗点就是说,老板拍板了,这事儿可以开干了,去出更详尽的解决方案并实施去吧~那,直接上来就闷头扎在细节里干活么?当然不是,接下来先要规划,规划有什么作用?我们看看如果不规划的话,可能会出现什么情况呢:相关干系人产生......
  • 【转载】SLAM领域的优秀作者与实验室汇总
    原地址:https://blog.csdn.net/m0_37874102/article/details/114365837总结一些之前看过的SLAM(VO,VIO,建图)文献所发表的实验室和作者1.实验室美国卡耐基梅陇大学机器人研究所研究所主页:https://www.ri.cmu.edu/发表论文:https://www.ri.cmu.edu/pubs/优秀团队成员:Michael......
  • 北斗导航 | 卫星导航领域会议汇总
    =====================================================github:https://github.com/MichaelBeechanCSDN:https://blog.csdn.net/u011344545=====================================================卫星导航领域会议汇总1、中国卫星导航年会2、SATELLITE3、慕尼黑卫......
  • 说一说视频监控领域常见的一些性能指标
    常见的主码流、子码流是的码率大概是多少?安防领域,如果是H264的摄像机,一般主码流是4Mbps,子码流一般是1M,2M,甚至512K的都有。这些都是可设定的。如果是265编码的摄像机,可能主码流一般是2Mbps,子码流是1Mbps.bps的概念不是字节,而是位的概念。需要注意的是,即便是2M的主码流,可能......
  • 计算机领域热门技术词汇
    文章目录计算机领域热门技术词汇1、机器学习machinelearning2、神经网络neuralnetwork3、深度学习deeplearning4、自然语言处理naturallanguageprocessing5、计算机视觉computervision6、大数据bigdata7、数据挖掘datamining(DM)8、云计算CloudComputing9......
  • 特定领域软件架构(DSSA)
         ......
  • 在科学计算领域独领风骚,NumPy书写辉煌传奇
    在数字世界的边缘,有一座神奇的城市,这座城市由无数个数据点和向量构成,街道上流淌着数不清的数组和矩阵。在城市的中心,耸立着一座巨大的科学计算塔,它的外墙是由数学符号和代码构成,散发着闪烁的数字光芒。城里的居民们穿梭于数组的巷道间,驾驭着向量的飞船,探索着数据的深海,寻找着数学......
  • AI金融预测领域综述文章筛选,附论文及代码链接,2021年版
    21年的综述最近读了3篇,总结笔记如下:(2021)SystematicLiteratureReview:StockPricePredictionUsingMachineLearningandDeepLearning评价:原文不值得看,精华是下面那4篇论文。但这篇综述的写法比较典型,都是先描述问题,搜解决策略(按关键字搜、按数据源搜比如某个领域的期刊),......
  • 机器学习金融预测领域2023部分综述论文阅读记录
    23年的综述最近读了3篇,总结笔记如下:本期所有论文链接:2023综述https://www.alipan.com/s/ySur3StxKip点击链接保存,或者复制本段内容,打开「阿里云盘」APP,无需下载极速在线查看,视频原画倍速播放。(2023)A_Systematic_Survey_of_AI_Models_in_Financial_Mark评价:原文写的一般,可以......