我毕业快一年了。和另外一个搭档同事都是最近刚入职的新人。之前偶尔代码 Review 的时候发现他很喜欢把逻辑都写在同一个类里,不过注释用中文写得很详尽,所以还是能读的,但我觉得这样不太好,而且以后我们两个可以说是互为相依为命的角色,所以一直想找个机会告诉他。 所以趁着这个一个新的模块开始的时候,对模块的整体结构提了一些建议,整个模块可能两三千行代码的规模,建议划分成 4~5 个类来实现,他也同意这样划分在逻辑上是很清晰的,但觉得这样太细了,可能有些过度设计了。他最后坚持要写在一个类里,觉得代码分散在四五个文件里面可以维护,集中在一个文件里面也是可以维护的。我听到这样的想法突然觉得无力反驳,于是作罢了。 另外,我们的项目有充裕时间。
事后我也有反省自己,我是不是控制欲太强,太喜欢指手画脚了呢?虽然我心里确实有倾向,也有答案。但还是想来听听前辈们怎么说。
1
ShengjiaWANG 2016-04-21 02:22:36 +08:00
不管怎么说,两三千行也实在太多了...
|
2
dapang1221 2016-04-21 02:30:24 +08:00 via Android
能把逻辑实现出来而且有注释就行了……个人习惯不同。。
主要是我觉得吧,把一些肯定不会复用的代码重新写进个类里,以及把一个比较连贯的逻辑拆得到处都是代码,这样有时也真挺烦人的…… |
3
binux 2016-04-21 02:31:39 +08:00
两三千行不是一个函数的话,还好。
取决于类分开之后,新增一个函数,你们能不能不经过讨论,就函数放到哪个类里面达成共识。 如果不能的话,拆分其实是失败的。 |
4
ipconfiger 2016-04-21 02:48:57 +08:00
关键是这个巨型类的功能是否也是一个瑞士军刀一样的大杂烩啊?
|
5
hbkdsm 2016-04-21 07:56:01 +08:00 via Android
Rails 里面一个 model 两三千行很常见
|
6
qingchengdev OP |
7
bk201 2016-04-21 09:24:37 +08:00
看你的 append 我个人觉得这种情况确实拆开好,主要考虑到耦合度。
|
8
riverphoenix 2016-04-21 09:28:10 +08:00
我现在超过三百就觉得看不下去了
|
9
lincanbin 2016-04-21 09:32:58 +08:00
有 IDE 的快速查找的话其实问题不大。
只要每个方法的行数不要太多就好了。 |
10
LINAICAI 2016-04-21 09:36:50 +08:00
传说中的 c 程序员?面向函数编程。。。
|
11
LINAICAI 2016-04-21 09:38:25 +08:00
两三千行都写在一个类,如果业务逻辑不能再细分了的话,勉强能接受吧。
但这情况也是很极端的吧 |
12
Actrace 2016-04-21 09:42:12 +08:00
要根据程序模块划分!
要根据程序模块划分! 要根据程序模块划分! 重要的事情说 3 次。 |
13
anerevol 2016-04-21 09:44:11 +08:00 via Android
感觉拆不拆都行,毕竟功能职责单一。 如果有些代码能抽成可以公用的代码的话,是可以分一分的。
|
14
22too 2016-04-21 09:44:50 +08:00
只要不是 python 程序就行。(逃
|
15
SpicyCat 2016-04-21 09:49:02 +08:00
单个类还好吧,一般编程规约都是规定单个函数不能太长。
|
16
yhxx 2016-04-21 09:50:48 +08:00
前几天听说某宝前端要求一个 js 文件不能超过 130 行
|
17
dong3580 2016-04-21 09:51:33 +08:00
单个类倒是没问题吧,看是不是在一个方法里;
如果项目比较大,到可以根据业务,或者逻辑划分, |
18
qingchengdev OP |
19
jackal 2016-04-21 10:57:46 +08:00
"以后我们两个可以说是互为相依为命的角色"
|| >>>这就决定了,你可以跟对方说说, 只要说清楚了,对方最后不同意和接受, 你就最好不要再提这个事情了。 ”如何说服。。。。。。?“==========>>>这事情本质上跟技术无关。 |
20
3dwelcome 2016-04-21 11:04:46 +08:00 via Android
何必勉强别人呢、说服人是件很难的事。谁写的代码谁来维护、每个人代码风格都不一样。
当然、如果你能混到技术负责人、就可以强推代码规范了。 |
21
karlakte 2016-04-21 12:49:56 +08:00
他软的源码 一个文件超过 1 万行的都有。关键看文件内代码的模块功能 /业务相关性。允许拆开,当然是拆开好咯。
|
22
harry890829 2016-04-21 12:51:34 +08:00
我刚进新公司,正在看项目代码,纯 c 的代码,文件近 2w 行,有一个函数就是 7.5k 行
|
23
jy01264313 2016-04-21 14:20:55 +08:00
打车求教,如果说服一个工作 10+ 的 J2EE 人不用要 tab 换行?总有一些 python 代码被他无意间碰到,最后不能运行了。
|
24
loryyang 2016-04-21 14:23:30 +08:00
直接说,难!
这种事情可以尝试走这个路线,私下找技术负责人,提出这个建议,然后促使技术负责人立下规定,所有组员都要遵守,你就可以拿这个当令箭了 |
25
xdazz 2016-04-21 14:44:16 +08:00
制定編碼規範,強制執行的話可以在中央倉庫設置 hook 檢查,不符合規範的直接 reject 掉不讓提交。好好溝通。
|
26
Tneciv 2016-04-21 18:30:41 +08:00
@jy01264313 悄悄改下他的 ide 设置就好了
|
27
jy01264313 2016-04-22 09:31:57 +08:00
@Tneciv 我现在的解决方案是,看见 J2EE 的人就直接 PASS
|