golang選型從滿懷期待到遺憾放棄後,我決定推廣golang

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

2017年我們公司需要快速迭代一款產品,當時,我們團隊的後端架構是spring mvc ,該架構結構清晰,上手快,但是由於我們的產品迭代速度快,底層資料庫操作介面變動頻繁,導致service層工作量巨大,不勝其煩。另外,隨著項目的成長,代碼量越來越大,項目啟動越來越慢,嚴重影響了開發調試速度。

在這種情況下,我們希望尋找一種新的架構或程式設計語言,我們期望他具備調試簡單,上手快,啟動速度快,保密性高,以及適用於高並發及web編程,效能優越等優點。當時手上備選架構有spring boot和golang,綜合比較,在巨大的遺憾中,我們選擇了springboot,相關選型參考資訊如下。

1、從功能滿足度比較

在啟動該產品研發時,我們梳理了自己的需求,主要在三個方面,一是支援高效能的restful api服務,二是支援web頁面服務,三是支援快速跌代。Restful介面及效能方面,spring boot 和golanbg 都支援,且效能區別不大。頁面服務方面,spring boot 封裝了springmvc,相對成熟度等級更高,並且由於大量javaer的長期積累,該架構已經非常成熟;而go lang 方面,也有成型的架構,如beego,但是該架構使用度並不高.究其原因,是因為beego沒有形成像php架構那樣的生態,比如行業內php開源架構thinkphp,目前基於該架構已經形成了大量的cms,商城,erp,管理等軟體,這也是我為什麼要寫這篇文章的原因,我希望通過通過這一系列文章,讓更多的人認識到go語言,並參與到golang 的生態搭建中來。迴歸正題,功能滿足度,spring boot更勝一籌。

2、學習成本

我們需要考慮到團隊的學習成本,當時團隊已經非常熟悉spring mvc架構,如果切換spring boot,學習成本幾乎為零,但是若切換到golang,學習成本相對較高。另外,網路上關於golang架構,推薦並不多,比如gin,decho,以及beego,我們重點瞭解了beego架構,知乎上爭論頗多。這些,都讓我們對是否使用go語言,心裡預期上打了一些折扣。

3、項目遷移成本

在選擇架構的時候,我們還考慮了我們的整合成本。我們的客觀情況是:公司的技術棧以及這些技術棧形成的項目積累,幾乎都是java,如果我們切換到golang,那麼產品營運成本將相對較高,另外由於目前行業類golang 從業者較少,如果我們採用go,將人為地為我們的項目團隊組建帶來巨大的難度.

4、社區活躍度

Go語言社區活躍度並不高,具體可以看如下幾個方面

l 百度搜尋指數

是golang 和java 以及php的搜尋指數,近段時間以來,golang關注度不斷下降,已經到日均1000pv,如果golang不孵化生態圈,將面臨淘汰.事實上,在百度上搜尋golang,很多都是2014年的舊事了。

l Go技術論壇

筆者2018-02-10 18:11訪問了https://studygolang.com/ 首頁如下

該社區在百度搜尋go語言論壇 排名第一,但是日更新不超過20篇文章,一股悲涼浮在心頭。

為golang csdn社區論壇,一周以內不超過10篇文章,心中又涼了半截。

l Github go 活躍度

為github發布的程式設計語言2017年度排行Go語言排行第九.這意味著全球活躍度還是有,但相比php,java等而言go還有很長的任務要走。

4、我計劃怎麼做

個人覺得golang 是一款非常優秀的語言,但是非常遺憾,目前還不是我們團隊的最優選擇,為了彌補這份遺憾,我們需要做些什麼。為了推廣GO語言,我做出了如下工作計劃計劃

1、寫作一系列文章,示範如何整合golang web架構。

這些文章的目的不是在於整合一個golangweb 架構,而是在於示範如何整合一個golang架構,原因如下

  • golang架構已經很多。國外的如matini,revel,gin等,國內也有beego.這些架構都很優 秀,各有所長,但也正是因為這些,所以有毀有譽,當然這不是重點。
  • 我們往往會碰到很多情境,現有的架構能解決我們的問題,但不是最好的解決方案, 需要定製我們自己的架構。
  • 我們對架構有要求,希望簡單好用,同時又希望具備高擴充性和開發性。
  • 我們看到上述各種架構的優勢,我們希望將他們整合起來,揚長補短。

基於如上原因,我決定不重新製造輪子,而是給大家做一個樣本,怎麼製造輪子。同樣地,正是因為這些因素,我們在搭建過程中會大量使用第三方優秀成果,這從根本上決定了我們產品的開放性。

2、豐富golang應用生態圈。

golang 上手簡單,和php有點相似,有人甚至會認為golang是一種解釋性語言。Golang效率高,天然支援並發,效能好,又能打包成可執行檔,無需容器,安全可靠,但是為什麼這麼一種語言,為什麼沒有獲得和php一樣高的使用率呢?我認為主要是golang應用生態圈沒有豐富起來。

  • 長期以來,人們認為golang 只適合做高並發,高科技的事兒,這可能是因為golang出 生高貴吧,golang在又拍雲得到大規模運用,和雲端運算沾上邊兒,有點曲高和寡的味 道。
  • l類比php,我們會發現部落格軟體有wordpress,cms 有織夢帝國,商城有ecshop、 ecmall,開元架構有thinkphp,laravel,yii,而golang語言,我們有什麼?應用生態 圈極度缺乏。
  • 類比java, java有龐大的生態圈和中介軟體,java已經是企業級應用的慣用語言,這不 單是因為java效能好,跨平台,還因為java已經有好幾代使用者,是忠實粉絲,而 golang,使用者都是弄潮兒。

以上幾點可以看出,豐富golang生態是golang推廣的重中之重。

3、大力宣傳和推廣golang。

我計劃大力宣傳和推廣golang,具體做法如下

  • 宣傳和推廣golang傳統行業應用情境,主要包括cms應用,個人部落格應用,商城應用、 管理後端等五大基礎領域。
  • 宣傳和推廣golang移動互連網應用情境,golang具備天然的高並發優勢和快速迭代 優勢,我們可以golang推廣到互連網情境應用,如小遊戲上。
  • 挖掘新的golang使用情境,使golang更接地氣,如秒殺、拍賣、大資料擷取和處理等 情境都是golang用武之地。
  • 其他渠道如搜尋引擎seo推廣、行業熱點推廣

如下一系列文章是本次工作中的一部分,詳細列表如下,點擊即可訪問,後續我將繼續提供開原始碼

  • restgo後台管理架構
  • 天天任務清單小程式
  • 工業大資料擷取
  • restgo cms 
  • restgo 千人大群

原始碼擷取地址 http://www.imwinlion.com

golang實戰使用gin+xorm搭建go語言web架構restgo詳解1.1 go語言的困境

golang實戰使用gin+xorm搭建go語言web架構restgo詳解1.2 我要做什麼

golang實戰使用gin+xorm搭建go語言web架構restgo詳解2 架構基本架構

golang實戰使用gin+xorm搭建go語言web架構restgo詳解3 系統常用配置參數

golang實戰使用gin+xorm搭建go語言web架構restgo詳解4 路由配置

golang實戰使用gin+xorm搭建go語言web架構restgo詳解5 控制器C

golang實戰使用gin+xorm搭建go語言web架構restgo詳解5.2 跳轉和重新導向

golang實戰使用gin+xorm搭建go語言web架構restgo詳解5.3 資源控制器

golang實戰使用gin+xorm搭建go語言web架構restgo詳解5.4 控制器參數綁定

golang實戰使用gin+xorm搭建go語言web架構restgo詳解5.5 控制器模型繫結

golang實戰使用gin+xorm 搭建 go語言web架構restgo搭建詳解5.6 控制器參數校正

Golang go語言整合gin+xorm 搭建 web架構restgo搭建詳解5.7 控制器資料響應

golang實戰使用gin+xorm搭建go語言web架構restgo詳解5.9 控制器controller編程

golang實戰使用gin+xorm搭建go語言web架構restgo詳解6.1 模型M和Orm

golang實戰使用gin+xorm搭建go語言web架構restgo詳解6.4 推薦編程方式

golang實戰使用gin+xorm搭建go語言web架構restgo詳解7 視圖層V

golang實戰使用gin+xorm搭建go語言web架構restgo詳解8 關於模板

golang實戰使用gin+xorm搭建go語言web架構restgo詳解9 session、日誌、鑒權

作者簡介:胡文林,持續創業者,長期從事技術開源工作。號jiepool-winlion

1540 次點擊  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.