最近两周一直在做公司的 Go 项目,从 PHP 转 Go 是一个不算那么痛苦的精力,今天就来讲讲这两周的体会吧。
背景
- 我们是长期使用 php 并且实现了 swoole service 架构的服务
- 随着长时间的维护,发现了 php 这种野路子开发快,但是规范上真的差
- 业务的复杂度和规范性越来越成了一个维护难题
- 小组学习 Go 相关内容
过程
- 为了减少趟坑造成巨大损失,只能找一些不太重要的小项目进行重构。
- 对于一个从 PHP 转 Go 最大的难题就是规范性。
- 数据类型的定义要求
- 资源业务的抽象
- 单元测试的编写
对于一个被 PHP 养成的一个懒汉来说,初期真的是痛苦无比,但是慢慢的我发现,其实 Go 的设计模式就是为了在规范和速度上取一个平衡,开始我是一点一点写的,后来发现各种的包可以大大缩短我们早轮子的时间,轮子小还可以自己改,所以我就萌生了一个想法。自己做一个脚手架,自动代码生成。做为一个懒散的程序员这就是福音。
优化
- 我们选择的是 Gin 框架,原因是轻量,我觉得没什么比轻量可控更好的选择了。
- Restful 协议真的是好东西,规范可自动生成不错的选择
- 并不需要高深的代码套路,curd 模板直接保存文件
结果
- 完成了一个简易轻便的 Restful 脚手架 EsayGin
- github 地址 https://github.com/xiangdong1987/easyGin
总结
感觉 go 真的真的很不错,在快速和规范中有一个舒适的平衡点。后续加上 docker,在弄个 k8s 稳稳的后端,前端的事就叫前端去做吧!业余时间快乐的玩耍。还有欢迎提各种 pr 集思广益。