背景:
AB 的代码能力是 50,C 的代码能力是 100 AB 的代码互相都可以看懂,并且可以互相修理对方的 bug C 可以看懂 AB 的代码,并且可以互相修理他俩的 bug AB 很难看懂 C 的部分代码,并且无法修理对应的 bug
问题: 谁需要改进自己的代码
1
ghiei9101 2018-02-13 16:36:24 +08:00 3
C 需要改进注释和文档
|
2
sea516 2018-02-13 16:39:04 +08:00
有 bug 不能给 100
|
4
hsuan 2018-02-13 16:39:52 +08:00 via Android
AB
|
5
ytll21 2018-02-13 16:41:42 +08:00 7
一个方法动辄上百行,真的很难看下去 -> 这个能给 100 ?
|
6
nino 2018-02-13 16:42:46 +08:00
代码写的看不懂恐怕给不了 100 分啊
|
7
whypool 2018-02-13 16:43:30 +08:00
那 C 的 100 就有点假了
100 的人也是经历过 50 的阶段的 |
9
eaglexiang 2018-02-13 16:45:45 +08:00
代码能力的体现之一就是易读性与易维护性,为什么 100 写出来的代码反而不如 50 的代码易懂?
AB 互相能理解对方的代码?两个代码能力很差的人,别说对方的代码,过两个月连自己的代码都理解不了。 |
10
msg7086 2018-02-13 16:49:41 +08:00 2
不知道这打分怎么来的。
写出来的代码要短小精悍,易读,不容易读的部分要加注,有条件的话要做单元测试和特性测试。 要是 1000 分打出 50 和 100,那这几个人全都得开了。 私有方法上百行,内部没注释,其实是小事。如果你特牛逼,上百行代码不出错,无 Bug (至少是无显著 Bug ),完美测试覆盖,内部就当做黑匣子来做都行。如果不牛逼,那就老老实实按照要求写代码。 |
12
Richardhtw 2018-02-13 17:09:02 +08:00
代码能力强不是应该写出简明易懂高效便于维护的代码吗???
感觉前提不成立啊。 |
13
SuperMild 2018-02-13 17:16:45 +08:00
一个重点:C 的代码,难懂的部分,是不是对系统有很大作用(比如性能提高很多,并且该性能是系统原本的短板之一)。
如果有简明易懂的方法来实现 C 的难懂部分,并且性能啥的没什么损失,那 C 这是能力不行啊,或者明明能力很行,却故意弄些难维护的代码出来,这就不是代码改不改进的问题,是心态有问题。 |
15
SuperMild 2018-02-13 17:20:47 +08:00
还有就是,AB 代码所谓的易懂,是不是没考虑到以后系统变得复杂的问题,直接把全部逻辑写在一个函数里,前期是更好懂,但后面可能重构的工作量就大了。C 是不是用了更容易扩展的 pattern 呢。
|
16
moult 2018-02-13 17:31:02 +08:00
C 代码难懂的部分,是不是用到一些高级高效算法,亦或是符合一定的规范,还是就纯粹的抖机灵?
最好同一个需求,让 ABC 都写出一段,贴上来,大家评判一下。 举个例子,实现用户资金变动功能。 AB 写了个函数,在里面做更新余额等一系列操作,所有的操作都在一个文件里面,通俗易懂。 但是 C 却构造了一个事件机制,更新余额、记录账目流水、发送通知等操作,通过侦听这个事件来实现。 例子可能不是很恰当,大概意思是 C 灵活使用事件钩子机制,自然就比 AB 来的规范,当然 AB 就应该学习 C 了。 |
17
qiumaoyuan 2018-02-13 17:37:03 +08:00
“ AB 很难看懂 C 的部分代码,并且无法修理对应的 bug ”,说明 C 的代码能力 100 的评分不正确。
结论是需要重新评分,并且大家都要改进自己的代码。 |
18
Lucups 2018-02-13 17:44:16 +08:00
论 Code Review 的重要性。
别人看不懂。。。除非 AB 真小白,不然就是 C 有大问题。 我之前维护的一个 PHP 项目,所有的数字(0~9)值不定义成常量也就算了,还写成 ASCII 码(都用 chr(48)~chr(57) 来表示),生怕别人能看懂他的代码。 |
19
CoderGeek 2018-02-13 17:47:29 +08:00
说实话 写的有效率也该注释 抖机灵啥的没意思 C 如果不是高效之类的还不如 B
|
20
CEBBCAT 2018-02-13 20:08:25 +08:00 via Android
啥啥啥?
|
21
easylee 2018-02-13 20:43:22 +08:00
要有造轮子的能力但不要到处秀自己的能力,毕竟公司不是自己家开的。
项目是个团队合作的事情,讲究效率。 在此认为 C 的代码是需要改进的。 话说楼主是在工作中遇到不顺心的事情了吗? |
22
coderluan 2018-02-13 21:21:29 +08:00
ABC 的领导需要改进自己的管理水平,项目组里人有毛病非得互相改代码。
|
23
stzz 2018-02-13 21:28:51 +08:00 via Android
赞同楼上,觉得这个管理方面的问题大于编码方面的问题
|
24
omph 2018-02-13 21:32:27 +08:00
这是道离散数学的命题逻辑题
|
25
wuzhi1234 OP @easylee 我是 ab 中的一个,c 是从社招进来的大拿,但是对于代码可读性和可维护性不屑一顾,认为快速地实现就行,有些代码原则上的一些分歧
|
26
wuzhi1234 OP @coderluan 敏捷里提倡互相可以取代代码共有,所以组里是要求互相之间要能熟悉对方的代码的,可是 C 的代码真的又长又复杂,对可读性不屑一顾
|
27
wuzhi1234 OP @CoderGeek C 的牛逼之处在于把我们至少需要 AB 三天才能实现的一个复杂业务逻辑一天就写完了,代价就是 AB 完全读不下去 C 写出来的代码,而且一出问题只能 C 去找,我们已经吃了几次这段代码的亏,C 让 AB 把他那段重写下,说他写过再写就没有意义了,可是 AB 并不想去重构那段代码了,而重写当然更蛋疼,那段代码经过若干次修修补补,谁知道有哪些隐形的坑啊,一直在线上跑着呢
|
28
wweir 2018-02-13 22:39:22 +08:00 via Android
私以为代码水平高的一大标准是代码好接手。
不是不让写复杂的代码,有些逻辑、算法自身就很复杂,无法从代码侧优化。 但我们设计一个优秀的代码结构,将复杂进行封装,在调用侧呈现出清晰的目的与思路 |
29
iugo 2018-02-13 22:53:21 +08:00
在大多数情况下, 代码能力强应该是用简单易懂的方法解决复杂的问题, 有时给人一种醍醐灌顶的感觉.
|
31
swulling 2018-02-13 22:58:15 +08:00 via iPhone
你们不用 Code Review 么,
C 的代码 AB 看不懂就根本过不了 Review |
34
vagranth 2018-02-14 00:02:25 +08:00 via Android
我也觉得 c 的能力未必高
写得快并不代表水平高 |
35
bramblex 2018-02-14 00:05:31 +08:00
分情况
1. 如果这部分代码是业务逻辑代码,那么问题大概率在 C 身上。业务逻辑又不需要啥硬基础,这都写得别人看不懂,说明代码逻辑就不清楚(大概率一堆暗坑)。 2. 如果是需要硬基础的基础轮子,那么问题在 AB 身上。需要硬基础,比如相关理论 /算法基础的,那么写出来代码没有特定硬基础的人看不懂很正常。 但是一般情况下都是第一种情况,第二种情况下 AB 就不应该被招进来…… |
37
CoderGeek 2018-02-14 00:45:32 +08:00 via iPhone
@wuzhi1234 那还是有问题 不是自己写代码那么简单 工作需要互相配合 除非一个模块单独负责你有这样的权利 还是前提那么长的代码还是要有注释的 要不只会觉得你是奇葩
|
38
sagaxu 2018-02-14 00:59:40 +08:00
C 的牛逼之处在于把我们至少需要 AB 三天才能实现的一个复杂业务逻辑一天就写完?
C 的工资有 AB 的三倍吗?如果不到 3 倍,把 AB 这样的都裁掉,全部招 C 这样的成本要低很多。 |
39
laoyuan 2018-02-14 08:10:07 +08:00
你说 A、B 搬砖速度 50,C 搬砖速度 100 就行了
|
40
laoyuan 2018-02-14 08:32:35 +08:00
然后 AB 砖码得工整,C 瞎 JB 码,码完了不敢动,不小心就塌了
|
41
rocksolid 2018-02-14 08:33:37 +08:00
业务逻辑看不懂和代码水平有什么关系?让 c 写一下思路,要是还看不懂就帮 AB 培训下
|
42
inflationaaron 2018-02-14 08:59:10 +08:00 via iPad
代码水平每个人有不同的标准啊,搬砖的觉得可读性、可维护性越好越强,hacker 们没准还觉得越炫技越强呢。当然如果大家都搬砖那就照着搬砖的标准来呗。
|
44
LokiSharp 2018-02-14 10:04:50 +08:00
都不需要改进,把 AB 开掉,然后招能看懂 C 写的代码的人。代码看不懂,真的就是能力问题。
|
46
yuriko 2018-02-14 13:47:42 +08:00
客户端开发表示,比起效率,业务代码别人看不懂更要命……
我们这边的高手就是代码写的复杂,但是告诉你这么这么就能跑起来了,然后发生什么问题之后看哪里就行了,天下太平 |
47
jameslan 2018-02-15 02:03:54 +08:00 via Android
就是迅速的鼓捣出看起来能用的烂代码呗。这届管理不行
|
48
tedzhou1221 2018-02-16 12:41:55 +08:00 via Android
一个方法写 200-1000 行,在我们的随便能找到。注释?可能被狗吃了
维护性?我宁愿重写 |
49
aminic 2018-02-16 15:14:50 +08:00 via Android
代码🐔文档
|