各种纠缠,无从下手。 尝试改了几次,都遇到了想不清的逻辑,被推翻了。 现在想起这分布在各处的几千行逻辑,就想避开,想不进去。 甚至越来越埋怨、厌恶这写代码的历代作者。 最近一个的还是我 leader 。危险了。 同事不试着解扣,还在把里面代码复制出来删删改改当新功能。
为什么我要纠结?因为目前给我的任务也是要在上面加新功能,另一个新功能。 还老得防着我们代码冲突。
想听听你们的类似经历。 欢迎吐槽调侃,更欢迎有效见解、解决之道。

各种纠缠,无从下手。 尝试改了几次,都遇到了想不清的逻辑,被推翻了。 现在想起这分布在各处的几千行逻辑,就想避开,想不进去。 甚至越来越埋怨、厌恶这写代码的历代作者。 最近一个的还是我 leader 。危险了。 同事不试着解扣,还在把里面代码复制出来删删改改当新功能。
为什么我要纠结?因为目前给我的任务也是要在上面加新功能,另一个新功能。 还老得防着我们代码冲突。
想听听你们的类似经历。 欢迎吐槽调侃,更欢迎有效见解、解决之道。
1 kytrun Jan 20, 2022 想让我从一摊 shit 熬成香喷喷的米饭,我做不到,要么重写,要么告辞 |
2 Yooloo Jan 20, 2022 重写,替换 |
3 IsaacYoung Jan 20, 2022 via iPhone 跑路 |
4 golangLover Jan 20, 2022 via Android v2ex 的网友会告诉你继续堆屎山,不要想太多。因为好代码设计是没用的,快速迭代才是正确的。 |
5 nthhdy OP @golangLover 快速迭代不起来。测试太依赖环境,没有自动化测试。 |
6 wangtian2020 Jan 20, 2022 领导和老板去谈了业务就把项目签了,然后回来说项目要拿老代码改。 谈项目不问开发人员呵呵,开发前中期我提了无数遍要重写,领导不同意。 jquery 代码写的又臭又长,一千行能写完的逻辑,因为老技术架构、设计不合理、实习生团队(代码,产品)作品的原因,写了五六千行,而且理所当然的没有文档。只剩臭业务逻辑的项目,没什么意思。 正好那段时间我从老板的 PUA 中醒了过来,提出离职,离职前的一个月给他们用 vue 糊了个大概就拜拜咯。我精湛的代码技巧不是为了在廉价的情况下给实习生代码补漏洞加逻辑而生的。 |
7 4BVL25L90W260T9U Jan 20, 2022 《修改代码的艺术》 https://book.douban.com/subject/2248759/ |
9 kindjeff Jan 20, 2022 我选择跑路。过几天就 last day 了 |
10 lightjiao Jan 20, 2022 有相同的经历,不过硬是看完了,也做了小规模重构,有一些大的东西改不动,也没时间改 不要怀疑自己的水平,好的代码至少结构是清晰的、说明或注释是完整的,代码到处复制粘贴,一个函数调好几遍,那就是代码写得烂 |
11 lagoon Jan 20, 2022 "越来越埋怨、厌恶这写代码的历代作者" 哎,其实也想为实际的作者说说话。 比如我现在,时间越来越紧,要求越来越模糊,大脑成了一片浆糊。 我怎么办?我只能选择堆屎山了。 |
12 kiroter Jan 20, 2022 别听你 leader 的 B 话,他拉的屎他当知道咋擦了 |
16 golangLover Jan 20, 2022 via Android @nthhdy 快速迭代的意思是写得快,尽快跑起来。 |
17 iColdCat Jan 20, 2022 “要是我的话,三天就改完了” 跑路 |
18 7gugu Jan 20, 2022 继续写山代码,把问题丢给后人解决。我估计这种山除非系统炸裂,或者项目组解散,不然都没啥机会让你重写的了,毕竟又不是不能跑。 |
19 mx8Y3o5w3M70LC4y Jan 20, 2022 我最近也在改 legacy code ,我是做移动端的,写了一长段时间的 js 了,现在改的是安卓代码。 我现在在公司每次打开 Android Studio 都觉得有一阵恶心眩晕感,像是 ptsd 了。 每次看到一个一个的 activity 动辄 3 、4k 行,一个一个 xml 1 、2k 行代码,我都能想到红楼梦里林黛玉唱葬花吟的场景:天~尽头~~何处有香丘~~~ |
20 pengtdyd Jan 20, 2022 要是我的话,三天就改完了 能说这句话的 leader 和垃圾没啥区别 |
21 richangfan Jan 20, 2022 简单,看不懂的代码给他删了 |
22 xuxuzhaozhao Jan 20, 2022 |
23 wu67 Jan 20, 2022 自己写的代码, 当然知道怎么改. 好歹思路能相通, 大体规律自己心里有底. 但是读别人写的代码就不一样了, 看着难受是真的难受, 改不动的是真改不动... |
24 wu67 Jan 20, 2022 总结起来就是不写注释就是坑. 就算代码写得再好、命名再规范再语义化, 读别人的代码时, 都会面临减智 30%的 debuff 的... |
26 keepeye Jan 20, 2022 我没见过哪个项目因为重构而复活的,要么中途放弃了,要么项目本身已经不行了,重构也没用甚至会把最后一口气给折腾没了 |
27 JDog Jan 20, 2022 "新人和老人的区别就是面对一坨屎山,新人会大吃一斤。老人会贤淑的避开最臭的那部分屎,然后灵巧的在保证屎山不垮的情况下把自己的屎再拉一层上去" |
28 qping Jan 20, 2022 最应该做的是最小代价修改 但我做不到,强迫症,只要我用过的代码肯定是一路重构过去,哪怕看到自己之前的代码,也会想:写的是什么玩意,明明可以更简单 |
29 h82258652 Jan 20, 2022 改不动就跑呗,形成屎山的最大原因还不是这群领导不做代码审阅 |
30 3dwelcome Jan 20, 2022 我发现领导都有个共性,就是改改旧代码,工程就能以最低成本研发出来。 但是副作用,就是代码太长,日后很不好维护。 有时候自己写代码,会提醒自己要非常克制,尽量解耦。让简单代码变复杂,只需要无脑写就可以了。而让复杂代码变简单,那就是很困难的事情。 引用一句话:聪明的程序员,如果改不动现在 BUG ,就创造出一个没有 BUG 的新世界。 |
31 sampeng Jan 20, 2022 大部分(包括我自己)所谓重构就是堆新的屎山,这没什么稀奇的。但是自己拉的屎自己闻着香。 |
32 JamesR Jan 20, 2022 @wangtian2020 #6 修改前人写得烂尾项目,里面是漏洞百出的代码,同时给他修各种千奇百怪的 Bug ,这种工作意义究竟在哪? 别人问你工作是干什么,绝大多数人羞于说出口,因为实际上是给老板和他前员工生产的劣质产品做修修补补的,这种工作原本就不应该存在才对。 |
34 nthhdy OP 劝跑路的都是哥们儿~ |
35 redford42 Jan 20, 2022 我也在改 操了。 |
36 redford42 Jan 20, 2022 六年前的代码 估计是当时大环境问题 第三方接口返回都不判断 code |
37 cogitoxin Jan 20, 2022 目前也在搞屎山,感觉一般是重写比改快…… |
38 msg7086 Jan 21, 2022 一般要保证屎山能用,至少要同一个组里至少几个人审过看过。 这样至少是一堆人都能接受的屎,而不是一个人的屎。 |
39 zxjunz Jan 21, 2022 新手才想着怎么去重构,老手只想着在不动屎山的前提下在上面再拉一泡屎 |
40 nthhdy OP |
41 7gugu Jan 21, 2022 @nthhdy 就是这么个理,尽量能别动就别动,重写肯定是对的,但要付出几倍的时间去梳理。除非老板让你立项重写,不然为啥自己要自我感动,搞不好还要被喷。如果代码都是这么的话,就趁早跑路吧,这东西对于新人来说已经趋近无解了。 |
42 lilihangzhou Jan 24, 2022 为这事跟领导闹得很不愉快,他的说法是重构这种事他不会支持,但是你还得做。一股子阿里味,我 TM 呵呵,打算年后跑路了,屎上雕花这种事,臣妾做不到 |
43 nthhdy OP |