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

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

10168 次点击
所在节点    程序员
116 条回复
leiuu
49 天前
1. spring jpa 有时候用 native sql 还是很方便的,说实话简单命明了,不过多数用在复杂查询的场景。insert 方法用 native ,确实没见过...
2. 使用 java11 的 native http client 没啥问题,他这里的问题是没有定义一个全局公用的 client
3. 看起来你的同事代码习惯不太好,喜欢简单粗暴完成任务,追求短平快

代码总体风格和质量控制,其实靠同事之间推动是有一点难度的。
如果 leader 不重视这事儿,同事之间直接沟通,如果加上不能很好的把握沟通技巧(所谓低情商表达),其实很容易转化为同事矛盾。弥补认知差异是困难的。
我前几年的时候,会直接提醒同事,但收效有时候并不大,后来想想其实没啥必要。
仅仅是工作而已,如果测试和领导没反馈什么问题,那就没关系。
等自己真正有话语权时再去控制也不晚(目前就这么做的)。
iyiluo
49 天前
没办法,工作中这样的事情是无法避免的,除非走代码 review 流程
EndlessMemory
49 天前
没人关心实际代码质量的
yosoroAida
49 天前
这种人确实没法合作的,写的一坨屎,叫他改估计他还会逼逼赖赖,建议跟上级汇报,不然到时候自己去接这坨屎难受的只有自己
blur1119
49 天前
@karnaugh 你这是给领导脸色看呢?
gitlight
49 天前
防御型编程实战
8355
49 天前
这种就是 springboot 不怎么熟悉吧。。。
keepme
49 天前
同遇到过,糟糕的是上级也不太管这个事,最后的结论就是代码能跑就行,慢慢的大家都摆烂了。
GunsRose
49 天前
我之前也遇到过,后面再 codeview 会议上还因为这个吵过架,结果领导也觉得没必要。后面就只能这样了,这种情况下,我劝楼主还是独善其身好,调用他的代码的时候注意下。
shawnsh
49 天前
如果公司没人管,你觉得忍受不了,就跳槽,跳到编码有要求有规范的公司。你的规范编码在这公司一文不值。还受损失。
Kuribee
49 天前
不要太有责任心,这世界就是一个巨大的草台班子。
干了工作 > 完成工作 > 高质量完成工作,发工资就行,别的不要管。
leaflxh
49 天前
一起拉屎
AmosLi
49 天前
想一想对方是怎么存活在你们公司的? 我感觉这个问题数据团队管理问题。 你们公司是不是就不重视代码质量, 或者说重视代码质量的人不在重要位置上。如果是,那建议你向下兼容他
0x90200
49 天前
@zhuangzhuang1988 赞同, 可能有些 lead 比他没有追求.
wwnhahaxiao
49 天前
我遇到的比你还糟心, 这个人还是 leader, 调用你写好的方法, 要求你加一堆他用的参数, 本来解耦的功能, 强行耦合到一起. 简直是被强行喂💩,目前想到的唯一解就是
chemf
49 天前
讲道理能理解,但没必要自我内耗
kristofer
49 天前
@fkdog #28 当然是吐槽喽,吐槽出来,大家给 OP 一些情绪价值,OP 舒服了,这也是有价值的。
fredweili
49 天前
发邮件把问题写清楚,做不做就管不着了
857681664
49 天前
@iintothewind 你说的 JPA ,Mybatis 这个我非常认同,对于这些技术选型我是很 open 的,大家决定啥我就用啥,但 httpclient 我真的无法认同他的做法,我认为最差的选择,也应该用 springboot 管理好 httpclient ,而不是直接在方法里每次 call 都 new 一个 httpclient ,从这点上我就能感觉他对代码的态度就是赶紧实现,能跑就行,不会思考更多如何合理组织,如何保持健壮性。
857681664
49 天前
@GunsRose 目前已经不管他的代码了,只要是他的代码出错扔给他就行 at 他让他自己解决,我才懒得管

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

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

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

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

© 2021 V2EX