• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wuzhi1234
V2EX  ›  程序员

谁需要改进自己的代码

  •  1
     
  •   wuzhi1234 ·
    acegao9527 · Feb 13, 2018 · 7887 views
    This topic created in 3185 days ago, the information mentioned may be changed or developed.

    背景:

    AB 的代码能力是 50,C 的代码能力是 100 AB 的代码互相都可以看懂,并且可以互相修理对方的 bug C 可以看懂 AB 的代码,并且可以互相修理他俩的 bug AB 很难看懂 C 的部分代码,并且无法修理对应的 bug

    问题: 谁需要改进自己的代码

    49 replies  •  2018-02-16 15:14:50 +08:00
    ghiei9101
    ghiei9101
    Feb 13, 2018❤️3
    1
    C 需要改进注释和文档
    sea516
    sea516
    Feb 13, 2018
    2
    有 bug 不能给 100
    wuzhi1234
    wuzhi1234
    OP
    Feb 13, 2018
    3
    @ghiei9101 注释经过投诉后增加挺多的,但是私有方法跳来跳去,一个方法动辄上百行,真的很难看下去
    hsuan
    hsuan
    Feb 13, 2018 via Android
    4
    AB
    ytll21
    ytll21
    Feb 13, 2018❤️7
    5
    一个方法动辄上百行,真的很难看下去 -> 这个能给 100 ?
    nino
    nino
    Feb 13, 2018
    6
    代码写的看不懂恐怕给不了 100 分啊
    whypool
    whypool
    Feb 13, 2018
    7
    那 C 的 100 就有点假了
    100 的人也是经历过 50 的阶段的
    wuzhi1234
    wuzhi1234
    OP
    Feb 13, 2018
    8
    @ytll21 我是随便给个分数,满分 1000
    eaglexiang
    eaglexiang
    Feb 13, 2018
    9
    代码能力的体现之一就是易读性与易维护性,为什么 100 写出来的代码反而不如 50 的代码易懂?
    AB 互相能理解对方的代码?两个代码能力很差的人,别说对方的代码,过两个月连自己的代码都理解不了。
    msg7086
    msg7086
    Feb 13, 2018❤️2
    10
    不知道这打分怎么来的。
    写出来的代码要短小精悍,易读,不容易读的部分要加注,有条件的话要做单元测试和特性测试。
    要是 1000 分打出 50 和 100,那这几个人全都得开了。

    私有方法上百行,内部没注释,其实是小事。如果你特牛逼,上百行代码不出错,无 Bug (至少是无显著 Bug ),完美测试覆盖,内部就当做黑匣子来做都行。如果不牛逼,那就老老实实按照要求写代码。
    wuzhi1234
    wuzhi1234
    OP
    Feb 13, 2018
    11
    @msg7086 你说的很在理,上百行的本事是你的代码别人不用维护不用管
    selfi
    selfi
    Feb 13, 2018
    12
    代码能力强不是应该写出简明易懂高效便于维护的代码吗???
    感觉前提不成立啊。
    SuperMild
    SuperMild
    Feb 13, 2018
    13
    一个重点:C 的代码,难懂的部分,是不是对系统有很大作用(比如性能提高很多,并且该性能是系统原本的短板之一)。

    如果有简明易懂的方法来实现 C 的难懂部分,并且性能啥的没什么损失,那 C 这是能力不行啊,或者明明能力很行,却故意弄些难维护的代码出来,这就不是代码改不改进的问题,是心态有问题。
    fatttt
    fatttt
    Feb 13, 2018 via Android
    14
    @wuzhi1234 一个方法超过 100 行就要思考一下了
    SuperMild
    SuperMild
    Feb 13, 2018
    15
    还有就是,AB 代码所谓的易懂,是不是没考虑到以后系统变得复杂的问题,直接把全部逻辑写在一个函数里,前期是更好懂,但后面可能重构的工作量就大了。C 是不是用了更容易扩展的 pattern 呢。
    moult
    moult
    Feb 13, 2018
    16
    C 代码难懂的部分,是不是用到一些高级高效算法,亦或是符合一定的规范,还是就纯粹的抖机灵?
    最好同一个需求,让 ABC 都写出一段,贴上来,大家评判一下。

    举个例子,实现用户资金变动功能。
    AB 写了个函数,在里面做更新余额等一系列操作,所有的操作都在一个文件里面,通俗易懂。
    但是 C 却构造了一个事件机制,更新余额、记录账目流水、发送通知等操作,通过侦听这个事件来实现。
    例子可能不是很恰当,大概意思是 C 灵活使用事件钩子机制,自然就比 AB 来的规范,当然 AB 就应该学习 C 了。
    qiumaoyuan
    qiumaoyuan
    Feb 13, 2018
    17
    “ AB 很难看懂 C 的部分代码,并且无法修理对应的 bug ”,说明 C 的代码能力 100 的评分不正确。

    结论是需要重新评分,并且大家都要改进自己的代码。
    Lucups
    Lucups
    Feb 13, 2018
    18
    论 Code Review 的重要性。

    别人看不懂。。。除非 AB 真小白,不然就是 C 有大问题。
    我之前维护的一个 PHP 项目,所有的数字(0~9)值不定义成常量也就算了,还写成 ASCII 码(都用 chr(48)~chr(57) 来表示),生怕别人能看懂他的代码。
    CoderGeek
    CoderGeek
    Feb 13, 2018
    19
    说实话 写的有效率也该注释 抖机灵啥的没意思 C 如果不是高效之类的还不如 B
    CEBBCAT
    CEBBCAT
    Feb 13, 2018 via Android
    20
    啥啥啥?
    easylee
    easylee
    Feb 13, 2018
    21
    要有造轮子的能力但不要到处秀自己的能力,毕竟公司不是自己家开的。
    项目是个团队合作的事情,讲究效率。
    在此认为 C 的代码是需要改进的。
    话说楼主是在工作中遇到不顺心的事情了吗?
    coderluan
    coderluan
    Feb 13, 2018
    22
    ABC 的领导需要改进自己的管理水平,项目组里人有毛病非得互相改代码。
    stzz
    stzz
    Feb 13, 2018 via Android
    23
    赞同楼上,觉得这个管理方面的问题大于编码方面的问题
    omph
    omph
    Feb 13, 2018
    24
    这是道离散数学的命题逻辑题
    wuzhi1234
    wuzhi1234
    OP
    Feb 13, 2018 via iPhone
    25
    @easylee 我是 ab 中的一个,c 是从社招进来的大拿,但是对于代码可读性和可维护性不屑一顾,认为快速地实现就行,有些代码原则上的一些分歧
    wuzhi1234
    wuzhi1234
    OP
    Feb 13, 2018
    26
    @coderluan 敏捷里提倡互相可以取代代码共有,所以组里是要求互相之间要能熟悉对方的代码的,可是 C 的代码真的又长又复杂,对可读性不屑一顾
    wuzhi1234
    wuzhi1234
    OP
    Feb 13, 2018
    27
    @CoderGeek C 的牛逼之处在于把我们至少需要 AB 三天才能实现的一个复杂业务逻辑一天就写完了,代价就是 AB 完全读不下去 C 写出来的代码,而且一出问题只能 C 去找,我们已经吃了几次这段代码的亏,C 让 AB 把他那段重写下,说他写过再写就没有意义了,可是 AB 并不想去重构那段代码了,而重写当然更蛋疼,那段代码经过若干次修修补补,谁知道有哪些隐形的坑啊,一直在线上跑着呢
    wweir
    wweir
    Feb 13, 2018 via Android
    28
    私以为代码水平高的一大标准是代码好接手。
    不是不让写复杂的代码,有些逻辑、算法自身就很复杂,无法从代码侧优化。
    但我们设计一个优秀的代码结构,将复杂进行封装,在调用侧呈现出清晰的目的与思路
    iugo
    iugo
    Feb 13, 2018
    29
    在大多数情况下, 代码能力强应该是用简单易懂的方法解决复杂的问题, 有时给人一种醍醐灌顶的感觉.
    asj
    asj
    Feb 13, 2018
    30
    @wuzhi1234
    C 不需要改进代码,需要换份工作。
    swulling
    swulling
    Feb 13, 2018 via iPhone
    31
    你们不用 Code Review 么,

    C 的代码 AB 看不懂就根本过不了 Review
    dddd1919
    dddd1919
    Feb 13, 2018
    32
    @wuzhi1234 就这编程水平,你是重新定义了代码能力 100
    coderluan
    coderluan
    Feb 13, 2018
    33
    @wuzhi1234 提倡是提倡,现实是现实,提倡这个没问题,但是现实中出现这种情况一般就是管理不到位。
    vagranth
    vagranth
    Feb 14, 2018 via Android
    34
    我也觉得 c 的能力未必高
    写得快并不代表水平高
    bramblex
    bramblex
    Feb 14, 2018
    35
    分情况

    1. 如果这部分代码是业务逻辑代码,那么问题大概率在 C 身上。业务逻辑又不需要啥硬基础,这都写得别人看不懂,说明代码逻辑就不清楚(大概率一堆暗坑)。

    2. 如果是需要硬基础的基础轮子,那么问题在 AB 身上。需要硬基础,比如相关理论 /算法基础的,那么写出来代码没有特定硬基础的人看不懂很正常。

    但是一般情况下都是第一种情况,第二种情况下 AB 就不应该被招进来……
    wuzhi1234
    wuzhi1234
    OP
    Feb 14, 2018 via iPhone
    36
    @dddd1919 我只是取了两个数字,100 并不是满分
    CoderGeek
    CoderGeek
    Feb 14, 2018 via iPhone
    37
    @wuzhi1234 那还是有问题 不是自己写代码那么简单 工作需要互相配合 除非一个模块单独负责你有这样的权利 还是前提那么长的代码还是要有注释的 要不只会觉得你是奇葩
    sagaxu
    sagaxu
    Feb 14, 2018
    38
    C 的牛逼之处在于把我们至少需要 AB 三天才能实现的一个复杂业务逻辑一天就写完?

    C 的工资有 AB 的三倍吗?如果不到 3 倍,把 AB 这样的都裁掉,全部招 C 这样的成本要低很多。
    laoyuan
    laoyuan
    Feb 14, 2018
    39
    你说 A、B 搬砖速度 50,C 搬砖速度 100 就行了
    laoyuan
    laoyuan
    Feb 14, 2018
    40
    然后 AB 砖码得工整,C 瞎 JB 码,码完了不敢动,不小心就塌了
    rocksolid
    rocksolid
    Feb 14, 2018
    41
    业务逻辑看不懂和代码水平有什么关系?让 c 写一下思路,要是还看不懂就帮 AB 培训下
    inflationaaron
    inflationaaron
    Feb 14, 2018 via iPad
    42
    代码水平每个人有不同的标准啊,搬砖的觉得可读性、可维护性越好越强,hacker 们没准还觉得越炫技越强呢。当然如果大家都搬砖那就照着搬砖的标准来呗。
    dddd1919
    dddd1919
    Feb 14, 2018
    43
    @wuzhi1234 满分 100 分和满分 10000 分,这两个前提差别大了
    LokiSharp
    LokiSharp
    Feb 14, 2018
    44
    都不需要改进,把 AB 开掉,然后招能看懂 C 写的代码的人。代码看不懂,真的就是能力问题。
    easylee
    easylee
    Feb 14, 2018
    45
    @wuzhi1234 当年我前辈大概这么告诉我:“代码是写给你同事看的,OK ?”
    yuriko
    yuriko
    Feb 14, 2018
    46
    客户端开发表示,比起效率,业务代码别人看不懂更要命……

    我们这边的高手就是代码写的复杂,但是告诉你这么这么就能跑起来了,然后发生什么问题之后看哪里就行了,天下太平
    jameslan
    jameslan
    Feb 15, 2018 via Android
    47
    就是迅速的鼓捣出看起来能用的烂代码呗。这届管理不行
    tedzhou1221
    tedzhou1221
    Feb 16, 2018 via Android
    48
    一个方法写 200-1000 行,在我们的随便能找到。注释?可能被狗吃了
    维护性?我宁愿重写
    aminic
    aminic
    Feb 16, 2018 via Android
    49
    代码🐔文档
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4455 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 09:58 · PVG 17:58 · LAX 01:58 · JFK 04:58
    ♥ Do have faith in what you're doing.