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

练习两年半的同事写的代码

  •  2
     
  •   MIUIOS · 2021 年 12 月 30 日 · 28580 次点击
    这是一个创建于 1484 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新来的同事写的代码,两年半工作经验,一个 CURD 功能写了一星期,今天看了 git commit ,我不做评论,各位看官看吧
    图片

    206 条回复    2022-01-04 17:46:30 +08:00
    1  2  3  
    ytll21
        1
    ytll21  
       2021 年 12 月 30 日   ❤️ 5
    槽点太多,无从下手
    qiany
        2
    qiany  
       2021 年 12 月 30 日   ❤️ 3
    你们公司还招人吗
    66beta
        3
    66beta  
       2021 年 12 月 30 日
    不懂 java ,但我觉得注释不行
    glfpes
        4
    glfpes  
       2021 年 12 月 30 日   ❤️ 3
    试用期就是给这种贵物准备的。

    面试的人呢?拖出去枪毙十分钟。
    aragakiyuii
        5
    aragakiyuii  
       2021 年 12 月 30 日
    这咋面试过的
    IamCyborg
        6
    IamCyborg  
       2021 年 12 月 30 日   ❤️ 1
    前端表示看不懂,没学过 java ,有人解释一下吗
    xiao109
        7
    xiao109  
       2021 年 12 月 30 日   ❤️ 2
    这不写的挺好的嘛,map 入参减少新建一个类的麻烦。
    现在两年半经验约等于零经验。培训班出来都是两年经验起步
    murmur
        8
    murmur  
       2021 年 12 月 30 日   ❤️ 7
    update = 获取,我英语是跟体育老师学的么
    k9982874
        9
    k9982874  
       2021 年 12 月 30 日   ❤️ 7
    用 map 充分考虑到了 api 的扩展性,没毛病,建议全司推广🐶️
    zhoudaiyu
        10
    zhoudaiyu  
    PRO
       2021 年 12 月 30 日   ❤️ 1
    你们公司还招人吗
    MIUIOS
        11
    MIUIOS  
    OP
       2021 年 12 月 30 日 via iPhone
    @k9982874 硬是把面对对象概念按在地上打
    nonoyang
        12
    nonoyang  
       2021 年 12 月 30 日
    我怀疑除了方法里面的内容,其他的都是从别的地方拷贝过来的。。。
    hiwind
        13
    hiwind  
       2021 年 12 月 30 日   ❤️ 5
    map 一把梭 要啥 get 啥
    ltmst
        14
    ltmst  
       2021 年 12 月 30 日
    前端看到接口名会不会心里会不会**
    mineralsalt
        15
    mineralsalt  
       2021 年 12 月 30 日   ❤️ 10
    1.map 做参数是不太好, 但是也有实际应用场景
    2.return null 问题比较大, 这里应该抛异常然后全局处理异常, 或者用 ApiResult.error()
    3.equal 写的不规范容易空指针异常
    4.id 没有判空, 也容易空指针
    night98
        16
    night98  
       2021 年 12 月 30 日   ❤️ 14
    http method -》 post
    func name -》 update
    service func name -》 get

    好家伙,差点就集齐神龙了
    xinyang5302677
        17
    xinyang5302677  
       2021 年 12 月 30 日   ❤️ 5
    他是不是你工资比你高?
    auto
        18
    auto  
       2021 年 12 月 30 日
    fkdtz
        19
    fkdtz  
       2021 年 12 月 30 日   ❤️ 5
    这是高手,要写让人一看就懂的代码,无论是初学者还是架构师,而不是写炫技的代码。
    timothyye
        20
    timothyye  
       2021 年 12 月 30 日
    @murmur 估计是复制粘贴忘了改
    rrZ2C
        21
    rrZ2C  
       2021 年 12 月 30 日
    这是传说中的参数封装吧
    ex1gtnim7d
        22
    ex1gtnim7d  
       2021 年 12 月 30 日
    也许槽点在于,写了一星期
    MIUIOS
        23
    MIUIOS  
    OP
       2021 年 12 月 30 日 via iPhone
    @nonoyang 自信点,怀疑两个字去掉
    murmur
        24
    murmur  
       2021 年 12 月 30 日
    @auto 这个没看出问题来。。。
    hccsoul
        25
    hccsoul  
       2021 年 12 月 30 日
    我看懂了,但我还是大受震撼
    liangch
        26
    liangch  
       2021 年 12 月 30 日
    不大懂。map 参数不判 null 么?
    MIUIOS
        27
    MIUIOS  
    OP
       2021 年 12 月 30 日
    @xinyang5302677 那倒不至于
    jiyingze
        28
    jiyingze  
       2021 年 12 月 30 日
    第一行 if 可能抛两个 npe
    哈哈哈
    zzvgtiger
        29
    zzvgtiger  
       2021 年 12 月 30 日
    @auto 颇有异曲同工之妙
    zpxshl
        30
    zpxshl  
       2021 年 12 月 30 日 via Android   ❤️ 1
    @glfpes 他们会说你是精神资本家
    yazinnnn
        31
    yazinnnn  
       2021 年 12 月 30 日
    槽点是挺多的。。。
    majiaxxyy
        32
    majiaxxyy  
       2021 年 12 月 30 日
    入参 map 一时爽,后期维护惨。 前面的 return null 前端怎么知道要干嘛。 后面的 return 都知道回个 success 。
    glfpes
        33
    glfpes  
       2021 年 12 月 30 日
    @zpxshl 那就让他们和这种贵物一块干活,给他擦屁股吧。
    mango88
        34
    mango88  
       2021 年 12 月 30 日
    项目中有类似的代码(不是他提交的) ?
    zzvgtiger
        35
    zzvgtiger  
       2021 年 12 月 30 日
    @totoro52 方法名不太合适、参数用 map 也不太合适、equals 按照上面那样写容易空指针、除特殊情况下方法最好不要返回 null 这些是我看出来的 不知道别的还有没有
    MIUIOS
        36
    MIUIOS  
    OP
       2021 年 12 月 30 日 via iPhone
    @mango88 第一次见到这种,代码已经全部打回重写了
    zzvgtiger
        37
    zzvgtiger  
       2021 年 12 月 30 日
    @totoro52 回复错人了 不好意思
    ZField
        38
    ZField  
       2021 年 12 月 30 日
    槽点很多,map 传参、返回值不规范、校验可以用注解……
    Zeffon
        39
    Zeffon  
       2021 年 12 月 30 日   ❤️ 3
    工资估计高于楼主吧
    cxshun
        40
    cxshun  
       2021 年 12 月 30 日
    参数用 map ,后续估计想死的心都有了。
    CRUD 一个星期倒不是啥问题,有可能刚入职,很多不清楚,要熟悉一下。只是上面的 map 槽点就真是没法理解了。

    PS:我厂,某养猪的,定义的接口就是一个 dict ( python 语言),作为一个 javaer ,真是受不了。虽然前期方便,但后续真的是坑爹啊。
    cslive
        41
    cslive  
       2021 年 12 月 30 日   ❤️ 2
    既然用 map 接参,那就应该继续用 map 反参🐶
    ltf127001
        42
    ltf127001  
       2021 年 12 月 30 日
    公司新来的四年工作经验大佬,变量定义 300+行,两个 for 循环,每个循环 1000+行,一个业务 2300+行代码😦
    coderluan
        43
    coderluan  
       2021 年 12 月 30 日
    比起网友怎么看,楼主你的领导和同事怎么看,如果他们没啥看法,那么该离职的人应该是楼主自己哦......
    MIUIOS
        44
    MIUIOS  
    OP
       2021 年 12 月 30 日
    @coderluan 我是管他们的人
    MIUIOS
        45
    MIUIOS  
    OP
       2021 年 12 月 30 日 via iPhone
    @aragakiyuii 不是我面的,漏网之鱼
    nba2k9
        46
    nba2k9  
       2021 年 12 月 30 日   ❤️ 1
    又不是不能用
    xianyu191031
        47
    xianyu191031  
       2021 年 12 月 30 日
    面试的人要负很大责任
    snuglove
        48
    snuglove  
       2021 年 12 月 30 日
    @totoro52 哈哈哈,领导竟是我自己
    HHAO2019
        49
    HHAO2019  
       2021 年 12 月 30 日
    团队没有制定开发规范吗?
    Suddoo
        50
    Suddoo  
       2021 年 12 月 30 日 via iPhone   ❤️ 2
    这种基础 crud 代码不应该建好表后,直接用代码生成器生成吗? 5 分钟搞定
    MIUIOS
        51
    MIUIOS  
    OP
       2021 年 12 月 30 日 via iPhone
    @HHAO2019 我写了文档的,文档详细说明了开发规范,他全部避开了
    JKeita
        52
    JKeita  
       2021 年 12 月 30 日
    我比较好奇这注释。。。
    linbingcheng
        53
    linbingcheng  
       2021 年 12 月 30 日
    这种没法用 Swagger ,难受, 并且这注释还不如没注释
    dddd1919
        54
    dddd1919  
       2021 年 12 月 30 日
    以前不理解为啥开发盯着屏幕能笑得这么欢乐,看这个代码真的处处充满欢乐
    wyhooo
        55
    wyhooo  
       2021 年 12 月 30 日   ❤️ 1
    @ltf127001 年底因代码提交量最多而升职
    nicegoing
        56
    nicegoing  
       2021 年 12 月 30 日
    这个应该要统一封装返回数据的格式吧。出现 null ,也好统一处理呀
    AlkTTT
        57
    AlkTTT  
       2021 年 12 月 30 日
    md ,看到 map 传参血压都上来了
    francis59
        58
    francis59  
       2021 年 12 月 30 日
    这两年半经验是包装出来的吗?
    zmqking
        59
    zmqking  
       2021 年 12 月 30 日   ❤️ 3
    有必要这样对我吗,自己几斤几两不知道吗?
    zepc007
        60
    zepc007  
       2021 年 12 月 30 日
    python 同学表示这不正常吗? Java 里正常应该用啥传参? DTO ?
    yaphets666
        61
    yaphets666  
       2021 年 12 月 30 日
    培训班出来的
    yaphets666
        62
    yaphets666  
       2021 年 12 月 30 日
    而且是班里的差生
    cvbnt
        63
    cvbnt  
       2021 年 12 月 30 日 via Android
    现在培训班教出来的都不会用 map 传参
    aeiou520
        64
    aeiou520  
       2021 年 12 月 30 日
    我觉得不是培训班出来的..培训班出来的起码知道面向对象
    NoString
        65
    NoString  
       2021 年 12 月 30 日
    这也行?
    liub34177
        66
    liub34177  
       2021 年 12 月 30 日
    入参怎么还用 map ,而且为啥用 Object 当 Value ????
    james2013
        67
    james2013  
       2021 年 12 月 30 日   ❤️ 3
    真的不容易,能够在短短几行出现这么多问题:
    1.获取数据推荐使用 GET 方法
    2.方法名称有问题
    3.参数传值使用 map
    4.参数校验和返回有问题
    5.注释有问题
    baolinliu442k
        68
    baolinliu442k  
       2021 年 12 月 30 日
    尴尬 我居然觉得没啥问题
    murmur
        69
    murmur  
       2021 年 12 月 30 日
    @liub34177 为啥不能用 map 啊,我们在做少代码,入参都是变的,那不用 map 用 object 么,而且 body 以 json 过来不就是个 map 么
    stkstkss
        70
    stkstkss  
       2021 年 12 月 30 日
    图挂了
    banmuyutian
        71
    banmuyutian  
       2021 年 12 月 30 日
    @murmur #69
    因为 map 的可维护性很差
    ryanbuu
        72
    ryanbuu  
       2021 年 12 月 30 日
    @murmur 因为别人要猜这个葫芦里装的是什么屎。。。
    ila
        73
    ila  
       2021 年 12 月 30 日 via Android
    @murmur 做了参数检测,自己组合到 map 没问题
    lucays
        74
    lucays  
       2021 年 12 月 30 日
    python 也可以用 object 的,比如 pydantic 或者基本的 dataclass
    ytmsdy
        75
    ytmsdy  
       2021 年 12 月 30 日
    很好奇,工资多少?
    如果没过 10k ,那就当作没看到,能跑就行了。
    如果过了 10k ,那就可以直接劝退了!
    yousabuk
        76
    yousabuk  
       2021 年 12 月 30 日 via iPhone
    越是高手在写代码时越是谨慎,经过反复推敲后写出最精简、干练的代码。

    哈哈
    em998
        77
    em998  
       2021 年 12 月 30 日
    kotlin 用久了都忘了要处理空指针异常了🤣
    tanranran
        78
    tanranran  
       2021 年 12 月 30 日
    @q1angch0u #72 笑死了
    h82258652
        79
    h82258652  
       2021 年 12 月 30 日
    我以为.net 这边烂人多,没想到 java 那边的高手更厉害[狗头]
    之前见过 dynamic 随处飘的,但至少命名还算是个正常人,楼主你这个同事的思维就贼离谱
    leafre
        80
    leafre  
       2021 年 12 月 30 日
    你负责 review 代码?如果不是,领导没说话,咱就干好自己的活
    rpman
        81
    rpman  
       2021 年 12 月 30 日
    动态语言写多了甚至第一眼没觉得违和 (
    potatowish
        82
    potatowish  
       2021 年 12 月 30 日 via iPhone
    1.代码看上去是复制粘贴的,但是注释和方法名没改
    2.参数用 map
    3.equals 比较错误
    4.接口返回结果混乱,前面返回 null ,后面返回 ApiResult
    但凡有个一年经验的外包也不至于写成这样,建议直接辞退,不然以后会埋很多坑
    wamson
        83
    wamson  
       2021 年 12 月 30 日 via iPhone
    python 写多了,扫一眼只觉得函数名和注释不规范(狗头
    preach
        84
    preach  
       2021 年 12 月 30 日
    现在开除还来及
    NeoZephyr
        85
    NeoZephyr  
       2021 年 12 月 30 日
    @66beta 有就不错了
    NeoZephyr
        86
    NeoZephyr  
       2021 年 12 月 30 日
    @mineralsalt 能跑起来就行了,管那么多啊
    NeoZephyr
        87
    NeoZephyr  
       2021 年 12 月 30 日
    @banmuyutian 你给我说说维护性差在哪里?张口就来
    Amber2011
        88
    Amber2011  
       2021 年 12 月 30 日 via Android
    我们这里也有一个这样,还好代码后续不是我维护的。还有用 String 接请求,然后手动 json 解析成 map 。
    zhoudaiyu
        89
    zhoudaiyu  
    PRO
       2021 年 12 月 30 日
    怼上去就完了
    wfd0807
        90
    wfd0807  
       2021 年 12 月 30 日
    看开,能跑就行
    banmuyutian
        91
    banmuyutian  
       2021 年 12 月 30 日
    @NeoZephyr #87
    1.swagger(或者类似的自动生成 api 文档工具)没法用,除非手写注解生成或者维护一份 api 接口文档,参数更新的时候也要维护
    2.产生一堆魔法值同样是难以维护的
    3.后续接手代码的人还要一个一个去查找参数
    banmuyutian
        92
    banmuyutian  
       2021 年 12 月 30 日
    @NeoZephyr #87
    倒是想你给我说说维护性好在哪
    banmuyutian
        93
    banmuyutian  
       2021 年 12 月 30 日
    @banmuyutian #91
    第一条还要补充一下,按照截图中的注释说明以及大部分程序员的习惯(包括我),怕是做不到手工维护 API 文档
    shayuvpn0001
        94
    shayuvpn0001  
       2021 年 12 月 30 日
    代码和他两个任意一个能跑就行:

    代码可以跑,他没跑,你们可以把他按倒地上摩擦;
    代码不能跑,他跑了,代码可以把你们按在地上摩擦;
    NeoZephyr
        95
    NeoZephyr  
       2021 年 12 月 30 日
    @banmuyutian 不对啊,用 swagger 肯定是原来代码里面就这样的啊,也不是他引入的
    NeoZephyr
        96
    NeoZephyr  
       2021 年 12 月 30 日
    @banmuyutian 维护性好不好是相对的,如果根本就没有维护的必要,要那么好的维护性干嘛
    fffang
        97
    fffang  
       2021 年 12 月 30 日
    看着好像没什么问题
    banmuyutian
        98
    banmuyutian  
       2021 年 12 月 30 日   ❤️ 1
    @NeoZephyr #96
    这是项目代码不是个人小玩具,如果你无意提高自己编码质量的话说再多也没用,总能找到反驳的理由
    Kimen
        99
    Kimen  
       2021 年 12 月 30 日
    他试用期要是能过,劳资立马转行
    lybcyd
        100
    lybcyd  
       2021 年 12 月 30 日
    最大的问题是 return null 吧,接口要返回明确的错误信息

    其他的地方,Java 程序员当然看不下去,但是如果这人原来是写 python 或 php 之类的,就好像看上去并没有什么问题。不过也说明至少不是 Java 熟练工了,各种 VO ,DTO 之类的玩得少
    1  2  3  
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:25 · PVG 07:25 · LAX 15:25 · JFK 18:25
    ♥ Do have faith in what you're doing.