一次失败的二开经历 | 远程技术管家创业周记(13)
你好,我是贤民,你身边的 IT 技术管家,这里是我的创业周记。
本周行动
五一前接了个 4000 的活儿,是个跨平台的桌面应用。 客户着急要,我答应了一周内交付,五一期间就没有休息。
跨平台应用最大的挑战是兼容性问题。 我平时主力开发机用的是 Windows , 在 Windows 下一路开发,一路测试。 MacOS 呢,中间编译测试过一次,没问题。 但是等功能开发完成,再编译测试,就打不开了,报错。 报错内容丢给 AI ,AI 瞎改了一通,找不到实际 bug 根源。 从没问题到有问题,中间大概有 30 次提交。 不知道是哪一步出现的问题。 这时候只能用二分法,去定位哪一次提交导致的程序出错。 差不多回退四次,就能找到了。 发现只是一行代码,在 MacOS 下不支持,但是编译呢,又能通过,可程序打开却会导致崩溃。 编译太耗费时间,差不多用了半天,才修复这个 bug 。 后面就成功交付了。
一个失败的案例
五一期间还接了个二次开发的活儿,远程看客户演示,基本功能都完成差不多了,有三点需要修改。 我粗略看了下源码,前端用的 react ,后端用的 python ,这俩我都熟悉啊,就接下了这个活儿。
真正开始改动的时候,发现还是大意了,要改动的其中一个核心文件有将近 2000 行代码。 状态值分散在各处,根本无从下手。 我想的很简单,不是有 AI 嘛,让它帮忙重构,分割成多个组件,用上下文重新管理。
重构的差不多,可以动手了。 但又发现,客户的需求,与原先的代码逻辑是不一致的。 要实现客户的需求,得换一套操作逻辑,还得继续重构。 最后我放弃了,浪费了两天时间。
- 二次开发,一定要注意原本的代码规范如何,如果有多个文件大于 1000 行,那就要小心了,大概率代码凌乱。
- 对于代码凌乱的项目,不改变原有的逻辑,添加一两个功能可能还好。如果要重构,最好的方式,彻底重写效率可能还高一些。
- 太久远的历史遗留项目,比如六七年前的 vue2 项目,node 12 以下的版本,这一类的活儿也可能比较恶心。
结束语
你有没有失败的二次开发的经历呢?
文章作者 贤民
上次更新 2025-05-11
许可协议 原创文章,如需转载请注明文章作者和出处。谢谢!