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

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

  •  
  •   LeroyMooney · Mar 19, 2021 · 33823 views
    This topic created in 2055 days ago, the information mentioned may be changed or developed.
    public List<IssueStatistics> getIssueStatistics() {
        return issueStatistics == null ? null : issueStatistics;
    }
    
    Supplement 1  ·  Mar 19, 2021
    楼下好像蛮多人指责我的
    1 、关于标题中的“外包”一词:并没有歧视的意思,跟公司其他外包同事相处的很愉快。标题中的“外包”是不是戳着某些人伤口了?
    2 、关于说我没有当面指出的:这是我跟他说了两次之后修改的版本
    186 replies  •  2021-03-22 08:56:52 +08:00
    1  2  
    ❮ ❯
    Leonard
    Leonard
    Mar 19, 2021
    1
    哈哈哈哈哈哈
    quan01994
    quan01994
    Mar 19, 2021❤️7
    2
    别问,问就是按代码量计费的。
    legiorange
    legiorange
    Mar 19, 2021 via Android
    3
    ?
    mazai
    mazai
    Mar 19, 2021
    4
    脱裤子放屁,多此一举😂
    Guidoo
    Guidoo
    Mar 19, 2021
    5
    哈哈 这代码。。 强行封装
    MIUIOS
    MIUIOS
    Mar 19, 2021
    6
    笑死我了 这就是脱裤子放屁啊
    bzw875
    bzw875
    Mar 19, 2021
    7
    可能是不知不觉摸了 1 天鱼,随便写几行代码提交吧
    auin
    auin
    Mar 19, 2021
    8
    public List<IssueStatistics> getIssueStatistics() {
    return issueStatistics == null ? new ArrayList<>() : issueStatistics;
    }

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

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

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

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

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

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

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

    ——

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

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

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

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