聊聊六边形架构

指导我们写出漂亮代码有一种方式是学习设计模式,自从 Gof 四人组的《设计模式》出版后,各类设计模式的书层出不穷。熟读这类书籍,对面试肯定是有帮助的,但代码能力是否有大的长进就不一定了,如果没能理解背后的思想,去生搬硬套,只会起反作用。

发布于 技术

如何设计 API?

在前后端分离的设计中,不管使用什么语言,后端都需要提供 WebAPI 给前端使用。如果是一个平台级的产品,还有可能需要将平台的公共 API 提供给第三方系统使用,这些都要考虑到 API 的设计。

发布于 技术

读《持续架构实践》

之前看到过一种言论,说相比互联网产品,做 ToB 产品没有那么大的业务量,也没有那么多的用户量,所以非功能性的需求没那么重要,重要的还是业务。

发布于 读书

微服务:事务管理

几乎所有的信息管理系统都会涉及到事务,事务的目的是为了保证数据的一致性,这里说的一致性是数据库状态的一致性。 说到数据库状态的一致性,相信大家都会想到 ACID : 原子性(Atomic):在一个事件的多个数据库操作中,要么同时成功,要么同时失败,例如:转账业务; 隔离性(Isolation):不同的业务之间处理数据相互独立,互不影响 持久性(Durability):正常提交的数据能够被持久化,不丢失数据,比如 mysql 天然就能持久化,redis 、 rabbitmq 也能通过设置进行持久化; 一致性(Consistency):最终的数据正确,所以说是通过 AID 这些手段来保证了 C 。

发布于 技术

微服务:服务间如何通信?

在微服务架构中,会将一个完整的应用程序拆分成一组服务。这些服务之间需要经过协作,通过接口调用,才能组成一个完整的应用。 不同的服务部署在不同的机器上,或者同一个机器的多个容器中,进程间的通信就不可避免了,也变得非常重要。

发布于 技术

从一个简单 API 的发布到组件化的架构思考

在 SaaS 版本的零代码平台中,高级用户希望能上传自己编写的 WebAPI ,来实现一些复杂场景下的业务。就需要添加可以通过上传程序包进行发布部署的功能。

发布于 技术

微服务:如何拆分服务?

在微服务的落地中,第一步就需要进行微服务的拆分,服务的拆分很困难也很重要,本文就讲讲怎么进行服务的拆分。 技术发展到现在,还没有一个具体的,设计完善的标准方法来完成服务的拆分,服务的拆分是一门技术更是一门艺术。

发布于 技术

微服务:我们需要从单体转到微服务吗?

微服务或许你没有真正实践过,但一定听说过,虽然已经到了 2022 年,这个词依然很热,可以通过搜索 google 指数看得到。

发布于 技术