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

新来的外包同事,这代码,我???

  •  
  •   LeroyMooney · 255 天前 · 28214 次点击
    这是一个创建于 255 天前的主题,其中的信息可能已经有所发展或是发生改变。
    public List<IssueStatistics> getIssueStatistics() {
        return issueStatistics == null ? null : issueStatistics;
    }
    
    第 1 条附言  ·  255 天前
    楼下好像蛮多人指责我的
    1 、关于标题中的“外包”一词:并没有歧视的意思,跟公司其他外包同事相处的很愉快。标题中的“外包”是不是戳着某些人伤口了?
    2 、关于说我没有当面指出的:这是我跟他说了两次之后修改的版本
    186 条回复    2021-03-22 08:56:52 +08:00
    1  2  
    Leonard
        1
    Leonard   255 天前
    哈哈哈哈哈哈
    quan01994
        2
    quan01994   255 天前   ❤️ 7
    别问,问就是按代码量计费的。
    legiorange
        3
    legiorange   255 天前 via Android
    mazai
        4
    mazai   255 天前
    脱裤子放屁,多此一举😂
    Guidoo
        5
    Guidoo   255 天前
    哈哈 这代码。。 强行封装
    totoro52
        6
    totoro52   255 天前
    笑死我了 这就是脱裤子放屁啊
    bzw875
        7
    bzw875   255 天前
    可能是不知不觉摸了 1 天鱼,随便写几行代码提交吧
    liuxey
        8
    liuxey   255 天前
    public List<IssueStatistics> getIssueStatistics() {
    return issueStatistics == null ? new ArrayList<>() : issueStatistics;
    }

    这样还能说得过去一点
    zhuangzhuang1988
        9
    zhuangzhuang1988   255 天前 via Android
    正常啊,这代码
    wxsm
        10
    wxsm   255 天前
    谁都有脑抽的时候,如果只是一行还好
    huage2580
        11
    huage2580   255 天前
    问一下他,怎么写出这么秀的代码的
    murmur
        12
    murmur   255 天前
    getter/setter 而已。函数的封装并没有问题
    CalistaK
        13
    CalistaK   255 天前
    这代码不报错呀,逻辑上好像也没问题(手动狗头
    shiji
        14
    shiji   255 天前   ❤️ 4
    有的时候也许 null 的返回值还没有沟通好,先这么放着,等定下来了直接改。
    jwenjian
        15
    jwenjian   255 天前 via iPhone
    反正也会被 JVM 优化掉,不影响😁
    AA5DE3F034ACCB9E
        16
    AA5DE3F034ACCB9E   255 天前
    学到了
    zhuweiyou
        17
    zhuweiyou   255 天前   ❤️ 3
    有可能之前还有别的条件和代码, 然后删掉了, 只剩下这一行.
    liudaolunhuibl
        18
    liudaolunhuibl   255 天前   ❤️ 2
    @liuxey 1 、新建 ArrayList 的时候最好指定容量,这里就表示一个空的所以 new Arraylsit ( 1 )就可以了,2 、new 一个 arrayList 的时候最好静态方法,用谷歌的 guava:Lists.newArrayListwithCatity(1)
    wangwei1025
        19
    wangwei1025   255 天前
    我还写过
    if (condition){
    A=B;
    }else{
    A=B
    }

    哈哈哈哈,有时候确实会脑子抽了
    zhuweiyou
        20
    zhuweiyou   255 天前
    比如 return issueStatistics == null || issueStatistics.length == 0 ? null : issueStatistics;
    后来不需要 issueStatistics.length == 0 了, 只删掉了一部分. 忘记改成返回了
    codiy
        21
    codiy   255 天前
    牛逼了
    ily433664
        22
    ily433664   255 天前
    if (true) {
    xxx
    }
    anonydmer
        23
    anonydmer   255 天前   ❤️ 11
    @liuxey @liudaolunhuibl 我们一直是要求 null 时候返回 Collections.emptyList(), 这个方法返回的是不可变对象,无法向里面写内容;不然返回一个 ArryList() 别人往里面写内容了可能会引起难以排查的 bug
    vicalloy
        24
    vicalloy   255 天前
    和这个比起来 怎么样
    #!/bin/python3
    def toJSON(self):
      xxx = []
     ...
      return json.loads(json.dumps(xxx))
    kop1989
        25
    kop1989   255 天前
    get/set 在默认情况下本来也只是返回 this.xxx ,逻辑上我个人认为并没有错误。
    而且更可能的情况下是这块代码有过改动或者未来有预计的改动,所以和 ide 的默认写法不同。

    这就像是:同样表达去哪玩,有的人说“你去 xxx 玩”,而有的人说“你来 xxx 玩”。这俩表达的意思一致,只不过是表达者主体的情景不同。
    drydiy
        26
    drydiy   255 天前   ❤️ 1
    本来外包就处于鄙视链的底端,你这还强调一下。欣慰得是,评论区都很很友善。
    我在现同事的代码中也看到这种脱裤子放屁的赋值,我默默得修复了。
    工作中难免会有脑子短路的时刻。
    viator42
        27
    viator42   255 天前
    代码写的还挺讲究,虽然没啥用
    66beta
        28
    66beta   255 天前   ❤️ 16
    留下可以扩展的口子,是个高手!
    Felldeadbird
        29
    Felldeadbird   255 天前
    不明白这什么有的? 写代码总有脑抽的时候。
    至少得再列出别得。
    lagoon
        30
    lagoon   255 天前
    考虑到我自己也经常写垃圾代码,再考虑到这人的垃圾代码写的还挺工整。
    我决定默不作声。
    sutra
        31
    sutra   255 天前
    @liudaolunhuibl 不应该是 Collections.emptyList() 吗?哈哈
    yamasa
        32
    yamasa   255 天前
    如果想规避 npe,直接 Optional.ofNullable(issueStatistics).orElse(new ArrayList<>(1)); 就好了。
    CodeGroup
        33
    CodeGroup   255 天前
    这算什么,我这还有 list.size()>=0 的判断,我寻思数组的长度也没有负的吧
    arthas2234
        34
    arthas2234   255 天前
    @shiji +1
    有可能是还不确定要如何处理,先原路返回了,在这里先留个位置等后面在改
    不过应该要打个 TODO,怕后面忘记了
    lonelymarried
        35
    lonelymarried   255 天前
    这是写 oc 写多了,怕 null 崩溃所以判断一下?
    LeroyMooney
        36
    LeroyMooney   255 天前
    我随便再贴几行吧
    ```
    private String nodeName;
    private int issueTotal ;
    private int countersign;

    xxService.execl(projectNum);

    xxService.selectid();

    public String s(int a, int b) {
    return (Math.round((((a - b) * 1.0f) / a) * 100) + "%");
    }

    public String D(int a, int b) {
    return (Math.round(a * 1.0f / b * 100) + "%");
    }
    ```
    LeroyMooney
        37
    LeroyMooney   255 天前
    回复没用到 Markdown,大家将就看下吧
    LeroyMooney
        38
    LeroyMooney   255 天前
    其他太长的就不贴出来了
    lwlizhe
        39
    lwlizhe   255 天前
    容老夫想想怎么圆这块……

    或许这块是参考双重检测的单例模式呢,只不过少了关键字和双重检测而已

    好像圆不下去~~~
    liudaolunhuibl
        40
    liudaolunhuibl   255 天前
    @sutra 对 哦,忘记了
    rocksolid
        41
    rocksolid   255 天前
    这是按代码量算工资么
    liudaolunhuibl
        42
    liudaolunhuibl   255 天前
    @anonydmer 但是可能这个方法返回的 list 外部还要继续 add 呢,难免会有这种业务的,或者说现在没有后面加上了,然后哪个人没有看这个方法的代码不就报错了吗,
    xinyang5302677
        43
    xinyang5302677   255 天前
    你怎么戾气这么大?你是 985 吗?
    zzzmh
        44
    zzzmh   255 天前   ❤️ 5
    你给他改成

    public List<IssueStatistics> getIssueStatistics() {
    return issueStatistics == null ? issueStatistics == null ? issueStatistics == null ? issueStatistics == null ? issueStatistics == null ? null : issueStatistics : issueStatistics : issueStatistics : issueStatistics : issueStatistics;
    }

    互相伤害
    [doge]
    xuanbg
        45
    xuanbg   255 天前
    有可能不是手写的,沙雕生成器生成的。
    atonku
        46
    atonku   255 天前
    不然一天一行代码也没有
    sevenzhou1218
        47
    sevenzhou1218   255 天前
    个人觉得没问题 getter?
    no1xsyzy
        48
    no1xsyzy   255 天前
    @anonydmer 那我就随便地不负责任地推荐一下 Haskell:想改? unsafe 吧。

    ——

    说起来,也可能存在显式表示此处可返回 null 的情况
    zhongrs232
        49
    zhongrs232   255 天前   ❤️ 2
    这代码有个解释:如果我和女票意见一致,那么听我的,否则听女票的
    然而我并没有女票,sigh~
    endlessJ219
        50
    endlessJ219   255 天前
    感觉楼主有点攻击,这个人水平不高不能赖外包啊
    xuanbg
        51
    xuanbg   255 天前
    @LeroyMooney 这!!! s d 实锤了……
    SurfaceView
        52
    SurfaceView   255 天前
    这代码有 bug 吗
    limuyan44
        53
    limuyan44   255 天前   ❤️ 13
    我刚毕业的时候就喜欢吐槽别人代码,后来我发现所有人的代码里都有垃圾包括我自己,就淡然多了,没有一个程序员的代码经得起吐槽,如果谁觉得有,请把 github 贴出来让大家看看。
    lvxiaomao
        54
    lvxiaomao   255 天前
    你就知足吧,起码不是
    if (list == null) {return null;} else {return list;}
    Azer
        55
    Azer   255 天前
    看过一个
    if(checkbox.checked == true && i == 1)
    sonxzjw
        56
    sonxzjw   255 天前
    要是我,可以的话我会加 100 个空行。那我的代码量行数就蹭蹭蹭...想想就美
    msg7086
        57
    msg7086   255 天前
    我见过 if (IsXXX() == true) { return true; } else { return false; } 的。
    SyncWorld
        58
    SyncWorld   255 天前
    @limuyan44 垃圾代码谁都写过~ 我现在回头改我以前的代码都得看半天
    fengpan567
        59
    fengpan567   255 天前
    又不是不能用!!
    lskjdfgl
        60
    lskjdfgl   255 天前
    if (result == true) {return true;} else {return false;}
    mahone3297
        61
    mahone3297   255 天前   ❤️ 1
    好简洁的写法。。。应该这样写

    ```
    public List<IssueStatistics> getIssueStatistics() {
    // 如果为 null,则返回 null
    if (issueStatistics == null) {
    return null;
    } else {
    // 如果不为 null,则返回本来的值
    return issueStatistics;
    }
    }
    ```
    ljzxloaf
        62
    ljzxloaf   255 天前
    pojo 不都这样吗?如果不是 pojo,他之前可能是写 c/c++的
    webcoder
        63
    webcoder   255 天前   ❤️ 1
    @SyncWorld 回去看半年前的代码,这是哪个傻 x 写的垃圾代码,哦是我啊,那没事了。
    dengji85
        64
    dengji85   255 天前
    真的高深莫测。你们这些凡人看不懂吧?还笑别人
    q9OxQg
        65
    q9OxQg   255 天前 via Android
    我不懂编程,不知道大家笑什么。但是我也还是笑了
    celeron533
        66
    celeron533   255 天前
    可能是为了未来的扩展性(逃
    daimen
        67
    daimen   255 天前
    不出 bug 的代码就是好代码,再说了,编译器会优化的
    bleepbloop
        68
    bleepbloop   255 天前
    也许是被资本家剥削得太狠,精神状态不大好呢?
    thtznet
        69
    thtznet   255 天前
    从经济学角度看,这个社会大部分的问题其本质都是经济问题
    tinyuu
        70
    tinyuu   255 天前   ❤️ 2
    挺好的 逻辑清晰,封装良好,设计充分,重构方便,拥抱未来。
    liuxey
        71
    liuxey   255 天前
    @anonydmer #23
    @liudaolunhuibl #18

    感谢提醒,写惯了 immutable 语言,Java 都快成伪代码了
    LiubaiQ
        72
    LiubaiQ   255 天前
    @daimen 代码不规范,用不了半年就难以维护了。。。
    daimen
        73
    daimen   255 天前
    @LiubaiQ 楼主就是来找相对于外包的优越感的,一两行代码能看出来个啥,我也是搞不懂了。
    iceneet
        74
    iceneet   255 天前
    ???迷惑主义
    cat007
        75
    cat007   255 天前
    没有 bug 的代码就是好代码
    jianpeng957
        76
    jianpeng957   255 天前
    有种为了炫技而炫技的感觉
    QRan
        77
    QRan   255 天前
    @lagoon 我也是这样想的,我自己菜我也就不发言了 ^_^哈哈哈
    UBcai
        78
    UBcai   255 天前
    贴的第一个代码,就是按照我这里需求来说,有些 list 是要返回 null,有些需要 new arraylist<>()(看了上面大佬的写法,我准备改为 Collections.emptyList()),这样写就需要看前端需要什么了,然后好改。 贴的第二个代码估计我太菜才一年多 java,我还是没看到哪里有问题?各位大佬有知道的给我分析分析么。
    wennew
        79
    wennew   255 天前
    这么闲吗,我从来不看别人代码,如果你是他上司就让他 checkstyle 下呗
    VictorJing94
        80
    VictorJing94   255 天前
    字母数计 kpi?
    treizeor
        81
    treizeor   255 天前
    很正常啊,定义私有变量 issueStatistics,然后编辑器生成的 setter/getter 基本都是这样
    Blanke
        82
    Blanke   255 天前
    应该是插件自动做的处理
    MineDog
        83
    MineDog   255 天前
    楼上说这么写正常的都是认真的?这明显是无效代码啊
    zhoulifu
        84
    zhoulifu   255 天前
    面向代码量编程
    sjzzz
        85
    sjzzz   255 天前
    有什么理由要进入这个方法,为啥不直接拿。这个代码的价值在哪?多了 3 行代码么?
    liushaokang
        86
    liushaokang   255 天前   ❤️ 4
    @66beta
    低情商:脱裤子放屁的封装方法
    高情商:留下可以扩展的口子,是个高手!
    Oktfolio
        87
    Oktfolio   255 天前
    见的多了,转岗过来半年了吧,他的工资应该至少是我的两倍。

    https://sm.ms/image/LDUw4SofCHXZ9Bi
    https://sm.ms/image/qrhiKj19LI6MmG4
    https://sm.ms/image/y2dx15UNubhknvf
    Oktfolio
        88
    Oktfolio   255 天前
    他们写的代码全是飘黄的,感觉 IDE 的提示对他们来说根本没有用
    idealhs
        89
    idealhs   255 天前
    有问题吗
    tairan2006
        90
    tairan2006   255 天前   ❤️ 1
    说没问题的建议转行
    Asuka0947
        91
    Asuka0947   255 天前   ❤️ 2
    这行代码会影响到你吗?会牵连到你吗?如果没有,大可不必管它,打工人没必要看不起打工人
    Sydney7106
        92
    Sydney7106   255 天前
    @ily433664 曾经有那么一段时间, 喜欢这样写. 只是为了分隔代码又不想提成方法~~
    hodur
        93
    hodur   255 天前
    @sjzzz 阿里的朋友?
    fenghengzhi
        94
    fenghengzhi   255 天前
    @vicalloy 应该只是想深拷贝一下吧
    treizeor
        95
    treizeor   255 天前
    @sjzzz 私有变量,外部必须通过 public 方法拿有问题吗
    Godikov
        96
    Godikov   255 天前   ❤️ 2
    刚入行时也经常瞧不上别人代码,时间久了这种代码都不会让我觉得蠢,甚至觉得可爱。
    LeroyMooney
        97
    LeroyMooney   255 天前
    @drydiy
    @endlessJ219
    @limuyan44
    @daimen
    @wennew
    统一回复一下,不包括 pojo 和 mapper 层,600 多行代码写了一星期,规范啥的先不提了,出现了 5 个问题,匿了
    janus77
        98
    janus77   255 天前
    可能第一个 null 以前不是 null 是一个空 list,后面需求变动,为了方便就把他改成 null 了。问题不大
    leavic
        99
    leavic   255 天前
    这 tm 写成 if else 还能多几行呢。
    lozzow
        100
    lozzow   255 天前
    原地 TP
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2693 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 12:39 · PVG 20:39 · LAX 04:39 · JFK 07:39
    ♥ Do have faith in what you're doing.