前情提要:
过完年之后,因为手头项目暂停,op 暂时没活干,开开心心带薪学习。
然鹅老大要求每个部门都要开周会,为了周会有东西讲,所以被迫接了点屎山代码
刚开始接的时候,问了屎山作者(以下简称 A),为啥数据库的主键全是 char(19) ,看到这个设计当场想骂 A 了,不过忍着说了下,不要用 char 当索引。这是第一次说教他。
然后过了一个礼拜,我又问他,业务流程好像有问题,然后跟他说要改,然后部门负责人也跟他说要改,结果他说让我改(这次还是忍住没骂他),然后我也懒得理,不去改了。这是第二次说教他。
接着这周,因为我们决定要去重构前端,以及他的后端代码,然后让他梳理后端业务逻辑,结果他死活推脱,说我们先重构前端,为什么要他急着梳理后端逻辑(这个时候我隐约感觉到他是不想让我们知道他的代码烂)。于是我就去跟部门负责人去啃下他的后端屎山代码。吃了 2 天屎山代码后,今天周会就吐槽说为什么要去他梳理业务逻辑,说单纯看他代码,要看到方法最下面才知道返回什么( java 代码,接口返回 map ,最怕看到这种代码)。然后就说看他的代码看的很难受。这是第三次说叫他。
因为开会只是内部的团队,只有 4 个人,没涉及到领导。 于是 A 当场破防,瞪着大眼睛,脸色都黑的那种,直接说了:“我真的很烦你这种整天说别人代码写的不行。做好自己的就好了啊,管别人这么多干嘛”。 我当场人是懵的,没想到他说这种话。 于是我就说,“那我们是接手你的代码啊” 然后他又重复上述的话。
虽然 op 情商很低,但是 A 的情商也高不得那里去。 A 的项目,开发了一年半,连个后台功能都不完善,还要别人帮他去搞。 然后经常迟到早退,还有请假(最离谱的是去年国庆连续请了 4 天,连着国庆爽玩)。搞得项目没搞完,要让其他人帮忙开发,难道自己不反思下,还要骂 op 。 这当然跟部门的负责人不理不管有关系,主打一个放养。 最后跟其他同事聊了下,如果 A 再过 2 周再不输出业务逻辑,就跟大领导聊了。 op 认为,A 是团队毒瘤,技术不行,工作态度也不行。 不知道各位怎么想,哈哈,今天的好心情全被这货给毁了。
1
zapper 243 天前
在领导前只骂事。你说这个事怎么怎么样。事都是人做的,明白的领导自然懂,不明白的领导也没有跟的必要
研发部门负责人很多都是研发升上去的,大头兵而已 |
2
Nosub 243 天前 via iPhone 5
你同事说的对,做好自己的事情,退一步说,如果 A 因你的打报告被迫离职了,不知道会不会记恨于你,现在人生活压力这么大,想不开,指不定会对你报复。
|
3
AthensBird 243 天前
一句话总结,作者与同事 A 之间因项目代码质量和工作态度问题产生的冲突,以及作者对 A 的不满和对团队管理的反思
|
4
yosoroAida OP @Nosub 我也是信奉做好自己的事,别管别人。但是他这种就是自己的事情没做好,还要帮人捡他的烂摊子。我也不想到跟大领导讲的那一步
|
5
abccccabc 243 天前
水平不行可以向团队里的高手请教,如果完不成任务,说明此次任务可能大于你的水平,但不和团队领导讲,这就说不过去了。
|
6
est 243 天前 1
数据库主键 char(19) 其实问题不大~至少别人没用 varchar 。。。。。你看 UUID 当主键不就存个 char() 进去。
|
7
yosoroAida OP @abccccabc 他是水平不行,也是自己闷头去做,问题是一个很简单的项目,个人认为单人开发,天天摸鱼 4 小时开发,怎么半年都够了。但是他做不完也不加班,还频繁请假迟到早退,然后把手上的活分给其他人做,你有这种队友你怎么想。
|
8
yosoroAida OP @est 是这么讲,主要是单纯数字也是 char 。。。
|
9
yosoroAida OP @zapper 是这么说,现在我就好好干完我手头的活,就继续带薪学习了。哎
|
10
phrack 243 天前 via iPhone 4
干你的活就行了,好不好是领导来评价的,最多给领导反馈一下就是了
|
11
yosoroAida OP @phrack 也是,我也不想管。主要是一想到要去消化他的屎山代码,又不能说他那种感觉。emm ,挺难受的。。。。
|
12
est 243 天前
|
13
kkk9 243 天前
放下个人素质,享受缺德人生
一个团队总需要一个 D 的,反过来想想,项目难道没有评估?领导没有问就是忘记了吗?所以,静观其变是上上策,不要做领导手里的“烧火棍”,烧完了就没用了。 |
14
yosoroAida OP @est 是的,还有各种逆天操作,这里就不细说了。不过招人是不大可能的了,倒是找其他同事帮他吃这坨屎了,哈哈。
|
15
yosoroAida OP @kkk9 你这么说也是对的,让他自己毁灭吧。
|
16
yosoroAida OP @kkk9 我这里传统公司,没有项目评估,没有调研。主打一个客服缺什么就做什么
|
17
wangritian 243 天前 1
他有他的问题,你也有你的问题
char 做主键没有任何问题,你也没问为什么要这么做,也没说不建议这么做的理由,直接说不要这么做,这是导火索,人家直接给你拉黑没毛病 |
18
yosoroAida OP @wangritian 这里忘记提了,有问过他为什么这么做,也建议他不要这么做,因为 char 的排序在类似 99 跟 100 的时候会有问题。导火索是第二次说教,说他业务逻辑有问题,这里是主要导火索。他认为我在给他加活,妨碍他划水。
|
19
rabbbit 243 天前
指出代码问题确实容易引起矛盾,建议实在合作不下去可以跟领导反馈,例如想增加开发速度学习、学习后端知识、更好的团队合作巴拉巴拉,兼职后端自己写接口。
对于简单的 CURD 来说其实这样效率更高,省的来回扯皮。 下次跳槽的时候还可以转全栈或者后端。 |
20
yifangtongxing28 243 天前 1
看来还是传统公司养人
|
21
yosoroAida OP @rabbbit 其实我是后端的,被摁着写前端干全栈的哈哈。不过指出代码问题的确要看团队把,我上家很喜欢玩代码 review ,然后经常被 leader 和队友吐槽代码写的吃相难看,然后后面恶补好多基础才没写得花。结果到这里团队氛围跟上家是 2 个极端,上家经常提要对代码要有敬畏之心,这家倒是我跟代码一个能跑就行。而且这家我经常指导多了另外一个同事写代码,他早期代码跟 A 风格很接近,现在才慢慢变好。结果没想到 A 太玻璃心了,说 2 句就破防了,哎。有时候想团队变好,但是又不知道用什么方式去改好,想着程序员都比较直,也愿意虚心接受学习的群体。结果对方不领情,我也不好用这种方式下去了。下家还是找个团队质量好点的公司把,哎。
|
22
yosoroAida OP @yifangtongxing28 是的,A 上家是外包的。虽然我也不是说外包的同学不行,但是至少这位的确把外包同学的名声给搞臭了。
|
23
Helsing 243 天前 via iPhone
所以跟没有共识的人协作是真的恶心
这些烂人以为自己写的代码就只有自己看,以后也不用维护了 但是事实是很有可能别人会看到、用到他的代码,或者和他做的功能有交互,然后别人就要帮收拾烂摊子,耗时费力不说,他还接受不了 |
24
yosoroAida OP @Helsing 是的,所以遇到这种团队毒瘤,真的很难整。吃完这坨屎再说把,哎。
|
25
kamal 243 天前
@yosoroAida #11 也是,我也不想管。主要是一想到要去消化他的屎山代码,又不能说他那种感觉。emm ,挺难受的。。。。
抛开事实不谈🐶,你这种态度,平时一言一行都会透露出来,看不起一个人的感觉,跟被人看不起的感觉,都隐藏不了的。他这次爆发,一大半是因为你的态度。 |
26
yosoroAida OP @kamal
这个大概率也是一个因素,估计这也只是他一个理由,虽然我真的是看不起他…一个结了婚的男人都能说出谈恋爱的目的不是结婚… |
27
hefish 243 天前
抄家伙,上。
|
28
wolfie 243 天前
多大仇啊,。。
1. 通过部门负责人让他改。 2. 捏着鼻子把代码接手了。 二选一,其他选项 他可能不赢,你肯定输的。 |
29
snowGG 243 天前 6
要说能力就提能力。不要提什么假期如何如何。那是人资管理范畴。工作期限内都是混。不要指点别人工作能力。
还是三点。 一。能不能不干 二。能不能晚点干 三。能不能让别人干 职场大忌。如果不能和别人一样浑水摸鱼,切勿指点江山。 |
30
MuscleOf2016 243 天前
写代码要有强迫症
|
31
yosoroAida OP @wolfie 负责人叫他他都左推右推的,而且负责人态度又不够强硬的那种。现在真的是只能选捏着鼻吃屎了
|
32
yosoroAida OP @snowGG 那最简单了,一个页面空白错误,解决了半年还有。项目不会搭,只会网上找个 xx 商城的做二次开发。至于他为啥能高强度摸鱼,还得多得领导不管
|
33
wdhwg001 243 天前 via iPhone
snowflake 存成 char(19)…是 bigint 有什么短板吗
|
34
wolfie 243 天前
|
35
yosoroAida OP @wolfie 部门负责人打算以和为贵,部门负责人估计也没想到事态能发展成这样。噗,所以现在我计划我只干我的部分,任何跟屎山负责人的对接我一概不碰
|
36
yosoroAida OP |
37
yosoroAida OP @kamal
除此之外,这叼毛感冒发烧在办公室还不戴口罩,你说不戴有色眼镜真的很难 |
39
isnullstring 243 天前 2
希望 OP 尽快到达“看山不是山,看水不是水”的境界
我也接过很多坨代码,但是第一两次 很不爽,后面习惯了,只要代码能正常运行,能满足业务,能不动就不动,出问题就修 抱怨只是在内耗自己,打工本来就伤身,何必生气伤身,哈哈哈哈 |
40
mumbler 243 天前 10
有问题你改就是了,干嘛总想去教育别人
|
41
k9982874 243 天前 via Android
现在硬刚都这么温柔了吗?起码拍下桌子啊
|
42
ivvei 243 天前
楼主乱说,这根本不算硬刚。
另外,不必再给两周时间,现在就可以和领导说了。冰冻三尺非一日之寒,指望人家改是改不了的。 |
43
ST0RMTR00PER 243 天前
好无聊的事情啊,这样就算硬刚了啊?我们开会天天都吵架,吵完立马情商上线一起午餐。
|
44
cassyfar 243 天前
代码写的不好,就要骂别人。真的是对人不对事啊,太老钟文化了。
|
45
tianzi123 243 天前 1
你可以选择直接重构,但没必要多次当人家面打人家脸,毕竟都是打工的,发工资的也不是你
|
46
yosoroAida OP @mumbler 改完别人也不去学,下次他继续拉屎,我们继续消化他的屎,哈哈
|
47
yosoroAida OP @ivvei 哈哈,我是标题党。的确我是对他的话丝毫不信任,所以我们才提前看他的屎山去整理逻辑
|
48
yosoroAida OP @cassyfar 代码写不好,给建议怎么写,结果换来别人发飙。如果这种事情发生在自己的团队,那你怎么想
|
49
yosoroAida OP @ST0RMTR00PER 吵架是有,但是自己团队的人吵架有吗?
|
50
yosoroAida OP @tianzi123 但是开发团队里互相指出代码写不好,业务逻辑不对应该算是很正常的事吧?而且也没直接说代码烂之类的,就是说“看的辛苦,为什么不能在方法签名就定义好返回对象,要翻到 service 的方法最下面才知道这返回给我什么。”,还有“为什么这个提交方法成功返回 null ,失败却是一个结构体”这种话而已
|
51
crocoBaby 243 天前
不帮他写,让他自己爬屎山
|
52
Light3 243 天前 5
楼主 你别的说的对不对不知道
你说你情商很低 我很支持 在职场 不要总是想着批评同事 你自己能干就干 不能干 就不干 关于这句话 A 的项目,开发了一年半,连个后台功能都不完善,还要别人帮他去搞。 然后经常迟到早退,还有请假(最离谱的是去年国庆连续请了 4 天,连着国庆爽玩)。搞得项目没搞完,要让其他人帮忙开发,难道自己不反思下,还要骂 op 。 我只能说 你还是被骂少了 套麻袋打一顿都是少的 |
53
admin7785 243 天前 via iPhone 12
不理解,为什么人家正常休假都会被喷?难道因为项目都不能休假享受生活了吗?
|
55
usauk1998 243 天前 via Android
谁要你自己接手别人项目的,你好好带薪摸鱼就是了
|
57
gongquanlin 243 天前
之前在老东家,我领导说让我写个功能,说他已经加班两天改的差不多了。我打开之后一看就是把我之前项目的前端复制了一份改了下 title 啥的
后端写的更和粑粑一样根本没法用,后来当着领导和所有部门同事的时候我说我把他代码删了重写的 从此就过上了自由的生活以至于后来和另一个领导被单独干成三个人的部门,哈哈哈! |
59
liaojl 243 天前 via iPhone 5
其他不做评价,关于休假,只要老板肯批,我觉得没啥大问题。
|
60
changnet 243 天前 4
要是这样的人在我底下干活,早就被开了
但是,但是,在 V2 这种才是正道。要每天想着怎么把代码写得更烂,免得被裁。 我寻思就没人想做个正常人,怎么自己的事没做好,连累了同事还不让人说。 |
62
yosoroAida OP @eironn 他快乐休假,我们给他擦屁股,这叫卷吗?
|
63
abccccabc 243 天前 1
楼主,消消气吧。这种事以后会经常碰到。
我以前调用同事一个接口,那个接口的 if-else 嵌套了六层,看得我是云里雾里。看完后大致有个结果,然后再找写这个接口的同事,问结果是不是这样。 还有另外一个同事,他的接口内部写的很模块,结果就是方法跳来跳去。感觉都快跳晕了。 两个极端代码形式。 默念阿米托佛,自个学 swow/fiber 去,学并发框架去,学异步去。不跟他们计较。没意思。 |
64
yosoroAida OP @changnet
是的,这种人早就被开了,如果老大真的管他 |
65
eironn 243 天前
@yosoroAida #62 他拿工作作为活计,你当做事业。可以说你不是卷,但是他也没错。他有请假的权利,批不批是领导的权利,你要说他请假那 9 成的责任在于领导。
|
66
yosoroAida OP @Light3
那你同事爽放假,然后他的活做不完,你去帮他擦屁股,你不会想去骂他吗?这还不是,三番四次了,你觉得对吗? |
67
mrochcnnnnn 243 天前 1
屎山是不行的,过度设计也是不行的。看团队整体水平🤣
|
68
fyxtc 243 天前 4
不知你是否是他领导,如果是平级同事的话,个人认为
1.不应该公开场合批评,向领导反应即可 2.项目大部分时间都是做不完的,请假是个人自由不应该受到指责 3.目前形势大家都很难了,从你最后对 A 的描述你应该早看不惯 A 了,不排除输出情绪找个由头 4.对领导你认为是“不理不管”,对同事你认为是“团队毒瘤”,emm... |
69
yosoroAida OP |
70
shyz 243 天前 2
|
71
eironn 243 天前
@yosoroAida #69 这种人是很让人不爽,但是应该尊重人家的工作选择,他请假也扣钱了不是吗不是带薪的吧。你比他责任心强、能力大、做的多,你应该做的是去申请涨薪,这样子心里就会平衡。
|
72
htxy1985 243 天前
不知道 op 的单位是不是国企之类的传统企业,他这么烂也没人开了他会不会有什么原因呢。
万一人家有你不知道的上头关系,连他大领导都动不了他那种,关系搞这么僵,岂不是尴尬的。 我觉得不到万不得已真的不要去针对人的说辞,可以跟大领导谈,但只说事情。 |
73
cuizibo 243 天前 1
为什么要给别人建议呢?
|
74
yosoroAida OP @htxy1985 外企,不过是马来西亚那种的。我觉得本质跟国内私企差不多。传统企业
|
75
foolvino 243 天前
没搞懂,你们领导都不管,你管什么呢
|
76
admin7785 243 天前 via iPhone 3
@dogeee #56
@yosoroAida #62 我不理解,项目交接是一件很正常的事情。 因为别人休假导致自己接手了他人的工作,还要加班赶进度。这不应该是项目管理上的问题吗? 每个人都有发光点,一味的吐槽贬低身边的人,我不认为这是一件值得分享的事情。 |
77
kinghly 243 天前 via Android
这种人就该被优化掉
|
78
anjingdexiaocai 243 天前 via Android 1
我觉得主要问题在你们负责人啊,像不合理代码在我们组压根合不进去仓库。而且你同事坑归坑,他有句话说的没毛病啊,你跟他同级的,你做好自己的就行了,你又不是他领导。你觉得他有问题,你反馈给你领导就行了。
|
79
yidev 243 天前 1
能力有高低,他写他能力之内的代码,能维持运行本无错。因为你接手你看不上他的代码衍生出来的矛盾,不是你的原因吗?你自认为高级的代码,在别人眼里,何尝又不是一座屎山。不要带技术的优越感去贬低别人。
|
80
yosoroAida OP @anjingdexiaocai 根源是没人管,虽然口头上说了要团队代码风格优化。但是没人做 code review ,所以屎山就一直堆到要部门负责人要重构
|
81
yosoroAida OP @yidev 如果能力不行,还不去学习提升的人,你会不去贬低吗?他一个工作四五年的人,代码写的跟在小作坊刚毕业半年工作,你会不贬低吗?
|
82
yosoroAida OP @admin7785 我只站在一个工作者的角度去评判他,人品这块他是没问题的。只能说我不适合这个团队作风,哎。
|
83
ajaxgoldfish 243 天前 3
op 是有公司股份吧,要不怎么能这么卖命。辛亏我没和 op 共事,我最怕 op 这种事多的爱装逼的。领导不管你急什么呢?(有公司股份除外)
|
84
ajaxgoldfish 243 天前
各位看官和 op 请忽略我的回复,我还是撤回吧,我是烂仔咸鱼还是别做回复了,请忽略我的小丑行为
|
85
yosoroAida OP @yidev
以下是他代码的一些例子: 1. 一些前端页面的按钮入口配置,他都不用数据库去存,直接写死在后端代码上 2. 几百行的代码一堆 if else ,没有设计模式 3. update / insert 的数据库操作没有事务 4. 一条插入数据的业务,会去全表更新另外一张表,例如 update table_a join (select field1 from table_b) b on table_a = b set table_a.field 1 = b.field1 (这种数据量大起来的话,那慢 sql 不会直接锁表导致死锁之类的吗?) 5. 在 if 方法内创建对象,然后又没有地方引用到 6. 自己引入了 spring security , 但是 c 端登陆确实自己另外写登录逻辑,不用 spring security 框架 7. maven 版本依赖相当混乱 你看我单单数都数这么多出来了,都不是冰山一角了。 |
86
yosoroAida OP @yosoroAida
“你看我单单数都数这么多出来了,都不是冰山一角了。” 这里打错,应该是 “你看我单单数都数这么多出来了,这还仅仅只是冰山一角。” |
87
zhuwd 243 天前
哪位大佬能告诉我 char(19) 当主键会有什么问题啊......
|
88
yosoroAida OP @ajaxgoldfish
等你有这种队友折磨你的时候,你就不是这么想了。我不是卖命类型,我是准时上下班那种,只是说希望团队的水平能拉上去,这样对他以后想晋升也好,跑路也好,也是有帮助的。总不想面试的时候,被别人说五年经验还不如一个一年经验的吧?- - 而且我也不是直接当面说他水平不行之类的,是问他为什么要这么设计云云,也算是够委婉了吧? 程序员至少要对代码要有敬畏之心吧,你也不想周末爽打游戏的时候被摁着修 bug 吧? |
89
yosoroAida OP @zhuwd 他把单纯的有序数字也拿 char(19 )来存储,那像 100 跟 99 这种 id ,如果是顺序排序,那么 100 会在 99 前面。
|
90
litmxs 243 天前 via iPhone 1
op 不如出去散散心消消气,别来网上找认同了。
你要是觉得别人代码烂/请假影响了你进度,你就让领导给你加工期,改进管理流程、推进编码规范、code review 。 如果做不到,说明你们团队也就这水平了,你要真觉得自己水平比他们高,趁早跑路。 |
91
yosoroAida OP @litmxs
谢谢提议。 |
92
ajaxgoldfish 243 天前
@yosoroAida 可能我们的业务小,非必要直接一律 uuid 作为索引,目前没遇到什么瓶颈。
|
93
lasuar 243 天前 1
你不是 leader 、leader 又不管、同级说教就是越权行为。优化屎山就慢慢改慢慢磨,要自然而然的让领导感知,让领导去处理,没有权力不要做出头鸟不要好为人师,实在忍不了就跑路。
|
94
yosoroAida OP @ajaxgoldfish 他这个业务也很小,其实做成单体都可以的。结果他去网上找了个“谷粒商城”源码,基于这个做二次开发,然后线上一堆问题,然后我们才提出重构他这堆屎山。开发期间都是他自己开发,中间有找过我们帮忙做点。这个项目算上开发跟维护到现在已经有 1 年半,原因是这个项目赚钱(果然代码越烂越挣钱,笑死
|
95
yosoroAida OP @lasuar
哎,所以我还是不管这些了,好好带薪学雅思,跑去欧美外企吧 QAQ |
96
SWALLOWW 243 天前
还是太教条了
|
97
yosoroAida OP @shyz 不爽是另外一位,不是这位,那位连放 8 天的老哥还是挺愿意学习的。
|
98
yosoroAida OP @cuizibo 那同一个 team ,不给建议的话,他下一项目也继续给你拉这种屎,你是不是也继续默不吭声继续重构屎山?
|
99
wanguorui123 243 天前
先搞下代码规范培训吧
|
100
yosoroAida OP @wanguorui123
我也想是输出个代码规范文档之类的,如果也没什么成效,那可以确定跟上面反馈下,或者跑路了 |