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

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

写在前面

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

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

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

项目痛点

从一些故事说起吧。

A

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

B

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

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

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

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

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

领域模型的概念

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

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

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

image.png

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

领域模型的必要性

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

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

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

领域模型的出现,通过:

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

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

领域模型的优势

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

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

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

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

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

缺乏领域模型的信号:

1)组织没有概念共识

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

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

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

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

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

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

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

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

总结

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

目录
相关文章
|
8天前
|
机器学习/深度学习 计算机视觉 iOS开发
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
31 0
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
|
3月前
|
机器学习/深度学习 自然语言处理 分布式计算
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
435 3
|
12天前
|
机器学习/深度学习 算法 文件存储
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
38 10
YOLOv11改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
|
8天前
|
机器学习/深度学习 算法 文件存储
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
19 4
RT-DETR改进策略【模型轻量化】| MoblieNetV3:基于搜索技术和新颖架构设计的轻量型网络模型
|
23天前
|
自然语言处理 算法 JavaScript
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
多LLM摘要框架通过生成和评估两个步骤处理长文档,支持集中式和分散式两种策略。每个LLM独立生成文本摘要,集中式方法由单一LLM评估并选择最佳摘要,而分散式方法则由多个LLM共同评估,达成共识。论文提出两阶段流程:先分块摘要,再汇总生成最终摘要。实验结果显示,多LLM框架显著优于单LLM基准,性能提升最高达3倍,且仅需少量LLM和一轮生成评估即可获得显著效果。
58 10
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
|
12天前
|
机器学习/深度学习 计算机视觉 iOS开发
YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
53 12
|
1月前
|
机器学习/深度学习 编解码 vr&ar
NeurIPS 2024最佳论文,扩散模型的创新替代:基于多尺度预测的视觉自回归架构
本文详细解读NeurIPS 2024最佳论文《视觉自回归建模:基于下一尺度预测的可扩展图像生成》。该研究提出VAR模型,通过多尺度token图和VAR Transformer结构,实现高效、高质量的图像生成,解决了传统自回归模型在二维结构信息、泛化能力和计算效率上的局限。实验表明,VAR在图像质量和速度上超越现有扩散模型,并展示出良好的扩展性和零样本泛化能力。未来研究将聚焦于文本引导生成和视频生成等方向。
166 8
NeurIPS 2024最佳论文,扩散模型的创新替代:基于多尺度预测的视觉自回归架构
|
28天前
|
搜索推荐 架构师 数据挖掘
架构实操:画好一张业务模型图
本文以SDK设计的角度分析了如何构建一张属于SDK的各个业务的模型图。
|
4月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
181 0
|
2月前
|
机器学习/深度学习 测试技术 定位技术
新扩散模型OmniGen一统图像生成,架构还高度简化、易用
近期,一篇题为“OmniGen: Unified Image Generation”的论文介绍了一种新型扩散模型OmniGen,旨在统一图像生成任务。OmniGen架构简洁,无需额外模块即可处理多种任务,如文本到图像生成、图像编辑等。该模型通过修正流优化,展现出与现有模型相当或更优的性能,尤其在图像编辑和视觉条件生成方面表现突出。OmniGen仅含3.8亿参数,却能有效处理复杂任务,简化工作流程。尽管如此,OmniGen仍存在对文本提示敏感、文本渲染能力有限等问题,未来研究将继续优化其架构与功能。
86 16