V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Macklemore
V2EX  ›  程序员

[为什么要抱怨同事代码很差]

  •  
  •   Macklemore · 2021-09-03 18:27:16 +08:00 · 6439 次点击
    这是一个创建于 1159 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前刚开始工作的时候,天天被公司的 leader 嘲讽代码质量差,健壮性不强,也被公司的老鸟嘲讽很菜。

    经历过一番历练,渐渐有了提高代码质量的意识。

    换了一家公司后,公司里面还是有我之前以为的“大牛”,老大哥行为处事很“高调”,到处找人“改代码”,批评别人这里不对,那里不对,我承认他的代码水平很高,能解决很多问题。

    技术上的问题,确实值得佩服,但是真正震撼我的是“精神”,一种很难去定义的“精神”。

    公司里有一位搞嵌入式和图像处理的老工程师(所以他是写 C/C++的),之前跟他交流不多,他为人也很低调,他基本上一直沉浸在自己的代码世界里。

    直到有一次,有个项目,我跟老工程师要互相调用自己写的模块,他代码确实写的很好,但是让我佩服他的是他的“适应能力”。

    公司也没有一个统一的说明文件,必须要用哪一个代码标准。举个最简单的例子,就好像他习惯了

    if(){
    
    }
    

    而我因为习惯了 VS 的 IDE,也写过一段时间的 C#,所以一直都喜欢下面这种写法

    if()
    {
    
    }
    

    而他在用我的“编码规范”下,(有些是我自己都觉得烂),他依然很迅速的适应了我的写法,按照我的习惯,快速且成功的写完了需求。如果是“老大哥”,可能会把我的代码先改一遍,然后批评我这里不对,那里不对。

    说实话,我真的很惭愧,老工程师从来不抱怨别人的代码,怎么样思维混乱,怎么样命名不规范,怎么样性能差,虽然他也有自己的习惯,但是不至于“强迫症”到让人必须像他那样写,也不重新打乱别人写完的代码,而是以工作为主,快速适应。

    由衷的佩服他,佩服他的纯粹,不多说什么,只是默默地写代码,完成需求。

    第 1 条附言  ·  2021-09-04 14:15:58 +08:00

    我的举例不恰当,引起了大家的误解。

    代码格式化的问题,VS2017已经很好了,只需要“;”和“}”即可。

    因为工作的关系,所以模块的设计,逻辑处理还有接口设计比较重要。

    53 条回复    2021-09-05 19:05:50 +08:00
    ebingtel
        1
    ebingtel  
       2021-09-03 18:31:55 +08:00   ❤️ 6
    说的不太恰当,“吃屎不嫌屎臭”,这种人怎么评价?
    learningman
        2
    learningman  
       2021-09-03 18:33:43 +08:00 via Android   ❤️ 16
    说明你们缺乏代码规范和 lint 工具
    raaaaaar
        3
    raaaaaar  
       2021-09-03 18:37:28 +08:00 via Android
    你说的是代码风格,而不是规范吧
    guanyin9cn
        4
    guanyin9cn  
       2021-09-03 18:38:26 +08:00
    自己修行不够
    Macklemore
        5
    Macklemore  
    OP
       2021-09-03 18:39:39 +08:00
    @raaaaaar 嗯,是的
    Macklemore
        6
    Macklemore  
    OP
       2021-09-03 18:39:50 +08:00
    @raaaaaar 是代码风格
    locoz
        7
    locoz  
       2021-09-03 18:50:25 +08:00 via Android
    代码风格问题不是 IDE 或者脚本一键格式化的事吗…这也能批评别人就离谱…
    ayase252
        8
    ayase252  
       2021-09-03 18:58:37 +08:00 via iPhone   ❤️ 1
    代码风格的问题应该用工具去解决吧
    tanhui2333
        9
    tanhui2333  
       2021-09-03 19:02:14 +08:00   ❤️ 1
    由衷的佩服他,佩服他的纯粹,不多说什么,只是默默地写代码,完成需求。
    ---------------------------------------------------------------------------------------------------
    做一天和尚撞一天钟。对这种人不能期望更多。
    tanhui2333
        10
    tanhui2333  
       2021-09-03 19:04:20 +08:00
    和追妹子很相似,妹子能主动跟你说几句,大概还有戏。
    第二种你怎么使劲面对的都是顽石一个,舔都不知道从何处舔。不拒绝,不负责。食之无味,弃之可惜。
    TomVista
        11
    TomVista  
       2021-09-03 19:16:59 +08:00 via Android   ❤️ 1
    我从来不和同事说你的代码差,只在论坛水群里吐槽,
    得有多脑残,才会给自己的同事说,你的代码稀烂
    Hawthorne
        12
    Hawthorne  
       2021-09-03 19:33:29 +08:00 via Android
    人之欢在好为人师
    人之患在好为人师
    yoke123
        13
    yoke123  
       2021-09-03 20:16:30 +08:00 via Android   ❤️ 2
    他是混明白了,反正就是的打工仔而已。
    如果他是 leader,那必然会让你规范代码。
    不在其位不谋其职罢了。
    suzic
        14
    suzic  
       2021-09-03 20:27:22 +08:00 via Android   ❤️ 1
    我的第一份工作,leader 就告诉我:好的代码风格就是写得和原作者看不出来区别,至今受益颇深
    shyangs
        15
    shyangs  
       2021-09-03 20:38:32 +08:00   ❤️ 3
    你這舉例沒說服力呀.

    代碼風格沒有對錯.

    但拼錯字, 有對錯.
    l00t
        16
    l00t  
       2021-09-03 20:43:11 +08:00
    照着原来的代码写,这是非常容易的事情啊,把你的代码改一遍才是额外的工作…… 我接手老项目或者和别人协作也大多这么干,别人怎样我就能怎样,但不妨碍喷有些实在很糟糕的代码
    Jooooooooo
        17
    Jooooooooo  
       2021-09-03 20:45:58 +08:00
    代码风格明明是工具可以控制的.
    silencil
        18
    silencil  
       2021-09-03 20:49:29 +08:00 via iPhone
    我就是那种代码风格也会给同事建议的人……,这个我也就提过几次让尽量按阿里巴巴规约来就没再说过了。但是关于代码怎么写这块我会多次重申,例如同事老是喜欢复制粘贴,一大块代码明明只是里面一两个参数不同,他的选择是复制粘贴然后 if else,影响了我排查 bug 效率这种绝对会提。
    fy
        19
    fy  
       2021-09-03 20:49:44 +08:00
    还是太闲了。现在一个项目的生命周期撑死两三个月,完成需求就行了。it works
    xiao109
        20
    xiao109  
       2021-09-03 20:50:02 +08:00
    写代码也要向龙哥学习,be water 。别人怎么写你也怎么写
    LemonK
        21
    LemonK  
       2021-09-03 21:01:18 +08:00
    感觉代码风格和合住的公共卫生很像。
    卫生习惯差肯定不对,但合住的人都不介意,就不是什么大问题。
    都爱干净当然更好。最麻烦的是一部分人介意,另一部分人无所谓。
    至于爱干净那个,是自己默默迁就,主动打扫,还是天天在室友耳边唠叨,还是跟外人抱怨,看个人性格。
    也不排除有些人并不是多爱干净,只是爱抓住一切机会教训人。
    Biwood
        22
    Biwood  
       2021-09-03 21:19:57 +08:00 via iPhone
    真正的软件开发人员的专业是,既不是你去适应老大哥,也不是让别人适应你,而是你们共同遵守一套规范和标准,目的是保证高效协作以及代码的可维护性,这是团队协作所必须的契约精神,他比任何个人的小情绪更重要。

    纵观那些优秀的开源项目,哪个不是严格遵守一套规范去维护和贡献代码的,如果仅凭个人意愿在这种事情上东拉西扯,那项目更本无法长期进行下去。
    aliveyang
        23
    aliveyang  
       2021-09-03 21:42:40 +08:00   ❤️ 1
    文不对题
    799635347
        24
    799635347  
       2021-09-03 21:51:00 +08:00 via iPhone   ❤️ 1
    [为什么代码写得差还不给吐槽]
    Vegetable
        25
    Vegetable  
       2021-09-03 21:53:12 +08:00
    你对代码差的理解和我不太一样
    if () return
    if () { return }
    if (a > b) {return true}

    前两个算是风格问题,那第三个呢?
    Cielsky
        26
    Cielsky  
       2021-09-03 22:15:53 +08:00 via Android
    代码风格和烂不烂有啥关系啊。
    WilliamYang
        27
    WilliamYang  
       2021-09-03 23:41:08 +08:00   ❤️ 1
    如果代码烂就要认,没必要批评比你做的好的人
    20015jjw
        28
    20015jjw  
       2021-09-04 00:37:57 +08:00 via Android
    心疼 lz 没用过 lint
    真正的强者应该写 lint rule
    cassyfar
        29
    cassyfar  
       2021-09-04 02:07:04 +08:00
    这个在 lint 普及前我也会指出的。还包括命名,缩进等等。现在有 lint 了,大多都自动处理了。
    swim2sun
        30
    swim2sun  
       2021-09-04 03:11:37 +08:00 via iPhone
    这不是我理解的“代码风格”…
    freakxx
        31
    freakxx  
       2021-09-04 03:19:08 +08:00   ❤️ 4
    。。。这他妈把我看呆了

    我觉得很多时候,把几个事情揉在一起是一个很有趣的事。

    我感觉是

    - 技术强是好的;
    - 帮助别人是好的;
    - 恃才傲物是不好的;
    - 知错不改是不好的;

    但是这里通过某种逻辑嫁接,把跟着吃屎(如果真的是不好的东西)当做是对的,那这个事情本身就是很傻逼的事情;



    ===========

    又,规范的东西,不是通过人主观的约束,而是通过工具来实现;


    ===========

    又,很多时候,写代码的洁癖是看情况的,大家都知道吃屎是不对的,偶尔不得不吃屎的时候,应该明白有时屎在某种程度上是可以避免的。
    而不是纵容自己,吃屎习惯就好。

    很多时候防御性编程是必要的,这是为了保护好的代码,不是为了洁身自好。
    人掏粪的时候戴手套是好的。
    catror
        32
    catror  
       2021-09-04 03:22:20 +08:00 via Android
    修改现有模块,沿用原有的代码规范。这本身就是代码规范中应该有的一项。
    ryd994
        33
    ryd994  
       2021-09-04 04:29:56 +08:00 via Android
    @Vegetable 第三个实际上也是代码风格的问题。编译器早就给你优化掉了。
    顺手就改掉了,没必要去说别人。
    dayeye2006199
        34
    dayeye2006199  
       2021-09-04 06:03:45 +08:00
    LZ 了解一下 linter 和 formatter 。做这个真的不费劲。想适配什么风格就能什么风格。
    jackmod
        35
    jackmod  
       2021-09-04 08:30:06 +08:00 via Android
    那啥,修改代码要保证最少,这样版本控制在 diff 的时候才能一目了然。修改原有格式就乱套了。
    tong911115a
        36
    tong911115a  
       2021-09-04 08:40:16 +08:00
    我一般不会主动去帮别人改,技术强也好,在工作范围内是有边界的,也许你的帮忙让别人很烦。
    除非是别人明确需要帮忙 or 自己主导的项目才会提建议,都是打工人而已。
    NonClockworkChen
        37
    NonClockworkChen  
       2021-09-04 09:39:08 +08:00
    其实你还要从这么个角度考虑,老工程师可能只是为了尽快为了配合你完成这个任务,那么过多的说教对他来说是吃力不讨好的事情,有些事情也不是短时间能搞定的,可允许的范围,没必要死扣。
    至于你的那些技术大拿,技术可能性,但是培训人的能力欠缺,只会怼人的领导,也只能管几个人,人管多了,项目就会炸。
    TUNGH
        38
    TUNGH  
       2021-09-04 09:47:15 +08:00 via Android
    前同事的代码层层嵌套,过度包装,离职我来改,恶心死我了,真滴晦气
    ipcjs
        39
    ipcjs  
       2021-09-04 09:55:52 +08:00
    团队合作的第一步不就是统一编码规范&风格?
    way2create
        40
    way2create  
       2021-09-04 10:11:26 +08:00
    我是非常讨厌那种图自己省事的烂摊子
    hallDrawnel
        41
    hallDrawnel  
       2021-09-04 10:28:07 +08:00
    说明你们的团队没有规范。
    jitongxi
        42
    jitongxi  
       2021-09-04 10:54:22 +08:00   ❤️ 1
    多年后, 当你接到一套 N 手代码, 改一处到处漏, 就是你骂人八辈子祖宗的时候了.
    没错,可能这代码就是你当年写的.
    sansanhehe
        43
    sansanhehe  
       2021-09-04 11:09:38 +08:00
    代码烂就是得 review+lint+unit-test
    mosliu
        44
    mosliu  
       2021-09-04 11:23:29 +08:00
    lint 工具是摆着好看的么
    没有一个统一的编码规范 应该是技术部老大出问题了。。
    kilala2020
        45
    kilala2020  
       2021-09-04 11:46:14 +08:00   ❤️ 3
    我这写的是不是有问题(小白)-->也许还可以这么写(进阶)-->你们写的太烂(伪大牛)-->放着我来(大牛)-->按你能理解的方式来(隐退)-->就一谋生工具(万法归一)
    charlie21
        46
    charlie21  
       2021-09-04 11:59:37 +08:00 via iPhone
    公司付钱了吗,付钱给你 你拿了吗,你拿了还说什么
    就是付钱来让你接手烂代码,行不行?你是以为付钱让你享受工作来了吗

    当然 享受工作的岗位也有,不是你的
    cp19890714
        47
    cp19890714  
       2021-09-04 15:03:47 +08:00
    1. 根本原因是你们的 leader 没有尽责.
    2. 如果我是"老大哥", 我会说服 leader 落实编码规则.
    如果我是"老工程师", 我才不胡惯着你. 公司不需要老好人.
    如果我是你, 我不会来这抱怨, 自己代码没写好, 被别人指出, 那是我的荣幸.

    "老大哥"和"老工程师"技术都好, 一个指出你的问题, 一个顺应你的风格, 你就对他们表现出不同的态度, 你可能需要反思自己.

    另外, 代码规范与风格是两码事, 这两个人比较不合适.
    iseki
        48
    iseki  
       2021-09-04 15:10:14 +08:00
    我没看懂,你似乎很反感别人用自己的习惯要求你, 但按帖子中的描述,你好像正在做同样的事?
    zhea55
        49
    zhea55  
       2021-09-04 16:37:48 +08:00
    “老大哥”为了你好,教你怎么写。你偏不听。

    能影响你的代码产出质量的都是细节。而老大哥无私的教你。


    我不相信,他批评你,每次都说你的代码缩进用的不对,括号换行有问题。

    人家肯定会给你指出哪里逻辑需要完善,还有更好的写法。


    你自己满足于把功能实现。就不要怪别人说你。把功能实现,和把功能实现好是两码事。


    领导肯定都希望组员写出易于维护的代码,而不是你各种奇葩逻辑一堆,只要功能完成就了事。
    xialer
        50
    xialer  
       2021-09-04 18:53:33 +08:00
    这个才是正解...

    之前大牛改我的代码,让我一度认为是自己写的...

    但是明明自己没写过啊.
    veike
        51
    veike  
       2021-09-04 19:38:05 +08:00 via Android
    @kilala2020 还没到大牛阶段已经开始隐退了😓
    @kilala2020
    lujiaosama
        52
    lujiaosama  
       2021-09-05 10:20:53 +08:00
    这叫编码规范? 如果有人这么说我, 我一定觉得这家伙水得一匹. 你说把一堆 if 优化得少少看起来清爽一些那还差不多
    kilala2020
        53
    kilala2020  
       2021-09-05 19:05:50 +08:00
    @veike 那你肯定是大牛了,比较能理解别人的程度,还能按别人的能理解的程度写,水平都很高,类似你已经看穿别人了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1605 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:59 · PVG 07:59 · LAX 15:59 · JFK 18:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.