摘要: 为了支持业务层中的事务,我试图在Go中查找类似Spring的声明式事务管理,但是没找到,所以我决定自己写一个。 事务很容易在Go中实现,但很难做到正确地实现。 需求: 1. 将业务逻辑与事务代码分开。 在编写业务用例时,开发者应该只需考虑业务逻辑,不需要同时考虑怎样给业务逻辑加事务管理。如果以后需要 阅读全文
posted @ 2020-01-22 09:13 倚天码农 阅读(622) 评论(0) 推荐(0) 编辑
摘要: 在清晰架构(Clean Architecture)中,应用程序的每一层(用例,数据服务和域模型)仅依赖于其他层的接口而不是具体类型。 在运行时, "程序容器" ¹负责创建具体类型并将它们注入到每个函数中,它使用的技术称为 "依赖注入" ²。 以下是要求。 容器包的依赖关系: 1. 容器包是唯一依赖于 阅读全文
posted @ 2020-01-16 10:11 倚天码农 阅读(1091) 评论(0) 推荐(0) 编辑
摘要: 清晰架构(Clean Architecture)的一个理念是隔离程序的框架,使框架不会接管你的应用程序,而是由你决定何时何地使用它们。在本程序中,我特意不在开始时使用任何框架,因此我可以更好地控制程序结构。只有在整个程序结构布局完成之后,我才会考虑用某些库替换本程序的某些组件。这样,引入的框架或第三 阅读全文
posted @ 2020-01-09 19:58 倚天码农 阅读(631) 评论(2) 推荐(0) 编辑
摘要: 良好的日志记录可以提供丰富的日志数据,便于在调试时发现问题,从而大大提高编码效率。 记录器提供的自动化信息越多越好,日志信息也需要以简洁的方式呈现,便于找到重要的数据。 日志需求: 1. 无需修改业务代码即可切换到其他日志库 1. 不需直接依赖任何日志库 1. 整个应用程序只有一个日志库的全局实例, 阅读全文
posted @ 2020-01-03 16:05 倚天码农 阅读(717) 评论(0) 推荐(1) 编辑
摘要: 我最近写了一个Go微服务应用程序,这个程序的设计来自三个灵感: "清晰架构"Clean Architecture"" ¹ and "SOLID (面向对象设计)" ² 设计 "原则" ³ "Spring的容器技术(Spring’s application context)" ⁴ "Go的简洁设计" 阅读全文
posted @ 2019-12-30 09:21 倚天码农 阅读(770) 评论(0) 推荐(1) 编辑
摘要: 我使用Go和gRPC创建了一个微服务,并将程序设计和编程的最佳实践应用于该项目。 我写了一系列关于在项目工作中做出的设计决策和取舍的文章,此篇是关于程序设计。 程序的设计遵循 "清晰架构(Clean Architecture)" ¹。 业务逻辑代码分三层:用例(usecase),域模型(model) 阅读全文
posted @ 2019-12-26 09:19 倚天码农 阅读(690) 评论(0) 推荐(1) 编辑
摘要: 我使用Go和gRPC创建了一个微服务,并试图找出最佳的程序结构,它可以用作我未来程序的模板。 我有Java背景,并发现自己在Java和Go之间挣扎,它们之间的编程理念完全不同。我写了一系列关于在项目工作中做出的设计决策和取舍的文章。 这是其中的第一篇, 是关于程序结构的。 程序结构的资源 Go的标准 阅读全文
posted @ 2019-12-20 11:39 倚天码农 阅读(775) 评论(0) 推荐(1) 编辑
摘要: 在上一篇“ "云原生的不同解释及正确含义" ”里,我们讲到了云原生的引申含义,就是开发环境也是云环境,这样就能保证开发环境和生产环境的一致性,使最终的部署顺利进行。本文就通过具体的例子来探讨云原生的开发环境。 开发流程主要包括编写代码,程序部署和调试几个环节。每一个环节都需要相应的工具来帮助你提高效 阅读全文
posted @ 2019-12-13 10:15 倚天码农 阅读(2164) 评论(1) 推荐(4) 编辑
摘要: 云原生的解释可以说五花八门,本文从不同角度探讨云原生的内涵以及如何从不同维度准确理解它的含义。 云原生起源 网上有些文章提到云原生是“Pivotal公司的Matt Stine于2013年首次提出云原生(CloudNative)的概念”。我搜索了英文“CloudNative”,阅读了首页的所有文章,里 阅读全文
posted @ 2019-12-13 10:14 倚天码农 阅读(2353) 评论(0) 推荐(0) 编辑
摘要: Helm是一款非常流行的k8s包管理工具。以前就一直想用它,但看到它产生的文件比k8s要复杂许多,就一直犹豫,不知道它的好处能不能抵消掉它的复杂度。但如果不用,而是用Kubectl来进行调式真的很麻烦。正好最近Helm3正式版出来了,比原来的Helm2简单了不少,就决定还是试用一下。结果证明确实很复 阅读全文
posted @ 2019-11-29 15:53 倚天码农 阅读(2310) 评论(1) 推荐(1) 编辑