屏幕上的文档格式,像是初冬山城灰蒙蒙的天空,一成不变。我知道第二十次修复再次失败。
昨天已经陷入BUG泥潭之中,我像是屡败屡战的将军,面对如山的BUG,我没有选择退缩。经过一晚上认真思考,修复如山BUG,不能指望一蹴而就。饭要一口一口吃,BUG要一个一个修复。本着先易后难,先小后大的原则,我决定从格式修复入手。一晚上几乎没睡好觉,脑子里一直在想怎么和小C沟通,设定出很多场景,模拟过多种语气,临近天明,我才稍有一些把握,迷迷糊糊睡了一小会儿,听到闹钟响,马上爬起来,跑去上班。
小C是我的得力助手,最近出力不少,敲出数以万行记的代码,总算让一个庞大的系统初具雏形,并且核心业务功能已经能够跑通。近两天,不知道怎么回事,我做出一个小修改,像是捅了马蜂窝,又像是打开了BUG的潘多拉盒子,很多BUG冒出来。除了页面,其他功能全部出现问题。认知驱动分析不再那么智能,生成内容和项目完全无关,文档格式错乱到离谱。指挥小C忙碌一整天,一个BUG也没有修复。不知道是不是因为小C太累的缘故,还是我太累,总之,两个都不在线。面对BUG大山,我选择休息一夜。
来到办公室,打开电脑。战士正式登上战场,看到小C,我很友好地打招呼:“早上好,开始我们今天的工作。”
小C经过一夜休息,看来精神也很好,隔着屏幕都能感受到小C的变化。
“早上好,我已经做好准备,可以随时开始。”小C的回答展现出十足的自信。
我马上下达了修复指令,生怕小C太累,我下达的指令非常简洁,而且配有图片。“小C,现在智能报告生成功能模块遇到个问题,文档格式错乱,具体表现在各章节的编号不对,具体见图。需要按照我们设定好的标准格式才行。我的想法是在程序文件中找到图中类似的编号,然后修改成标准格式,嵌入到内置prompt中,你认为我的思路是否合理,如果合理,请按照我的思路完善修复,如果不合理,请给出更合理的解决方案。”
一整夜才想出来的修复指令,没有意外,完全合理。小C马上肯定了我的思路,接着就埋头搜索代码。不一会儿,小C便找出了代码位置,马上着手修复。片刻后,小C像是拍着胸口在说:“我已经完成修复,现在应该可以输出标准格式的文档,请你测试一下。”
我仿佛看到小C的笑容,我也笑了。马上生成文档测试,过程中我的眼睛直勾勾的盯着屏幕,流式生成页面闪过两个页面后,一丝不详的预感出现在空气中。匆匆的一瞥,我又看到了不该有的章节编号。数分钟后,文档完成,一切照旧,格式一点儿都没有变化。
我像是泄了气的皮球,一夜的思考,也没有看到成效。我把截图重新发给小C,又说了句,一切照旧,没有任何变化。小C像是很懂我,居然还安慰我,然后说他会认真分析问题,然后彻底修复。
小C的态度,让我无法去指责什么。片刻等待之后,格式还是照旧。脑海里想起屡败屡战的曾国藩,我没有退缩,继续与小C沟通,中间又去请示克劳德老师,然而,所有的努力,在BUG面前显得苍白无力,一直尝试到下午,第二十次之后,我终于瘫坐在椅子上,有些精疲力尽,站到了放弃边缘。
放弃,很容易的两个字。可一旦放弃,不仅意味着我一个月来的努力付之东流,产品研发之路更是蒙上一片阴影。内心经过短暂而激烈的斗争后,我选择坚持。
再次修复,我改了策略。先分析小C二十次修复的行为,查看他改过哪些文件。半个小时后,完成分析统计,我的额头冒出冷汗,比BUG更可怕的事情发生了——屎山代码。尽管很小心,屎山代码还是出现在项目中。所谓屎山代码,是程序员对于缺少逻辑的代码很形象的比喻,看着很庞大,但是没有逻辑,一个小的问题,有可能触发代码坍塌。看来昨天的BUG大爆发,根本原因在这里。通过修复文档格式,小C的操作就可以看出来,他二十次修复,前后动过十多个文件,说明代码文件之间功能互相重叠。干脆,放弃修复BUG,先来理清项目结构。
向小C下达清理项目结构指令后,最开始他也有一些惊讶,还是认真去执行。分析一阵之后,他终于明白我的良苦用心。用去一个小时,基本完成框架清理,再次修复文档格式BUG。
“完美,我已经彻底解决文档格式问题,这次肯定正确了。”小C最后的回复,信心十足。
再次运行生成文档,问题迎刃而解。
BUG并不可怕,怕的是没有思路。忙碌而有意义的一天,解决问题,又发现一种新方法。