记录问题解决日志

—— 高效程序员的 45 个习惯之习惯33

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

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

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

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

不要在同一处跌倒两次                     Don't get burned twice

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

  • 问题发生日期。
  • 问题简述。
  • 解决方案详细描述。
  • 引用文章或网址,以提供更多细节或相关信息。
  • 任何代码片段、设置或对话框的截屏,只要它们是解决方案的一部分,或者可以帮助更深入地理解相关细节。

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

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

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

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

维护一个问题及其解决方案的日志。

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

切身 感受

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

平衡的艺术

  • 记录问题的时间不能超过在解决问题上花费的时间。要保持轻量级和简单,不必达到对外发布式的质量。
  • 找到以前的解决方法非常关键。使用足够的关键字,可以帮助你在需要的时候发现需要的条目。
  • 如果通过搜索 Web ,发现 没人 曾经遇到同样的问题,也许搜索的方式有问题。
  • 要记录发生问题时应用程序、应用框架或平台的特定版本。同样的问题在不同的平台或版本上可能表现得不同。
  • 要记录团队做出一个重要决策的原因。否则,在 6~9 个月之后,想再重新回顾决策过程的时候,这些细节就很难再记得了,很容易发生互相指责的情形。

【连载】优秀程序员的 45 个习惯之习惯33相关推荐

  1. 【连载】优秀程序员的45个习惯之39——架构师必须写代码

    架构师必须写代码 --   高效程序员的 45 个习惯之习惯39 "我们的专家级架构师Fred会提供设计好的架构,供你编写代码.他经验丰富,拿的薪水很高,所以不要用一些愚蠢的问题或者实现上的 ...

  2. 【连载】优秀程序员的45个习惯之45——及时通报进展与问题

    好消息: 本书今天互动网有货,当当网.卓越网也会陆续有货. 及时通报进展与问题 -- 高效程序员的 45 个习惯之习惯45 "管理层.项目团队以及业务所有方,都仰仗你来完成任务.如果他们想知 ...

  3. 【连载】优秀程序员的45个习惯之42——允许大家自己想办法

    允许大家自己想办法 -- 高效程序员的 45 个习惯之习惯42 "你这么聪明,直接把干净利落的解决方案告诉团队其他人就好了.不用浪费时间告诉他们为什么这样做." "授人以 ...

  4. 【连载】优秀程序员的45个习惯之37——提供有用的错误信息

    提供有用的错误信息 --  高效程序员的 45 个习惯之习惯37 "不要吓着用户,吓程序员也不行.要提供给他们干净整洁的错误信息.要使用类似'用户错误.替换,然后继续.'这样让人舒服的词句. ...

  5. 【连载】优秀程序员的 45 个习惯之习惯35

    对问题各个击破 --  高效程序员的 45 个习惯之习惯35 "逐行检查代码库中的代码确实很令人恐惧.但是要调试一个明显的错误,只有去查看整个系统的代码,而且要全部过一遍.毕竟你不知道问题可 ...

  6. 【连载】优秀程序员的 45 个习惯之习惯25

    代码要清晰地表达意图 -- 高效程序员的 45 个习惯之 习惯25 "可以工作而且易于理解的代码挺好,但是让人觉得聪明更加重要.别人给你钱是因为你脑子好使,让我们看看你到底有多聪明.&quo ...

  7. 【连载】优秀程序员的 45 个习惯之习惯27

    动态评估取舍 --高效程序员的45个习惯之习惯27 "性能.生产力.优雅.成本以及上市时间,在软件开发过程中都是至关重要的因素.每一项都必须达到最理想状态." 可能曾经身处这样的团 ...

  8. 优秀程序员的45个习惯

    优秀来自好的习惯.怎样成为优秀的开发人员?图灵公司最近热销的<高效程序员的45个习惯>一书给出了很好的解答,非常值得一读. 这本书的英文原版荣获了有软件奥斯卡之称的Jolt生产效率大奖,在 ...

  9. 转:优秀程序员的45个习惯

    今天看到这篇文章,觉得有我们要学习的地方,不过有几条不大符合中国的国情!!! 拿过来给大家看看. 优秀来自好的习惯.怎样成为优秀的开发人员?图灵公司最近热销的<高效程序员的45个习惯>一书 ...

最新文章

  1. Python培训分享:python如何用cookie实现自动模拟登录?
  2. 洛谷 P2519 [HAOI2011]problem a
  3. Java迭代器contains的问题
  4. loading linux img2a,嵌入式Linux中initrd的应用--浅析ramdisk、ramfs、initrd和initramfs
  5. WLAN配置实例(一)——二层组网直接转发
  6. 关于最近几次给客户做系统 DEMO的感悟总结
  7. PMP项目管理全套表格史上最全,建议收藏
  8. 不知道怎么压缩图片大小?分享2个压缩小技巧
  9. 批量爬取某图片网站的图片
  10. vivo手机要用计算机隐藏游戏图标,vivo手机怎么隐藏桌面应用图标
  11. 电脑num lock键如何默认锁定
  12. 遇到问题--HttpClient默认重试策略不处理SocketTimeoutException
  13. springmvc(表现层/Web层框架)
  14. C++扫雷小游戏(附赠源代码)
  15. GDI+ BMP转JPG
  16. 《操作系统真象还原》第九章 ---- 终进入线程动斧开刀 豁然开朗拨云见日 还需解决同步机制才能长舒气
  17. AD如何输出坐标文件(超实用)
  18. AD(Altium Designer)PCB布线中的“格式刷”,助力快速布局布线
  19. echarts 获取点击的y轴数值_四川Y轴前后钢板防护罩哪里卖
  20. 在进销存管理中经常提到红冲,那什么是红冲呢?

热门文章

  1. qq浏览器主页_QQ浏览器遭恶意病毒篡改主页,无法更改的解决办法
  2. 计算机科学领域最高荣誉,骄傲!这位毕业于嘉兴一中的数学家,荣获华人数学领域的最高荣誉...
  3. pymongo多结果进行多列排序的代码
  4. hive同时不包含一些字符串_Hive中常用的字符串操作
  5. 如何用excle制作黑人拉馆_家居DIY带你学习如何用塑料勺制作壁挂!
  6. linux 3.5.0-23-generic内核版本系统调用数目,Linux操作系统分析(三)- 更新内核与添加系统调用...
  7. java怎么做简易的游戏,Java小项目之《简易桌面小游戏》
  8. java 类的合成_Java设计模式-合成模式
  9. YYCache 源码学习(一):YYMemoryCache
  10. 世界五百强世硕科技工作经历——05