复盘
正在为修改一份报告发愁,小冉来到我办公桌前,只说了一句话,让我愁上加愁。
最近,我们来到新的团队,就想着表现下。正当我们找不到表现机会的时候,老陈及时送出助攻。老陈是新部门的领导,我和她很熟悉,虽然有上下级之分,但是因为年龄相仿,过去交往也比较多的缘故,老陈在我面前不像个领导,我在老陈面前也不像个下属。一天,我正在办公室里面摸鱼,老陈突然出现在我面前,咧着嘴大笑:“你龟儿又在干啥子哦?给你说个正事儿,帮规划所写个程序,提高下工作效率。”看到是老陈,我也不避讳,摸鱼的网页都没有关,听到老陈说要开发程序,我立刻来了精神,开发个程序,解决工作的问题,也算是我们纳了一个投名状。
程序开发非常顺利,各种测试全部通过,我反复比对几次,没有问题,特别是数据。为了推出新人,我就没有出面交付程序,而是安排小冉。原以为交付之后,我会得到很多表扬,也预想过可能会有bug,只不过没想到来得这么快,而且很致命。面积有大问题,汇总面积远远超出红线面积,这是明显的错误。面积对于规划人员来说,是一个关键指标,成果里面表格格式稍微有点问题,甚至说文档报告里面有几个错别字,都不是最致命的,最重要的就是面积,如果面积出问题,将会影响整个工作审批。听到小冉说出这么大的问题,我不敢怠慢,赶紧开始复盘。
我很不相信会有这么低级的bug,先要亲自跑一遍程序。结果面前,我无话可说,确实有点问题。出现问题只有去找原因,在我看来,修复程序和修电脑没太大区别,也就是一个功能一个功能的测试。一开始我怀疑数据有问题,可能存在重叠,数据存在重叠便会造成面积重复统计,从而造成汇总面积变大。一番检查之后,数据没有问题,问题只能在程序中。我只有放弃一切幻想,去程序里面找问题。还好我设计程序时,保留了所有过程数据,当初就是设想方便复盘,对着一个个过程文件,我一个函数一个函数的比对,发现每个函数的输入输出都没有问题。
找不到原因,我只有采用倒着追溯的办法查找。由汇总面积数字出发,向源头清理,一步步清理,终于我发现在一个裁剪操作的结果中,出现很多重复的面积数值,按道理,已经到小数点后四位的数值,很少有重复的可能,这么多的重复一定是有什么问题。根据结果分析功能函数,我看了下函数过程。为了提高处理效率,当初我对这个函数做过优化处理,把标识放到了裁剪操作之后,再一看前面的操作,我好像是找到了原因。裁剪之后,我对新的图形做了一个面积计算,紧接着标识。标识操作会分割原来的图形,但不会改变原文件的属性,问题正是出在操作顺序上,先计算面积生成一个属性,再标识,图形被切割之后会形成很多个面积属性相同的要素,再进行计算汇总面积肯定会变大。找到原因,修改起来很快,调整下处理顺序即可,把面积计算放到标识之后,保证按新的图形更新面积属性就行。修改好程序,同样的数据再跑一遍,面积闭合。
一个操作顺序,造成数据不准确,以后再写程序时,千万要记住这一条,标识很好用,但千万要注意操作顺序。