Golang Resources
文章目录
还有两个月就要过年了,想起来今年还有一大任务没有完成,就是掌握一门新的编程语言。所以呢,这两天阅读了大量 Golang 文档,看得我颈椎病都犯了。
我学习新技术的时候有个不好的习惯,就是除了新技术本身,还会第一时间找一堆与这个技术相关的信息,了解一下其主流应用,把今后可能用到的库啊开源项目啊都找出来。这就导致我在学习 Golang 的同时又跑去看了大量的开源库和 Golang 主流应用的资料。另一个不太好的习惯就是,我很有点选择困难综合症,总执着于在一堆技术里面选择出来一个自己看起来顺眼的,相对主流,用起来不错,源码足够优雅的那个。这也就直接导致我足不出户的这两天阅读量巨大,眼都快瞎了。除了选择起来很痛苦,寻找佐证和写垃圾代码测试的过程也是难以描述啊……
好处就是,似乎又找到了一点点十几年前忘情怼代码的感觉。
扯远了……
记录一下这些资料,方便后面深入学习的时候查找。
Golang 的入门资料
我的学习路线:
- 花 8 小时读完《Go 入门指南》,看心情做一下书中练习。
- 快速跑一遍”Go 指南“中的例子,大约 1 小时。
- 挑《使用 Golang 构建 web 应用程序》中感兴趣的章节浏览一遍。
Golang Web 框架
我使用 Golang 的第一个目标是逐渐替换 SAGITEAM 正在广泛使用的 API 服务框架(uwsgi+Python)。因此我的第一站就是 Golang 的 Web 框架。
得益于 Golang 自带的 http 包的完善度,Golang 的 Web 框架可是百花齐放。我仔细比较了大约十几个 Web 框架,根据我的标准(小巧、灵活、优雅、性能、成长),在两个框架里面纠结了好一阵子:
最终我选择了 Gin。至于原因么…… 可能是因为名字短一点?
顺便说一句,之前在选择 Python Web 框架的时候我也很纠结:Python web框架的选择。
项目结构
项目结构的 best practice 可以参考下面两个资源:
需要注意的是从 Go 1.11 开始,已经可以把项目放在 GOPATH
之外了,我就准备这么做。
这里还有一篇 Restfull Projects API with Gin 可以参考。我就是准备专门用 Golang 来写 API。
API Gateway
Golang 在 API Gateway 这个领域里面也有不少实践,我顺便研究了一下。Kong 是目前应用较多的实现,个人也比较倾向于使用它。
- API Gateways: Kong vs. Tyk
- KrakenD Golang 实现
- Tyk Golang 实现
- Kong Openresty + Lua 实现
- Orange Openresty + Lua 实现
- 文章ID:2678
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/golang-resources/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。