DDD/ABP 洋葱架构aka整洁架构

99 篇文章 5 订阅
订阅专栏
35 篇文章 0 订阅
订阅专栏
23 篇文章 0 订阅
订阅专栏

分层架构和传统三层架构

1、分层架构:把各个组件按照“高内聚、低耦合”的原则组织到不同的项目中。

2、传统的经典三层架构

 三层架构的缺点:尽管有DAL data access layer,但仍然是面向数据库的思维方式;对于一些简单的、不包含业务逻辑的增删改查类操作,仍然需要BLL business logic layer进行转发;依赖关系是单向的,所以下一层中的代码不能使用上一层中的逻辑。

整洁架构(洋葱架构)

1、内层的部分比外层的部分更加的抽象→内层表达抽象,外层表达实现。

2、外层的代码只能调用内层的代码,内层的代码可以通过依赖注入的形式来间接调用外层的代码。简单理解,就是你平常在应用服务实现其接口(记住:应用服务调用领域服务)。然后在别的地方各种依赖注入着用。更简单理解:Angular的依赖注入各种service,service里各种逻辑,其他ts文件也可调用这个service。

recall之前比较难理解的ABP架构图的指向:

结合ABP VNext来理解DDD_董厂长的博客-CSDN博客_abp vnext 多租户DDD:根据领域划分业务,领域可以无限大或者无限小,这取决于业务分析师(产品经理和技术专家)看一下DDD的分层架构,是多层的,单向的,可以跨级访问的。那么ABP框架的架构遵循了DDD的架构思想。每个文件的大概作用如下:...https://blog.csdn.net/dongnihao/article/details/123105225?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166307919616782427476180%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166307919616782427476180&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-123105225-null-null.nonecase&utm_term=DDD&spm=1018.2226.3001.4450

 

 说一下开发中这种架构的实际用处:

首先是由于使用依赖注入,举个例子,读取邮件被解耦了,可替代,那么开发环境可以使用mock数据,等到了生产环境,再替换上去。仔细想了想,我们开发确实是这么操作的。

对比三层架构谈洋葱架构的优点。

  • 它提供了灵活、可持续和可移植的架构。

  • 各层之间没有紧密的耦合,并且有关注点的分离。

  • 由于所有的代码都依赖于更深的层或者中心,所以提供了更好的可维护性。

  • 提高了整体代码的可测试性,因为单元测试可以为单独的层创建,而不会影响到其他的模块。

  • 框架/技术可以很容易地改变而不影响核心领域。例如,RabbitMQ 可以被 ActiveMQ 取代,SQL 可以被 MongoDB 取代。

防腐层 ACL 

anti corruption layer

外部服务(短信服务、邮件服务、存储服务等)的变化会比较频繁。把这些服务定义为接口,在内层代码中我们只定义和使用接口,在外层代码中定义接口的实现。

体现的仍然是洋葱架构的理念。

理解一下:你平常做的任何继承接口的实现,都是在做防腐层的事情,举个例子,某一天你的验证码服务商换掉啦,只需要重新实现其对应接口。

领域驱动设计DDD)中的应用架构:六边形、洋葱整洁与清晰
wjianwei666的专栏
04-17 333
六边形架构洋葱架构整洁架构和清晰架构都是领域驱动设计中常用的应用架构模式。它们通过不同的方式来实现业务逻辑与外部系统的分离,从而提高系统的可维护性、可扩展性和灵活性。在实际项目中,应根据具体需求和团队特点选择合适的架构模式来构建健壮且易于演化的软件系统。
ABP(现代ASP.NET样板开发框架)系列之1、ABP总体介绍
weixin_33971977的博客
05-25 232
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。 ASP.NET Boi...
从核心到边界:六边形、洋葱与COLA架构的深度解析
最新发布
贾欣晓的博客
08-03 1653
在COLA架构中,我们制定了一系列的命名规范,以便通过名称就能知晓该类的作用和职责范围,从而极大地提升代码的可理解性,提升代码审查(Code Review)的效率。因此,在COLA的设计中,汲取了很多前文中介绍的典型应用架构的优秀思想。只有一个业务的简单场景对扩展性的要求并不突出,这也是扩展设计常被忽略的原因,因为我们大部分的系统都是从单一业务开始的。洋葱架构提供了一个完全独立的对象模型(领域模型),该模型位于架构的核心,不依赖其他任何层次,我们可以在不影响内层的情况下改变外层的灵活性。
基于DDD的.NET开发框架 - ABP分层设计
weixin_33755557的博客
05-19 749
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。 ABP的官方网站:http://www.aspnetboilerplate.com ABP官方文档:http://www.a...
洋葱架构简介——分离是为了更好的结合
07-14 9594
写出高质量软件是困难和复杂的:不仅仅是为了满足需求,还应该是健壮的,可维护的,可测试的,并且足够灵活以适应成长和变化。这就是洋葱架构出现的原因,它代表一组优秀的开发实践,用来开发任何的软件应用都是一个不错的方式。 洋葱架构,也成为整洁架构(The Clean Architecture),用来构建具有如下特点的系统: 1.    独立的Frameworks 2.    可测试
ABP学习实践(十六)--领域驱动设计(DDD)回顾
lordwish的专栏
08-28 1101
ABP框架并没有实现领域驱动设计DDD)的所有思想,但是并不妨碍用领域驱动的思想去理解ABP库框架。 1.领域驱动设计DDD)与微服务(MicroService)的关系? 2.领域驱动设计DDD
Abp网页架构demo
08-12
这个“Abp网页架构demo”提供了使用Abp架构建的一个完整的Web应用程序示例,对于想要学习Abp.net的开发者来说,是一个非常有价值的参考资料。 1. **Abp框架基础** Abp框架的核心设计理念是模块化和分层结构。它...
ABP-DDD领域驱动设计,最佳实践,土牛亲笔!
04-17
软件开发通常被用于将真实世界中已经存在的流程自动化,或者为真实的业务问题提供解 决方案。需要自动化的业务流程或者真实世界的问题,就是软件的领域。从一开始,我们就必 须明白软件起源于其领域,并且与其领域...
Abp微信SDK模块,包含对微信小程序,公众号,企业微信,开放平台,第三方平台等相关接口封装。- EasyAbp / Abp.WeChat
01-27
Abp.WeChat Abp 微信 SDK 模块,包含对微信小程序、公众号、企业微信、开放平台、第三方平台等相关接口封装。 推荐你使用 EasyAbp 封装的,它依赖本模块做了二次封装,提供应用级的各项功能。 一、简要介绍 EasyAbp....
ABP搭建多服务架构体系
03-22
### ABP搭建多服务架构体系 #### 一、ABP框架简介 ABP(ASP.NET Boilerplate Platform)是一个用于构建微服务和模块化应用程序的强大框架。它基于ASP.NET Core,并提供了一系列工具和服务来简化开发过程,包括认证...
<abp-dropdown-divider></abp-dropdown-divider>
06-02
`<abp-dropdown-divider>` 是一个自定义元素,它可以用作 ABP 框架中的下拉菜单组件 (`<abp-dropdown-menu>`) 中的分隔线。分隔线可以用于在下拉菜单中分隔不同的菜单项或组。 在 ABP 框架中,您可以使用以下代码将...
[.Net]使用Soa库+Abp搭建微服务项目框架(一):AbpDDD相关知识回顾
jevonsflash的专栏
10-18 1098
在企业中大型项目中,随着业务的不断拓展,项目发展到一定程度,需要寻求项目的各模块解耦,独立成为微服务。如何实现呢? 首先我们先来简单回顾一下Abp框架怎样实现(DDD领域驱动设计的,Abp框架的全称是:Asp.Net Boilerplate Project(即Asp.Net 的样板项目),我们知道在领域驱动设计中,我们可以将整个系统分为四个大的层次,每一个层次都有其特定的功能,所以整个项目整体结构是非常清楚的。 Eric Evans在《领域驱动设计-软件核心复杂性应对之道》这本书中提出了传统的四层架构
ABP入门DDD
dotNET跨平台
12-09 2410
前言ABP框架一直以来都是用DDD领域驱动设计)作为宣传点之一。但是用过ABP的人都知道,ABP并不是一个严格遵循DDD的开发框架,又或者说,它并没有完整实现DDD的所...
abp学习日志二(DDD
iml6yu的博客
03-14 543
文章目录DDD分层ABP框架遵循DDD原则和模式の分层对比DDD的分层 DDD 维基百科 DDD(Domain-Driven Design 领域驱动设计)是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题。整个过程大概是这样的,开发团队和领域专家一起通过 通用语言(Ubiquitous Language)去理解和消化领域知识,从领域知识...
清晰架构:融合 DDD洋葱架构整洁架构、CQRS
kimichen123的专栏
08-22 652
原文:https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/ 这篇文章是软件架构编年史(译)的一部分,这部编年史由一系列关于软件架构的文章组成。在这一系列文章中,我将写下我对软件架构的学习和思考,以及我是如何运用这些知识的。如果你阅读了这个系列中之前的文章,本篇文章的的内容将更有意义。 大学毕业之后我做了一名高中老师,直到
DDD系列 - 第0讲 DDD中常提到的应用架构总结(六边形、洋葱整洁、清晰)
罗小爬的技术宝书
07-09 6634
最近在学习DDD应用架构设计时,接触到了不同的应用架构设计概念,如六边形架构洋葱架构整洁架构、清晰架构...,起初是一头雾水,在不断学习过程中也算对此有了些理解,故在本文中对这些架构进行了简单的介绍和总结。............
基于DDD的.NET开发框架 - ABP模块设计
weixin_33889665的博客
05-20 328
返回ABP系列 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板。 ABP的官方网站:http://www.aspnetboilerplate.com ABP官方文档:http://www.a...
干货 | DDD实战:基于洋葱模型的分层代码架构设计
中兴开发者社区
11-28 9750
点击上方“中兴开发者社区”,关注我们 每天读一篇一线开发者原创好文 ▎作者简介 作者冯丹是一名非常有激情的一线程序员,喜欢java强大的面向对象能力,scala简洁的函数式编程范式以及Akka这种优秀的响应式编程框架。今天的文章可以让读者了解DDD落地的一种具体的措施。 领域驱动设计DDD(Domain Driven Design)的主旨思想就是不再把需求分析和代码实现分解
服务化与DDD—分层架构洋葱架构、六边形架构 架构设计
xiameimei_win的博客
10-24 1562
测试中台设计架构设计
ABP入门教程:DDD与.NET架构开发指南
ABP新手入门教程是一份全面的中文文档,专...这是一份实用的ABP入门指南,对于想要探索.NET架构DDD的开发者来说,是不可或缺的学习资料。通过跟随文档的引导,结合实际操作,读者可以掌握ABP框架,加速项目开发进程。
写文章

热门文章

  • 概念澄清:如何直接拿到promise的返回值 11214
  • Vue中el的理解 11167
  • Angular笔记:在Angular中监听某个值的变化 5645
  • mac 下vscode 更新时提示:Could not create temporary directory: 权限被拒绝 4055
  • chatGPT测试:angular 8以上,word转pdf的组件生成 3653

分类专栏

  • 设计模式 23篇
  • RXJS 13篇
  • ABP 99篇
  • 人月神话 3篇
  • 运维相关 13篇
  • 重构 7篇
  • 框架设计指南 3篇
  • MAUI 2篇
  • 微前端 4篇
  • 算法设计理论基础 4篇
  • 杂谈 14篇
  • JS 78篇
  • angular 58篇
  • VUE 12篇
  • 多智能体系统 4篇
  • HTML 5篇
  • 数据分析(机器学习) 7篇
  • 多代理系统/机器学习 2篇
  • numpy 2篇
  • Flutter跨平台 1篇
  • android 1篇
  • kotlin 2篇
  • java 5篇
  • c# 85篇
  • 数据库 35篇
  • sql 3篇
  • winform 2篇

最新评论

  • EF Core学习笔记:额外的外键属性 / 单项导航属性

    小胖仔啦: 写的不详细,看不太懂啊

  • EF Core :迁移已经应用到数据库,进行迁移回滚(附:其他一些命令)

    FRI.end498: 这是从杨中科那截图的吧表情包

  • Angular构建Library报错:error NG3001: Unsupported private class

    快手杜洛: 您的技术文章堪称典范,严谨而生动,将复杂的知识点阐释得清晰易懂。您不仅拥有深厚的专业功底和丰富的实践经验,而且在表达上也做到了深入浅出、条理分明。每一个技术细节都剖析得鞭辟入里,逻辑严谨,架构清晰,展现出您对技术本质的深刻理解和卓越的解读能力。

  • 医学知识和医疗应用开发交叉领域中垂类大语言模型应用相关研究

    快手杜洛: 您的技术文章堪称典范,严谨而生动,将复杂的知识点阐释得清晰易懂。您不仅拥有深厚的专业功底和丰富的实践经验,而且在表达上也做到了深入浅出、条理分明。每一个技术细节都剖析得鞭辟入里,逻辑严谨,架构清晰,展现出您对技术本质的深刻理解和卓越的解读能力。

  • c# 逆变 / 协变

    Martin-Mei: 【了解 .NET 泛型中的协变和逆变,使用前者则可使用派生程度更大的类型,而使用后者则可使用派生程度更小的派生类型。】https://learn.microsoft.com/zh-cn/dotnet/standard/generics/covariance-and-contravariance?source=recommendations,来自微软官方文档,协变是向上兼容,逆变是向下兼容?

最新文章

  • saas服务,对同一个功能,需要使用不同客户的接口。那么哪种设计模式可以解决我的问题?
  • 报错信息:ERROR NullInjectorError: R3InjectorError(s)[fi -:fi->fi->fi ->fi] 由于nzModalService导致的报错
  • 用于计算Quartz中,下次触发时间距离当前时间的程序
2024年6篇
2023年91篇
2022年169篇
2021年36篇
2020年7篇
2019年2篇
2018年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董厂长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家滁州玻璃钢雕塑批发加盟玻璃钢造型雕塑宁夏玻璃钢高跟鞋雕塑驻马店玻璃钢泡沫雕塑资阳玻璃钢艺术雕塑厂山东小区装饰玻璃钢园林艺术雕塑吉林景观玻璃钢雕塑报价顺昌玻璃钢花盆花器美陈商场的设计福永商场美陈装饰北京通道商场美陈现价玻璃钢花盆工厂代理商江苏拉丝玻璃钢雕塑哪家专业玻璃钢植物雕塑厂家贵州商场美陈布展昆明景区玻璃钢雕塑公司昆明火烈鸟玻璃钢雕塑定制浙江室内商场美陈怎么样银川玻璃钢景观雕塑杭州玻璃钢金属雕塑动物雕塑鹿玻璃钢东莞市玻璃钢花盆制品厂临汾玻璃钢卡通雕塑定制郑州安庆玻璃钢雕塑舞钢玻璃钢雕塑设计乌海玻璃钢景观雕塑太原玻璃钢人物雕塑价格如何门头玻璃钢雕塑现货咸阳广场玻璃钢雕塑定做不锈钢水景玻璃钢彩绘雕塑制造香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化