首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

整洁的架构:为什么在Api和数据库层之间直接引用?

整洁的架构是一种软件架构设计原则,旨在提高代码的可读性、可维护性和可扩展性。在整洁的架构中,将软件系统划分为不同的层次,每个层次都有其特定的职责和功能。

在整洁的架构中,为什么在API和数据库层之间直接引用呢?这是因为直接引用可以实现以下优势:

  1. 解耦和灵活性:通过在API和数据库层之间直接引用,可以实现解耦,使得两者可以独立演化和变化。这样,当需要更改数据库或API实现时,不会影响到其他层次的代码。
  2. 可测试性:直接引用可以使得对API和数据库的单元测试更加简单和高效。通过模拟或替换数据库层,可以轻松地对API进行单元测试,而不需要实际连接到数据库。
  3. 可维护性:直接引用可以使得代码的维护更加方便。当需要修改API或数据库层的逻辑时,可以直接在相应的层次进行修改,而不需要关注其他层次的实现细节。
  4. 性能优化:直接引用可以减少不必要的中间层,提高系统的性能。通过直接访问数据库,可以避免额外的网络通信和数据转换的开销。

在腾讯云的产品中,可以使用以下相关产品来支持整洁的架构:

  1. 云数据库 TencentDB:腾讯云提供的高性能、可扩展的云数据库服务,支持多种数据库引擎,如MySQL、SQL Server等。可以作为直接引用的数据库层。
  2. 云函数 SCF:腾讯云的无服务器计算服务,可以用于实现API层的逻辑。通过编写函数代码,可以直接引用数据库层,并提供API接口。
  3. API 网关 API Gateway:腾讯云的API网关服务,可以用于管理和发布API接口。可以与云函数 SCF 结合使用,实现整洁架构中的API层。

以上是腾讯云相关产品的简介,更详细的信息可以参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

详解整洁架构在前端应用实践|技术创作特训营第一期

● 可测试性:代码中业务逻辑可以不依赖ui、数据库、服务器情况下进行测试。 ● ui无关:代码中业务逻辑不应该ui做强绑定。...3、 整洁架构设计 3.1、整洁架构设计思想 图片 整洁架构除了以下至少四架构外,之间还有一个非常明确依赖关系,外层逻辑依赖内层逻辑 _(图中黑色箭头指向),但是内层代码不可以依赖外层...4.2.1 分层实现 以前端工程为例,常规mvvm前端工程分层架构如下图,会在store直接调用api发起请求,然后再通过mvvm更新视图 图片 ❌ 容易出现问题: ● 业务逻辑ui强耦合...根据整洁架构思想,设计后架构如下: 图片 原有基础上拆分了实体用例,并在用例内通过端口方式定义了依赖端口方法,用来解耦框架第三方服务依赖。...于是写作了这篇文章,本文先从架构基本概念开始介绍,然后介绍整洁结构概念设计理念,最后结合整洁架构、 DDD方法论,一起探讨整洁架构在前端落地应用,有辅助代码示例。 创作提纲 为什么需要了解架构

64361

Golang整洁架构实践

---- 看目录,点收藏 1.为什么要有代码架构 2.好代码架构是如何构建     2.1 整洁架构     2.2 洋葱架构     2.3 六边形架构     2.4 COLA架构 3...01 为什么要有代码架构 历史悠久项目大都会有很多开发人员参与“贡献”,没有好指导规则约束情况下,大抵会变成一团乱麻。剪不断,理还乱,也没有开发勇士愿意去剪去理。...此图中可以看到,虽然六边形架构看上去与整洁架构不那么相似,但其应用系统核心 Domain 、边缘User Interface Infrastructure 与整洁架构 Entities...「整洁基于面向对象分层架构」。...Domain 中 model 对应整洁架构 Entities、六边形架构洋葱架构 Domain Model。

1.8K50
  • 微服务常见架构方式

    此外,应用也是微服务之间交互通道,它可以调用其它微服务应用服务,完成微服务之间服务组合编排。这里我要提醒你一下:设计开发时,不要将本该放在领域业务逻辑放到应用中实现。...另外,应用服务是应用,它负责服务组合、编排转发,负责处理业务用例执行顺序以及结果拼装,以粗粒度服务通过 API 网关向前端发布。...比如说,传统架构设计中,由于上层应用对数据库强耦合,很多公司架构演进中最担忧可能就是换数据库了,因为一旦更换数据库,就可能需要重写大部分代码,这对应用来说是致命。...优化后DDD分层架构模型属于严格分层架构,任何只能对于其直接下方产生依赖。而传统DDD分层则属于松散型,它允许某与其下方发生依赖。...整洁架构里,同心圆代表应用软件不同部分,从里到外依次是领域模型、领域服务、应用服务最外围容易变化内容,比如用户界面基础设施。

    1.7K10

    美团专家漫谈分层架构

    1、为什么要分层 高内聚:分层设计可以简化系统设计,让不同专注做某一模块事 低耦合:之间通过接口或API来交互,依赖方不用知道被依赖方细节 复用:分层之后可以做到很高复用 扩展性:分层架构可以让我们更容易做横向扩展...核心复杂业务逻辑都放到模型,导致模型很乱 适应场景:后端业务逻辑简单服务,比如接口直接提供对数据库增删改查 ?...:后端业务逻辑简单服务,比如接口直接提供对数据库增删改查 ?...501502253 6、整洁架构六边形架构 整洁架构六边形架构都是DDD架构一种方式,只不过是视角不同。...六边形架构各层依赖关系与整洁架构一样,都是由外向内依赖。 ? 501502464 7、汇总 本文汇总了传统MVC架构、后端三架构、阿里分层架构、DDD架构以及基于DDD架构整洁架构六边形架构

    1.2K11

    整洁架构在前端设计思想与应用实践

    整洁架构就是其中一种经典架构,让你我不再为每次功能迭代而胆战心惊,那么接下来我们将介绍何为『整洁架构』,为什么说它是一个好软件架构。...可测试性:代码中业务逻辑可以不依赖 ui、数据库、服务器情况下进行测试。 ui 无关:代码中业务逻辑不应该 ui 做强绑定。...3、 整洁架构设计 3.1、整洁架构设计思想 整洁架构除了以下至少四架构外,之间还有一个非常明确依赖关系,外层逻辑依赖内层逻辑 (图中黑色箭头指向),但是内层代码不可以依赖外层。...4.2.1 分层实现 以前端工程为例,常规 mvvm 前端工程分层架构如下图,会在 store 直接调用 api 发起请求,然后再通过 mvvm 更新视图 ❌ 容易出现问题: 业务逻辑 ui...根据整洁架构思想,设计后架构如下: 原有基础上拆分了实体用例,并在用例内通过端口方式定义了依赖端口方法,用来解耦框架第三方服务依赖。

    94031

    Golang 整洁架构实践

    1.为什么要有代码架构 历史悠久项目大都会有很多开发人员参与“贡献”,没有好指导规则约束情况下,大抵会变成一团乱麻。剪不断,理还乱,也没有勇士开发者愿意去剪去理。...该包含具体框架依赖工具细节,比如系统使用数据库,Web 框架,消息队列等等。此主要帮助外部框架、工具内层进行数据衔接。...更外层 Application Services 桥接 UI Infrastructue 中数据库、文件、外部服务等,更是与整洁架构 Interface Adaptors 功能相同。...此图中可以看到,虽然六边形架构看上去与整洁架构不那么相似,但其应用系统核心 Domain ,边缘 User Interface Infrastructure 与整洁架构 Entities...Domain 中 model 对应整洁架构 Entities,六边形架构洋葱架构 Domain Model。

    86731

    我,前端,不想卷技术了……卷下整洁架构

    整洁架构就是其中一种经典架构,让你我不再为每次功能迭代而胆战心惊,那么接下来我们将介绍何为『整洁架构』,为什么说它是一个好软件架构。...3.1 整洁架构设计思想 整洁架构除了以下至少四架构外,之间还有一个非常明确依赖关系,外层逻辑依赖内层逻辑 (图中黑色箭头指向), 但是内层代码不可以依赖外层。...4.2.1 分层实现 以前端工程为例,常规 mvvm 前端工程分层架构如下图,会在 store 直接调用 api 发起请求,然后再通过 mvvm 更新视图。...根据整洁架构思想,设计后架构如下: 原有基础上拆分了实体用例,并在用例内通过端口方式定义了依赖端口方法,用来解耦框架第三方服务依赖。...❌缺点: ▶︎ 构建边界成本较大,由于核心业务无法直接引用外层 UI store API,需额外声明端口依赖,开发效率变低。 所以说没有最好架构,只有最适合自己团队业务架构

    637110

    DDD分层架构浅析

    为什么叫它洋葱架构?看看下面这张图你就明白了。整洁架构就像洋葱片一样,它体现了分层设计思想。...聚合可以作为一个整体,不同领域模型之间重组或者拆分,或者直接将一个聚合独立为微服务。...DDD分层架构要素其实架构类似,只是DDD分层架构中,这些要素被重新归类,重新划分了,确定了之间交互规则职责边界。...如果实在无法避免,我们可以引入防腐,进行新老系统适配转换,过渡期完成后,可以直接将防腐代码抛弃。 微服务内部分层方式我们已经清楚了,那微服务之间是否也有层次依赖关系呢?...通常项目级微服务之间集成,发生在微服务应用,由应用服务调用其它微服务发布API网关上应用服务。

    1.2K21

    领域驱动设计(DDD)实践之路(一)

    另一方面,架构方面我们也会重视“解耦”,因为一个模块之间随意耦合系统将是所有人噩梦之源。因此,除了整洁代码我们还需要关注整洁架构。...3.2 整洁架构 分层架构中给人感觉是每一都同样重要,但如果我们把关注重点放在领域,同时把依赖关系按照业务由重到轻形成一个以领域为中心环,即演变为一种整洁架构风格。...这里不是说其他不重要,仅仅是为了凸显承载了业务核心领域能力。 整洁架构最主要原则是依赖原则,它定义了各层依赖关系,越往里,依赖越低,代码级别越高。...该架构由端口适配器组成,所谓端口是应用入口出口,许多语言中,它以接口形式存在。...为什么需要Repository? 首先,Repository 是一个独立,介于领域与数据映射(数据访问之间

    1.3K42

    分布式架构下,MVC比DDD,要乱多!

    说白了,就是你工程实现时,在哪个访问数据库、哪个使用缓存、哪个调用外部接口、哪个做功能实现,这就是工程框架结构定义目的。...这也是为什么 DDD 领域驱动设计落地工程结构,会出现;洋葱架构整洁架构、菱形架构、六边形架构等这些架构模型。...整洁架构 - 工程结构 整洁架构分包形式,会将所有的外部依赖使用工程内要对外,统一定义到适配器。这里可以理解为对适配对内适配。 2....因为仓储服务是由基础(infrastructure) 引用领域(domain),是一种依赖倒置结构,但它可以天然隔离PO数据库持久化对象被引用。...此外;如果你设计模式应用不佳,那么无论是领域驱动设计、测试驱动设计还是换了三架构,你工程质量依然会非常差。

    13310

    架构六大思维养成记

    我们有说到当今软件设计世界流行着四大架构DCI架构、DDD架构、六边形架构整洁架构,那什么是整洁架构。不好描述对吧,那就直接上图,这张图是Robert C....整洁架构也是分层架构,只不过这里,不再是我们之前认为上中下,这样,而是变成了内外层。...这其中业务实体复用是其它两种复用基础,这也就是我们整洁架构中重点阐述业务实体,那个核心圆,所以做好了业务实体复用是业务复用关键。...下面这张图是我从网络上找,它所展现这种形式就是我们进行事件风暴工作坊期间产出,通过这种工作坊把业务研发人员拉了一起,冲破了业务研发人员之间”那堵墙“。 ?...关于分层,现在DDD架构中有较好DDD分层建议,从上到下依次为用户接口、应用、领域、基础,而且呢,之间还遵守着一个约束: 每层只能与位于其下方发生耦合约束。

    57910

    聊聊 ASP.NET 6 整洁架构开发模板

    最近看了一些整洁架构(CleanArchitecture)文章,自己同事也简单写了一个基于整洁架构ASP.NET 6开发模板玩。...DDD分层架构就有好多种,例如整洁架构、CQRS六边形架构等等,每种架构模式虽然提出时代背景不同,但其核心理念都是为了设计出“高内聚低耦合”架构,从而能够实现架构演进。...DDD分层架构 欧创新老师《DDD实战课》中,给出了一个优化后DDD四架构,我们可以从下面这张图中看到,从上到下分别是:用户接口、应用、领域基础。...下图中展示了传统架构与DDD四架构对应关系: 整洁架构简单介绍 简而言之,整洁架构是组织软件体系结构原则,可以轻松面对未来不确定性,方便代码重构。...Blazor实现APIUI宿主; 对于核心(ApplicationCore),包含 Application Domain 两个.NET 6.0类库项目。

    30250

    架构模型DDD 分层架构

    整洁架构 整洁架构又名“洋葱架构”。为什么叫它洋葱架构?看看下面这张图你就明白了。整洁架构就像洋葱片一样,它体现了分层设计思想。...我想这也是微服务架构API 网关盛行主要原因吧。 三种微服务架构模型对比分析 这三种架构都考虑了前端需求变与领域模型不变。...项目级微服务 项目级微服务内部遵循分层架构模型就可以了。领域模型核心逻辑领域实现,服务组合编排在应用实现,通过 API 网关为前台应用提供服务,实现前后端分离。...企业级中台微服务 我们可以中台微服务之上增加一,你看下面这张图,增加这一就位于红色框内,它主要职能就是处理跨中台微服务服务组合编排,以及微服务之间协调,它还可以完成前端不同渠道应用适配...BFF 微服务可以承担应用用户接口主要职能,完成各个中台微服务服务组合编排,可以适配不同前端渠道要求。

    47530

    微服务架构模型

    整洁架构 整洁架构又名“洋葱架构”。为什么叫它洋葱架构?看看下面这张图你就明白了。整洁架构就像洋葱片一样,它体现了分层设计思想。...我想这也是微服务架构API 网关盛行主要原因吧。 三种微服务架构模型对比分析 这三种架构都考虑了前端需求变与领域模型不变。...项目级微服务 项目级微服务内部遵循分层架构模型就可以了。领域模型核心逻辑领域实现,服务组合编排在应用实现,通过 API 网关为前台应用提供服务,实现前后端分离。...企业级中台微服务 我们可以中台微服务之上增加一,你看下面这张图,增加这一就位于红色框内,它主要职能就是处理跨中台微服务服务组合编排,以及微服务之间协调,它还可以完成前端不同渠道应用适配...BFF 微服务可以承担应用用户接口主要职能,完成各个中台微服务服务组合编排,可以适配不同前端渠道要求。

    72745

    互联网主流微服务架构模型对比分析

    项目级微服务内部遵循分层架构模型即可。领域模型核心逻辑领域实现,服务组合编排在应用实现,通过API网关为前台应用提供服务,实现前后端分离。...通常项目级微服务之间集成,发生在微服务应用,由应用服务调用其它微服务发布API网关上应用服务。...它只要将编排后服务发布到API网关供前端调用,这样前端就可以直接访问自己微服务了。 ?...微服务架构中,应用、领域基础解耦是通过仓储模式,采用依赖倒置设计方法来实现。...应用设计中,我们会同步考虑基础资源代码适配,那么一旦基础设施资源出现变更(比如换数据库),就可以屏蔽资源变更对业务代码影响,切断业务逻辑对基础资源依赖,最终降低资源变更对应用影响。

    71620

    整洁架构、DDD CQRS 简介

    整洁架构显着特征是组成它同心围绕着一个包含抽象业务逻辑中央核心。这些抽象实现,连同它们外部依赖,被推到外层。...为了争论,另一种方法可能是将您编排逻辑封装在应用程序服务中,这些服务直接注入您控制器中。一切都很整洁,并尊重依赖倒置原则。...另一种常见反模式是控制器(Web API)上公开 CRUD 操作,然后业务逻辑分散整个应用程序中,例如在 UI 本身中或更糟存储过程中数据库中。...在他原始规范中,我研究过大多数专家都同意这一点,Greg Young 指出大多数时候查询应该绕过域。让我们进一步解开它。为什么我们要直接从应用传递到表示?...◆ 高级主题 首先,命令与查询分离允许您将模块一直拆分到数据库极端架构中,可能有一个仅用于命令数据库一个或多个仅用于读取单独数据库

    4K20

    DDD分层

    为什么分层 引用《领域驱动设计模式、原理与实践》 为了避免将代码库变成大泥球(BBoM)并因此减弱领域模型完整性且最终减弱可用性,系统架构要支持技术复杂性与领域复杂性分离。...当调度收到用户接口请求后,委托Context与本次业务相关上下文进行处理 Domain是领域,定义领域模型,不仅包括领域对象及其之间关系建模,还包括对象角色role显式建模 Infrastructure...DDD中明确了repository概念,并属于domain,但dao是对底层数据库封装,具体实现类放在infrastructure更合理 COLA中,作者也是为了领域纯洁性,依赖反转了,repository...倘若不放在位于内部核心领域,就只能放在领域外部,这又违背了整洁架构思想 3、是不是有别的理论支撑解决问题2 generator-assist-client-api 为了生成apiswagger...serivce与domain service区分也常常给人带来烦恼 这儿是否可以借鉴《DDD之形》中端口适配器架构 ?

    2.3K20

    架构整洁之道导读(四)第25章层次与边界-图 25.3 疑惑澄清

    最近收到读者反馈,《架构整洁之道》第 25 章“层次与边界”中,图 25.3 和解释这张图一段文字描述让人很费解。 ?...我回头翻阅了当时技术审校文章,遗憾地发现自己确实疏漏了对此处解释,所以我重新翻阅了书中和边界(Boundary)相关章节,比如第 22 章整洁架构第 24 章“不完全边界”,给出一个牵强解释...其实答案就隐藏在第 22 章“整洁架构”里图22.2 一个基于 Web 、使用数据库常见 Java 程序。...结合这张图,我们不难总结出 Language GameRules 依赖关系,边界高层次接口定义,这里面最需要澄清点就是“使用”并不意味着“定义”,而只是引用。...小结 以后我们设计组件时一定要关心边界接口定义归属。它代表着依赖反转原则在更大架构层面上运用。

    72630

    eShopOnWeb 知多少

    在此之间我该如何选择呢? 是否需要丰富交互行为? 是否足够前端技术积累? 是否主要通过API进行交互? 3. 架构设计 eShopOnWeb中应用了DDD整洁架构部分思想,值得了解一下。...传统分层架构整洁架构 传统分层架构是大家所熟知架构。 这样架构缺点是: 依赖关系由上至下,不易解耦 不易测试,需要测试数据库 那如何解决三架构问题呢,借助【依赖倒置原则】。...DDD分层架构思想整洁架构中都是借助【依赖倒置原则】实现之间强依赖关系解耦。我们来看下整洁架构: 从该洋葱视图中我们可以看到: 依赖关系由外而内。...由于应用程序内核不依赖于基础设施,所以可以很容易编写单元测试。 由于UI也不直接依赖于基础设施,所以我们可以轻松置换基础设施实现(比如使用内存数据库),以进行集成测试。...应用展现 如上面所阐述,示例项目中应用展现合二为一。应用负责展现与领域之间协调,协调业务对象来执行特定应用程序。 5.

    1.2K10

    2019年Java工程师成神之路正式版

    、JRuby、Jython、Scala) → 值传递 值传递、引用传递 为什么说 Java 中只有值传递 → 封装、继承、多态 什么是多态、方法重写与重载 Java 继承与实现 构造函数与默认构造函数...> List 之间区别是什么?....*...、 guava-libraries、 netty → API & SPI APIAPI SPI 关系区别 如何定义 SPI、SPI 实现原理 → 异常 异常类型、正确处理异常、自定义异常...、内存屏障、编译器指令重排 CPU 指令重 volatile 实现原理 volatile 原子性、可见性有序性之间关系 有了 symchronized 为什么还需要 volatile → sleep...》 《代码整洁之道》 《架构整洁之道》 《Head First 设计模式》 《maven 实战》 《区块链原理、设计与应用》 《Java 并发编程实战》 《鸟哥 Linux 私房菜》

    87910
    领券