Go語言做Web應用開發的框架,哪一個更適合入門?

本人大學本科在讀,信息管理與信息系統專業,有一點http://ASP.NET的基礎。雖然是考研狗但是還是想多接觸一些技術。最近在接觸Python和Go,感覺Go語言的風格更適合自己,但是Python有更多的文獻更成熟的教程,由於是動態解釋型語言也比較容易入門,所以先行接觸了django。

下面是問題的所在,感覺依舊不想放棄對Go語言的研究。我知道Go語言的強項或許不在Web開發,但是由於雲計算、大數據等比較高級的領域對於我們學生實在是比較難接觸到,所以還是想從web開發入手。很多人推薦beego,但是感覺beego的社區對新手不是很友好,讀過beego作者謝老師的書,感覺他的書到後半部分開始顯得略晦澀和抽象(也怪自己沒有學好計算機網路的原理知識)。而revel、martini等框架很少有國人評價。總得來說作為一個golang新手,希望得到一些大佬的推薦,各位老司機來說說自己的看法,或者推薦一下go語言的學習路線。

嗯,php是最好的語言。


後端 MVC 框架熱度越來越低了,不會再出現什麼新鮮框架的了。web 應用的發展方向是前端框架 + 後端 api 伺服器的結構。後端的 api 伺服器還可以給其他終端的系統使用。所以類似 django 這樣的框架,go 不會出現成熟的了。寫 api 伺服器又不用什麼框架,隨便搭搭就行了。所以 go 做 web 開發不用什麼框架。想做 web 系統,還是多看看前端框架吧。


可以看看iris

Iris · GitBook


可以先直接使用go自帶的http server 框架,這個框架涵蓋了絕大多數的功能,比如request response 的基本封裝,簡單的路由管理,文件上傳處理。

如果發現Go 自帶的框架解決不了問題,可以引入相應的第三方組件,比如ORM可以採用中國人寫的gorm 比如web 的session 管理可以使用gorilla/session

當然你也可以直接上大一統的框架比如你提到的beego 還有大名鼎鼎的martini 。不過不推薦,因為這樣的大框架和Go 語言本身的模塊設計有衝突。

實際開發建議用vscode 加Go 插件來做IDE,基本包含了其他成熟IDE的所有功能,而且還自帶強大的debug 功能。其他IDE debug 用起來非常麻煩比如idea 和liteIDE。題主也可以自己試下。


Golang 入門可以在谷歌搜索「Go gitbook 」,或者買書籍,例如Go 語言編程(七牛公司一大牛寫的)很適合入門~

Golang web 開發主要用於寫API ,所以golang 自帶的http 框架或者用比較熱門的開源路由框架,例如mux ,httprouter加上一些中間件即可~

完整的web 框架,我當初有用過Gin,Gin路由部分就是httprouter ~


語言什麼的不太重要吧還是理解框架的原理什麼的比較重要。Go是一個非常優秀的語言,但是也有不少坑lol。建議還是做項目然後體會各種知識比較好,單純focus在語言層面上最後的結果應該會學的比較干。


Web 框架可以試試 Gin,輕量,性能好,路由配置靈活,中間件定義方便。


推薦使用 Faygo 框架。有中文文檔和技術討論群。用 Faygo 只需要定義一個struct Handler,就能自動綁定、驗證請求參數並生成在線API文檔。因此,Faygo 簡單易用,代碼量少,開發效率高,非常合適開發API介面。並且 Faygo 的Handler與Middleware完全相同,都是實現Handler,只是概念層面的區分。這在眾Go Web框架之中實屬首個!

GitHub - henrylee2cn/faygo: Faygo is a Golang Web framework that handler is middleware, supports intelligent parameter mapping and validation, and automates API documentation.


tango可以啊,畢竟是國人產品,有中文文檔。

該作者還有xorm這個go語言的orm。

還有官方群。

總的來說,比較方便。

echo也可以,也比較簡單,中間件比較豐富。


推薦下echo 基本是那種提了issue馬上處理的 也可以看下iris ~


beego不錯,親眼見到師傅用這個搭建了網站,微站及大型網站


推薦閱讀:

多線程情況下 很多變數 頻繁訪問 難道每個都要加鎖訪問嗎?
如何看待 Dropbox 從 Go 轉向 Rust ?
nodejs與go語言比較如何,它們的發展前景怎樣,網站後台開發,選擇nodejs好還是go好?
選擇學習 C 語言、Go 語言、C++11 各有哪些優缺點?

TAG:編程 | 應用開發 | Web開發框架 | Go語言 |