如何評價beego框架?

相比php的眾多框架,和python的各種框架。beego有什麼優勢和劣勢?


框架可以當很好的學習資料,但自己很少用框架,特別是 Go 這樣的語言,找不到太多使用框架的理由,這裡有一篇很好的文章 Aerotwist - The Cost of Frameworks ,介紹了使用框架的利弊。


拋出代碼質量和框架的質量不說。只說一點,作者為golang在中國的普及作出了不可磨滅的貢獻。


bug解決了,現在無聊,過來吹水。

之前學golang的時候,看到國人寫的beego框架,我就通過閱讀beego代碼學習go的,也自己通過學習他的log庫,自己封裝了一個基於file的log庫,功能比beego的要強大點(單說file存儲方面)。也用過httplib的庫。總體上,代碼質量還是可以的,部分代碼風格也看不慣,個人有代碼潔癖,寫代碼不喜歡多層嵌套,寫的代碼基本找不到else。

個人認為beego太過於龐大,也就是感覺太重了,我組現在都是前後端分離,nodejs+go,go只提供api,我們的web框架用的是gin,簡單輕巧,國外兩個大學生寫的,性能很不錯,gin給的壓測數據要比beego高不少,輕量級也符合我們的需求。

beego的龐大,作者想著的應該是做到很全,所有功能一個框架全包,個人覺得現在的開發理念已經有點過了,消耗很多精力,beego在template的渲染覺得還可以(沒細看)。beego某些模塊寫的還是可以的,個人參考了不少裡面的代碼,也在此基礎上加於豐富滿足特定的功能。

beego orm的代碼感覺確實太複雜了,看的頭疼,最近手上的一個項目需要用到mysql,最後參考了beego orm, gorm, xorm決定不使用任何orm,參考xorm的engine代碼,自己簡單封裝了一層皮,後面還是使用原生sql。

現在開發框架真的沒必要大而全,把精力放在某個點上,把其他的地方交給其他開源框架,組合使用,讓用戶自己拼裝,做好兼容即可。

beego每個模塊基本都有各種實現方式,這導致了複雜+用戶選擇綜合征,有時唯一的選擇也許就是最好的選擇。


作者搞了個go技術社區,結果用了PHP的系統:Go 技術社區

beego這個東西,作者自己都不用,你們還指望什麼?

beego只不過是把PHP那套東西用go來實現了下,理念太舊太舊了

「知乎類型的網站,我也許需要花上三個月時間來開發這樣的一個網站」(V2EX )

生產力也太低了


beego 相比於martini revel等其他優秀golang框架 來說就是 beego為 web開發人員提供了非常完善的組件(session,log,router, filter, validation, orm ...), 並且中文文檔豐富, 是一個非常好的goweb入門框架, 不過使用多了你會覺得很臃腫, 遠不如小框架來的輕巧


這麼多人噴beego, beego 就是大而全幫你做好一切, 你只要負責實現業務就行了。 我第一次知道beego的時候, 感慨簡直就是Golang界的django 啊,關於代碼質量問題我覺得是仁者見仁智者見智, 複雜演算法多嵌套幾層也是可以理解的!!so that!不匿!


項目負責人不務正業,github上的issue直接關,反正我已經遇到3個log的bug了。。無奈項目組都在用


就是把個PHP框架移植工作而已,沒有融合 golang的思想。就想很多傳統的MVC框架的開發者一樣,接觸vue,react這類前後段分離的框架一樣,沒法理解。


就講一個,所有路由存map里,用range查詢,,,也是夠了,不過不想分開正則和非正則路由,又沒那麼多精力寫更高效的正則命中演算法,只能這樣了。

框架是一個大而全的軟體系統,必須有所取捨


沒有使用beego框架,但是在使用beego的orm,不錯的。


多個產品使用,穩定可靠、社區氛圍好、作者負責、值得推薦


之前參加了一個golang的meetup,有個討論就是說golang的這幾個框架。對於beego的評價就是框架有些太過龐大,不如revel,martini這樣的來的輕量。同時,在功能上比gorilla差些。所以導致beego不那麼受歡迎。當然,我認為beego是目前最好的國人開發的golang框架,有非常完善的文檔和教程。


源碼可以用來學習GO語言


接觸過 thinkphp yii2 框架,覺得更適合做一些管理系統,go 因為並發特性比較好,更適合做一些api服務。

看過一些文章,比如輕鬆籌這個平台,後端都已陸續遷移到go了。

beego 我們一直在用它做api服務,文檔齊全(官網訪問慢,我還做了一個離線的pdf http://download.csdn.net/download/mtour/9637709), 簡單易用,從用人成本來說比較低,我們一個搞c語言的,搞一個api服務完全沒有障礙。


個人覺得,beego框架不利於寫單元測試。單元測試時,框架初始化繁瑣,且經常有bug不能正常使用。


1、beego作者水平略有不足,寫的代碼存在超多層的循環嵌套結構,這是網上很多人批評的,但作者自己不承認問題、拒絕修正…(大家談談Revel和Beego吧 或者其他Go框架)

這種寫法,下來的框架實際上不僅會拖慢運行效率,還會引起莫名BUG,所以前景不妙。

astaxie/beego

2、搞golang開發的很多資深人士並不推薦使用http框架,因為golang本身的http包足夠完善了。

3、我個人搞了幾個項目,試水下來發現用框架更麻煩,因為學習成本太高,沒意義。一個路由還需要封裝半天,都為這些框架作者發愁。

這是我寫的項目路由代碼。

controller/router.go · fotomxq/collmz - 碼雲 - 開源中國


一個值得研究的框架~


我覺得作為go語言入門框架挺好的,搭建web服務非常方便,這是我寫的beego入門教程,

go web編程之-beego框架。某些人可能在這方面資深一點,熟悉一點,但是我覺得對於開源項目的態度不應該是諷刺,抨擊,而應該是學習,吸納和指正,畢竟作者開源出來,水平一定不會太差。


據說代碼質量有待考究


世界第一個值得我學習的Go Web框架


這是我接觸goweb的第一個框架,並一直在使用,用過martini,感覺beego的看著更舒服,各個模塊看起來方便快捷,而Martini增加擴展更快更方便,


少有的國人開發的優秀框架


用beego寫了個介面,並發數不到100


推薦閱讀:

學生web開發小團隊合作開發流程是怎樣的?
Web APP如何搜集用戶使用過程中的錯誤信息(Bug)?
怎樣寫大型應用程序?
前端工程師根據設計圖製作網頁的時候,切圖優先考慮哪個軟體?
滑塊驗證碼(滑動驗證碼)相比圖形驗證碼,破解難度如何?

TAG:Web開發 | Go語言 |