|
|
|
|
移动端

33 记录问题解决日志

《高效程序员的45个习惯:敏捷开发修炼之道》本书总结并生动地阐述了成为高效的开发人员所需具备的 45个习惯、思想观念和方法,涵盖了软件开发进程、编程和调试工作、开发者态度、项目和团队管理以及持续学习等几个方面。本节为大家介绍记录问题解决日志。

作者:钱安川/郑柯 译来源:人民邮电出版社|2010-03-04 08:57

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

第7章 敏捷调试

你也许会对木匠那毫无差错的工作印象深刻。但我向你保证,事实不是这样的。真正的高手只是知道如何亡羊补牢。

--Jeff Miller,家具制造者、作家

即使是运作得最好的敏捷项目,也会发生错误。bug、错误、缺陷--不管被称作什么,它们总会发生。

在调试时面对的真正问题,是无法用固定的时间来限制。可以规定设计会议的持续时间,并在时间截止时决定采用最佳的方案。但是调试所耗费的时间,可能是一个小时、一天,甚至一周过去了,还是没有办法找到并解决问题。

对于一个项目来说,这种没有准确把握的时间消耗是不可接受的。不过,我们可以使用一些辅助技术,涵盖的范围包括:保留以前的问题解决方案,以及提供发生问题时的更多有用细节。

要想更加有效地重用你的知识和努力,记录问题解决日志是很有用的,我们会在下一页看到如何具体操作。当编译器警告有问题的时候,要假定警告就是错误,并且马上把它们解决掉(第132页)。

想在一个完整的系统中跟踪问题非常困难--甚至是不可能的。如果可以对问题各个击破,正如我们在第136页中看到的那样,就更容易找到问题了。不同于某些欲盖弥彰的行为,应该报告所有的异常,如第139页所述。最后,在报告某些事情出错之时,必须要考虑用户的感受,并且提供有用的错误信息。我们会在第141页看到这是为什么。

33 记录问题解决日志

"在开发过程中是不是经常遇到似曾相识的问题?这没关系。以前解决过的问题,现在还是可以解决掉的。"

面对问题(并解决它们)是开发人员的一种生活方式。当问题发生时,我们希望赶紧把它解决掉。如果一个熟悉的问题再次发生,我们会希望记起第一次是如何解决的,而且希望下次能够更快地把它搞定。然而,有时一个问题看起来跟以前遇到的完全一样,但是我们却不记得是如何修复的了。这种状况时常发生。

不能通过Web搜索获得答案吗?毕竟互联网已经成长为如此令人难以置信的信息来源,我们也应该好好加以利用。从Web上寻找答案当然胜过仅靠个人努力解决问题。可这是非常耗费时间的过程。有时可以找到需要的答案,有时除了找到一大堆意见和建议之外,发现不了实质性的解决方案。看到有多少开发人员遇到同样的问题,也许会感觉不错,但我们需要的是一个解决办法。

要想得到更好的效果,不妨维护一个保存曾遇到的问题以及对应解决方案的日志。这样,当问题发生时,就不必说:"嘿,我曾碰到过这个问题,但是不记得是怎么解决的了。"可以快速搜索以前用过的方法。工程师们已经使用这种方式很多年了,他们称之为每日日志(daylog)。

可以选择符合需求的任何格式。下面这些条目可能会用得上。

问题发生日期。

问题简述。

解决方案详细描述。

引用文章或网址,以提供更多细节或相关信息。

任何代码片段、设置或对话框的截屏,只要它们是解决方案的一部分,或者可以帮助更深入地理解相关细节。

要将日志保存为可供计算机搜索的格式,就可以进行关键字搜索以快速查找细节。图7-1展示了一个简单的例子,其中带有超链接以提供更多信息。

 
图7-1 带有超链接的解决方案条目示例

如果面临的问题无法在日志中找到解决方案,在问题解决之后,要记得马上将新的细节记录到日志中去。

要共享日志给其他人,而不仅仅是靠一个人维护。把它放到共享的网络驱动器中,这样其他人也可以使用。或者创建一个Wiki,并鼓励其他开发人员使用和更新其内容。

维护一个问题及其解决方案的日志。保留解决方案是修复问题过程的一部分,以后发生相同或类似问题时,就可以很快找到并使用了。

切身感受

解决方案日志应该作为思考的一个来源,可以在其中发现某些特定问题的细节。对于某些类似但是有差异的问题,也能从中获得修复的指引。

平衡的艺术

记录问题的时间不能超过在解决问题上花费的时间。要保持轻量级和简单,不必达到对外发布式的质量。

找到以前的解决方法非常关键。使用足够的关键字,可以帮助你在需要的时候发现需要的条目。

如果通过搜索Web,发现没人曾经遇到同样的问题,也许搜索的方式有问题。

要记录发生问题时应用程序、应用框架或平台的特定版本。同样的问题在不同的平台或版本上可能表现得不同。

要记录团队做出一个重要决策的原因。否则,在6~9个月之后,想再重新回顾决策过程的时候,这些细节就很难再记得了,很容易发生互相指责的情形。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java程序设计教程

本书对第1版的某些章节作了合理的调整,增加了部分实用的程序,并在每一章的最后加了适量的练习题,以巩固前面所学的知识,更加有利于等级考试...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊