刚加入V2EX.com,很喜欢这个网站,看了源代码之后,觉得应该重构一下比较好!

2011-03-29 12:40:04 +08:00
 newblue
代码很凌乱,很多操作都是在controller部分完成,例如数据库查询,我觉得应该独立到专门的model,一个是可以提高重用,避免重复编写类似代码,维护也可以更方便,同一个功能的代码,只要修改一个地方就可以完成,再一个缩短代码的长度,方便阅读和调试。

我不知道livid是不是专业程序员,但是不管怎么样,都应该在保持功能的增加的同时,定期进行重构比较好一点,避免日后因为系统过于庞大复杂,重构的要成倍的增加。
10062 次点击
所在节点    V2EX
76 条回复
crazycookie
2011-03-29 14:50:11 +08:00
步阅读别人的代码 都会认为“为什么要这么写?不是有更加好的方法么”
但是,等到深读了,或者自己去实现的时候,就会明白:“原来当时这么设计是有道理的,不得不这么设计”
-----------------我是分割线(以上内容已经在#2说明)-------------------
@dreampuf 做完了一个项目下来 我深有体会 TMD 什么随时准备着重构什么的都是浮云
crazycookie
2011-03-29 14:51:40 +08:00
@newblue 我所谓的诅咒 只能对你张口闭口 说别人不是程序员 的 言语 表示我一点点的不满
disinfeqt
2011-03-29 14:54:59 +08:00
Oh not this again?
Paranoid
2011-03-29 15:16:50 +08:00
重构还是需要的~
即使做不到按规划来,也得入todolist,毕竟天天面对代码的还是开发者~
几天不见代码,偶然遇见蛋也疼~
Los
2011-03-29 15:28:14 +08:00
这再次让我翻看了这篇帖子里的讨论:http://www.v2ex.com/t/6847
Los
2011-03-29 15:29:02 +08:00
当然还有这: http://www.v2ex.com/t/6892
9hills
2011-03-29 15:37:58 +08:00
其实很想不明白。,。lz好心的提个建议。。难道还有错了不成

一个开源项目,对提出bug或者建议的人群起攻之。。还真没见过
doyle
2011-03-29 15:50:47 +08:00
感觉lz的表述和建议没有啥问题啊。。。1l太偏激了吧
laihj
2011-03-29 15:51:46 +08:00
我的代码,重复的地方一般是自己改烦了才重构
laihj
2011-03-29 15:56:15 +08:00
再说v2ex
现在的代码虽然在物理上开源的,但从代码本身的结构,并没有让他人插手的意思。
这样的代码,他人看完就挺烦的了,二次开发只能自己做
楼上几位同志说的代码能用,其实只是对livid自己能用而已。对其他程序员来说,可用性不高
dreamer
2011-03-29 16:09:06 +08:00
Linus: "Standards are paper. I use paper to wipe my butt every day. That's how much that paper is worth." https://bugzilla.redhat.com/show_bug.cgi?id=638477#c129
keakon
2011-03-29 16:36:13 +08:00
本来不想说什么,但看到有些人很偏激,甚至像果粉和果黑一样对立,所以忍不住插下嘴。

现在的V2EX并没有完全开源,开源出来的PB从去年底都没有任何更新了,所以你并不知道现在的情形是怎样的。目前你能看到的PB确实不太适合二次开发,有时候想去提交代码,但是发现代码已经过时了,也就没动力了。

从@livid偶尔透露出的改动来看,他已经在进行重构了,甚至框架都可能不是webapp了,只是改动太大,并不适合在未成熟前开源出来。

所以如果等不及新版本,最好的选择是自己重新设计一个,因为现有版本确实没有太实用的参考价值。我这里所说的参考价值只针对数据库设计方面,因为它是应用的核心部分。

最后,使用产品的用户和改造产品的用户有着不同的需求,你们既然都读不懂对方,干嘛还针锋相对。
Numbcoder
2011-03-29 19:20:32 +08:00
我觉得lz没什么错,首先不管意见好坏,也不用对他群起而攻之啊,是不是有些人对@livid太过崇拜了
Livid
2011-03-29 19:24:30 +08:00
刚刚下飞机。

一个设计良好的 BaseHandler 是 webapp 和 Tornado 这样的架构的核心。

而 V2EX 在开始的时候,确实没有 BaseHandler,目前大家看到的这个新版本,最初只花了几天时间就上线了。

GAE 和设计模式都是两个需要值得持续学习的问题。

去年的大部分时候,我在不停地加功能,因为加顺手了,所以很多问题也没有细想。

今年因为有其他的一些 Tornado 项目开始,所以对于 BaseHandler 及设计模式等问题非常在意。

目前在我的本地有一个自己还算满意的 BaseHandler 实现,而 V2EX 以后的所有新功能,也会基于这个全新的 BaseHandler。

设计模式确实是一件重要的事情,应该多花时间,学无止境。

感谢大家。

我不希望再因为这个问题引发任何论战了。目前确实有一段时间没有 push 代码,也是因为我不想再因为这些 work-in-progress 的东西因引发什么论战了。一个好的社区氛围,维护起来不容易,我们所有人珍惜吧。
Livid
2011-03-29 19:32:58 +08:00
@newblue

你上传一个头像吧。 :)
Livid
2011-03-29 19:40:28 +08:00
「 觉得应该重构一下比较好 」

「 我不知道livid是不是专业程序员 」

这两句话听起来比较像是对这里的代码的全盘否定,但是我觉得 OK。

只是,我有一点小小的个人体会希望和大家分享:

1. 作为新人看到的问题,肯定不会有老人看到的多。而老人们为什么不说,很可能是因为他们早就知道问题的存在,并且甚至都已经有计划如何解决。

2. 如果要给其他的程序员提建议,他们更乐意听到的是,是具体的修改意见,比如哪个文件的哪行应该怎么改。如果更专业一些的话,可以直接用 code 或者 diff。

3. 从很高的高度提建议,通常在现实世界里是很难有有效反馈的。比起仰望星空,我觉得脚踏实地的 running code 更有意义。

:)
newblue
2011-03-29 20:51:04 +08:00
@livid

不管怎么说,v2ex是你的作品,我无权否定什么,对于重构的问题,只是我个人的意见,是否执行定期或者不定期的重构是作者本人的权利。

至于我问你是否是程序员,是因为我觉得每个程序员除了把代码写好,保持代码的可维护性,也是程序员一向职责。

我唯一能给出的意见,也就是重构或者整理你的项目,没计划往你的项目添加任何东西或者改动任何东西的意思,毕竟你现在还有一个本地的版本未提交进代码库,希望早日看到你的更新。
fanzeyi
2011-03-29 21:09:00 +08:00
咦 发现一个问题……
LZ在主贴里面有头像 在列表&&回复里面的头像又蹦回默认了。。
fanzeyi
2011-03-29 21:09:57 +08:00
@newblue Project Babel是一个开源项目
项目地址: https://github.com/livid/v2ex
直接提交path不就好了嘛。
fanzeyi
2011-03-29 21:16:21 +08:00
@newblue 哎 还有…… 我觉得LZ应该现在V2EX围观一段时间 大概就明白 livid 是个什么样的人了……(呃 没有贬义……) 或许就不会发这样的帖子了…… 嗯。

这帖子快要移动到 水深火热 了。。。

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

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

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

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

© 2021 V2EX