小弟目前在公司负责架构设计及技术导入
由于产品是广告投放平台
能不能在短时间内快速响应使用者请求是很关键的因素
先前产品是由 Scala + Nodejs 所开发
后续选择 Go 重新开发的原因主要会从几个面向下去思考
1. 效能
Go 的 benchmark 有很多人做过就不多提
但关键的一点是你不必到“非常精通”就能写出效能还不错的程式
先前看到文章是底层在运作时
会帮你处理掉许多复杂的东西: goroutine、inlining 等等
建议参考由 Dave Cheney 写的文章
https://dave.cheney.net/2014/06/07/five-things-that-make-go-fast
该位作者针对 Golang 撰写许多相当深入的文章
值得参考
2. 上手难度、维护性
Golang 很无聊,保留字很少
不像其他语言有许多 syntax sugar
带来效益是新手也能够很快的上手
不会出现新手跟老手程式风格差异很多、效能落差等问题
针对团队 (不见得是大型,有两三人共同开发时也算)
由于他实在太无聊,语言层面能玩的花样很少
(除了 design pattern 要学习以外)
导致每个人开发风格极度类似
是好是坏见仁见智
但团队要快速开发及方便维护上绝对有其好处