不知不覺侄刽,我們團隊選擇go語言已經(jīng)兩年了指黎,從最開始摸著石頭過河到現(xiàn)在的駕輕就熟,感慨萬千州丹,總結來說:不服就干醋安。
孫悟空不服天庭,所以大鬧天空墓毒,那我們不服誰呢吓揪?可能不服某位年齡不低的老大哥對世界的絕對統(tǒng)治吧,想要翻出點浪花來所计。
是的柠辞,不服那就干!干之前當然得考慮過潛在的風險主胧,最終確定在可控范圍之內(nèi)叭首,同時因為Go的簡單,團隊轉型也非常順利踪栋,大概一周時間焙格,就華麗麗的轉型成功。
項目方面夷都,先后做了消息推送眷唉、IM即時聊天、API網(wǎng)關囤官、統(tǒng)一監(jiān)控平臺(系統(tǒng)監(jiān)控厢破、應用監(jiān)控、全鏈路跟蹤治拿、服務可用性、業(yè)務監(jiān)控等等)笆焰,一路下來劫谅,最大的感受就是‘爽’,其次就是‘風一般的自由’。
Go語言本身并不自由捏检,較為強制的代碼規(guī)范荞驴、泛型的缺失、略啰嗦的錯誤處理等贯城,但是我們?yōu)槭裁锤惺艿健L一般的自由’呢熊楼?原因就在于Go實在是太他么的簡單了: 簡單上手、簡單開發(fā)能犯、簡單測試鲫骗、簡單部署、簡單維護踩晶,基本所有你能想到現(xiàn)代化軟件研發(fā)過程中備受詬病的復雜性問題执泰,在Go這里,都不存在渡蜻。
可能有同學要說了术吝,這個世界上不僅僅Go語言簡單,比如python茸苇,能被科學界和學生普遍接受排苍,也是因為簡單啊,而且名氣比Go大学密,生態(tài)比Go好淘衙,你們?yōu)槭裁床贿xPython,別急则果,且聽我細細道來幔翰。
不知道大家有沒有思考過,是什么讓我們在用一門工具時能感受到:哇西壮,牛逼遗增,答案可能是:是否擁有簡單、強大的生產(chǎn)力款青。
Go的生產(chǎn)力體現(xiàn)在以下方面:
1.簡單的語法
- 新加入的員工很容易就轉型為Go程序員做修,而且一上手就能有不俗的開發(fā)效率
- 有過豐富開發(fā)經(jīng)驗的同學肯定都很痛恨去維護歷史代碼吧?各種神奇的magic代碼抡草,就算你喊破喉嚨也沒人能幫你解決這些饰及,還好Go的語法足夠簡單,你想寫出黑魔法代碼估計也無能為力,因此Go的三方庫代碼可讀性一般都很好
2.代碼規(guī)范強制統(tǒng)一
- 原因基本同上
- Go的標準工具鏈提供了代碼格式化
3.部署簡單
- 在本地交叉編譯為目標平臺的可執(zhí)行文件康震,無需任何依賴燎含,扔上去就可以運行
- 容器親和度極高
4.優(yōu)秀全面的標準庫
基本上正常開發(fā)需要的所有功能,標準庫都支持了腿短,而且簡單易用屏箍,穩(wěn)定性和性能俱佳
-
我們有express绘梦、tomcat
go: 我們有標準庫我們有強大的fastjson
go: 我們有標準庫我們有netty
go: 我們有標準庫我們有強大的異步回調(diào)和纖程庫
go: 我們只需要在任何函數(shù)前加一個go關鍵字即可我們有強大的三方性能分析工具
go: 我們有自帶的標準工具鏈我們有強大的測試框架
go: 我們有自帶的標準工具鏈
5.寫Go項目基本不用擔心性能問題
- 語言級并發(fā)和高執(zhí)行性能決定了只要你用Go寫出了項目,那么性能一般都是不錯的(數(shù)據(jù)庫性能和語言性能無關)
- Go強大的標準工具鏈支持赴魁,能讓項目的任何一段代碼執(zhí)行過慢卸奉、內(nèi)存占用過高等問題纖毫畢現(xiàn),我們團隊解決過多個棘手的性能問題颖御,在其它語言可能需要花費一兩天的功夫榄棵,對go來說10分鐘足矣
6.良好的生態(tài)
- 是的,我承認潘拱,go的生態(tài)遠遠比不上java疹鳄,但是該有的都有,而且三方庫質量還都高泽铛,作者也普遍較為活躍
- 現(xiàn)代化的框架尚辑、平臺對go往往都支持的很好,甚至是官方原生大力支持盔腔,比如grpc杠茬、tensorflow等等
7.極快的編譯速度
- 我要編譯了,請允許我喝杯咖咖咖咖啡啡啡啡放松下弛随,shit瓢喉,這就編譯完了?咖啡包裝還沒拆
8.IDE親和
- go的ide插件都是go語言自己寫的,因此跨平臺支持的很好舀透,對于ide的親和度也很高栓票,vscode、idea愕够、vim都能很好的寫Go代碼
9.軟實時級別的GC
- 微妙級別的GC時間走贪,決定了Go可以在部分實時領域大展身手,比如實時證券行情等
- 我們就不必借助于C++惑芭、C去實現(xiàn)高性能代碼了坠狡,大大提升了開發(fā)和維護效率
寫了,這么多遂跟,前面的為什么在一些場景不選python逃沿,大家應該也明白了,說到底幻锁,還是想追求'風一般的自由‘凯亮。
快到尾聲了,再簡單提下Go適合的應用場景
- Web服務
- 中間件基礎服務
- DevOps服務
- 云計算
- 游戲哄尔、直播等實時性要求較高的領域
- 跨平臺可執(zhí)行腳本
最后假消,再送大家一些福利,自從用了Go岭接,團隊加班顯著減少置谦,終于有時間陪伴女朋友了堂鲤,想怎么happy就怎么happy。
我們都是平凡的媒峡,也都渴望著成功。一路千辛萬苦葵擎,跨過山和大海谅阿,想要逆襲,可是你敢像孫大圣那樣放棄所有嗎酬滤?
不服就干签餐。
如果您喜歡這篇文章,請點擊喜歡盯串;如果想及時獲得最新的咨詢氯檐,請點擊關注。您的支持是對作者都是最大的激勵体捏,萬分感激冠摄!By 孫飛