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

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

  •  
  •   java253738191 · 320 天前 · 5376 次点击
    这是一个创建于 320 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • git 提交代码的注释都是“更新”,“修改”,“上线”等等

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

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

    • 编译一大堆警告不处理

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

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

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

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

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

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

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

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

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

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

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

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

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

    5.不要主动去修改任何别人的代码!!除非你提前跟他说,你需要重构,怎么重构巴拉巴拉。否则就是自讨苦吃。。。
        67
    wjm2038   318 天前 via Android
    @blaxmirror 不明所以的赋值吧,我是这么理解的
        68
    whoisghost   315 天前
    @blaxmirror 呃,那成都就可能不会像你们 team 那么好了,毕竟是团队,不是整个公司。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1868 人在线   最高记录 4346   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1