草庐IT

Bitmp_Options

全部标签

Go语言实践模式 - 函数选项模式(Functional Options Pattern)

什么是函数选项模式大家好,我是小白,有点黑的那个白。最近遇到一个问题,因为业务需求,需要对接三方平台.而三方平台提供的一些HTTP(S)接口都有统一的密钥生成规则要求.为此我们封装了一个独立的包xxx-go-sdk以便维护和对接使用.其中核心的部分是自定义HTTPClient,如下:typeClientstruct{}func(c*Client)do(){//实现统一的加密和签名逻辑//统一调用net/http}//订单列表接口func(c*Client)OrderList(){c.do()}//订单发货接口func(c*Client)OrderDelivery(){c.do()}//...其

Protobuf Options 自定义插件使用

ProtoOptions简介使用protobuf的options,我们可以添加我们自己的option,然后根据option生成代码添对proto中的参数进行处理,例如添加message的校验。extension能够对已经存在的消息进行扩展,这种扩展只是动态增加字段,而没有增加接口。例子:扩展protobuf的FieldOptionsmessageMyFileOptions{optionalboolok=1;}//扩展protobuf的MessageOptionsextendgoogle.protobuf.FileOptions{optionalMyFileOptionsmy_file_opti

Protobuf Options 自定义插件使用

ProtoOptions简介使用protobuf的options,我们可以添加我们自己的option,然后根据option生成代码添对proto中的参数进行处理,例如添加message的校验。extension能够对已经存在的消息进行扩展,这种扩展只是动态增加字段,而没有增加接口。例子:扩展protobuf的FieldOptionsmessageMyFileOptions{optionalboolok=1;}//扩展protobuf的MessageOptionsextendgoogle.protobuf.FileOptions{optionalMyFileOptionsmy_file_opti