大家谈谈Revel和Beego吧 或者其他Go框架

2013-11-15 11:10:12 +08:00
 lzt163
看了各种介绍和评论
感觉差不多啊
58375 次点击
所在节点    程序员
84 条回复
ty4z2008
2014-02-13 17:10:17 +08:00
再多的评论也比不了自己动手测试一把
astaxie
2014-05-22 16:59:47 +08:00
@rwx
@darklowly

第一我的态度很端正,没有你们说的这些什么大牛不大牛,我的出发点一直是想做一些有用的东西让大家玩。从来没有圈地或者自我感觉良好这样的。我的水平确实不是最好的,我做的那些也是自己平时项目中积累的东西,如果你们觉得那些不好我很欢迎你们指出来,欢迎你们指导。

我既然愿意把代码分享出来,就愿意接受大家的批评和指正。如果你们觉得写的比我好,我非常欢迎你们分享出来,这样整个的Go技术圈才会越来越好。

目前beego系统已经被各大公司应用于内部的系统开发,稳定性和性能都得到了考证,当然我们还有很多需要改进的地方,所以你们如果不满意,那么不爽欢迎提出你们的意见。
overlords
2014-06-06 15:28:53 +08:00
@astaxie
@rwx
@darklowly

谢大(@astaxie)没有上面说的那样子,估计是在GO编程群里面水的太狠了被T了吧。故而记仇了吧。
darklowly
2014-06-27 16:13:39 +08:00
@astaxie beego只能说是可以工作,beego用golang来做传统的MVC,感觉路子不对,写出来的代码没有质感。这个是一开始设计上的问题。不是说别人能够马上分享一两段代码纠正的。但凡做过开源的,动不动就喜欢说,有本事你分享段代码来看看啊。

实际上在做开源的时候,很多人都喜欢写出一个东西后就开源出来。这样确实是贡献,但是有没有感觉现在的开源代码质量越来越低了。

像redis这样的项目大家都佩服,你说技术难度,很多做C语言的人都能写出来。但是还是佩服他。因为他写出来的质量很高。代码和设计都很有质感。

同时在golang上包装一层弱框架,想不稳定都难。
darklowly
2014-06-27 16:17:31 +08:00
@overlords 就你最腹黑
yakczh
2014-07-02 08:48:37 +08:00
用golang写个流媒体服务器怎么样? 我看golang跟nodejs并发不相上下,但是cpu占用低
overlords
2014-07-02 20:53:30 +08:00
@darklowly 其实感觉您修行很深。您也来一发
Wuvist
2014-07-07 14:24:26 +08:00
astaxie
2014-07-07 14:43:38 +08:00
@darklowly 基于golang之上的弱框架,想不稳定都难,这个结论你怎么的出来的啊?按照你的逻辑,什么东西都得依赖最原始的包来开发?

第二,传统的MVC我觉得挺好啊,路子对不对,不是你说不对就不对,你写过几行代码啊?如果你觉得路子对的话,可以拿出来一些可行的路子出来呢。

第三,这个开源没有强制别人喜欢不喜欢,有些人就是不喜欢beego的执行方式,完全没问题啊,就喜欢用简单地,例如webgo、martini这样的框架,因为代码就那么几个文件。

比较受不了你说别人一套一套,自己什么屁都不是。
Comdex
2014-07-07 14:51:52 +08:00
新人表示beego用起来还不错,易上手,文档齐全
felinx
2014-07-07 17:02:28 +08:00
@astaxie 做好你自己,让他们喷去吧!
laudukang
2014-07-07 21:17:19 +08:00
@astaxie 走自己的路,让别人去吹吧!
darklowly
2014-07-08 21:33:26 +08:00
@astaxie

我觉得一个好的框架,就应该是简约的。写出来的代码有质感的。但是你只看到了稳定性和性能

1 稳定性 当然这个很重要,如果只是弱包装一层,然后说很稳定,试问弱包装一层,怎么才能不稳定?既然弱包装很容易稳定,那么稳定性就不应该是你强调的特性。(我从来没说过要什么从原始开发包写)

2 性能 我不觉得,写几个静态测试,然后测试出框架的性能有任何意义。静态测试高那么一点或者低那么一点点,重要么?

3 我自己也写了一个小框架,我自己还不满意,不敢丢人。我对自己的要求比较高。我上面说过了,做过开源的人,就喜欢动不动就说你拿一行代码来看看啊

4 既然不强制别人喜欢不喜欢,那你说这些干嘛呢,我有不喜欢的权利。你刚好也在说一套做一套。

5 自我感觉,写代码质量比你高,你的代码在我眼里屁也不是。光追求完成功能,没有任何美感(包括代码,包括设计的美感)的代码在我眼里都是垃圾。就好像C语言之父说的, UNIX很简单。但需要有一定天赋的人才能理解这种简单。你的代码缺少这种看似简单东西。

6 随便打开了一个文件 github.com/astaxie/beego/blob/master/router.go 8层嵌套,看的欲望都没有了,哥,你这是在写代码啊? 难怪写稳定,对你来说是一件很重要的事情。

7 我又乱点了一个文件,github.com/astaxie/beego/blob/master/orm/db.go 12层嵌套

8 以上代码我并没有挑选,随机点的。一共点了5个文件,还有一些其他问题。

10 现在,我发现用你现在写代码的模式去写框架,给你谈代码质感,谈简约,还引用了大神的名言是多余的,对不起。
darklowly
2014-07-08 22:57:56 +08:00
@Wuvist 初略的看了下,我觉得很好呀。
sillyousu
2014-07-09 03:16:17 +08:00
@darklowly beego里面的有的代码让人没有看下去的欲望。
之前在对比revel beego 和 Martini ,看到beego某个入口函数有一千行,然后真心觉得有点囧
darklowly
2014-07-09 08:39:03 +08:00
@sillyousu
但是作者不这么认为,他认为,能工作就可以了。代码质量都是浮云,代码美感都是浮云,设计的美感都是浮云。就像我上面说的,我现在明白了,为什么来说他把稳定性看得很重要,因为他写代码的模式,要写稳定真不容易。

我其实很想问其他人, 看到这段代码的感受如何
https://github.com/astaxie/beego/blob/cec151fda71cf6220fcfc9487240989d6dee1f6e/orm/db.go#L801

我也很想问作者, 写出这段代码的感受如何.
darklowly
2014-07-09 08:47:39 +08:00
missdeer
2014-07-09 09:03:52 +08:00
作为一个刚转web开发的新手,表示beego的API还是比较适合新手入门的,没用过其他框架不好说其他的是否更好用。
不过看了 @darklowly 列出的几个代码段,确实觉得beego在保证稳定性和功能的前提下要关注下代码风格。任何代码从产生的一刻起就会是逐渐劣化的过程,所以才会有敏捷开发提倡的小步前进、不断重构来保持代码质量。
darklowly
2014-07-09 09:22:00 +08:00
@missdeer 我想说的不仅仅是代码风格, 我想说的是能写出这样的代码, 是在证明我上面说的其他观点。
darklowly
2014-07-09 09:25:58 +08:00
@darklowly 我们写代码的目的确实是完成功能,但是为了轻松的完成功能,我们写代码的时候会有一些常见的化简手段。无论是设计上还是实现上都会这样。而不是进一步增加复杂度,beego的很多代码,是在人为的增加复杂度。复杂度一增加,很多其他问题会随之而来。这是其一,其二是如果按照复杂的方式写代码,写出来的东西是毫无质感的,如果是写框架,那么以后用这个框架写的代码也毫无质感了。

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

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

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

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

© 2021 V2EX