原文:清晰架构(Clean Architecture)的Go微服务: 依赖注入(Dependency Injection)

在清晰架构 Clean Architecture 中,应用程序的每一层 用例,数据服务和域模型 仅依赖于其他层的接口而不是具体类型。 在运行时,程序容器 负责创建具体类型并将它们注入到每个函数中,它使用的技术称为依赖注入 。 以下是要求。 容器包的依赖关系: 容器包是唯一依赖于具体类型和许多外部库的包,因为它需要创建具体类型。 本程序中的所有其他软件包主要仅依赖于接口。 外部库可以包括DB和DB连 ...

2020-01-16 10:11 0 898 推荐指数:

查看详情

清晰架构Clean Architecture)的Go微服务

更新 我最近对这个框架进行了重大升级,虽然所做的改动不大,但成效显著。这次更新修复了旧框架中的所有主要问题,尽管它的的主要项目结构和接口都没有改变,具体改动内容请参见清晰架构Clean Architecture)的Go微服务—重大升级。 现在它几乎拥有了我理想框架中的所有内容。它是一个轻量级 ...

Mon Feb 17 17:36:00 CST 2020 0 173
清晰架构Clean Architecture)的Go微服务: 程序设计

我使用Go和gRPC创建了一个微服务,并将程序设计和编程的最佳实践应用于该项目。 我写了一系列关于在项目工作中做出的设计决策和取舍的文章,此篇是关于程序设计。 程序的设计遵循清晰架构Clean Architecture)¹。 业务逻辑代码分三层:用例(usecase),域模型(model)和数据服务 ...

Thu Dec 26 17:19:00 CST 2019 0 294
清晰架构Clean Architecture)的Go微服务: 程序结构

我使用Go和gRPC创建了一个微服务,并试图找出最佳的程序结构,它可以用作我未来程序的模板。 我有Java背景,并发现自己在Java和Go之间挣扎,它们之间的编程理念完全不同。我写了一系列关于在项目工作中做出的设计决策和取舍的文章。 这是其中的第一篇, 是关于程序结构的。 程序结构的资源 Go ...

Fri Dec 20 19:39:00 CST 2019 0 315
清晰架构Clean Architecture)的Go微服务: 事物管理

为了支持业务层中的事务,我试图在Go中查找类似Spring的声明式事务管理,但是没找到,所以我决定自己写一个。 事务很容易在Go中实现,但很难做到正确地实现。 需求: 将业务逻辑与事务代码分开。 在编写业务用例时,开发者应该只需考虑业务逻辑,不需要同时考虑怎样给业务逻辑加事务管理 ...

Wed Jan 22 17:13:00 CST 2020 0 266
清晰架构Clean Architecture)的Go微服务: 日志管理

良好的日志记录可以提供丰富的日志数据,便于在调试时发现问题,从而大大提高编码效率。 记录器提供的自动化信息越多越好,日志信息也需要以简洁的方式呈现,便于找到重要的数据。 日志需求: 无需修改业务代码即可切换到其他日志库 不需直接依赖任何日志库 整个应用程序只有一个日志库 ...

Sat Jan 04 00:05:00 CST 2020 0 364
清晰架构Clean Architecture)的Go微服务: 编码风格

编码风格在编程中是一个相对乏味的主题,但是合适的编码风格对一个有效的程序员是至关重要的。 它有三个组成部分: 程序结构 ( application layout) 编码规则或风格 命名约定 我已经在清晰架构Clean Architecture)的Go微服务 ...

Mon Feb 03 18:05:00 CST 2020 0 209
清晰架构Clean Architecture)的Go微服务: 设计原则

我最近写了一个Go微服务应用程序,这个程序的设计来自三个灵感: 清晰架构"Clean Architecture"¹ and SOLID (面向对象设计)² 设计 原则³ Spring的容器技术(Spring’s application context)⁴ Go的简洁设计 ...

Mon Dec 30 17:21:00 CST 2019 0 335
清晰架构Clean Architecture)的Go微服务: 程序容器(Application Container)

清晰架构Clean Architecture)的一个理念是隔离程序的框架,使框架不会接管你的应用程序,而是由你决定何时何地使用它们。在本程序中,我特意不在开始时使用任何框架,因此我可以更好地控制程序结构。只有在整个程序结构布局完成之后,我才会考虑用某些库替换本程序的某些组件。这样,引入的框架 ...

Fri Jan 10 03:58:00 CST 2020 2 223
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM