【中间件常用写法】一些设计上的基本常识

前一段时间,尝试过总结中间件的写法,奈何见识太少,总是不能清晰的抽象出来。后来偶然间看到梁飞大佬的博客,读来有醍醐灌顶之感,大佬在九年前就总结出来一套模型了和一些常见的写法示例,非常清晰。

在这里放一些大佬的博客链接:

一些设计上的基本常识:一些设计上的基本常识
大佬的 核心域、服务域、会话域的划分,和我前一篇博客想表达的一样,只不过我没总结好,不够清晰。
api 和 spi 分离,中间件会有使用者和扩展者,二者的职能不同,对外接口也不应该耦合。
重要状态的变更发送事件,和干预过程的拦截器不同, 主要是采用 Callback 接口,进行事后通知。
不要控制外部对象的生命周期,即不要在内部反射或者 newInstance()创建实例,主要是让使用者或者扩展者上报,比如 通过 spi 上报或者通过 spring 获取指定类型的 bean,例如数据库的 datasource。

配置设计:配置设计
环境配置、描述配置、扩展配置,三种分类非常经典,借助大佬的思想,我写了一篇 seata 的配置相关分析,我认为是 seata 源码分析系列中,我写的最好的一篇了。

魔鬼在细节中:魔鬼在细节中
大佬列举了许多种,开发者容易踩的坑,比如空指针、下标越界,分离可靠操作和不可靠操作,防御不可靠操作可能产生的异常,降低修改时的误解,等等,都是经验不足的人经常犯的错。

虽然平常工作中很少用到 dubbo,但是一直看 dubbo,因为设计的非常精妙,尤其是 spi 和 url,非常有美感。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值