修改代码的艺术--YH维护修改“全部退餐”有感

本文记录了一次软件维护经历,作者在修复“收银员ID显示错误”的Bug时引入了新的问题——“全部退餐”功能异常。通过对代码的深入分析,最终定位到问题所在并修复。文章强调了单元测试、集成测试及系统测试的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2011/1/20上午接到王经理的电话,额,现在来的电话基本上都是YH店出现系统问题了。次数多了,都形成条件反射了。

Bug描述:在前台售单之后,需要退单操作,当输入单号查询出该单所有食物信息后,[全部退餐]功能异常,会提示“未捕获的异常,…. index超出范围….”。

问题解决经过:通过本地测试,发现的确存在这个未捕获的异常,异常存在于该页面的267行代码。查看代码,这一行代码是我改动过的,是我之前为了改正一个未能正确显示收银员id”Bug时改动的。

在看代码之前,我分析这种异常一般都是在for循环这类代码执行过程中,在退单功能代码块中,只有两处和退单有关的代码块用到了for循环,经查看,问题就是出现在这里。仔细查看代码,这里边我们需要遍历form窗体中的一个datagridview控件的所有行信息,而就在问题就出现在这里,.rows(i) .selectedrows(i) 的不同,我错误的写成了后者。那么,经过了IDE的编译,但运行这部分代码会出现问题。

这是由我修正一个bug而引来了另一个bug的基本情况。昨天看《修改代码的艺术》,里边讲到“当修改一个执行过程代码,则会引进一个bug”。我当时,只是明白这种可能性,并没有过多的感触,那时还在感触,额,这个问题的确可能出现。我应该会注意到的。事实呢,今天就验证了昨天的话,修正了一个bug,又引进了一个bug。我和伟东都意识到,这个问题主要是由于我们的单元测试、集成测试、系统测试,不规范、不完整所导致的。修改代码,重新发布了一个新版本V2.06,便在本地部署调试的时候,主要侧重于退单这部分功能,我们发现根据单号查询出的食物信息表(datagridview容器承载)中,总会最后留有一个空行,出于潜意识,我选中空行,进行[单个退餐],便又出现了一个bug该行对象未有实例…”。额,这里还藏着一个bug….

可能由于客户的一个不小心操作,便会引出这样一个未处理过的bug

修改代码的艺术,捧着这本艺术,从实践中感悟 修改bug的快乐。

内容概要:该PPT详细介绍了企业架构设计的方法论,涵盖业务架构、数据架构、应用架构和技术架构四大核心模块。首先分析了企业架构现状,包括业务、数据、应用和技术四大架构的内容和关系,明确了企业架构设计的重要性。接着,阐述了新版企业架构总体框架(CSG-EAF 2.0)的形成过程,强调其融合了传统架构设计(TOGAF)和领域驱动设计(DDD)的优势,以适应数字化转型需求。业务架构部分通过梳理企业级和专业级价值流,细化业务能力、流程和对象,确保业务战略的有效落地。数据架构部分则遵循五大原则,确保数据的准确、一致和高效使用。应用架构方面,提出了分层解耦和服务化的设计原则,以提高灵活性和响应速度。最后,技术架构部分围绕技术框架、组件、平台和部署节点进行了详细设计,确保技术架构的稳定性和扩展性。 适合人群:适用于具有一定企业架构设计经验的IT架构师、项目经理和业务分析师,特别是那些希望深入了解如何将企业架构设计与数字化转型相结合的专业人士。 使用场景及目标:①帮助企业和组织梳理业务流程,优化业务能力,实现战略目标;②指导数据管理和应用开发,确保数据的一致性和应用的高效性;③为技术选型和系统部署提供科学依据,确保技术架构的稳定性和扩展性。 阅读建议:此资源内容详尽,涵盖企业架构设计的各个方面。建议读者在学习过程中,结合实际案例进行理解和实践,重点关注各架构模块之间的关联和协同,以便更好地应用于实际工作中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值