抱着想写好质量代码的心,然后遇到一个完全不管代码质量的人合作,真是糟心

281 天前
857681664  857681664

项目框架已经搭好用 springboot3 和 JPA ,然后他居然在 repository 里写了个 insert 方法,而且还是用 nativeSQL ,当然可能人家没用过 JPA ,那也算了。

然后一个发邮件的功能,他说调试了一天才搞定,然后我一看他的代码,在发邮件的函数里用 java 自带的 http client ,每发一封就 new 一个,就算不用 sprigbooot 的 rest template ,好歹也用一下 okhttpclient 吧,而且也不用 bean 管理一下。然后发邮件有个验证码机制,有有效期之类的,我本来的想法是用单独的表管理所有验证方式,比如注册验证邮件,改密码验证邮件,还有大概率手机验证,2FA 之类的,然后他直接把 token 和过期时间存 user 表里了。

还有很多小细节,比如全局捕获异常也不设置 http 状态码,直接默认都 200 (项目定的 rest 风格),有 loback 也不用,异常直接 printstack ,也从不管已经存在的代码,比如已经有 util 包和 Util 类了,还要新建 utils 包和 Util 类,异常码也是,明明有个 user_not_found 了,还要在一个他写的重复判断用户是否存在的逻辑里加一个 no_email 的错误码,反正我也不想管了,把我负责的 api 弄稳妥就行。

14076 次点击
所在节点   程序员  程序员
116 条回复
jack778
jack778
281 天前
和你的 lead 说, 让他提出来, 然后不要说是你告密的
GeruzoniAnsasu
GeruzoniAnsasu
281 天前
看你的描述,可能他根本就不咋会的可能性更大
jianchang512
jianchang512
281 天前
可能单打独斗惯了,主打一个随心所欲能跑就行
857681664
857681664
281 天前
@GeruzoniAnsasu 不知道啊,说是多年经验
zhuangzhuang1988
zhuangzhuang1988
281 天前
@jack778 想多了,很多时候 lead 技术也很差
而且说不定 leader 还认为对方是对的。
coderluan
coderluan
281 天前
问题不是你遇到了个不管代码质量的人,而是你遇到了个不管代码质量的公司或者领导,这种情况下就别强求,早晚工期和任务也会让你也写出自己认为质量不行的代码,最重要但是做好分工,互相尽量不动对方的模块就行了,你的随便你写,他的随便他写,出了问题还不用扯皮。
857681664
857681664
281 天前
@coderluan 就怕哪天他糊的屎掉我手里,就更恶心了
honkew
honkew
281 天前
能跑就行
GeekGao
GeekGao
281 天前
写不好代码你有锅背吗,没有的话 “糟心” 是啥心态? 个体的完美主义+控制欲无法施加予外部,所以闹心?
如果与自己的利益没啥关联,那么就别管那么多了,你糟心影响自己的心理健康,对方不以为然自得其乐…
857681664
857681664
281 天前
@GeekGao 就是不想看着一个好东西变烂的心情吧,利益冲突也没有,就是难免会用到他的代码
blakezhaothinks
blakezhaothinks
281 天前
代码质量管理这事,短期内看不到回报的,只能从上往下推,要大领导直接干预,基层再怎么抱怨没有用,也推不动。如果你们公司是业务导向的(大多数公司如此),而不是技术导向的,也无工程师文化,那就更不要想了,老实写好自己的代码吧。
GeekGao
GeekGao
281 天前
@857681664 以我的经验,这种事没办法,做好自己的那份工作就好(例如提前约定好接口、编写清楚文档),尽量避免接触对方代码的实现逻辑。
857681664
857681664
281 天前
@blakezhaothinks 很多时候比较着急写功能啥的都可以理解,只是我看到的这些情况让我感觉不应该是一个多年经验的工程师会做出的事,也可能是我之前从没遇到过类似的
hellomsg
hellomsg
281 天前
代码不一定按照你那样写才能运行。世界大了,放眼看世界。
你需要的是团队有个规章制度约束大家,你一个人无能为力,提给 leader 吧。或者趁早跟他说明白,别自己郁闷内耗。
hellomsg
hellomsg
281 天前
凡事直接当面提出来比在网上吐槽有用
potatowish
potatowish
281 天前
要么转行过来的,要么就是新手
Foxii
Foxii
281 天前
Spring boot 项目 http 客户端现在可以用带 @HttpExchange 注释的 Java 接口,声明式地实现
https://docs.spring.io/spring-framework/reference/integration/rest-clients.html#rest-http-interface
KInG2
KInG2
281 天前
@potatowish 还有就是产品恶心,随意添加需求,搞得没有时间和意愿给你好好写,在加上敏捷开发深入 lead 心理。
KInG2
KInG2
281 天前
@KInG2 leader ,打错字了,QAQ
857681664
857681664
281 天前
@hellomsg 我说了,建议他用我写的方法,他要么不回,要么就说哪有时间改之类的,也不是说一定都要按照我写的,都可以讨论,但至少不能用这么烂的方式去实现吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1040020

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX