Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3515871
  • 博文数量: 1805
  • 博客积分: 135
  • 博客等级: 入伍新兵
  • 技术积分: 3345
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 20:01
文章分类

全部博文(1805)

文章存档

2017年(19)

2016年(80)

2015年(341)

2014年(438)

2013年(349)

2012年(332)

2011年(248)

分类: 系统运维

2013-12-17 23:31:18

作为一名程序员,很多时候面对的就是要找出软件中存在的一个又一个的问题。基于工作中遇到与解决的形形色色的问题,总结出如下几条原则:

1.这真的是一个问题么?

在《你的灯还亮着么》这本小册子中,将问题描述为“人们的期望与实际不

符时,问题就出现了”。当人们对软件功能的期望是错误的时候,软件的运行可能就是正常的,我们要做的只需要更正人们的期望即可,无须对软件进行任何的改动,这也是我们最希望遇到的一类问题。

   2.改变条件,使问题更容易出现。

多数情况下,再现问题比解决问题要更困难。有些问题很长时间才会出现一次,出现了还不一定马上就会被发现。通过研究问题出现时留下的蛛丝马迹,适当的改变运行条件,使问题能较快的出现,从而可以更容易的去观测并解决问题。如解决内存泄漏的问题时,增加调用可能存在问题的模块的次数。

   3.什么样的变化导致了问题的出现?还能恢复到以前的状态么?

在一个投运的系统中,问题的出现往往是伴随着运行环境的改变,或某些特定的操作产生的。了解运行环境的变化和用户的操作就显得至关重要。因为这里面的某一个因素可能就是问题产生的直接原因。如果还能恢复到以前的正常状态,则可以通过比较两者之间的区别来定位问题所在。

   4.剥茧抽丝,构造最小化运行的问题/正常模型。

   如果通过去掉各个因素,构造出一个最小化运行的问题模型,那么当前的运行条件就是问题出现的原因。反之,如果能构造一个最小化运行的正常模型,然后通过不断添加各个实际运行因素进行测试,直到问题出现,则最后添加的那个因素就可能是问题出现的原因。

   5.问题的解决不仅仅需要技术和方法,更需要决心和毅力。

   实际运行系统中,很多问题的出现是网络、节点、系统等各方面因素共同作用的结果。出现的几率很小。如果抱着可能以后不会再出现这类问题的心态来处理,很可能就不了了之了。但现实中,“可能发生的事情就一定会发生”。心存侥幸,只能是坑了用户,拖累了自己。

   解决问题最好的方法当然是预防问题的发生,防患于未然。但现实世界中,使用软件的人每天都在变化,科技每天都在更新,今天觉得是无懈可击的方案,明天就可能是漏洞百出,掌握一定查找和解决问题的方法对工作会有很大的裨益。

阅读(294) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~