Go語言·不服就干

不知不覺,我們團隊選擇go語言已經(jīng)兩年了,從最開始摸著石頭過河到現(xiàn)在的駕輕就熟,感慨萬千,總結(jié)來說:不服就干。

孫悟空不服天庭,所以大鬧天空,那我們不服誰呢?可能不服某位年齡不低的老大哥對世界的絕對統(tǒng)治吧,想要翻出點浪花來。

是的,不服那就干!干之前當然得考慮過潛在的風險,最終確定在可控范圍之內(nèi),同時因為Go的簡單,團隊轉(zhuǎn)型也非常順利,大概一周時間,就華麗麗的轉(zhuǎn)型成功。

項目方面,先后做了消息推送、IM即時聊天、API網(wǎng)關(guān)、統(tǒng)一監(jiān)控平臺(系統(tǒng)監(jiān)控、應(yīng)用監(jiān)控、全鏈路跟蹤、服務(wù)可用性、業(yè)務(wù)監(jiān)控等等),一路下來,最大的感受就是‘爽’,其次就是‘風一般的自由’。

Go語言本身并不自由,較為強制的代碼規(guī)范、泛型的缺失、略啰嗦的錯誤處理等,但是我們?yōu)槭裁锤惺艿健L一般的自由’呢?原因就在于Go實在是太他么的簡單了: 簡單上手、簡單開發(fā)、簡單測試、簡單部署、簡單維護,基本所有你能想到現(xiàn)代化軟件研發(fā)過程中備受詬病的復(fù)雜性問題,在Go這里,都不存在。

可能有同學要說了,這個世界上不僅僅Go語言簡單,比如python,能被科學界和學生普遍接受,也是因為簡單啊,而且名氣比Go大,生態(tài)比Go好,你們?yōu)槭裁床贿xPython,別急,且聽我細細道來。

不知道大家有沒有思考過,是什么讓我們在用一門工具時能感受到:哇,牛逼,答案可能是:是否擁有簡單、強大的生產(chǎn)力。

Go的生產(chǎn)力體現(xiàn)在以下方面:
1.簡單的語法

  • 新加入的員工很容易就轉(zhuǎn)型為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關(guān)鍵字即可

    我們有強大的三方性能分析工具
    go: 我們有自帶的標準工具鏈

    我們有強大的測試框架
    go: 我們有自帶的標準工具鏈

5.寫Go項目基本不用擔心性能問題

  • 語言級并發(fā)和高執(zhí)行性能決定了只要你用Go寫出了項目,那么性能一般都是不錯的(數(shù)據(jù)庫性能和語言性能無關(guān))
  • Go強大的標準工具鏈支持,能讓項目的任何一段代碼執(zhí)行過慢、內(nèi)存占用過高等問題纖毫畢現(xiàn),我們團隊解決過多個棘手的性能問題,在其它語言可能需要花費一兩天的功夫,對go來說10分鐘足矣

6.良好的生態(tài)

  • 是的,我承認,go的生態(tài)遠遠比不上java,但是該有的都有,而且三方庫質(zhì)量還都高,作者也普遍較為活躍
  • 現(xiàn)代化的框架、平臺對go往往都支持的很好,甚至是官方原生大力支持,比如grpc、tensorflow等等

7.極快的編譯速度

  • 我要編譯了,請允許我喝杯咖咖咖咖啡啡啡啡放松下,shit,這就編譯完了?咖啡包裝還沒拆

8.IDE親和

  • go的ide插件都是go語言自己寫的,因此跨平臺支持的很好,對于ide的親和度也很高,vscode、idea、vim都能很好的寫Go代碼

9.軟實時級別的GC

  • 微妙級別的GC時間,決定了Go可以在部分實時領(lǐng)域大展身手,比如實時證券行情等
  • 我們就不必借助于C++、C去實現(xiàn)高性能代碼了,大大提升了開發(fā)和維護效率

寫了,這么多,前面的為什么在一些場景不選python,大家應(yīng)該也明白了,說到底,還是想追求'風一般的自由‘。

快到尾聲了,再簡單提下Go適合的應(yīng)用場景

  • Web服務(wù)
  • 中間件基礎(chǔ)服務(wù)
  • DevOps服務(wù)
  • 云計算
  • 游戲、直播等實時性要求較高的領(lǐng)域
  • 跨平臺可執(zhí)行腳本

最后,再送大家一些福利,自從用了Go,團隊加班顯著減少,終于有時間陪伴女朋友了,想怎么happy就怎么happy。

我們都是平凡的,也都渴望著成功。一路千辛萬苦,跨過山和大海,想要逆襲,可是你敢像孫大圣那樣放棄所有嗎?

不服就干。

如果您喜歡這篇文章,請點擊喜歡;如果想及時獲得最新的咨詢,請點擊關(guān)注。您的支持是對作者都是最大的激勵,萬分感激!By 孫飛

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,745評論 25 709
  • 20多歲時候,你有夢想,貼貼撞撞的走過來。很多人都寬慰你不要記仇,要感恩,才是更好出路。 因為這樣符合和諧社會價值...
    蘇煙煙閱讀 101評論 0 2
  • 在風中狂舞著的, 是火紅的楓葉與晶瑩的凝霜。 昨日還是深秋。 而今日,露珠在晨霧里睜不開眼睛, 任憑那四面八方的寒...
    寡小城閱讀 266評論 2 9
  • 燈R閱讀 464評論 0 0

友情鏈接更多精彩內(nèi)容