1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        50 萬行 Go 代碼!可汗學(xué)院拋棄 Python 轉(zhuǎn)向 Go

        共 1262字,需瀏覽 3分鐘

         ·

        2021-05-25 23:43

        技術(shù)編輯:小魔丨發(fā)自 思否編輯部
        公眾號:SegmentFault



        2019 年 12 月,著名教育性非營利組織可汗學(xué)院宣布了一項將后端重新設(shè)計為一系列 Go 服務(wù)的工程——Goliath,將后端最初使用的 Python 2 語言轉(zhuǎn)換為 Go 語言。近日可汗學(xué)院透露,目前已完成超過 50 萬行 Go 代碼。

        據(jù)介紹,在 Goliath 項目剛啟動時,除了團隊運行的驗證 Go 語言是更好選擇的實驗以外,團隊中沒有人了解 Go 語言。而現(xiàn)在,可汗學(xué)院所有的后端和全棧工程師都使用 Go 語言,目前已有超過 50 萬行 Go 代碼在生產(chǎn)環(huán)境中運行。

        為什么會從 Python 轉(zhuǎn)向 Go 呢?可汗學(xué)院首席軟件架構(gòu)師 Kevin Dangoor 進行了分析。

        Python 2 到達(dá) EOL 階段

        2018 年,Python 團隊宣布 Python 2.7 的 EOL(停用)日期為 2020 年 1 月 1 日,接下來,將不會有任何更新,也不會再有源碼安全補丁。這意味著使用 Python 2 的項目面臨著遷移。

        對于使用 Python 2 作為后端服務(wù)器語言的可汗學(xué)院,如何遷移、選擇何種語言成為當(dāng)務(wù)之急。

        他們認(rèn)為從 Python 2 遷移到 Python 3 并非易事,于是在 Kotlin、Go 等語言中進行選擇,并最終選擇了 Go。原因如下:

        • Go 提供了簡潔性和一致性,Go 團隊致力于開發(fā)一種幫助團隊長期可靠地發(fā)布軟件的語言;
        • Go 的編譯速度驚人,可以幫助團隊實現(xiàn)更快速的迭代;
        • 與 Kotlin 相比,Go 得到了更廣泛的編輯器的支持;
        • Go 和 Kotlin(在 JVM 上)的性能相似,但 Go 使用的內(nèi)存少得多,這意味著它可以縮減為更小的實例。

        那么,在使用 Go 語言后,開發(fā)團隊接受度如何呢?

        工程師喜歡 Go 語言

        可汗學(xué)院的工程師認(rèn)為 Go 語言具備「易于讀寫」等優(yōu)秀特性。此外,Go 語言在錯誤處理、標(biāo)準(zhǔn)庫文檔、編譯器、工具鏈、性能、處理速度等多個方面受到好評,甚至其地鼠吉祥物也贏得了一片贊譽。



        不過,可汗學(xué)院團隊也表達(dá)了對泛型的需求。他們認(rèn)為在編寫內(nèi)部庫代碼或處理 slice 時尤其需要泛型。缺乏泛型是人們對 Go 語言的最大抱怨。

        目前,可汗學(xué)院已完成 50 萬余行 Go 代碼。Kevin Dangoor 表示,雖然 Go 語言整體上比 Python 冗長,但它速度快、工具好用、在生產(chǎn)環(huán)境中運行良好。

        參考鏈接:

        https://blog.khanacademy.org/half-a-million-lines-of-go/

        https://blog.khanacademy.org/go-services-one-goliath-project/



        - END -

        瀏覽 78
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            偷拍情侣野外做爰视频 | 国产帅裸体男模gay网站视频 | 天天搞天天搞天天搞 | 青青草自拍视频 | 国产91福利在线 | 宝贝乖~张开腿我轻点 | av插b | 国产中老年妇女精品 | 免费看黄色视频的网站 | 舔到高潮视频 |