搜集赏
1 | 就像高中夏天某个只有选修课的下午。就像再也买不到的橘子味巧克力。就像甜甜的回笼觉。 |
之前介绍过使用wails
来编写桌面客户端,最近又有在使用百度的前端低代码框架——amis
,是使用JSON配置来生成页面的。对于大部分常用的页面,使用低代码生成,还是比较好用的,前提是后续需求别太复杂。
而在使用amis
过程中,发现编写JSON时,使用amis 可视化编辑器编写会比较方便一点,但有一个问题,就是在网页上编写完页面后,要复制到本地文件中。所以客户端的价值就是打通和本地文件的交互了。
使用库amis-editor-demo和wails-react-template。
amis v6.9.0、wails v2.9.2、node v18.18.0
之前还在做嵌入式的时候就用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 辅助)