小弟目前在公司負責架構設計及技術導入
由於產品是廣告投放平台
能不能在短時間內快速響應使用者請求是很關鍵的因素
先前產品是由 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 要學習以外)
導致每個人開發風格極度類似
是好是壞見仁見智
但團隊要快速開發及方便維護上絕對有其好處