1
crazycookie 2011-03-29 12:45:21 +08:00
没必要,浪费时间
有这个时间 可以做许多其它的事情 不要为了 将来不一定发生的事情 浪费时间 |
2
crazycookie 2011-03-29 12:50:24 +08:00
PS: 初步阅读别人的代码 都会认为“为什么要这么写?不是有更加好的方法么”
但是,等到深读了,或者自己去实现的时候,就会明白:“原来当时这么设计是有道理的,不得不这么设计” MVC模式,不一定需要严格遵守,它只是一个约定 以前,有一段时间我的想法和楼主 类似,现在回想 ,那是一个泥潭 这个是一个对时间分配范畴 |
3
areless 2011-03-29 13:15:54 +08:00
个人项目而已。MVC分的这么清楚干嘛?
|
4
newblue OP 如果必要重构,对代码进行清理是意见浪费时间的事情,那我也无话可说了。
看@livid在v2ex里面的代码,一个GET函数可以翻几页才可以看完,很多地方的代码都可以独立抽出来,却不得不的重复写几次。 不知道@cazycookie是不是程序员,不把重复的地方独立出来,你做修复臭虫的时候,不是要每个地方都去修改,这难道不是一种浪费自己时间的事情吗? |
5
newblue OP |
7
crazycookie 2011-03-29 13:50:31 +08:00
诅咒 回复这个帖子的人都不是程序猿 TAT
|
8
ch_linghu 2011-03-29 13:56:23 +08:00
既然是个开源项目,为什么是提意见而不是做贡献呢?
|
10
newblue OP |
11
chloerei 2011-03-29 14:00:37 +08:00
如果是我写的,我会重构一下(所以我真的自己写了……)。看以前帖子,@livid认为自己维护起来没什么问题,所以大家都不太提这事了。
|
12
newblue OP |
13
newblue OP |
14
est 2011-03-29 14:10:00 +08:00
建议LZ和1L用实际commit code行动来代替说话。
|
15
jeffrey 2011-03-29 14:11:10 +08:00
“你对v2ex提交了多少代码? ”
我没有提交过一个字母的代码,所以我不会评论其好坏。 同时我请问@newblue, 你提交了多少代码呢? “只有风格好的代码,所有代码都取决于所在产品的需要。” 产品是为了卖钱,请问你是花钱买了PB的代码吗?如果你花钱了,那你是用户,需求随你提。 实在觉得这话题有点无聊,不说了。 |
17
newblue OP |
18
dreampuf 2011-03-29 14:39:11 +08:00
不知道你所说的"后代码的维护"会什么时候出现.以什么样的程度出现.
在GAE捉襟见肘的有限资源里.每一次function call都考验着CUP cost. "Don't Repeat Self".设计模式...这些都是束缚. 不是死背GoF的教条就会有一个伟大的产品. 快速原型.获取反馈.迭代. 那里有闲情为了百年不遇的"可能"而去"重构". 好代码不是处处优美可拓展.他是不能少掉任何现有的一行. 好代码不值钱 http://www.aqee.net/2011/03/16/good-code-is-cheap-code/ |
20
chloerei 2011-03-29 14:46:40 +08:00
Project Babel 2 开源 -> 有人想用来二次开发,但发觉代码不好维护(至少对他来说) -> 向作者提意见整理代码。
我觉得是很正常行为,这也是一个需求。二次开发者觉得恐惧而不敢进入,这就是一个维护问题。虽然 v2ex 的中心是社区,而不是程序,但也没说不能提程序上的意见,各位不要抓着“能用的代码就是好代码”维护过度了。我想 @livid 希望听建议的时候也不会希望自己被亲卫队保护了起来。 |
21
crazycookie 2011-03-29 14:50:11 +08:00
步阅读别人的代码 都会认为“为什么要这么写?不是有更加好的方法么”
但是,等到深读了,或者自己去实现的时候,就会明白:“原来当时这么设计是有道理的,不得不这么设计” -----------------我是分割线(以上内容已经在#2说明)------------------- @dreampuf 做完了一个项目下来 我深有体会 TMD 什么随时准备着重构什么的都是浮云 |
22
crazycookie 2011-03-29 14:51:40 +08:00
@newblue 我所谓的诅咒 只能对你张口闭口 说别人不是程序员 的 言语 表示我一点点的不满
|
23
disinfeqt 2011-03-29 14:54:59 +08:00
Oh not this again?
|
24
Paranoid 2011-03-29 15:16:50 +08:00
重构还是需要的~
即使做不到按规划来,也得入todolist,毕竟天天面对代码的还是开发者~ 几天不见代码,偶然遇见蛋也疼~ |
25
Los 2011-03-29 15:28:14 +08:00
这再次让我翻看了这篇帖子里的讨论:http://www.v2ex.com/t/6847
|
26
Los 2011-03-29 15:29:02 +08:00
当然还有这: http://www.v2ex.com/t/6892
|
27
9hills 2011-03-29 15:37:58 +08:00
其实很想不明白。,。lz好心的提个建议。。难道还有错了不成
一个开源项目,对提出bug或者建议的人群起攻之。。还真没见过 |
28
doyle 2011-03-29 15:50:47 +08:00
感觉lz的表述和建议没有啥问题啊。。。1l太偏激了吧
|
29
laihj 2011-03-29 15:51:46 +08:00
我的代码,重复的地方一般是自己改烦了才重构
|
30
laihj 2011-03-29 15:56:15 +08:00
再说v2ex
现在的代码虽然在物理上开源的,但从代码本身的结构,并没有让他人插手的意思。 这样的代码,他人看完就挺烦的了,二次开发只能自己做 楼上几位同志说的代码能用,其实只是对livid自己能用而已。对其他程序员来说,可用性不高 |
31
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
|
32
keakon 2011-03-29 16:36:13 +08:00
本来不想说什么,但看到有些人很偏激,甚至像果粉和果黑一样对立,所以忍不住插下嘴。
现在的V2EX并没有完全开源,开源出来的PB从去年底都没有任何更新了,所以你并不知道现在的情形是怎样的。目前你能看到的PB确实不太适合二次开发,有时候想去提交代码,但是发现代码已经过时了,也就没动力了。 从@livid偶尔透露出的改动来看,他已经在进行重构了,甚至框架都可能不是webapp了,只是改动太大,并不适合在未成熟前开源出来。 所以如果等不及新版本,最好的选择是自己重新设计一个,因为现有版本确实没有太实用的参考价值。我这里所说的参考价值只针对数据库设计方面,因为它是应用的核心部分。 最后,使用产品的用户和改造产品的用户有着不同的需求,你们既然都读不懂对方,干嘛还针锋相对。 |
34
Livid MOD 刚刚下飞机。
一个设计良好的 BaseHandler 是 webapp 和 Tornado 这样的架构的核心。 而 V2EX 在开始的时候,确实没有 BaseHandler,目前大家看到的这个新版本,最初只花了几天时间就上线了。 GAE 和设计模式都是两个需要值得持续学习的问题。 去年的大部分时候,我在不停地加功能,因为加顺手了,所以很多问题也没有细想。 今年因为有其他的一些 Tornado 项目开始,所以对于 BaseHandler 及设计模式等问题非常在意。 目前在我的本地有一个自己还算满意的 BaseHandler 实现,而 V2EX 以后的所有新功能,也会基于这个全新的 BaseHandler。 设计模式确实是一件重要的事情,应该多花时间,学无止境。 感谢大家。 我不希望再因为这个问题引发任何论战了。目前确实有一段时间没有 push 代码,也是因为我不想再因为这些 work-in-progress 的东西因引发什么论战了。一个好的社区氛围,维护起来不容易,我们所有人珍惜吧。 |
36
Livid MOD 「 觉得应该重构一下比较好 」
「 我不知道livid是不是专业程序员 」 这两句话听起来比较像是对这里的代码的全盘否定,但是我觉得 OK。 只是,我有一点小小的个人体会希望和大家分享: 1. 作为新人看到的问题,肯定不会有老人看到的多。而老人们为什么不说,很可能是因为他们早就知道问题的存在,并且甚至都已经有计划如何解决。 2. 如果要给其他的程序员提建议,他们更乐意听到的是,是具体的修改意见,比如哪个文件的哪行应该怎么改。如果更专业一些的话,可以直接用 code 或者 diff。 3. 从很高的高度提建议,通常在现实世界里是很难有有效反馈的。比起仰望星空,我觉得脚踏实地的 running code 更有意义。 :) |
37
newblue OP @livid
不管怎么说,v2ex是你的作品,我无权否定什么,对于重构的问题,只是我个人的意见,是否执行定期或者不定期的重构是作者本人的权利。 至于我问你是否是程序员,是因为我觉得每个程序员除了把代码写好,保持代码的可维护性,也是程序员一向职责。 我唯一能给出的意见,也就是重构或者整理你的项目,没计划往你的项目添加任何东西或者改动任何东西的意思,毕竟你现在还有一个本地的版本未提交进代码库,希望早日看到你的更新。 |
38
fanzeyi 2011-03-29 21:09:00 +08:00
咦 发现一个问题……
LZ在主贴里面有头像 在列表&&回复里面的头像又蹦回默认了。。 |
39
fanzeyi 2011-03-29 21:09:57 +08:00
|
40
fanzeyi 2011-03-29 21:16:21 +08:00
@newblue 哎 还有…… 我觉得LZ应该现在V2EX围观一段时间 大概就明白 livid 是个什么样的人了……(呃 没有贬义……) 或许就不会发这样的帖子了…… 嗯。
这帖子快要移动到 水深火热 了。。。 |
41
domainname 2011-03-29 21:21:48 +08:00
我不喜欢楼主的语气,设计模式xx,美丽代码都是浮云。。。v2ex is running, that's the main point
|
42
fanzeyi 2011-03-29 21:24:15 +08:00
不喜欢楼主的语气 +1
哎 不要说任何一个写程序的人 是不是专业程序员 都是写程序的 专业跟不专业的有很大的区别么? (很多人)写代码是热爱代码 同样热爱一样东西为什么还要划分这么清楚。 当然不是说指出错误不行…… 还是注意下语气好了= = |
43
crazycookie 2011-03-29 22:08:43 +08:00
我犯贱,看到楼主的语气我就激动了
今天已经和N个人说我犯贱 MD |
44
levn 2011-03-29 22:08:46 +08:00
其实lz本来是用户,但是用评论家的语气发了个帖……
用户把问题推给开发者可以理所当然。评论家就不那么受欢迎了。 我想lz既然也没打算提交任何代码,为什么不以用户角度发贴呢…… |
45
newblue OP |
46
newblue OP |
48
obiwong 2011-03-29 22:25:11 +08:00 via iPhone
纠正一点,MVC不是设计模式,而是一种架构模式(Architecture Patterns)。
|
49
timshi 2011-03-29 22:25:35 +08:00
another thing that is lacking from HN, too personal.
|
50
franksin 2011-03-29 22:32:57 +08:00
从代码的角度上看,好像没有什么代码是不需要重构的,但从应用和产品角度来看,重构意味着花费较多时间,但没有给用户带来新的功能或者使用体验上的提升。
|
51
newblue OP |
52
Livid MOD |
53
chloerei 2011-03-29 22:52:11 +08:00
大家观点都已经表述过了,见好就收吧
|
54
args 2011-03-29 23:21:44 +08:00
事实证明能跑的代码无需重构。
|
55
Orz 2011-03-29 23:47:09 +08:00
这里不适合提意见,貌似之前提意见的几个现在都没在这里了吧,呵呵。
|
56
L42y 2011-03-29 23:59:01 +08:00
怎么能不让我想起 Arch Linux 的 Pacman 因为 package signing 被各种喷
|
57
seenxu 2011-03-30 03:19:23 +08:00
推荐大家看看此文: “你的代码写的很烂” http://www.aqee.net/2010/08/09/your-code-sucks/
我觉得重构代码可以基于三点: 一,重构部分的代码可以直接给“用户”带来更好的使用体验 二,在新的需求下,基于原代码很难实现此需求的时候,要进行必要的重构 三,代码有发现bug,在修复bug的同时,尽可能的完善或重构此部分代码 |
58
kayue 2011-03-30 03:36:42 +08:00
1. 利益宣告:我本身同意楼主的意见。
2. 当然有比光提出意见更好的方法,比如commit code。 但只提意见本身并无不妥。 3. 影评人要批评一部戏拍得烂,并不需要懂得拍戏。 4. 一个优秀的 open source project 绝对不是“能跑就好” 当然并不是每个 open source project 都以此为目标。 5. how come members in v2ex are so protective? |
59
proper 2011-03-30 06:57:25 +08:00
楼主提意见,建设性的就改进,没道理的就浮云呗。
就事论事,工作中也常常见到楼主这样的言论,高屋建瓴,动不动就上纲上线,怀疑一切。 工作中有这种言论的人恰恰是对自己代码保护欲望最强烈的,容不得别人的任何意见。能力又往往一般。 道理很简单,如果没有完整的商业软件经验,很难体会到做到什么程度算好,什么程度就过了,什么程度又会不足。所以编码的时候没有这个度在里面,就会一味的追求完美来掩饰能力的不足。 |
60
Los 2011-03-30 07:22:01 +08:00
想不明白为什么那么多人非得拿“你的代码写得很烂”这篇所谓的东西出来忽悠人,而这里大部分站出来对LZ强烈反对的家伙恰恰却是对程序开发一知半懂甚至于完全不懂的人,这部分人我觉得在这样的讨论里是最不应该插言的人却叫得最欢,这是为什么呢?而V2EX现在github上托管那部分代码质量确实不怎么样,相信@Livid现在也发现了这个事实进而尽量改进之。
|
61
obiwong 2011-03-30 07:43:49 +08:00 via Android
hi all:
仔细看了这篇帖子及所有回复,发现这么一个‘重度’讨论代码的帖子居然没有一个人贴出哪怕是一行的代码。 重构还是不重构,正反两方的道理本身都是正确的,但离开了代码就只是浮云了。 |
63
jckwei 2011-03-30 08:50:12 +08:00
看热闹来顶一下
|
64
c 2011-03-30 08:51:15 +08:00
我是来学习的,呵呵~
|
65
Micky 2011-03-30 08:54:13 +08:00
我觉得这个帖子之所以被这样热烈的讨论,是建立在lz的这句话上的:“我不知道livid是不是专业程序员”……
重构不重构的哲学命题已经被说滥了,剩下的就是语气和姿态之争了 :) |
66
est 2011-03-30 08:56:55 +08:00
吵架和指责是政治家的干活,工程师用代码说话。建议LZ用代码实例说明哪里需要重构,和你重构的想法。
|
67
Micky 2011-03-30 09:00:41 +08:00
我倒是觉得 V2ex的可贵之处在于情怀与创意。而说实话,代码/架构什么的相比之下我觉得都是小节了。
从这个社区,无论是界面还是各处的文案,处处可见作者的情怀。相对于传统的论坛,这里不少细节都体现着颠覆性的想法。这是很令人敬佩的。 |
68
muxi 2011-03-30 10:45:13 +08:00
哈哈,这已经是Livid的风格鸟,不用争论了,是PHP版本的 Project Babel 代码也是类似
大家站的角度不同而已,作为一个程序员,这样的代码确实需要重构,基本上这样的代码不适合协作开发,特别是新加入成员 作为一个产品,代码其实只是一个实现工具,如果不是整个项目的瓶颈就没有必要重构,推进整个项目向更好的方向发展才是更重要的事情 |
69
Renylai 2011-03-30 11:10:38 +08:00
呵呵,在V2EX潜水了好多年了,很多时候只是看看。不过这次发现好多人已经长大了,心智成熟了许多!
|
72
newblue OP |
73
Livid MOD @newblue 回答你关于如何找到代码的问题:
1. 我目前用的编辑器是 TextMate,性能非常好。它可以为单个 py 文件生成类和函数的大纲,这样很方便定位类和函数。当需要进行整个项目中的查找替换时,TextMate 的 CMD+SHIFT+F 很快很好用。 2. 毕竟自己花了几个月的时间把这些东西写出来,所以基本上能够找到应该修改和添加的地方。就像每个人自己家,即使很乱也可以迅速找到自己的东西。而来家里作客的外人就很难找。而就算是设计得非常好的那些 API 如 iOS 和 Twitter,不看文档也不可能找到什么。 从我开始回复这个帖子开始,我一直在承认所有存在的问题,也向大家通报了目前的改进进度。所以,说实话,我觉得我继续回复这个帖子的必要性不存在了。目前看起来越来越偏题。 |
75
leben 2011-03-30 21:58:55 +08:00
一个玩具何必较真啊。
开源只不过是给喜欢它的人一个机会而已,我觉得一个个人开源项目,没必要要求那么高吧。 |