【独立开发日记】MQ端到端类型安全

独立开发者,全栈TypeScript,前端Tanstack、后端hono

之前一直用 amqplib 这个库进行RabbitMQ操作,但是他没有像 tRPC 那样实现端到端类型安全,经常会遇到:

producer改动了routing、传输数据结构,consumer就得过一遍集成测试,看看哪里有没有受到影响,不仅麻烦也导致mq里经常一大堆垃圾数据。

其实本质是类型安全的问题,如果消费者可以实时推断生产者的类型,就完美解决这个问题,啃了tRPC的源码后学习了他的设计理念,最终实现了端到端类型安全。

这种契约耦合是必须的,起到了约束、保护的作用,换取了强大的类型安全和开发效率,带来的收益有:

  • 防止拼写错误:user.creatd 在编译时就会报错。
  • 确保了数据结构的统一
  • 强制了契约变更的可见性,生产者修改了契约,共用的契约迫使消费者进行协调更新
  • 契约就是活文档(数据结构,routing、exchange、queue)
相关推荐
小兔崽子去哪了3 分钟前
深度学习 2 / CNN 神经网络
后端·python
是立不是利3 分钟前
CSS 入门与进阶:从选择器到响应式布局的完整指南
前端·css
镭立智能制造9 分钟前
电线电缆换线频繁?MES系统如何缩短换线时间40%
前端·制造
志尊宝11 分钟前
Vue3 零基础每日笔记(018):按键与鼠标修饰符——回车搜索、Ctrl+S 保存这样写
javascript·vue.js·笔记
rannn_11117 分钟前
【Java面试八股】Java基础篇|数据类型、面向对象、关键字、反射、注解、异常、新特性、序列化、设计模式、IO
java·后端·面试
用户83562907805126 分钟前
Python 实现 Word 文档域的插入与管理
后端·python
MacroZheng27 分钟前
阿里又开源了一个神级 Skill 项目!
java·人工智能·后端
Amos_Web37 分钟前
Rspack 源码解析(五):CodeGenerationPass 与模块代码生成
前端·前端框架·源码阅读
八荒启·交互动画42 分钟前
Web特效06——WebGL深挖:顶点着色器和片元着色器到底在干什么
前端·网页特效·八荒启-交互动画·八荒启
Ysx1 小时前
Dify Custom Tool 设计模式:一行提示词接入一张新报表
人工智能·后端