V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
java253738191
V2EX  ›  程序员

看到别人的代码,不想去改咋办?

  •  
  •   java253738191 · 2018-04-03 15:58:45 +08:00 · 8356 次点击
    这是一个创建于 2455 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • git 提交代码的注释都是“更新”,“修改”,“上线”等等

    • 变量命名都是abaa等等, 出现英文单词还拼错,把cname拼成canmedebug拼成dubug等等

    • 线上代码竟然加上assert,让程序强制 core 掉

    • 编译一大堆警告不处理

    • 自己修改了的话同事又说他本身写的很好被我修改乱了,不修的话又看不下去

    求问我这种是强迫症吗?怎么解决??

    68 条回复    2018-04-08 22:02:37 +08:00
    crisewng
        1
    crisewng  
       2018-04-03 16:05:30 +08:00
    辞职跑路
    1313213
        2
    1313213  
       2018-04-03 16:07:03 +08:00
    代码写成这样都能找到工作???
    yogogo
        3
    yogogo  
       2018-04-03 16:08:30 +08:00   ❤️ 1
    呆着准备背锅?
    java253738191
        4
    java253738191  
    OP
       2018-04-03 16:09:23 +08:00
    @1313213 同事级别比我高
    blaxmirror
        5
    blaxmirror  
       2018-04-03 16:10:54 +08:00
    呃...弱弱问一下什么类型的公司,你们不做 review 的吗?我们 Team 一个函数命名都得为了其他人方便理解争论个半天
    至于怎么解决,每天都跟这样的人在一起你不怕被同化吗?不跑路留到猪年吗...
    java253738191
        6
    java253738191  
    OP
       2018-04-03 16:15:19 +08:00   ❤️ 1
    @blaxmirror 互联网 top5 的公司,哪有什么 review 吧,都快被同化了
    Mirachael
        7
    Mirachael  
       2018-04-03 16:16:09 +08:00   ❤️ 5
    闷头发育,不要浪
    AltairT
        8
    AltairT  
       2018-04-03 16:20:44 +08:00 via iPhone
    @java253738191 top5 也这样鹅,我以为就小公司会有各种拼写错误,会提交时不写日志(虽然有修改文档),业务层会不做异常返回处理……

    我的想法是抽空就把代码大全之类看看,防止被他们同化😂
    murmur
        9
    murmur  
       2018-04-03 16:22:00 +08:00
    都现在了能靠 a aa bb 给程序跑起来的也是人才
    pexcn
        10
    pexcn  
       2018-04-03 16:24:01 +08:00
    我也看到过这样的代码,后来辞职了
    AnsonQAQ
        11
    AnsonQAQ  
       2018-04-03 16:26:50 +08:00
    猥琐发育,不要浪
    loveCoding
        12
    loveCoding  
       2018-04-03 16:28:23 +08:00
    跟 leader 商量下,先补单元测试,尽量写全一点 case
    WinMain
        13
    WinMain  
       2018-04-03 16:35:21 +08:00
    我开始思考目前的 top5 是哪几个,BAT + 京东 + 头条? 还是美团 + 头条
    blaxmirror
        14
    blaxmirror  
       2018-04-03 16:35:28 +08:00
    @java253738191 那就很 tricky 了,要么像楼上说的闷声发大财,做好自己的事情,要么换个项目?应该有不少流动的机会吧,这种人原则上也就是个例了,反正能离多远离多远。如果本来就过的不开心就可以开始找工作了
    java253738191
        15
    java253738191  
    OP
       2018-04-03 16:35:36 +08:00
    @loveCoding 单元测试已经被同化了,开始还老老实实写 mock,看到同事的单元测试就是写类的 main 函数,而且就一个正常的 case,我就放弃单元测试了
    catteroLo
        16
    catteroLo  
       2018-04-03 16:36:50 +08:00
    写公司代码我都是把 IDE 的拼写检查关掉的,要不然是一片黄
    wxkvEX
        17
    wxkvEX  
       2018-04-03 16:43:01 +08:00   ❤️ 1
    楼主简直幸福死了。我改烂代码,心烦的不行,顺手记录了一下行为,纯吐槽向:

    1.变量名 垃圾命名如 student1 ;装神弄鬼,故弄玄虚,如 crUsageId,也不解释带不带 cr 有什么区别
    2.脱裤子放屁,画蛇添足,几个多层容器倒来倒去,最后还是那些东西
    3.拼写错误 /错别字
    4.常量混乱,每个文件一套
    5.常量混乱带来的不一致问题,每个文件的值和命名方式可能不一样,但实际上是一个东西
    6.长函数 /循环,一个循环几百行,里三层外三层,靠
    7.逻辑纠结,想到哪写到哪,不考虑合理性
    8.过多的参数,最多见过 40 个形参
    9.隐含的重构风险: 代码难以理解,出错后难修改
    10.魔数
    11.重复,大同小异的代码块从来不抽象,各种复制粘贴
    shijingshijing
        18
    shijingshijing  
       2018-04-03 16:50:34 +08:00 via iPhone
    不跑留这里过六一儿童节么?
    blaxmirror
        19
    blaxmirror  
       2018-04-03 16:52:23 +08:00
    @wxkvEX 看到第 10 条笑了 hhhh,好奇他们的魔数是个什么东西
    yongjing
        20
    yongjing  
       2018-04-03 17:00:04 +08:00
    还有单元测试?
    严重影响开发进度呀!
    shijingshijing
        21
    shijingshijing  
       2018-04-03 17:02:28 +08:00 via iPhone
    @blaxmirror 是 magic number
    FFLY
        22
    FFLY  
       2018-04-03 17:07:08 +08:00
    @WinMain BAT+小米,肯定没悬念,还有个我感觉是京东,美团点评和今日头条市值没京东大应该。
    jrtzxh020
        23
    jrtzxh020  
       2018-04-03 17:35:06 +08:00
    呃,每个新来的看以前同事交接的代码,都会感觉是一坨 shi。。。
    xuchen
        24
    xuchen  
       2018-04-03 17:37:22 +08:00
    要么忍,要么滚~新人都是搞糟心的代码的~
    pynix
        25
    pynix  
       2018-04-03 17:40:41 +08:00
    辞职跑路。。
    John60676
        26
    John60676  
       2018-04-03 17:45:57 +08:00
    观察了一下,楼主是百度的?
    newmlp
        27
    newmlp  
       2018-04-03 17:49:06 +08:00
    一般局部变量我懒得写名字也是用 a,b,c,aa,bb,dd 这种起名字的( ̄▽ ̄)~*
    Midnight
        28
    Midnight  
       2018-04-03 17:53:49 +08:00
    https://imgur.com/GnclbaK

    看看我这边的吧。。。。
    Midnight
        29
    Midnight  
       2018-04-03 17:55:42 +08:00   ❤️ 7
    Lawlieti
        30
    Lawlieti  
       2018-04-03 18:06:05 +08:00
    @Midnight 这前端还不被打死?
    FenGuWu
        31
    FenGuWu  
       2018-04-03 18:06:32 +08:00 via Android
    买一本 重构改善既有代码的设计。看完就会发现久旱逢甘霖!!!美滋滋!!
    NingAnMe
        32
    NingAnMe  
       2018-04-03 18:18:55 +08:00
    到公司,已经把一套程序根据 PEP8 重构了一遍了
    ZZZZZZZZTC
        33
    ZZZZZZZZTC  
       2018-04-03 18:31:52 +08:00
    人家就是要代码写烂点,为了让自己难以被替代
    laodao1990
        34
    laodao1990  
       2018-04-03 18:42:14 +08:00
    1 万 4 千多行的类你见过吗?
    3000 多行的方法你见过吗?
    一行有几百个字符从来不格式化你见过吗?
    Biwood
        35
    Biwood  
       2018-04-03 19:09:25 +08:00
    我的原则是,如果那个人还在公司,他自己的代码自己修改,我只是给出修改意见
    woodface2233
        36
    woodface2233  
       2018-04-03 19:12:03 +08:00 via iPhone
    标准答案:走人
    lusi1990
        37
    lusi1990  
       2018-04-03 19:21:00 +08:00 via Android
    搞 c 语音的吧
    PHPer233
        38
    PHPer233  
       2018-04-03 22:14:21 +08:00 via iPhone
    煞笔写的代码。一般我碰到不写注释的代码,直接删掉,看你麻痹,不看了。鬼知道你写的什么?
    kljsandjb
        39
    kljsandjb  
       2018-04-03 22:18:00 +08:00 via iPhone
    我天天是你这种心情
    WispZhan
        40
    WispZhan  
       2018-04-03 22:21:51 +08:00
    @PHPer233 你错了,好代码不写注释也能看懂。差代码写再多注释也是垃圾。
    wangbenjun5
        41
    wangbenjun5  
       2018-04-03 22:22:56 +08:00
    还真是,我们公司不大不小,业界小有名气,进来一看代码也是一坨屎,没办法,能跑就行,没人看代码
    easylee
        42
    easylee  
       2018-04-03 22:39:13 +08:00
    @WispZhan 代码审阅能力是这么强的吗?
    vebuqi
        43
    vebuqi  
       2018-04-03 23:33:29 +08:00   ❤️ 1
    日常是在 9k 行的一个 js 文件里摸爬滚打。。
    whoisghost
        44
    whoisghost  
       2018-04-03 23:37:13 +08:00
    @blaxmirror 你们这 Team 我喜欢呀!你们公司在成都吗?我要去霸面!
    blaxmirror
        45
    blaxmirror  
       2018-04-03 23:55:58 +08:00
    @shijingshijing 难道我理解有问题?我只是想问这种写垃圾代码的人怎么可能会写出真正的魔数...你这突然冒个英文翻译给我是什么意思呀...一脸懵逼
    我脑海中的魔数是卡马克的浮点开方算法用的那种,所以好奇普通人写的魔数会是什么样子而已
    blaxmirror
        46
    blaxmirror  
       2018-04-03 23:58:09 +08:00
    @whoisghost 上海爱立信,成都应该也有,你可以去了解下哈哈,待遇一般但是福利不错,无奈被华为打得节节败退
    blaxmirror
        47
    blaxmirror  
       2018-04-04 00:05:41 +08:00
    @shijingshijing 我感觉我有些过分解读了,抱歉,应该就是好心提示我,无视我前一条吧~握爪
    Akkariin
        48
    Akkariin  
       2018-04-04 08:47:24 +08:00
    非常能理解楼主的心情,我现在也是这样,看以前大神们写的代码从来没有一种 GET 到的感觉,而是这 TM 的都是些什么东西?
    比如,有看过一个存储过程,调出一个问题列表,有个参数是问题类型,0 是未回答,1 是已回答,然后 2006 是所有,我当时一阵蒙蔽,然后突然又好像想到了什么,理解了他的想法,去看了眼生成日期,果然是 2006 年,我是不是也被同化了?
    grewer
        49
    grewer  
       2018-04-04 09:26:34 +08:00
    一般说 topX 那就是 X 名
    mcfog
        50
    mcfog  
       2018-04-04 09:29:39 +08:00   ❤️ 1
    除了 2 是实锤,别的都不好说

    1. git 的零碎提交随便写个 WIP 或者 update 之类没问题,rebase 后好好写 /merge commit 好好写就行了。甚至按团队流程,完全无视 vcs 的 message,改以 merge request / change log 等形式追踪也未尝不可
    3. 早崩溃很多时候是好事情,让程序在可疑的状态下运行比 coredump 危害大得多
    4. 完全看情况
    5. 可能是楼主心态爆炸后的沟通存在问题

    我发现很多程序员对 legacy code 缺乏敬畏,你新写的代码再好也不如 legacy code 是经过生产环境千锤百炼的,处理这些代码,是否修改,是否重构,是否重写都是非常重要又困难的决定
    peinhu
        51
    peinhu  
       2018-04-04 11:57:23 +08:00
    王垠都不敢随便动别人的代码,楼主这是准备作死吗。。。退一万步讲,即使你改好了,你和你同事的梁子就结下了
    geying
        52
    geying  
       2018-04-04 12:43:38 +08:00
    // magic
    // do not touch !
    Akagi201
        53
    Akagi201  
       2018-04-04 12:47:12 +08:00
    我还真遇见过这种人, 不得不说我太 native 了.

    人家就是要代码写烂点,为了让自己难以被替代 +1
    ShareDuck
        54
    ShareDuck  
       2018-04-04 13:10:18 +08:00
    你同事自带代码混淆功能。
    caiyue1993
        55
    caiyue1993  
       2018-04-04 13:13:30 +08:00
    看了楼上的发言,不太想在 v 站回复了都...现在码农还是太多了,软件工程师还是少得可怜...
    bullettrain1433
        56
    bullettrain1433  
       2018-04-04 13:14:42 +08:00
    @ShareDuck 23333,墙都不扶
    ghostman
        57
    ghostman  
       2018-04-04 13:16:02 +08:00
    不要改别人的代码,让他自己改。
    micean
        58
    micean  
       2018-04-04 13:38:26 +08:00
    公司的拼写错误已经多到治好了我的强迫症
    nl101531
        59
    nl101531  
       2018-04-04 13:52:40 +08:00
    为了同事友谊,不要改.
    ycqueen
        60
    ycqueen  
       2018-04-04 14:10:45 +08:00
    来我们公司吧,嘻嘻,你不会有这种烦恼,我们公司在北京望京哦,求关注,求回复
    Tyris
        61
    Tyris  
       2018-04-04 14:24:09 +08:00 via Android
    @Midnight 可以,省了找混淆器的麻烦:doge:
    whatTheGhost
        62
    whatTheGhost  
       2018-04-04 17:05:31 +08:00
    线上代码强制 core 这个不一定是黑点。比如我用了 libuv,libuv Release 编译也有 assert 强制 core,这个还改不了。有时候已经是错误了,还不如早崩。

    本人之前的同事,工作三年甚至还没养成代码缩进习惯(毕业于某 CS 专业比较好的 985 ),喜欢到处复制粘贴代码(比如需求改了,把 xxx 函数内代码复制一下,改名 xxx2 ),完全没有时间 /空间复杂度概念,喜欢到处飞全局变量,用全局变量来做线程同步……
    gjquoiai
        63
    gjquoiai  
       2018-04-04 17:08:20 +08:00
    https://imgur.com/a/iJcc0
    凑合活着呗 ┑( ̄Д  ̄)┍
    gjquoiai
        64
    gjquoiai  
       2018-04-04 17:09:14 +08:00
    gjquoiai
        65
    gjquoiai  
       2018-04-04 17:10:52 +08:00
    @gjquoiai
    二连失败 _(:з)∠)_
    sampeng
        66
    sampeng  
       2018-04-04 17:19:29 +08:00
    1。如果这是一个一个人开发的项目,这么写未尝不可。工具是服务人的,不是人去完美服从工具。

    2.拼写错误不能忍,这个倒是可以吐槽一下。。但 a。a。b 这样的。看情况。如果是在非常小的函数里面。比如就 5-6 行。。我经常写 tmp 啊。tmp1.tmp2 之类的。以前我也很反感。后来发现真没那么多词去形容中间态或者临时用的。大函数除外。。大的主业务逻辑绝逼不能这么搞。。会死人的。。。其实你去看看其他源码。比如 git。。说实话,我简直看得想一头撞死在墙上。。第一版功能少,勉强还能看。看最新版。。。真的心里在呐喊,tm 什么玩意。。。到处都神奇数字,神奇变量,全局变量到处飞到处初始化。。。

    3.看情况,assert 如字面含义,绝逼 100%不可能会是异常的。如果是异常了。直接崩溃未尝不可。你得赶紧处理。但如果要求 100%不能崩的。。所以看业务。最近写 rust。。原先特别担心写 unwrap。。后来发现其实没那么糟糕。。就随心所欲了。。。

    4.依然看情况,老代码。可能是一个开发用几天时间赶工赶出来的。根本没时间去处理。。。

    5.不要主动去修改任何别人的代码!!除非你提前跟他说,你需要重构,怎么重构巴拉巴拉。否则就是自讨苦吃。。。
    wjm2038
        67
    wjm2038  
       2018-04-05 06:33:43 +08:00 via Android
    @blaxmirror 不明所以的赋值吧,我是这么理解的
    whoisghost
        68
    whoisghost  
       2018-04-08 22:02:37 +08:00
    @blaxmirror 呃,那成都就可能不会像你们 team 那么好了,毕竟是团队,不是整个公司。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2072 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:11 · PVG 00:11 · LAX 08:11 · JFK 11:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.