首页 > 编程知识 正文

为什么公司代码垃圾,维护祖传烂代码

时间:2023-05-04 07:25:30 阅读:140283 作者:2965

我经常听说祖传的代码被称为“粪山”。 每个人的实际感受可能不一样,但最近看到了一个回答。 正是把这个描述成“活着”。 大家感受一下吧。

阅读正文大约需要三分钟。

“作者: Avalon

原文链接: https://www.zhi Hu.com/question/272065178/answer/1583717199

来源:知乎

说起自己经历过的“粪山”,我曾进入创立15年的软件公司。 我曾应聘中级程序员,进公司几个月后,我的工作地点和薪资被调整为高级程序员。 这不是因为我在这几个月里技术水平有了飞跃,而是因为这三个月发生了以下事情。

前任一号和我交接完毕后逃跑了!

前任组长和新聘请的组长交接后逃跑了!

前任的2号和新招来的初级程序员交接后逃跑了!

新任领导人和我交接后逃跑了!

新人队员(女)在站台上掩面哭泣后,换了组合! ((掩面忍住眼泪不出声的哭泣) ) ) ) ) ) ) ) ) ) ) ) ) ) )。

组内人手严重短缺,我白天解决生产bug,晚上写新需求!

这是年轻的“屎山”,我是第三个接手者,几个月后成为项目组里,最老的员工! 实习生和初级程序员写的bug和低级错误我忍住了。 因为来自私人,所以勉强能理解。

但是,框架填补了“海拔”、“架构组”、“大户”等人群,严重影响了用户体验!

For example! 当时项目的工作流程很奇怪,无论有什么错误,都会一并提示“发生了未知的错误”。 即使我按照《公司祖传架构手册》,在布局中填写了“会计系统接口调用失败”、“当前时间不允许操作”等提示信息,客户使用时也会表示“发生了未知错误”

起初,承运人每天都帮助客户解决这个问题,所以客户并不太满意。 有一天,因为复杂的理由,客户因为这件事勃然大怒,要求我解决这个问题。

忙后发现,问题在于公司定位于自己打包的jar包,反编译后内部逻辑存在问题。 我联系了其他架构组,请他们给我一个新的jar包。 第二天,“这个框架很早就重构了。 公司的新框架与旧框架不兼容。 所有使用旧框架的项目都交给项目组自己维护。 我收到了你们项目组的框架应该是xxx在维护的。”

xxx是个很陌生的名字,在多次询问之后,xxx是我们组的第一个组长,已经退休两年多了。 我只能在svn上继续摸索。 迷迷糊糊找不到jar包的源代码。 几经周折,我才知道,svn以前是几家外包厂商通用的。 后来,由于外包制造商越来越多,我们为每个制造商重新配置了svn。 在迁移过程中,此jar包的源代码由于没有制造商的认领,被掉落到了公共svn上。

但是,故事并没有结束。 从公共svn上找到的源代码和我用反编译编写的代码,在很多地方都不相符源码里的注释在我眼中都变成了「年轻人,千万不要动这坨屎!」

最后,在工作流外部封装一组组件以代替工作流提示信息,并使用注释「如果你不幸看到了这行注释,不要怪我,我也不想的!」

以上是“粪山”的一角。 因为“粪便”的祖传代码中真的有很多臭的问题。 因为“山”粪便太多了。 最讽刺的是,你为了治理“屎山”,qpdhy可能也拉过几次“屎”……。

形象太强了.

再来谈谈这个“屎山”的一角吧。

项目小组负责的几个系统中,有负责放贷的系统。 (前置业务系统与记账和转账无关。 )坏账是贾父非常核心的功能之一,因为上线前做了重点测试,我接手的时候已经运行的很顺利了几年。 接手后也没有任何问题,整个放款业务也没有新的需求,我到那天也没有深入研究……。

背景是甲爸爸接了一个大订单,但是量太大,其中几个合同的合同号码记录差,纸质合同和网上合同不符,甲爸爸找到了我们组的成员进行数据处理。 处理的下午,网上合同的合同号码不变。 队员来找我的时候,汗流浃背。 我在心里隐约猜测,又踩屎。

团队成员根据数据库文档更改了合同编号,但系统显示的是旧的合同编号。 已经踩到几次屎了,我直接去翻代码了。 还有大量给“汉语拼音”命名的变量和无数含义不明的注释,让我看的太阳穴七上八下。

原来生成电子合同的功能和我们想象的不一样,放款操作结束时,系统生成了一个名为合同信息主键(36位UUID )的PDF并本地存在,每次点击下载合同其实是基于主键ID这个文件当时,理解这个逻辑的时候,我出了一身冷汗,但并不是因为这个设计多么违背人类……。

前方高能! 前方高能! 前方高能!

前任承运人接手时曾表示,放款系统在线一年没有问题。 但是需要注意的是,与外部系统的往来中产生的交易文件很多,必须定时打扫。 另外,在我面前,删除了日期早的文件。 生产环境中有指定的电脑,在该电脑上看pdf文件没有后缀,图标也是空白的,在场的人也不太在意,所以这些“交易文件”没有被发现

不太对劲。

看着大概就长下面这样,谁也没有好奇的去看看里面是什么。

所以新任运维人员会定期去删除老旧文件,也就是以前的电子合同!!!

我当时就给技术总监和项目经理打电话,三个dxhd大半夜跑到单位附近的肯德基研究对策。好在数据都在数据库里,技术总监捅咕了几天,写出来个脚本把所有被删的文件重新生成了一遍。但是服务器空间不够又传不上去,就跟甲方爸爸说电子合同这块设计不够完善(前任技术总监背锅),我们想要优化一下,不要钱的那种。

“事故”尘埃落定之后,项目经理想要追责却发现这锅只能他自己背,除了他全都是后来的......

在那个公司干了一年多,工资涨了三次,但我还是离职了,毕竟「屎」是真的难吃......当我把项目交接出去的时候,我就想起我在项目里留下的注释(屎),露出了和(幸)蔼(灾)亲(乐)切(祸)的笑容。

好文和朋友一起看~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。