算是印证了标题,黑果玩到最后,不想折腾了,就会去买白果的。从去年m1发布后,我就一直在翘首以待下一代arm版的macbook pro,终于,10月20号,搭载m1 Pro/Max 的 macbook pro 发布了,在国区解锁购买的早上,我就火速购入了。
Openwrt Clion 环境配置指南
因为 openwrt
对 golang 支持不佳,被迫写C,所以不得已使用 Clion
来对印度人的开源项目进行二次开发,印度人的项目使用的管理工具是 autoconf
,而 Clion 对 autoconf
的支持实在不行,在经历了三个月纯粹把IDE当成 “有全局查找功能的编辑器” 后,忍无可忍 ,就有了创建独立于老代码的新项目,然后在老代码里引用新项目动态库的想法。
Go 的调度器 : Ms , Ps 以及 Gs(翻译)
注意,原文发布日期为2017年5月3日,至今已有3年 , 而 go 语言已然从 1.10 进化到了 如今的 1.14 , 所以本篇的内容时效性并不做保证,仅用以学习理解。
关于protobuf的json处理
就打了那么久go代码了,一般需要处理json的时候一般都是Json Marshal Unmarshal一刷子搞定,但这次遇到了一个坑,那就是marshal into interface{}
。
对于处理marshal into interface{}
问题我之前都是使用jsoniter
这个库来解决的,一般来说都能用,但这次是通过protobuf生成的文件,因为流表许多不同的结构,导致了protoc文件在同一字段使用了大量oneof
来处理。也就导致了我们生成了一个看似interface
而又有具体类型的结构。
主要解决还是这个的Marshal form []byte
问题。其实解决方法很简单。
1 | go get github.com/golang/protobuf/proto |
用这个包来处理proto
的二进制转换以及json
转换就好了。
1 |
|
这个包是专门来处理 protobuf
的转换问题的,都是没看官方文档惹的祸(