掌握 Go 语言特色的设计模式,构建优雅、可维护的 Web3 后端代码
对象创建机制
3
对象组合方式
1
对象间通信
Go 并发模式
确保一个类只有一个实例,并提供全局访问点。
Web3 场景: 以太坊 RPC 客户端连接池,避免重复建立连接。
定义创建对象的接口,让子类决定实例化哪个类。
Web3 场景: 多链钱包服务,根据链类型创建对应的 RPC 客户端。
Go 特有的模式,使用函数参数实现灵活的配置。
Web3 场景: 配置 Web3 服务,如 RPC 端点、超时、重试策略等。
通过层层包装为请求处理添加横切关注点。
Web3 场景: API 网关的请求处理链,包含签名验证、Gas 估算、Nonce 管理。
定义一系列算法,将每个算法封装起来,使它们可以互换。
Web3 场景: 根据网络拥堵情况动态选择 Gas 价格策略。
固定数量的 goroutine 处理任务队列,控制并发度。
Web3 场景: 批量查询链上数据、并发处理交易事件。
将处理过程分解为多个阶段,每个阶段通过 channel 连接。
Web3 场景: 区块链数据索引器,流式处理区块、交易、事件。
将任务分发给多个 worker 并行处理,然后汇总结果。
Web3 场景: 并行查询多个链的数据、批量获取代币价格。