搜集赏
1 | 就像高中夏天某个只有选修课的下午。就像再也买不到的橘子味巧克力。就像甜甜的回笼觉。 |
之前还在做嵌入式的时候就用Qt做过客户端应用,但是转Go后,一直还没写过客户端,前面也用过Amis这类前端低代码,写过Web界面,算起来也是非常方便的,适合不想理会前端的各类知识。
但是有些场景,用户就是需要桌面客户端这样的形式的时候,就没办法说用B/S这样的架构交付了。
Go的GUI库,比较火的有两个,Fyne
和Wails
。经过一段时间的使用,这里推荐使用Wails
。
这一篇算是有时间就补一下以前做的事。之前有提过Go有Encode/Decode SML/HSMS消息的库,该库对SECS2基协议解析基础完备的支持,易于使用的话需要对其进行一些细微的修改。
这个库的学习可以通过各个文件的Test案例进行了解,基本上使用起来不会有太大的问题。
上次我写了通过protoreflect
的方法,自动代理服务,可以摆脱开proto文件的限制,这样网关可以将这些服务都自动代理起来。更进一步的,像现在微服务框架,如Kratos、ego、go-zero都兼顾根据proto文件上,根据google/api/annotations.proto
增加的注解,生成HTTP的服务,而这些属性注释,网关都可以通过反射拿到,然后代理其HTTP。
除此之外,HTTP —> Gateway —> GRPC 有没有省事点的方法呢?可以直接将HTTP/1.1协议转成GRPC兼容,然后将返回再翻译为HTTP/1.1。
众所周知,在编写GRPC服务应用时,需要获取相应的proto文件,生成server、client的打桩代码,借此即可访问服务,同时也能启动服务,但这里会有个问题,就是需要获取到对应的proto文件。我想直接知道对方的请求参数和返回参数,并由此来设定mock值,设定完成后,即可直接请求。
基于以上的需要,进行相应的实现,即可得到所需的效果。
在Go
语言中,对Oracle
进行操作,比访问其他常见DB可谓是要麻烦一些,显而易见的问题是库的选择,这里我尝试了两种库:
go-ora + 官方库database/sql (github.com/jmoiron/sqlx、github.com/blockloop/scan 辅助)
MySQL是Coder必备知识,最近我也是趁着自己有时间,看过一遍网络知识后,再回过头来看下MySQL,看MySQL的时候用到了Margin Note3,确实挺好用的,推荐学习时使用,电脑端使用book xnote。我会把思维导图丢到网页上来,也是方便我使用电脑查看。
MySQL学习推荐课程:MySQL 实战 45 讲