设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
影视
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
Go 编程语言
›
被 Java 毒害的脑子想在 Go 中实现一个操作,望打醒 ...
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
有没有感觉最近支付宝的 nfc 碰一碰开始发
›
相亲相处了一个月,被说拜拜了
›
年底了大家一人一句年终总结!
›
联通充值缴费 300,送小度智能音箱 L1
›
对于未来经济的一些想法
今日热议主题
ToDesk 远程连接 MAC,这个 CPU 占用率太恐
新站上线,影视剧资源查找
ios 连不上 charles 是什么情况
vs 的主题配色我还是用不习惯
想把一年的照片视频做一个视频回顾下,有什
线下面了一个远程工作,可以去吗
探讨下如何充分利用 iCloud 云存储
tf 卡如何恢复被覆盖的文件?
1.5 个点 求一些 餐饮、加油、住宿、飞机、
用油猴好像被恶意攻击了
显示全部
|
最新评论
31 条回复
·
3350 次点击
11#
to2false
小成
2024-12-6 13:34:18
proto 生成的是 interface 自己实现这个 interface 不就好了
12#
assiadamo
楼主
小成
2024-12-6 13:37:26
@NessajCN 这就是想要做到的魔法
13#
assiadamo
楼主
小成
2024-12-6 13:41:02
@to2false Go 的 interface 不能放成员变量就很可惜,比如协议内数据定义,Decode/Encode 相关的代码都不想出现在业务层,要想用 interface 就要再搞个 BaseEcho 之类的组合,还是觉得有点丑
14#
NessajCN
小成
2024-12-6 13:41:02
@assiadamo 所以你的意思让框架猜你的业务逻辑?
15#
assiadamo
楼主
小成
2024-12-6 13:45:54
@NessajCN Java 有注解和字节码替换,可以批量的处理一系列相同定义的东西,但 Go 如果没有相关的魔法,就要手动的注册函数,比如经典的 HandleFunc(path, func(){}),这样在玩具中,或者接口比较少的项目中可以手动,但如果有几百上千种协议定义呢? 当然可以借用代码生成,比如再生成一个 handle.go ,我想省去这个文件
16#
zerozerone
初学
2024-12-6 13:59:58
参考一下这个 https://github.com/brahma-adshonor/gohook
17#
NessajCN
小成
2024-12-6 14:03:06
@assiadamo 我试着理解你的意图:你是不是想定义一个 func Process() , 这个 Process 的参数可以是 Echo 类型的量,也是跟 Echo 类似的还有几百上千个的其他结构体的变量,你不想为这些结构体里一个一个定义 Process 函数?
18#
povsister
小成
2024-12-6 14:11:48
你既然只关心 Process ,那直接泛型不就完事了。 很常见的设计模式,go 处理 wiredata 简直舒服的不要不要的,泛型前写这种协议代码还脏一点 interface 乱飞。现在直接给你类型检查都安排的明明白白 。 多练,多看。 业务只需实现 ProcessMsg ,然后直接业务代码自己 Register 就行了。 https://i.imgur.com/73wQyh5.png
19#
assiadamo
楼主
小成
2024-12-6 14:12:35
@NessajCN 不是一个 Echo 协议类生成的时候,会伴随着在业务项目中生成一个 ``` func Process 协议名(协议){} ``` 这样其实当协议收取的时候,框架就应该知道对应的处理函数是什么,信息完全是足够的,但需要一个方法让协议内部的 Process 方法和业务对应协议 Prosess 方法联动起来,我想这一步让框架自己处理,而不是手动的去配置联动关系
20#
povsister
小成
2024-12-6 14:17:23
补充楼上,你顺带也可以把 Constraint 扩展一下加个 Name 方法,这样直接 struct 定义业务消息处理和业务消息类型,框架负责序列化反序列化。 更多一点,通过提供不同入参的 register 方法,或者变长参数提供 register option ,还可以实现业务可选定义 encode decode ,或者直接将整个 codec 层可插拔可协商,非常简洁明了。
下一页 »
1
2
3
4
/ 4 页
下一页
返回顶部