
在当当上买撬动地球,无意中看到了一本
《细节决定成败》,很有相见恨晚的感觉。在工作中,细节太重要了。以我的理解细节实际上是又态度决定的,有什么样的态度决定了能够把细节把握到什么程度。比如软件开发中一个常见的问题:页面上公司的名称没有显示出来。如果让你去investigate,你会得出什么样的结论?
经过对代码的检查,你的结论可能是Class CompanyFactory的GetCompanyName()方法返回了一个空字符串,所以页面上的公司名称没有显示出来。
那么这个结论对么?首先我们不能说这个结论不对,确实是方法GetCompanyName()返回了一个空字符串,但是这个结论是不完整的,为什么方法GetCompanyName()返回了一个空字符串呢?
经过对代码的再一次分析,你的结论可能是GetCompanyName()调用了sproc(存储过程)EBIZ.S_COMPANY,这个存储过程的返回结果集中company name一项是空的,所以页面上公司的名称没有显示出来。
那么这个结论对么?这个结论不能说不对,但是还是不完整,为什么存储过程EBIZ.S_COMPANY的返回结果集中company name一项是空的呢?输入参数是什么导致返回的结果集中company name一项是空的?
再次对代码进行分析,你的结论可能是存储过程的代码查询了table EBIZ.CUSTOMER,在这个table中对于customer_num='1234'的行,没有对应的company name。
那么这个结论完整了么?
不, 还是不够完整,因为table EBIZ.CUSTOMER中对于customer_num='1234'的行没有对应的company name这只是现象。为什么表中没有对应的company name的数据呢?这个表中的数据是怎么产生的?这都是没有解决的问题。