beego 开源项目求推荐

2017-02-16 20:25:44 +08:00
 jinya
最近公司要用 beego 框架,本人想深入学习一下 beego 框架,求老司机带路。
3218 次点击
所在节点    Go 编程语言
34 条回复
loading
2017-02-17 13:04:33 +08:00
搭车问用哪个 模板库,目前选了 render ,不知道 pango2 能用吗?
bianhua
2017-02-17 13:08:51 +08:00
@Muninn

> 感觉 golang 用 beego 丧尽优势

嗯……想知道丧失了哪些优势?能举个例子么?
ruooooooli
2017-02-17 14:07:25 +08:00
@jarlyyn 可能是我经验有限, 做的东西不多, 并不能真正的理解 还待加强呀

@fatedier 是的 用过 PHP 框架的可以很快上手 Beego
Muninn
2017-02-17 17:11:09 +08:00
@bianhua 不好意思,我水平不到,说不清楚那种感觉。
总之你看几个系统库的源码,
再看几个其他出名项目的源码,
看几个其他框架写出的成品的源码,
最后再看看 beego 和 beego 写出来的项目的源码。
这种感觉应该很明显。

至少对我来说
我用 go 是追求像 python 一样的简洁优雅,和近似 c 和性能。
这两点 beego 都相去甚远。
bianhua
2017-02-17 17:18:12 +08:00
@Muninn

给几段代码比较一下?

我早先用过 Beego ,当时感觉确实有缺陷,但不知道我的“感觉”跟你的是否是一样的。
elone
2017-02-17 17:29:05 +08:00
我的建议是不要用框架, net http 真的够用了
jarlyyn
2017-02-17 17:33:23 +08:00
@elone
至少还要 middleware 和 router 吧。

你一定要说 defaultmux 可以用那我也没话说……
sampeng
2017-02-17 17:43:26 +08:00
看了一下源码。。。放弃使用 beego 的想法。完全没优势啊。搞得跟 php 和 java 一样。那为毛我不选 php 和 java 。还有更好的生态圈。如果是简单的 http api 层。。个人感觉 net/http 完全够用。稍微封装一下即可。
最痛苦的事就是当你用一个框架中标榜的特性时,然后这货还没写清楚文档。然后你就 sb 了。
简单可依赖!简单可依赖!
sampeng
2017-02-17 17:46:09 +08:00
楼上都在说业务为王。。那你用个球的 golang 。。。 php 和 java 的一大把程序员让你招。 golang 的凤毛麟角。。
现在爱上 golang 的唯一原因就是部署太爽。一个二进制文件,这才是我心目中的跨平台。因为我是 mac 本。
前几天调试一个 udp 的问题。 c++的同事说些个工具需要 1-2 个小时。我还没说话, go build 完事。。。就几行代码的事
sampeng
2017-02-17 17:47:45 +08:00
@jarlyyn 用和不用都是和业务相关。。如果你的业务只有几个接口。。最多几十个接口。其实代码风格搞好了,我一直认为要个球的 router 。。。直接写死在配置文件里面,写清楚一点。格式好看一点。一点不比 router 差。
chingli
2017-02-17 17:49:45 +08:00
以下内容摘自我写的一篇博客文章,大家看我的理解对不对:

http://www.chingli.com/coding/understanding-go-web-app/

## 框架

我们在前面已经费劲口舌地说明了当用 Go 写 Web 服务器程序时,该如何实现路由功能,以及该如何用规范的方式编写 Handler (或中间件)。但一个 Web 程序的编写往往要涉及更多的方面,我们在前面介绍中间件时已经说过,各种各样的中间件能够帮助我们完成这些任务。但许多时候,我们总是希望他人帮我们完成更多的事情,从而使我们自己的工作更加省力。应运这种需求,就产生了许许多多的 Web 框架。根据架构的不同,这些框架大致可分为两大类:

第一类是微架构型框架。其核心框架只提供很少的功能,而更多的功能则需要组合各种中间件来提供,因此这种框架也可称为混搭型框架。它相当灵活,但相对来说需要使用者在组合使用各种中间件时花费更大的力气。像 Echo 、 Goji 、 Gin 等都属于微架构型框架。

第二类是全能型架构。它基本上提供了你编写 Web 应用时需要的所有功能,因此更加重型,多数使用 MVC 架构模式设计。在使用这类框架时你可能感觉更轻省,但其做事风格一般不同于 Go 语言惯用的风格,你也较难弄明白这些框架是如何工作的。像 Beego 、 Revel 等就属于全能型架构。

对于究竟该选择微架构还是全能型架构,仍有较多的争议。像 The Case for Go Web Frameworks 一文就力挺全能型架构,并且其副标题就是“ Idiomatic Go is not a religion ”,但该文也收到了较多的反对意见,见这里和这里。总体上来说, Go 语言社区已越来越偏向使用微架构型框架,当将来 context 包进入标准库后, http.Handler 本身就定义了较完善的中间件编写规范,这种使用微架构的趋势可能更加明显,并且各种微架构的实现方式有望进一步走向统一,这样其实 http 包就是一个具有庞大生态系统的微架构框架。
jinya
2017-02-17 23:53:32 +08:00
go 有什么值得推荐的框架?
koodai
2017-02-18 04:31:48 +08:00
啊哈~
要弄清楚 beego 为什么没有体现 golang 的优势,先得搞清楚 golang 的优势在那里。我认为是在微线程。
boogo 框架的作者是 PHP 转过去的,然后一切都还是 PHP 的那些套路,框架基本就是 PHP 滥觞的再现,没有把 go 最深的、创造性的地方体现、挖掘出来。
rails 把 ruby 拔高了一截,很明显, beego 做不到。

再说,这个框架是否已经被作者放弃了?已经很久不关注了。
我用无闻的教程入的门,后期也和他搞的搜索工具一样搞过几个小东西,但感觉不够顺手,就没继续玩下去了。
不认为 go 的优势应用领域在于表现型 web ,复杂的网络计算,精确的线程粒度控制比较出彩。纯 web 项目 rails 、 Django 、 php 我都认为更好
chingli
2017-02-18 12:21:03 +08:00
@koodai 语文课开始,大家说说楼上“框架基本就是 PHP 滥觞的再现”一句中的“滥觞”是什么意思?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/340991

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX