利益相关,经常需要合作开发一个功能,所以在一些模块中会有交集,做不到眼不见为净
不说远的,就说今天发生的事情
共同改一个模块,直接把我好好的代码改崩了,我排查了半天发现其中判断逻辑匪夷所思
他在 helper 中加了自己写的一个 IsXXX() bool 方法,返回值居然和函数名称是相反的,然后调用的时候全部都反向判断
我真的血压升高,拳头都看硬了,也不是没有做过代码 review,也分析了为什么代码写的不好,改完还是老样子,这种同事应该怎么相处,我现在天天跟坐牢一样好苦
1
InDom 2021-08-04 14:20:52 +08:00 116
不敢点进来,怕你说的是我。
|
2
erwin985211 2021-08-04 14:21:48 +08:00
上级反映,申请跟换项目
|
3
Jaosn 2021-08-04 14:22:10 +08:00
不敢点进来,怕你说的是我。
|
4
signalyc 2021-08-04 14:22:26 +08:00
1. 分开,使之没有交集
2. 把他 /她的工作都做了 |
5
fkname 2021-08-04 14:24:22 +08:00
不敢点进来,怕你说的是我。
|
6
jonathanchoo 2021-08-04 14:27:40 +08:00 1
不敢点进来,怕你说的是我。
|
7
kop1989 2021-08-04 14:32:44 +08:00 2
1 、合作常见,但为何会导致逻辑污染?(换句话说,你们会经常修改对方的代码吗?)
2 、一切交集以文档与方法注释为准。起名你看不顺眼并不意味着是“代码烂”。(别人名字你看不顺眼你也要逼着对方改户口本么?) |
8
sqfphoenix OP @InDom 兄弟你就是始作俑者,必须给你一个赞
|
9
sqfphoenix OP @kop1989
第一个问题是这样的 比如我的代码是 1.1 -> 1.2 -> 1.3 这样执行,他的代码是 2.1 -> 2.2,是通过一个状态判断到底走哪个逻辑的,结果他一改,把逻辑入口给改了,所有逻辑全部都走 2,也就是永远走不到 1 的逻辑了,这种情况我真的没有办法控制逻辑了 至于第二个问题,我说的只是冰山一角,我对代码是非常宽容的,一般只要正常运行用例通过都 OK,可是这种代码,完全就是地雷,你永远不知道调用这个函数有什么后果 |
10
micean 2021-08-04 14:48:23 +08:00
好像我接手的那位,尤其是第二点,令人记忆深刻
|
11
3dwelcome 2021-08-04 14:54:48 +08:00 via Android
明显是模块责任没划分好,为什么要共同改一个模块呢?把大模块分开,每人只改自己那部分的多好。
|
12
shapl 2021-08-04 14:54:52 +08:00
还是按模块划分吧。说好尽量别碰对方代码。
|
13
woomly 2021-08-04 14:58:11 +08:00
他在 helper 中加了自己写的一个 IsXXX() bool 方法,返回值居然和函数名称是相反的,然后调用的时候全部都反向判断
------------------------------------------------------------------------ 简直气炸! |
14
sqfphoenix OP @3dwelcome 这个确实,当时的背景是我手上堆了一堆需求做不完,只能让他写了,结果这块代码现在就是永远的痛
|
15
erlking 2021-08-04 15:00:12 +08:00 1
多大点事,默默的重命名为 isNotXXX 完事
|
16
scxiazi 2021-08-04 15:08:37 +08:00
你见过只会写单表增删改查的吗, 让他提供接口就说业务入侵了
|
17
zcfnc 2021-08-04 15:34:57 +08:00
我已经麻了 我甚至还有写方法名带数字的同事 他还是我的领导 你敢信?
|
18
banmuyutian 2021-08-04 15:37:50 +08:00 1
@zcfnc
这事我也干过,用'2'代替'to' |
19
LowBi 2021-08-04 15:38:50 +08:00 via Android 1
一个人写项目自由自在,虽然会累会很忙
|
20
czzhengkw 2021-08-04 15:41:32 +08:00
模块拆解+单元测试+代码 review
改代码可以,几百个测试全部能跑通,pr 才能合并进来 |
21
darksword21 2021-08-04 15:43:25 +08:00
@zcfnc 我也干过 2 4
|
22
zcfnc 2021-08-04 16:01:40 +08:00
|
23
mrxun1998 2021-08-04 16:02:39 +08:00
不敢点进来,怕你说的是我。
|
24
Shook 2021-08-04 16:12:27 +08:00
之前我写的分页组件,计算当前页的算法有点问题。
我后面搞别的项目去了,接手我项目的同事因为老有分页问题被骂了好多次。 偷偷看他们项目的接口文档,发现 start 是从 0 开始的,我的算法是从 1 开始算的。 |
26
ALVC666 2021-08-04 17:44:35 +08:00
代码和人 有一个能跑就行[Doge]
|
27
zhuangjia 2021-08-04 17:46:16 +08:00
还是要加注释
|
28
lizenghui 2021-08-04 17:48:40 +08:00
哈哈哈 楼主太纠结
This is just a job |
29
leafre 2021-08-04 17:50:59 +08:00
模块继续细分
|
30
rainymoring1995 2021-08-04 17:59:09 +08:00 1
不想干就走呗,贼烦对同事指手画脚的,你又不是直系领导
|
31
fengfuliu 2021-08-04 18:01:08 +08:00
@banmuyutian 这个用法还好吧 我看到很多出名的库也是这样的
|
32
lzjamao 2021-08-04 18:23:26 +08:00
你同事工作方式有问题。
改别人代码逻辑,最好找负责过该处的同事商量好再改。 |
33
MiniGhost 2021-08-04 18:28:44 +08:00
1. 分工的时候尽量避免特别密集的代码交叉,尽量同期需求各自负责各自的
2. 推 Code Review,开发需求强制要求拉新分支,合并分支强制走 Review,同事 Review 不通过不给合并 |
35
dongdongdong 2021-08-04 18:56:31 +08:00
我了
|
36
SjwNo1 2021-08-04 20:02:31 +08:00
如果你是 reviewer 的话,不改就不给合,如果你不是的话,好像没啥办法
|
37
wisetc 2021-08-04 22:54:22 +08:00 via iPhone
你们约定一下子,以及讲讲这么做为什么好,以及对他也好,用权威的客观的主流观点代替自己说话,告诉别人你的边界,以及他的边界,避免相互影响相互伤害,否则兵戎相见也不好看。
|
38
wisetc 2021-08-04 23:04:42 +08:00 via iPhone
有些人水平比较低也不尊重人,这种人还可能你躲也躲不过,讲道理还不一定听,哪你岂不是很难受?怎么办呢?要么建墙阻隔侵扰,要么交流到达彼此同化,要么强迫把人家赶走,你觉得哪种更好?
|
39
lululau 2021-08-04 23:12:30 +08:00 1
个人经验:只要是你俩共同开发的任务,把他的活都干了; 多干就是少干,你不管他的,可能得陪他一块加班,你多干了可能反而不需要加班
|
40
pengtdyd 2021-08-05 03:56:07 +08:00
这就体现一个人写一个模块的好处了
|
41
Perry 2021-08-05 06:55:22 +08:00 via iPhone
一看就是测试都没有
|
43
steptodream 2021-08-05 08:46:57 +08:00 1
可能会有人看到你的代码也是一样的感觉
|
44
kiritoxf 2021-08-05 08:51:21 +08:00
我有个同事还不如你这个同事……
工作三年了编码能力和学习能力像实习生一样 关键是也得一起合作,唉 |
45
66beta 2021-08-05 09:19:36 +08:00
一遍跟前同事吐槽,一遍擦屁股,还能怎么办...
|
46
entro 2021-08-05 09:25:06 +08:00
建议反馈给领导,理由是影响项目开发进度
|
47
Kimen 2021-08-05 09:37:39 +08:00
世界是有层次的,建议跑路
|
48
tonzeng 2021-08-05 09:38:22 +08:00
淦他娘草鸡掰
|
49
jiayong2793 2021-08-05 09:39:40 +08:00
向项目经理反馈,请求让他做独立模块
|
50
piloots 2021-08-05 09:42:29 +08:00
不敢点进来,怕你说的是我。
|
51
gulullu 2021-08-05 09:45:16 +08:00
不敢点进来,怕你说的是我。
|
52
dfkjgklfdjg 2021-08-05 10:00:25 +08:00 1
@rainymoring1995 #30,屎山就是这样出来的....
[Dev_1] 随性开发,到最后改不动了直接走人,[Dev_2] 接手直接脑溢血送 ICU,[Dev_3] 接盘重构。 |
53
balezhang 2021-08-05 10:30:25 +08:00
不敢点进来,怕你说的是我。
|
54
Brentwans 2021-08-05 10:31:54 +08:00
1.上策,尽快溜掉,避免和他合作,省时省力。
2.中策,让直接领导知道并认同你的看法,让领导去沟通。就算沟通无果,后面也好甩锅。 3.下策,你说沟通无果。那首先划分好模块,但是你们是一个功能,唇亡齿寒吧。加强单测确保功能,只要他的功能没问题,屎山又奈你何。 4.地下室策。大哥喝茶,你的功能我帮你写 |
55
coderluan 2021-08-05 10:33:02 +08:00
职场上, 所有同事的问题, 都是领导的问题, 反应上去就完了.
|
57
wupher 2021-08-05 10:39:23 +08:00 1
我之前也碰到过类似情况。
当时是眼不见心不乱,反正能跑,我就不管,而且也是临时帮忙。 后来他离职了,这块代码在检查中发现,到处是各种匪夷所思的实现。比如明明在外面查询一次即可获取得的数据库开关属性,结果在 for 循环中每次都再查询一遍……不使用诸如对象或者 VO,而是使用 map 直接各种插入,而取的时候又完全不管可不可能为空。层级封装就更离谱。 最后和产品商量,通过某次界面改版直接把他原来的代码功能全废弃掉了,代码留在原地,添加注释引以为教训。 但从头管到尾,貌似也不好。 不过,我还是觉得 You are not your code. Be kind to coder, not to the code. 代码写的烂,但不意味着就是坏人。 |
58
kop1989 2021-08-05 10:41:17 +08:00
@ZzFoo #56 谁规定 isXXX,必须 true 就是 yes (是),false 就是 no (不是)了?
英语语境与汉语语境的“是”与“不是”往往是相反的。 |
60
fareware 2021-08-05 11:04:41 +08:00
当觉得周围都不如自己时,那就换一个更高的地方,来证明之前他们真的不如自己。
|
61
goodboy95 2021-08-05 11:28:59 +08:00
@kop1989 什么情况下汉语英语的“是”与“不是”相反,举几个例子吧,我自己是想不太出来,唯一能想到但又特别牵强的就是“Don't you know”这种带 not 的疑问句
|
62
Yc1992 2021-08-05 12:08:19 +08:00
review 直接写 comment 啊,只要你不尴尬,尴尬的就是他
|
64
comoyi 2021-08-05 13:37:00 +08:00
让他全部改回来
|
65
Paaranoia 2021-08-05 13:48:57 +08:00
跟楼主有同样的感受,分享下我的经历
我写了一个,根据版本号检查更新的逻辑 新来的同事,改了我的代码,把一个“1.0.0”这样的字符串用 Integer.parseInt()转换 导致 App 上线以后,所有检查更新都崩了 我当时血压直接就上来了 |
66
z740713651 2021-08-05 13:53:23 +08:00
python 的话写个 typing?
就有理由告老板了 |
67
Felldeadbird 2021-08-05 13:54:01 +08:00
代码隔离不到位。或者是,你的业务对方不熟悉。没有留下文档或注释。团队肯定有水平高低的,让管事的来规划好代码开发
|
68
est 2021-08-05 13:54:24 +08:00
生气归生气,你应该做一个单元测试把自己的方法守住。别人改的话测试直接不让通过。
|
69
free9fw 2021-08-05 14:02:21 +08:00
离职吧,迟早会被祸害
|
70
zzx0403 2021-08-05 14:08:07 +08:00
之前见过各种简写的😂function 本来简写 fun,他来个 fun 。teacher 硬是要简写成 tea,各种简写看都看不懂
|
71
sexyback 2021-08-05 14:11:05 +08:00
跟同样是应届生的同事一起写一个模块,像 status 这种状态标志,有人 int8 有人 int32 有人 int,真的难顶
|
72
elevioux 2021-08-05 14:16:04 +08:00
再包装一下 notXXX(){return !isXXXX();}😂
|
73
rrZ2C 2021-08-05 14:56:18 +08:00
@banmuyutian 呀 学到了,长一点的方法名真讨厌写 To
|
74
nicetoomeetyou 2021-08-05 15:00:30 +08:00
看描述,应该是不属于一个部门和领导的同事。所有反映是没啥用的。
这时候建议听下歌,https://www.kuwo.cn/play_detail/236015 |
75
hatsuyuki 2021-08-05 18:03:20 +08:00
@zzx0403 Rust 里定义函数的关键字是 fn,Kotlin 里定义函数的关键字是 fun,Go 里定义函数的关键字是 func,这样来看的话 function 简写成 fun 也不是不能接受😂
|
76
zzx0403 2021-08-05 18:13:34 +08:00
@hatsuyuki 主要是我上次看到了他自己的项目 目录名称 funny1 funny2 funny3 当时我真的蚌埠住了😅
|
77
uselessVisitor 2021-08-05 21:46:53 +08:00 via Android
帮他把代码改对
|
78
cloudfstrife 2021-08-06 10:28:27 +08:00
不敢点进来,怕你说的是我。
|
79
NoDocCat 2021-08-06 15:12:14 +08:00
不敢点进来, 怕你说的是我.
https://imgur.com/a/BcuKMdq |
80
TeaPolyphenols 2021-08-09 14:44:16 +08:00
最后我给他重写了..
|