领域模型为核心的架构设计 初篇

简介: 领域模型为核心的架构设计 初篇

写在前面

参加了一个培训,主题就是以领域模型为核心的架构设计。很受启发,想着把思考,分享出来,大家可以在设计之路上,有所参考。

本篇文章,大致上从以下几个方面展开:

  • 目前项目进展过程中的痛点
  • 领域模型的概念
  • 模型的必要性
  • 领域模型的优势

项目痛点

从一些故事说起吧。

A

话说,在一个科技公司,开发人员大量辞职,均不同程度的产生焦虑、恐惧的情绪。公司高层都蒙了,开始调查原因。最终发现,公司里制度比较严格,对于上线的bug,会扣绩效、罚款。所有开发人员、测试人员,每个周的多次发版,都是战战兢兢。永远都是未知的问题占据了上风。很多时候,有可能不是新需求带来的问题,反而是老的业务需求,发生的问题。不管测试人员多努力,很多时候,就是会发生未知的问题。代码审核、管控,此时也都失效。久而久之,恐惧占据了心扉。

B

有一家中小微互联网企业,本来的架构比较传统,因为业务量没有那么大,采用了传统的单体结构。随着业务的开展、公司的发展,也是因为新来了一个技术总监,新人新气象,准备大刀破斧的实施技术改革,准备切换到微服务架构。对系统做新的重构,本来应该好好梳理出相关的业务场景、业务逻辑,但是可能时间紧迫,比较急于求成,导致服务拆分,乱七八糟,业务实现问题很多,系统产生了各种问题,严重影响了线上的业务。最终迫不得已,重新切换回了原架构。

上边两个故事,正是很好的描述了,项目开展进程中的一些痛点。

  1. 开发测试和代码审核管控无效,带来更多的未知问题
  2. 项目重构,造成更复杂问题,难以保证合理重构

总结看来,就是技术债务,严重影响了组织生产力。

项目开展过程中,基础没有做好,就会遗留一堆的技术问题,久而久之,就产生了技术债务。包括遗留bug、不规范设计、不合理业务流等等各个方面。技术债务的出现,严重影响了组织生产力。一代老人去,一代新人来。积攒的问题,最后爆发,会带来意想不到的巨大损失。

领域模型的概念

领域模型,用来描述现实世界的实体以及实体之间的关系。

领域模型,是对问题空间的理解。

举个例子说明,现在有个业务场景。说一个线上项目,场景为,用户需要拼车,然后线上下单,描述路程与出行时间,寻找车辆与同行的人,然后选择支付缴费方式。那么,我们用领域模型来描述,如下图所示:

image.png

目前呢,没有明确的说明,领域模型用什么来进行刻画,姑且现在用类图来描述。那么上图,相信大家很容易一目了然的了解这个业务场景。

领域模型的必要性

建立领域模型的必要性,大致上存在以下几点内容:

  1. 目前开发效率提升和业务发展要求存在冲突,没有很好的手段,来提升生产力,解决技术债务带来的影响。
    支撑业务发展,引领业务创新,软件在业务中作用越来越大,但是开发效率始终没有本质提升
  2. 不良的业务分析、架构设计基础之上,推动技术变革、发展,推动实施微服务、中台化,往往促使,矛盾更加凸显
  3. 未来技术发展,是云原生的未来。那么需求分析、架构设计、实现能力,都将回归基本能力。

需要有一种手段,来贯穿软件开发的整个生命周期。建立一门统一语言,来解决目前技术债务的痛点。

领域模型的出现,通过:

  • 业务引领的领域建模
  • 领域驱动的微服务架构
  • 契约导向的软件实现

完成,更好的高效的技术实践。经过实践来看,采用领域模型,至少提高10倍的生产力。

领域模型的优势

构建领域为核心的高效技术实践,需要领域模型的引领全局。

在软件开发中,认知是软件开发中的核心任务。

多少个软件开发中,因为产品经理和开发人员因为概念理解等问题闹得不可开交。对一件事情的认知,尤其重要。当然不仅仅体现在软件开发中。

举个例子讲,谈恋爱还得讲究三观一致,要不然,最终结局也估计不是理想的。

那么,对领域的认知,是一家企业的根本能力和竞争力。只有掌握好,自己公司领域的认知。达到全员一致化,那才能顺畅的开展一切的业务。

缺乏领域模型的信号:

1)组织没有概念共识

2)沟通误解不必要的需求

该信号,正是凸显了认知的存在性和必要性。

一个高质量的领域模型有以下特点:

  • 建立共识
    建立一门统一语言,解决企业内认知弊端,达到统一认知
  • 产生洞察
    有了领域模型,会提升业务人员的直觉,添加分解和抽象的能力,养成持续演进的思维方式
  • 持续演进
    没有稳定不变的模型,只有更适合当前场景的模型,最好的模型,就是能够尽大可能的兼容,可扩展

领域模型,它不是分析阶段的产物,是贯穿整个软件开发的过程。

分析阶段,领域模型,构建共识

开发阶段,领域模型,引领开发

测试阶段,领域模型,可以自动化测试

总结

构建以领域模型为核心的高效架构实践,是指导我们软件开发的必然实践。

目录
相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 分布式计算
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
137 3
|
2月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
109 0
|
14天前
|
机器学习/深度学习 测试技术 定位技术
新扩散模型OmniGen一统图像生成,架构还高度简化、易用
近期,一篇题为“OmniGen: Unified Image Generation”的论文介绍了一种新型扩散模型OmniGen,旨在统一图像生成任务。OmniGen架构简洁,无需额外模块即可处理多种任务,如文本到图像生成、图像编辑等。该模型通过修正流优化,展现出与现有模型相当或更优的性能,尤其在图像编辑和视觉条件生成方面表现突出。OmniGen仅含3.8亿参数,却能有效处理复杂任务,简化工作流程。尽管如此,OmniGen仍存在对文本提示敏感、文本渲染能力有限等问题,未来研究将继续优化其架构与功能。
43 16
|
1月前
|
机器学习/深度学习 自然语言处理 C++
TSMamba:基于Mamba架构的高效时间序列预测基础模型
TSMamba通过其创新的架构设计和训练策略,成功解决了传统时间序列预测模型面临的多个关键问题。
137 4
TSMamba:基于Mamba架构的高效时间序列预测基础模型
|
28天前
|
网络协议 网络架构
TCP/IP协议架构:四层模型详解
在网络通信的世界里,TCP/IP协议栈是构建现代互联网的基础。本文将深入探讨TCP/IP协议涉及的四层架构,以及每一层的关键功能和作用。
137 5
|
29天前
|
机器学习/深度学习 存储 人工智能
【AI系统】模型演进与经典架构
本文探讨了AI计算模式对AI芯片设计的重要性,通过分析经典模型结构设计与演进、模型量化与压缩等核心内容,揭示了神经网络模型的发展现状及优化方向。文章详细介绍了神经网络的基本组件、主流模型结构、以及模型量化和剪枝技术,强调了这些技术在提高模型效率、降低计算和存储需求方面的关键作用。基于此,提出了AI芯片设计应考虑支持神经网络计算逻辑、高维张量存储与计算、灵活的软件配置接口、不同bit位数的计算单元和存储格式等建议,以适应不断发展的AI技术需求。
36 5
|
2月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
109 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
3月前
|
机器学习/深度学习
ACM MM24:复旦提出首个基于扩散模型的视频非限制性对抗攻击框架,主流CNN和ViT架构都防不住它
【9月更文挑战第23天】复旦大学研究团队提出了ReToMe-VA,一种基于扩散模型的视频非限制性对抗攻击框架,通过时间步长对抗性潜在优化(TALO)与递归令牌合并(ReToMe)策略,实现了高转移性且难以察觉的对抗性视频生成。TALO优化去噪步骤扰动,提升空间难以察觉性及计算效率;ReToMe则确保时间一致性,增强帧间交互。实验表明,ReToMe-VA在攻击转移性上超越现有方法,但面临计算成本高、实时应用受限及隐私安全等挑战。[论文链接](http://arxiv.org/abs/2408.05479)
86 3
|
3月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
111 4
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)

热门文章

最新文章