本文主要是介绍(二十四)优秀员工 - 2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
钱三通过一定的方式查看了相应的礼品供应商反馈的所有的礼品退包数据后,得出的结果正如他们所说的,他们均已反馈了收包成功的礼品退包数据。看来问题是出在兑换系统上,并且是出在退换货处理的功能上。
这回钱三决定自己亲自出马将问题解决。在这个时候,似乎谁也信不过了,之前软件公司开发出来的程序信不过,不久前王华修改的退换货处理的功能也似乎信不过,也许只有自己才是相对可靠的,否则再出现问题,受累的还是钱三自己。
几番功夫下来,钱三终于查到了问题的原因是出在系统中处理礼品退包数据的一个存储过程中。正是因为这个存储过程在处理礼品退包数据时出错,所以导致系统无法成功地对相应的礼品供应商反馈的收包成功的礼品退包数据进行处理。而这个存储过程正是王华在修改退换货处理的功能时所创建的。
问题的原因隐藏得很深。王华在这个存储过程中写了多个嵌套很多层的SQL语句,语句中每一个内层的查询语句所查询出来的结果值均作为外层的查询语句的条件值。但当中有一层语句查询出来的结果在不同数据的情况下却有可能返回两个以上的值,这就会导致这层语句所查询出来的结果值在作为外层语句的条件值时有可能会出错──因为外层语句的条件值不唯一。并且钱三发现,在这些多层嵌套的语句中,有些层的查询是相同的,这就造成了重复查询的问题,使程序运行的效率降低。
王华写这些多层嵌套的语句似乎是为了显示其水平,他在这些语句的前面加了一个很个性化的注释,说头一次写嵌套这么多层的SQL语句,真是佩服自己。但他却不知道,正是这些多层嵌套的语句,导致在退换货处理中新出现了很多问题,而钱三也在费了很大功夫后,才将问题的原因查出。
钱三认为,这些多层嵌套的语句的标准写法应该是,将每一层的查询语句均作为一个独立的查询语句来处理,将其查询出来的结果值赋值给变量,再将变量作为另一个查询语句的条件值。这样的写法不但符合程序代码编写的标准和规范,使SQL语句显得清晰而容易阅读,而且程序出现问题后,也方便查找原因,易于维护,并且可以完全避免重复查询的问题。
并且钱三在查找原因的过程中发现,整个退换货处理功能的程序还存在多处不严谨和不完善的地方,这也将会导致一些不可预料的错误。
于是“一不做,二不休”,钱三决定将包括这个存储过程在内的整个退换货处理功能的程序及与之相关的一系列程序重新修改一遍。
历时多日,费了“九牛二虎”之力之后,钱三总算将整个退换货处理功能及相关的程序修改完成。经钱三修改后,整个退换货处理的功能更加符合实际操作的需要。针对修改中涉及到客服管理后台操作变化的内容,钱三特地写了一篇技术文档并通过电子邮件发给苏洁,让其将有关内容告知大行客服组的客服同事,以使他们了解其中的变化,方便他们工作。
To be continued...
这篇关于(二十四)优秀员工 - 2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!