V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LeroyMooney
V2EX  ›  程序员

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

  •  
  •   LeroyMooney · Mar 19, 2021 · 32509 views
    This topic created in 1865 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  
    vicalloy
        101
    vicalloy  
       Mar 19, 2021
    @fenghengzhi 我开始也以为是深拷贝,确认后发现不是。结合其他代码,应当只是单纯的认为 Python 里的“Json 对象”和 dict/list 不是同一种东西。
    Colis
        102
    Colis  
       Mar 19, 2021   ❤️ 2
    可能之前想返回一个空的 List,后来需求变更为返回一个 null 。保留这么写方便以后再改回去。
    KarmaWu
        103
    KarmaWu  
       Mar 19, 2021
    Optional.ofNullable(issueStatistics).orElse(Collections.EMPTY_LIST);
    houOne
        104
    houOne  
       Mar 19, 2021
    @thtznet #69 单纯对这句话,你手里拿个锤子,看什么都是钉子。。
    QingStone
        105
    QingStone  
       Mar 19, 2021 via iPhone
    原地打转!
    lakehylia
        106
    lakehylia  
       Mar 19, 2021
    反正编译器会优化的,编译器又不傻
    JasonTsang
        107
    JasonTsang  
       Mar 19, 2021   ❤️ 1
    其实还好 ,可能暂时 状态 ,一般这种会多处调用 ,封闭成方法,如果这里被调用 1000 次,下次这里逻辑有变。只要改这里就可以了。当然 现在的代码是没意义的 直接 return issueStatistics 就可以了。但习惯是很好的。
    digimoon
        108
    digimoon  
       Mar 19, 2021
    可能原来是 A,后来改成 B,突然又要改成 C,想着以后估计还得弄成 D
    ssssstest
        109
    ssssstest  
       Mar 19, 2021
    虽然但是,没必要强调外包。非得加重歧视吗
    icanfork
        110
    icanfork  
       Mar 19, 2021 via iPhone   ❤️ 1
    内卷,还要强调外包,这也不是不能用
    PopRain
        111
    PopRain  
       Mar 19, 2021
    一周 600 行代码,搁到国外算高效了。。。。5 个错误,你选了一个最没有必要、不是错误的错误吐槽。。。。
    smilenceX
        112
    smilenceX  
       Mar 19, 2021
    谁还没写过几行烂代码了,这点小事,没必要专门发个帖。
    shifttacn
        113
    shifttacn  
       Mar 19, 2021
    抄的代码
    第二个 null 是后改的


    我见过比这个还复杂的
    dingdangnao
        114
    dingdangnao  
       Mar 19, 2021   ❤️ 4
    msaionyc
        115
    msaionyc  
       Mar 19, 2021   ❤️ 6
    也许有一天会有人贴出你的代码发帖:
    新来的专科 /本科同事,这代码,我???
    新来的非 985 同事,这代码,我???
    新来的非博士同事,这代码,我???
    新来的大龄同事,这代码,我???
    Jinnn
        116
    Jinnn  
       Mar 19, 2021   ❤️ 4
    新来的外包同事: 你歧视外包?
    新来的同事: 你歧视新来的?
    同事: 你歧视同事?
    zeropercenthappy
        117
    zeropercenthappy  
       Mar 19, 2021 via Android
    @dingdangnao 哈哈哈哈哈笑得我忘了代码写到哪了
    yousabuk
        118
    yousabuk  
       Mar 19, 2021 via iPhone
    你们工资一样吗?
    comoyi
        119
    comoyi  
       Mar 19, 2021
    这个命名有问题,歧义
    EscYezi
        120
    EscYezi  
       Mar 19, 2021 via iPhone
    这种写法 ide 会有黄色提示的,如果是之前有别的逻辑删了一些代码,不把告警消除了也说不过去啊
    tuomasi
        121
    tuomasi  
       Mar 19, 2021
    人家写的不好可以提醒一下,还跑论坛上 diss,外包何必为难外包,没准你在甲方眼里:看,狗咬狗
    Arthit
        122
    Arthit  
       Mar 19, 2021
    issueStatistics = issueStatistics ?? new List<IssueStatistics>();
    wiluxy
        123
    wiluxy  
       Mar 19, 2021   ❤️ 2
    文人相轻太正常了,发到论坛里,让大伙批斗一番。
    我觉得楼主要是能和这个外包同事指出问题所在,那就更好了
    ho121
        124
    ho121  
       Mar 19, 2021 via Android
    @msg7086 这种有时候会这么写,比如当 IsXXX()可以返回 null 的时候
    mingtdlb
        125
    mingtdlb  
       Mar 19, 2021
    这也要发上来?显得你牛逼吗?没什么深仇大恨,背后说人家不好....
    sinopf
        126
    sinopf  
       Mar 19, 2021
    外包项目嘛,后期不出点儿 bug,怎么心安理得的收服务费?
    bigbunny
        127
    bigbunny  
       Mar 19, 2021
    估计是本来有封装逻辑 后面因为什么原因去掉了
    chanchan
        128
    chanchan  
       Mar 19, 2021
    你这几张图太不痛不痒了,说实话
    shyling
        129
    shyling  
       Mar 19, 2021
    用嘴不能解决吗,还要发论坛批斗一下?
    jzmws
        130
    jzmws  
       Mar 19, 2021
    @ily433664 这种代码会在测试时候用 写一 不想动下面的代码 ,强制在上面执行 哈哈哈哈哈哈
    jzmws
        131
    jzmws  
       Mar 19, 2021
    @sutra 用 null 或者 Collections.emptyList() 都是可以的 , 个人更倾向用 null , Collections.emptyList() 他说静态变量不可变的, 要不然就要先判断 null 在判断 isEmpty , 大部分人空都习惯放回 null 二不会放回 一个空对象
    jzmws
        132
    jzmws  
       Mar 19, 2021
    外包不如🐕 能不去做外包就不要去, 夹在中间两边都歧视 . 出了问题都是外包的原因, 用最少的代价干着最多的活 .
    jsjgjbzhang
        133
    jsjgjbzhang  
       Mar 19, 2021
    楼主你是他领导么?我感觉也没多大问题啊,当面沟通下,拿论坛来贴大字报反倒显得小气了点
    ldlood
        134
    ldlood  
       Mar 19, 2021
    有什么当面指出,来论坛背后说别人,我觉得你也不咋样
    sakura1
        135
    sakura1  
       Mar 19, 2021
    这有点搞啊,还见过这个
    if(...){
    return true
    }else{
    return false
    }
    7gugu
        136
    7gugu  
       Mar 19, 2021 via iPhone
    凑活着用吧,看到就修复一下,反正也不是什么大不了的事,总会写着写着就短路的嘛🤣
    Smash
        137
    Smash  
       Mar 19, 2021
    @shiji #14 不要在编码阶段考虑太多无意义的封装,百分之 99 的概率,这行代码都不会动了,最后成为屎山。
    oldmanong
        138
    oldmanong  
       Mar 19, 2021 via iPhone
    培训班老师:记住啊,你们写代码一定要多检查 null,这样可以让人家觉得你很有经验。楼主同事:记住了
    isnullstring
        139
    isnullstring  
       Mar 19, 2021
    就这?
    easylee
        140
    easylee  
       Mar 19, 2021 via Android
    非要加外包两个字,何必呢?

    搞歧视么。
    hejw19970413
        141
    hejw19970413  
       Mar 19, 2021
    没事 编译器会改成 return issueStatistics
    ws52001
        142
    ws52001  
       Mar 19, 2021
    这也有歧视链??
    cgpiao
        143
    cgpiao  
       Mar 19, 2021 via iPhone
    所以你以后被人鄙视的时候想想自己的所作所为。没大能力,哪来的优越感。
    yrj
        144
    yrj  
       Mar 19, 2021 via iPad
    是不是有绩效?
    cd744639718
        145
    cd744639718  
       Mar 19, 2021
    哈哈哈,学到了
    liuzhenyu
        146
    liuzhenyu  
       Mar 19, 2021
    你以为你在第二层,他在第一层,实际他在大气层
    gwybiaim
        147
    gwybiaim  
       Mar 19, 2021
    @liudaolunhuibl 快别献丑了
    supermao
        148
    supermao  
       Mar 19, 2021
    哈哈哈哈哈哈哈哈
    rapperx2
        149
    rapperx2  
       Mar 19, 2021
    楼主能贴下你的代码给我们瞧瞧吗?学习学习
    mosliu
        150
    mosliu  
       Mar 19, 2021
    这个就不错了。在代码编译的时候应该会优化掉。 扩展性十足。不影响效率。

    爆一个前同事,自己号称当年高考数学满分的硕士写的代码

    使用 ES 。ES 库每个月也就 1,2T,数据量也不是太大。每条数据有多个现成的相似字段,相似数据条数从没有到几十万都有可能。单条数据量从 1k 到上百 k 都有。每条数据有时间戳字段,这是大环境

    需求是,比对一条数据是不是类似数据最早的,返回一个 bool 值。这位的做法是按相似值字段,从 ES 中取出 10000 条不做排序数据的所有的字段到内存中,按照日期字段的字符串直接比较得出结果。

    幸亏了他前面程序的一个判断出了 bug (功能故障没被测出来) 这段代码基本上跑不到,不然一次从 ES 拉取取几十 M 的数据做比较。那画面想想真醉了。前两天直接功能全部重写掉才舒心了。
    fakeJas0n
        151
    fakeJas0n  
       Mar 19, 2021
    写得有什么毛病?
    gwybiaim
        152
    gwybiaim  
       Mar 19, 2021
    别幼稚了!评《新来的外包同事,这代码,我???》
    https://v2ex.com/t/763248
    balckjoker
        153
    balckjoker  
       Mar 19, 2021
    大家都干一样的活,没必要说出来。
    mitu9527
        154
    mitu9527  
       Mar 19, 2021
    代码写的差是他的问题,嘲讽他就不太合适了,帮他一把不好么。
    msg7086
        155
    msg7086  
       Mar 19, 2021
    @ho121 #124 对,但是我们这是只返回 boolean 的 Java 代码……
    unco020511
        156
    unco020511  
       Mar 19, 2021
    高扩展高可用,哈哈
    Kilerd
        157
    Kilerd  
       Mar 19, 2021
    @vicalloy #24 你这个是典型的 deepcopy 的偷懒写法啊。 某些场景里面这么写性能其实也蛮好的。
    vicalloy
        158
    vicalloy  
       Mar 19, 2021
    @Kilerd 问题是没有需要 deepcopy 的东西,返回的对象都是当前函数里构建出来的。当初也怕是 deepcopy 没敢轻易修改。结合整体的”代码风格“,确认就是为了把对象转成`JSON`。
    Gladoos
        159
    Gladoos  
       Mar 19, 2021 via iPhone
    都是打工人 何必呢
    simple2025
        160
    simple2025  
       Mar 19, 2021
    @mosliu 我干过类似的,不过是 mysql
    Labs
        161
    Labs  
       Mar 19, 2021
    都是打工人
    talen666
        162
    talen666  
       Mar 19, 2021
    你是没见过我们公司外包写的代码。。想哭
    JerryCha
        163
    JerryCha  
       Mar 19, 2021
    除了看起来比较好笑,并没有什么问题。
    jdandelion573
        164
    jdandelion573  
       Mar 19, 2021 via Android
    这算啥 还见过 if(!(!a&&!b)) 的自嗨代码 反正没有 review 当然放飞自我
    proletarius
        165
    proletarius  
       Mar 19, 2021
    对自己又有信心了
    snowlyg
        166
    snowlyg  
       Mar 19, 2021
    代码没有错误就行,纠结那个多没啥用
    auh
        167
    auh  
       Mar 19, 2021
    实际上,不光外包的存在这样的问题。某些本公司的也是垃圾。
    所以说,描述的时候,别带外包。直接说同事垃圾就行了。
    我都见垃圾见多了。你还是太年轻了。你见过哪个高手死扣别人不放的。
    要么是有强迫症,要么就是没有社会经验,不懂变通。
    auh
        168
    auh  
       Mar 19, 2021   ❤️ 1
    嘲讽没有错,谁没有这样的垃圾同事。不过谁又总能遇到比自己还优秀,代码写的还钓的人。
    心态放平。该喷还喷,千万别认真。仅此而已。
    coolesting
        169
    coolesting  
       Mar 19, 2021 via Android
    抄底的人笑没有抄底的人,谁知道接下来是跌还是涨!?
    nowto
        170
    nowto  
       Mar 19, 2021
    可能是他想强调这个方法有可能返回 null
    a7dog
        171
    a7dog  
       Mar 19, 2021
    这是什么语言
    Fengyesuixiang
        172
    Fengyesuixiang  
       Mar 19, 2021   ❤️ 1
    外包怎么了,养活多少人你知道吗
    Hapon
        173
    Hapon  
       Mar 20, 2021 via iPhone   ❤️ 2
    代码这么写,确实不妥,就像这帖子一样
    SmartKeyerror
        174
    SmartKeyerror  
       Mar 20, 2021 via Android   ❤️ 1
    “每当你觉得想要批评什么人的时候,你切要记着,这个世界上的人并非都具备你禀有的条件。”
    大家都是同事,如果你觉得他写的不好,你可以选择帮他改。
    hankai17
        175
    hankai17  
       Mar 20, 2021 via iPhone
    感觉是改出来的结果
    James369
        176
    James369  
       Mar 20, 2021
    不用纠结这些细节,查查代码的历史记录。这段代码应该是有故事的。
    54skyer
        177
    54skyer  
       Mar 20, 2021
    写差代码跟是不是外包没有直接关系,可能几率大点而已。

    我以前在腾讯互娱心悦做外包,有一次活动对接 QQ 音乐,别人提供的 js 库对接出了问题,我排查发现是个 bug,联系对接方的正职员工并给出了解决方案,别人最后校验也认可了。但是,让我直接 copy 一份改好之后上传到到互娱心悦的 CDN,相当于一个官方库,让我修复 bug 本地使用,官方库 bug 保留。

    另外一个,有个正职大佬带我外包做一个内部项目,让 TX 各个手游接入到自己的游戏内活动页,领取哪些每日每周每月礼包之类的,传个 QQ 或者微信 openid 之类的参数即可,接入网关时候,有个加密校验,游戏客户端因为加密不对导致网关半天接不进去,各个语言的加密代码文档都备好了,包括天美这样的工作室下的游戏都有开发人员半天接不进来需要我协助的。

    做到最后,我把自己做得像个客服一样,天天给大佬们沟通问题。

    这些问题难吗,我觉得不难,我就一培训出来当时几千块月薪的外包。但这些正职大佬就是有一部分混子,或者不认真的。然后我干了快两年就升了一次外包职级涨了一千块,这个外包升职听说外包一年评估一次,每次通过率在整个外包人员是 10%-15%,涨薪就千把来块,由正职导师推荐。镀金可以,薪资潜力不高,后来我就离职了。

    外包也别把自己看轻,别人怎么看不重要,好好提升自己的技术,技术强了,你是外包又怎么样呢,如果比正职还厉害,可能羞愧的是别人。

    有想做外包的同事去大厂长下见识还是可以的,可以待个一两年,转正基本不要想,想转职不如好好提升技能到能说服导师的程度,然后让其帮你走社招进入;工作起始比较清闲和稳定,但工作内容可能有点枯燥。空闲的时候抓紧时间学习。正职员工大多都是跟我们一样的普通人,没那么多优越感,抓紧机会多多讨教学习。

    提出指出问题容易,解决问题指导别人更难能可贵。

    站在顶峰的人就那么一些,我们怎么看下面,上面就可能怎么看我们。

    歧视必然存在,尽量不内卷吧;
    hantsy
        178
    hantsy  
       Mar 20, 2021
    可能写的时候手抖了吧。

    判断为 NULL, 返回一个 Collections.emptyList(),这是比较常见的操作。

    在 Caller 调用保证所有的 Collection 不为 NULL 。


    @54skyer 有些人就喜欢标题来吸引人眼球。

    我自己 Freelancer 这么多年,也是接外包项目。没有独立做过外包项目的人,我觉得知识面和动手能力不是一般的差(我帮朋友公司面试过很多人,之前已经举过很多例子)。
    hantsy
        179
    hantsy  
       Mar 20, 2021
    @LeroyMooney

    一个星期如果写的 600 行高质量的代码已经不错了,比如包含在 CI 上跑过完整的测试,达到要求的 Coverage, 并且代码质量报告评估通过(没有引入新的 bad smell, 没有 duplicate codes, 通过 Sonar,Coday,Code Climate 等工具检测),最终合并到 Master 。

    很多时候我一个星期都是写不了 600 行代码的。

    如果你写的代码仅仅在你机器能够跑起来,这个标准写出来再多的代码不就是屎山,谁见谁怕。
    hantsy
        180
    hantsy  
       Mar 20, 2021
    @PopRain 相当高效的啦。
    lyyhello
        181
    lyyhello  
       Mar 20, 2021
    代码没毛病。能编译过就不错了。大哥
    snuglove
        182
    snuglove  
       Mar 21, 2021
    因为你强调了外包 这可是一个大的群体.
    Gooeeu
        183
    Gooeeu  
       Mar 21, 2021
    @liudaolunhuibl 可以解释下 2 吗?


    @anonydmer 写 Java 的时候最怀念的 C++ keyword 是 const, 写 C++ 的时候非常讨厌 const (因为菜。。因为总是标不对).... 第二怀念的是 template 。
    solobat
        185
    solobat  
       Mar 21, 2021
    不是啥大问题,那些自以为是、途有其形的代码更要命,比如 x 度的码神训练营。
    wulinn
        186
    wulinn  
       Mar 22, 2021
    感觉没啥问题,这已经是很好的代码了,至少会三目运算
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3081 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 203ms · UTC 14:49 · PVG 22:49 · LAX 07:49 · JFK 10:49
    ♥ Do have faith in what you're doing.