MIUIOS
V2EX  ›  Java

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

  •  2
     
  •   MIUIOS · Dec 30, 2021 · 30512 views
    This topic created in 1778 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

    其他的地方,Java 程序员当然看不下去,但是如果这人原来是写 python 或 php 之类的,就好像看上去并没有什么问题。不过也说明至少不是 Java 熟练工了,各种 VO ,DTO 之类的玩得少
    1  2  3  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1368 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 197ms · UTC 17:13 · PVG 01:13 · LAX 09:13 · JFK 12:13
    ♥ Do have faith in what you're doing.