您的位置:首页 > 其它

天下大事,必作于细

2005-09-27 00:33 218 查看
天下难事,必作于易,天下大事,必作于细。
----《老子》第六十三章
近来有了些与以往不同的开发经验,这些经验可用八个字来概括:天下大事,必作于细。
有很多的人习惯使用"差不多","将就将就"这类短语。
用于做人,这体现的是一种历史中沉淀出的智慧;
用于做产品,尤其是软件产品,这是致命的。
我所接触到的国内的程序员,有许多走的是一条通向“高手”的路子。
具体的特征是,你给我个啥事,我肯定能把它做出来。
只求做完,不求做好。所以虽然知识面广博,临场搏杀老练,前行勇猛,却未必能作出优秀的产品。
因为明显的收益,好多人恨不得在短时间内成为绝世高手。
其结果往往浮沙筑高台,虽巍巍雄壮,却终究耐不得推敲。
为把事情说得更清楚,这里我来看下面一个场景:
命题:请编写一个为50个字符串进行排序的函数。
大多数人看到这个命题,不会问什么,很快就有结果出来。
其完成的函数里面可能包含下面的代码段:
A:
int iRet=lstrcmp(..., ...);
B:
int iRet;
if( GetVersion() <0x80000000)
iRet=strcmp(...,...);
else
iRet=wcscmp(...,...);
C:
int iRet;
iRet=_tcscoll(..., ...);
因为有人在实现程序的时候不求甚解,那么出现这种“看上去能行“的程序就成为一种必然。
(我不知道究竟有多少人(包括高手)会走上面列出的这些路,我个人是没处理好,所以在这里检讨)
从技术角度看,这里的问题在于:
命题不清楚,应该提出质疑。
不清楚的点包括,按照什么样的规则进行排序,码序(character set order)还是字典序(lexicographic character order)、程序是否会在多种Locale下运行、需不需要支持Unicode等。
刚看到这个题目时,可能发现不了这些问题,但是当学习相应API的说明时,如果仍然没发现这些问题,那唯一的可能就是学习的时候就没搞太清楚,而后又想当然的认为某个API的行为就是如何如何。
有自己不清楚的问题没关系,没人能什么都预先知道。
重要的是如何面对这种以前自己不清楚的问题。
使用一个API的时候,有多少人是在完整的看完帮助文档,并把相关概念都弄清楚后才使用的呢。
这种状况可能和大环境有关。
当企业为生存所迫,就不得不关注短期目标,所以就需要快枪手。
当员工为短期目标所迫,就不得不囫囵吞枣,也就没时间把基础打扎实。
中国的程序员虽然生存不易,但终究要对自己负责。
没人能避免程序中出现错误,但每个人都应该努力不写“应该没问题“的代码。
最终的产品就像拦河大堤,修起来要千万人力,但毁起来,老鼠打打洞就足够了。
在中国人眼里,日本人做事方式并不高明,
但日本的企业确实取得了非常大的成功,一个根本原因就是日本人非常的重视细节。他们不习惯放过任何一个
细小的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: