go技术选型

[TOC]
# web相关
1. web框架 [iris](https://github.com/kataras/iris)
2. api文档 [go-swagger](https://github.com/bjmayor/go-swagger)
3. 单机用的内存缓存 [go-cache](https://github.com/patrickmn/go-cache)
7. 模板引擎 [hero](https://github.com/shiyanhui/hero)
8. 高性能的路由,可以替换标准库里的defaultServeMux [httprouter](https://github.com/julienschmidt/httprouter)
9. 网页解析 [goquery](https://github.com/PuerkitoBio/goquery)
10. 配置管理 [viper](https://github.com/spf13/viper)
11. 开发规范参考 [Go-Web-Application-Guideline](https://github.com/muxih4ck/Go-Web-Application-Guideline)

# 通信协议
1. restful api [go-restful](https://github.com/emicklei/go-restful)
2. protobuf [protobuf](https://github.com/golang/protobuf)
3. [easyjson](https://github.com/mailru/easyjson) 比标准库性能高几倍。

# 日志
1. [glog](https://github.com/golang/glog)
2. [zap](https://github.com/uber-go/zap)性能最高。

# 单元测试
1. [断言](https://github.com/stretchr/testify/tree/master/assert)
2. [BDD测试convey](https://github.com/smartystreets/goconvey)

# 性能调优
1. [go-torch](github.com/uber/go-torch)
2.
# 微服务
1. 服务注册, 服务发现,配置中心 [consul](https://www.consul.io/)
2. 负载均衡 [fabio](https://github.com/fabiolb/fabio)
3. rpc [grpc](https://grpc.io/)
4. graphQL [gqlgen](https://github.com/99designs/gqlgen)
5. 工具集 [GoKit](https://gokit.io/)
6. [微服务继承](https://github.com/easierway/service_decorators)

# 基础服务
1. 定时任务调度 [cron](github.com/robfig/cron)

# 辅助devops工具
1. 进程监控工具 [supervisord](http://www.supervisord.org/)
2. 日志采集 elk
athena

# 其他可能有用的工具
1. 文件监控工具
2. 单元测试[GoCheck](https://gopkg.in/check.v1)
3. bdd测试框架[ginkgo](https://github.com/onsi/ginkgo)

# 参考
[awesome-go](https://github.com/avelino/awesome-go)
[微服务超时处理](https://engineering.grab.com/context-deadlines-and-how-to-set-them)