MIUIOS
V2EX  ›  Java

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

  •  2
     
  •   MIUIOS · Dec 30, 2021 · 29576 views
    This topic created in 1649 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  
    houOne
        101
    houOne  
       Dec 30, 2021
    @rrZ2C #21 我 tm 哈哈哈哈哈哈
    guopongex19891
        102
    guopongex19891  
       Dec 30, 2021
    acfun
    OMGZui
        103
    OMGZui  
       Dec 30, 2021
    sakura1
        104
    sakura1  
       Dec 30, 2021
    语法最大的问题应该是没有考虑异常逻辑和空指针的情况吧。如果是异常逻辑的话,看来下层的接口没有异常声明,那就也没问题。空指针的话,确实有点离谱了,虽然一个函数的返回值可能是 null 从接口 api 看不出来,但是 jdk 的类库 Map 的 get 会返回 null 这点常识的应该知道。如果这个接口只处理用于前端或客户端拼接出来的请求,应该都是带 id 的。。

    其实仔细看之后感觉还是 map 作为参数的问题比较大,map 作为参数,里面有哪些具体参数从代码上不能自解释,但是文档里又啥也没写,用这个接口的人只能微信之类的上问。

    说到口口相传,确实**
    johnsona
        105
    johnsona  
       Dec 30, 2021 via iPhone
    就 map 传参了怎么样
    HENQIGUAI
        106
    HENQIGUAI  
       Dec 30, 2021   ❤️ 2
    @totoro52 #49 这正说明他肯定认真读了你写的开发规范,不然不会避开的这么彻底。。。
    JamesMackerel
        107
    JamesMackerel  
       Dec 30, 2021
    有时候写参数表,我喜欢在最后面留一个 Map<String, Object> extraInfo ……免得到时候改起来不够“敏捷”。
    tankren
        108
    tankren  
       Dec 30, 2021
    直接让他主动离职吧 不然等试用期判他不合格他跟你闹腾
    JoeBreeze
        109
    JoeBreeze  
       Dec 30, 2021   ❤️ 2
    @zmqking #59 这位是代码的作者吗? 突然想到我会不会在这里看到我自己的代码, 害 pia
    TelltoLies
        110
    TelltoLies  
       Dec 30, 2021
    太多可以吐槽的了,,,日志没有 、注释不规范、object 超类也有很大的问题、、这个 map 取值比较 真的一言难尽。。正常 java 程序员都不会写出这种代码
    cxl008
        111
    cxl008  
       Dec 30, 2021
    map.get 可能返回空 调用 equals 会报异常。。。。。
    xianyv
        112
    xianyv  
       Dec 30, 2021
    拖出去直接祭天了吧
    yogapants
        113
    yogapants  
       Dec 30, 2021
    贵公司还找人吗?我觉得我写的比他好一点呢,这种功能应该写不了一个礼拜
    la2la
        114
    la2la  
       Dec 30, 2021
    挺好的,前期都把活干好了,我们不都失业了么。狗头.jpg
    bl
        115
    bl  
       Dec 30, 2021
    这种代码看到就想吐槽
    hidemyself
        116
    hidemyself  
       Dec 30, 2021
    我就想问工资多少,要是比我高,我不能接受的
    lululau
        117
    lululau  
       Dec 30, 2021
    @glfpes 公司就给 5k 的预算,你想让我招个什么样的。。。
    456789
        118
    456789  
       Dec 30, 2021
    传 map 打死
    leexy
        119
    leexy  
       Dec 30, 2021
    看着跟我们公司那群 java 开发写的差不多啊
    florianX
        120
    florianX  
       Dec 30, 2021
    开发规范这种东西,我比较菜 基本没碰到过硬性要求,代码统一,能跑就行
    notwaste
        121
    notwaste  
       Dec 30, 2021
    自称两年半的话基本可以断定是培训出来的了
    jswh
        122
    jswh  
       Dec 30, 2021
    用 map 的话可能是 PHP 转过来的,就是这个 获取 post update ,我实在不知道怎么辩解。
    binaryxia
        123
    binaryxia  
       Dec 30, 2021
    槽点太多,无从下手
    unco020511
        124
    unco020511  
       Dec 30, 2021
    每次看到什么 map 传参或者作为 result,还有解析用什么 jsonObject 的都好头疼,后面维护的人不得骂爹娘了
    sunchunyang
        125
    sunchunyang  
       Dec 30, 2021
    测试人员提意见了没有?
    mkdir
        126
    mkdir  
       Dec 30, 2021
    就想知道开多少工资
    yogapants
        127
    yogapants  
       Dec 30, 2021
    @unco020511 我们部门有个老哥工作 10 多年了,有次来我们组帮忙不知道是报复还是怎么回事直接 map 返回的时候 key 是中文,后面我去迁移改造不动前端,真的是一边改一边骂娘。大家都说他技术好,可能大佬真的不屑于这些细枝末节吧
    msg7086
        128
    msg7086  
       Dec 30, 2021
    我们组上个月刚开掉一个代码写得比你贴的好很多的人,开除原因是能力不行。
    hahaba
        129
    hahaba  
       Dec 30, 2021
    别跟我扯什么实体类啊 vo 啊 bo 啊,老夫写代码从来都是 map 一把梭,不怕产品改需求
    unco020511
        130
    unco020511  
       Dec 30, 2021
    @yogapants 真大佬往往都有代码洁癖
    zhoiiiii
        131
    zhoiiiii  
       Dec 30, 2021
    看着确实头大,一眼看下去就有三四个地方可能出现异常
    emhhb2ppy
        132
    emhhb2ppy  
       Dec 30, 2021
    字体挺好看的
    darkengine
        133
    darkengine  
       Dec 30, 2021
    先别说 Java 语言的问题了,用 post 请求获取数据,API 名字叫 update 。。。。。。
    ww940521
        134
    ww940521  
       Dec 30, 2021
    没办法 我们公司后端要的也是 map ,我也只能传 Map 也没文档参数总是对照不上。
    alihanniba
        135
    alihanniba  
       Dec 30, 2021
    啥问题
    Marszm
        136
    Marszm  
       Dec 30, 2021   ❤️ 2
    太灵活了。。。。万能啊。。我悟了大师。。。去 TMD 面向对象,要对象干什么,我 Map 就是自由精神的极致体现。
    你们前端随便怎么传,我以不变应万变。
    murmur
        137
    murmur  
       Dec 30, 2021
    @darkengine 这个其实真不是坑,post 没有 url 的限制,body 想怎么放怎么放,天然还不缓存,企业内部开发用这个太爽了
    hhjswf
        138
    hhjswf  
       Dec 30, 2021 via Android
    map 看情况...我们有个很蛋疼的原因,哪怕就一个参数 id 也要用 body ,然后就...不可能建实体吧,那就 json map 咯..
    ryanbuu
        139
    ryanbuu  
       Dec 30, 2021
    @murmur 歪个楼。。。get 有啥 url 的限制吗
    ozipin
        140
    ozipin  
       Dec 30, 2021   ❤️ 2
    post 请求我可以接受,update 命名的方法我可以理解为复制粘贴忘记改过来了,但是这个入参和方法内容真的一行一个坑。map 接收参数,从 map 中获取的对象直接使用 equals ,有统一的返回结构直接返回 null ,从 map 中获取对象直接类型强转,获取数据不做处理。好奇工资多少
    pengtdyd
        141
    pengtdyd  
       Dec 30, 2021
    大家别吵了~~~~~~,给我人皇一个面子,我说句公道话:又不是不能跑,改它干啥,万一,我是说万一改崩了呢
    boringcc
        142
    boringcc  
       Dec 30, 2021
    不会依葫芦画瓢吗。。。。
    LiMingze
        143
    LiMingze  
       Dec 30, 2021
    看着代码 我已经开始生气了[○・`Д´・ ○]
    murmur
        144
    murmur  
       Dec 30, 2021
    @q1angch0u url 长度 4000 啊,谁知道以后要传什么 jb 东西
    bluekz
        145
    bluekz  
       Dec 30, 2021
    大家都在说 map 传参数,为啥我槽点不一样。
    看注释这是“获取单条数据”方法,看方法名,这是 update ?
    就怕旁人看明白我代码系列。
    HolmLoh
        146
    HolmLoh  
       Dec 30, 2021   ❤️ 3
    我也给大家看看 1 年的练习生

    keeley
        147
    keeley  
       Dec 30, 2021
    第一大问题是 是 update 命名吧,实际做的是 get 吧。
    语义习惯都破坏了。
    abc0123xyz
        148
    abc0123xyz  
       Dec 30, 2021
    挺好的,你们格局小了,这样可以一个人带动两个兄弟就业
    c6h6benzene
        149
    c6h6benzene  
       Dec 30, 2021
    PostMapping ,这是获取数据还是更新数据…
    bigxianyu
        150
    bigxianyu  
       Dec 30, 2021 via Android
    想不到大家对这一段代码这么热情,这 code review 看来能搞起来了。。。
    WilliamYang
        151
    WilliamYang  
       Dec 30, 2021
    你可以考虑下,反正我绝对不跟这种做同事
    Latin
        152
    Latin  
       Dec 30, 2021
    当面吐槽 (不行)
    来 V 站嘲评 (可以)
    leeyom
        153
    leeyom  
       Dec 30, 2021 via iPhone
    1.入参 map 一时爽,重构火葬场
    2.if equal 左侧如果出现 null ,直接异常
    3.直接 return null ,没有用 ApiResult 包装
    4.直接从 map 取出后强转,有可能异常
    chengyunbo
        154
    chengyunbo  
       Dec 30, 2021
    @AlkTTT java map 不能传参了?
    shayuvpn0001
        155
    shayuvpn0001  
       Dec 30, 2021   ❤️ 1
    @HolmLoh 甭不住了,神特么 Pro ,笑死~
    wellsc
        156
    wellsc  
       Dec 30, 2021
    亲手维护过更加恶心的代码,一点都笑不出来
    einq7
        157
    einq7  
       Dec 30, 2021
    @HolmLoh #146 这个是更新方法的 Pro 版本?
    yurong333333
        158
    yurong333333  
       Dec 30, 2021
    人人框架的 controller 层的 page 查询也用 map 入参。。。不知道大佬们怎么看
    bestwaytowait
        159
    bestwaytowait  
       Dec 30, 2021
    map 是有可以理解的方向的啊,主要命名和 map get 之后可能的 exception 吧
    donggexiongdi
        160
    donggexiongdi  
       Dec 30, 2021
    挺好啊

    还想怎么
    HunterPan
        161
    HunterPan  
       Dec 30, 2021 via iPhone
    还是太年轻,再垃圾的代码也见过,指导下再看看有进度没有
    Arainc
        162
    Arainc  
       Dec 30, 2021
    我刚把截图发给我老婆看了下,我老婆说这个写的正常,哈哈哈哈哈哈哈
    Bijiabo
        163
    Bijiabo  
       Dec 30, 2021
    被同事磨练的我看了之后只想说一句:这算啥,小意思 T_T
    xtinput
        164
    xtinput  
       Dec 30, 2021
    post application/json 接口传给后台不就是一个字典吗?
    post application/x-www-form-urlencoded 提交那就要一个参数一个参数定义了

    对于 Java 我也不懂,我是客户端开发的
    xtinput
        165
    xtinput  
       Dec 30, 2021
    遇到最恶心的接口是 list 和直接 string 传参,iOS 的主流网络请求框架都是字典传参,如果出现数组和直接丢 string 的只能用原生直接设置 body
    redford42
        166
    redford42  
       Dec 30, 2021
    他很厉害,他考零分
    yzbythesea
        167
    yzbythesea  
       Dec 31, 2021
    map 传参,即使 map 传参,value 也不能直接用 object

    异常处理,直接抛 null ,不处理 NPE

    命名这些跟上面比都是小问题了
    pydiff
        168
    pydiff  
       Dec 31, 2021 via iPhone
    个人感觉这种可以直接炒了,留着后患无穷,鬼知道他能给你留多少坑
    xuanbg
        169
    xuanbg  
       Dec 31, 2021
    处处都是槽点,看得我都懵逼了,以致我无从吐起。。。
    shellic
        170
    shellic  
       Dec 31, 2021
    以前写弱类型语言的吧
    banmuyutian
        171
    banmuyutian  
       Dec 31, 2021
    @einq7 #157
    槽点在于 handler 声明为 Spring Bean ,调用的时候却手动 new 一个出来
    AlanDSF
        172
    AlanDSF  
       Dec 31, 2021
    最大的草点难道不是写这么烂还写了一星期吗。。。
    rapperx2
        173
    rapperx2  
       Dec 31, 2021   ❤️ 2
    楼上那些别动不动就提培训班出来的,你读大学出来的,你牛掰,你把你写的代码拿出来看看嘛?
    niub
        174
    niub  
       Dec 31, 2021
    Code Review 的时候可以提醒一下(如果你们有),在这里吐槽解决不了什么问题。
    Renco
        175
    Renco  
       Dec 31, 2021
    看楼里有说 获取用 GET 方法。不知道各位公司的前端同事 接不接受用 GET + RequestBody 的请求模式 。虽然理论上这种请求后可以实现功能,但前端都觉得这个写法很傻逼。有些查询条件过多,用 RequestParam 又不太合适。
    Renco
        176
    Renco  
       Dec 31, 2021
    现在公司架构 一把梭, 全部用 POST 无论 增删改查统一 POST
    aino
        177
    aino  
       Dec 31, 2021
    这算个吊,我组长十年工作经验,代码写的还不如刚毕业的,查询数据库直接 for 循环,命名也是一塌糊涂,规范也是一塌糊涂,业务业务不懂,技术技术糟糕。。。。
    learninining
        178
    learninining  
       Dec 31, 2021
    写挺好,下次别写了
    AlkTTT
        179
    AlkTTT  
       Dec 31, 2021
    @chengyunbo 能啊,个人项目想怎么用怎么用;
    多人协同项目里用就好比在公交车上抽烟,有法律规定吗?没有;但合适吗?不合适
    ganning
        180
    ganning  
       Dec 31, 2021
    突然感觉几年工作经验也不是那么重要,人靠谱最重要
    ultimate
        181
    ultimate  
       Dec 31, 2021
    @HolmLoh 两年的练习生数一下槽点:
    1.Handler 是 spring 的 bean ,直接注入,不需要 new 。
    2.@Transactional 最好指定下 rollBackFor=Exception.class 。
    3.updatePro 行参过多。
    4.不用自动生成 @author ,版本控制工具能查到。
    NeoZephyr
        182
    NeoZephyr  
       Dec 31, 2021
    @HolmLoh 你们都不给入职培训的吗?
    weizhen199
        183
    weizhen199  
       Dec 31, 2021
    map 并不是什么槽点,就算 java, .Net 强约束实体也不是一开始就流行的
    fatbear
        184
    fatbear  
       Dec 31, 2021
    @Renco 前端应该不太能接受,前端的库比如 vue 常用的 axios 或者是 angular 的 http client 在 get 里放 body 确实是比较麻烦,后端调别人的接口就能接受这种写法,绝大多数后端语言在这方面都不存在障碍
    MrWhite
        185
    MrWhite  
       Dec 31, 2021
    @lybcyd 别黑了 python 不清楚,php 现在可不这样。
    orzwalker111
        186
    orzwalker111  
       Dec 31, 2021
    歪个楼,API 注释大家一般会维护更新吗?我这边也没有个统一的规定,swagger 、yapi 、wiki 接口文档各种使用吧。至于注释 param 、return 这些很少维护了
    cc77
        187
    cc77  
       Dec 31, 2021
    我不李姐,但我大为震惊
    1KTN90lKW9gVJ9vX
        188
    1KTN90lKW9gVJ9vX  
       Dec 31, 2021 via Android
    又不是不能用,,,
    lybcyd
        189
    lybcyd  
       Dec 31, 2021
    @MrWhite 不是黑,动态语言使用 map 或者类似 map 的结构来解析请求是主流做法,判断是否相等也不会有 NPE 问题。现在大多数语言进行判断都是 null safe 的,也就 Java 还必须调用 Objects.equals 这种方法。

    PHP 比如 Laravel ,这个地方直接写 $request->id === '1' 是没有任何问题的。
    aliveyang
        190
    aliveyang  
       Dec 31, 2021
    其他的看不惯还能用,但是这个 return null 确实没法用了
    littlebrother
        191
    littlebrother  
       Dec 31, 2021
    又不是不能用🐶
    litchinn
        192
    litchinn  
       Dec 31, 2021
    我都感觉是故意的呀,这么点代码每行都有槽点可太行了
    Leviathann
        193
    Leviathann  
       Dec 31, 2021
    有的人就是没有类型的意识,让他写 java 就到处都是 object 的 map ,让他写 ts 就到处都是 any
    chiuan
        194
    chiuan  
       Dec 31, 2021
    我完全看不懂。。。。。
    xylophone21
        195
    xylophone21  
       Dec 31, 2021
    看到很多人说异常,异常了全局捕获然后返回规范的 ApiResult 不行吗?
    yangwa
        196
    yangwa  
       Dec 31, 2021
    就是 if 判断有点瑕疵,我本人就是这样的,我是直接拿 string 再解析有些字段多写 dto 太麻烦了
    abeholder
        197
    abeholder  
       Dec 31, 2021
    @litchinn 是的,我感觉是楼主在钓鱼呢 。
    jqtmviyu
        198
    jqtmviyu  
       Dec 31, 2021
    @Renco 前端表示接受不了''url/:param/?key=1&key=2" 然后还要我在 get 请求 body 里再放一个参数
    ryanbuu
        199
    ryanbuu  
       Dec 31, 2021
    @murmur 冷知识……4k 是部分 browser 和 apache 的限制……rfc 里并没有限制 url 的长度……
    season8
        200
    season8  
       Dec 31, 2021
    @q1angch0u 拍案叫绝,太生动了
    1  2  3  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3105 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 298ms · UTC 13:09 · PVG 21:09 · LAX 06:09 · JFK 09:09
    ♥ Do have faith in what you're doing.