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

45 天前
 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 弄稳妥就行。

10079 次点击
所在节点    程序员
116 条回复
857681664
45 天前
@Foxii 嗯嗯都可以,至少都是 springboot 提供的生态,而不是用裸的 Java httpclient
qaqLjj
45 天前
劣币驱逐良币,这世界就是这样的,除非有外界力量干预
ebushicao
45 天前
这种问题很难搞,除非那人本身性格还比较好,你说他就能改(我遇到过这种,只是技术不太行写的差,但你跟他说他会很抱歉的马上改)。如果性格不好就麻烦了,不管是直接找他本人说,还是通过上一级管理进行沟通,都会产生冲突,遇到一些奇奇怪怪的人还会有很多恶心的事情。(参考一些同事之间投毒,背后捅刀之类的事件
coolair
45 天前
我同事也是,前端,代码写的一堆屎山,因为新来的领导一点也不懂开发,所以,他只要实现了需求就行了……
很担心他走了,那一堆垃圾如果给我,该怎么维护……
hefish
45 天前
我觉着 OP 应该反省自己。 要严于律己,宽于待人。。。咳咳。。。
Leon777
45 天前
就是这么个环境没办法,我是直接跟领导提自己单独负责一些模块,我不管别人怎么堆屎山别人也别在我这拉屎
xxxccc
45 天前
没有 code review 吗?如果很离谱的代码,review 的人肯定不能让代码合并的。
fkdog
45 天前
你举得这些例子的确是他写的不够好。

所以你发帖的诉求是什么?

如果是来发泄吐槽的,我觉得并没有什么意义。你发完贴人家也不会改,该怎么怎么的,你也不会因此更好过。以后碰到水平差的也不止这么一两个人。

如果你真觉得自己足够优秀,那以后尽量给自己争取一个都是优秀的同事的环境。
guanzhangzhang
45 天前
如果你仓库权限比他高些,加下 ci 和代码扫描啥的,给他硬限制下。
如果他比较听劝,他每次提 pr 的时候你 code review 下,同时让他封装一些工具类
LiaoMatt
45 天前
你们公司还招人不, 让我来吧, 这老哥的操作听起来就很迷, 很有必要做一下 codereview
BeijingBaby
45 天前
看起来应该是没有技术评审,代码规范吧,有的话可以杜绝这些,让和团队保持一致的节奏。
oneisall8955
45 天前
代码写的比别人看明白已经算好了
afxcn
45 天前
能体会你的感受,就像一个爱干净的人和一个不爱干净的人一起租房子一样。

我们公司的代码规范是从下往上推动的,基本上统一了公司的代码风格。
VPointer
45 天前
@fkdog 别人说出来让自己好过点就是意义,然后让大家看个乐子不也是意义?
macaodoll
45 天前
前面都对,但当你掏出 okhttp 的时候就变味了
857681664
45 天前
@ebushicao 性格好我就不吐槽了,跟他说了,先是不回复,然后直接说没时间改
857681664
45 天前
@d9e7381f 没啥 review ,而且让我 review 我得累死,问题多到爆炸,还不如重写了
857681664
45 天前
@fkdog 互联网嘛,没啥诉求,就是觉得看不下去给大伙吐槽看个乐子
karnaugh
45 天前
硬气点该摆的时候就摆,跟领导说,如果这种东西后续出问题,让你改,你就要求重写,需要时间,要不就别让你改,至于性能问题啥的,出问题了也是他的方法出的,一般上头找人负责也是先找的你领导,所以你就把自己一亩三分地管好就得了,你得习惯,有些人不用给好脸色
iintothewind
45 天前
代码风格就是团队里面话语权最大的人说了算的, 很难说绝对的谁好谁坏.
比如你提到的数据库访问层实现, 可以选择 JPA, 可以选择 MyBatis, JOOQ, Jdbi, VertX 甚至 JdbcTemplate, 裸 JdbcPreparedStatement, 只是每个人的品味不同,
比如你提到的 HTTP Client, 可以是 Rest Template, 可以是 Apache HttpClient, 可以是 Java 11 HttpClient, 可以是 OkHttp, Retrofit, 甚至可以是 VertX, 只是每个人的品味不同,

只不过话语权最高的那个人说哪个好, 然后就得有人遵守, 仅此而已.

代码品味有不同, 你个人可以喜欢或者不喜欢, 但是如果之前已经在系统里面的呢? 难道你要全部改掉?

要能够接受一个系统就是多方面妥协的产物, 不是你要求完美, 它就能完美.

要不然, 你接受不了的地方, 那可多着呢.

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

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

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

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

© 2021 V2EX