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