天下大事,必作于细
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的时候,有多少人是在完整的看完帮助文档,并把相关概念都弄清楚后才使用的呢。
这种状况可能和大环境有关。
当企业为生存所迫,就不得不关注短期目标,所以就需要快枪手。
当员工为短期目标所迫,就不得不囫囵吞枣,也就没时间把基础打扎实。
中国的程序员虽然生存不易,但终究要对自己负责。
没人能避免程序中出现错误,但每个人都应该努力不写“应该没问题“的代码。
最终的产品就像拦河大堤,修起来要千万人力,但毁起来,老鼠打打洞就足够了。
在中国人眼里,日本人做事方式并不高明,
但日本的企业确实取得了非常大的成功,一个根本原因就是日本人非常的重视细节。他们不习惯放过任何一个
细小的问题。
----《老子》第六十三章
近来有了些与以往不同的开发经验,这些经验可用八个字来概括:天下大事,必作于细。
有很多的人习惯使用"差不多","将就将就"这类短语。
用于做人,这体现的是一种历史中沉淀出的智慧;
用于做产品,尤其是软件产品,这是致命的。
我所接触到的国内的程序员,有许多走的是一条通向“高手”的路子。
具体的特征是,你给我个啥事,我肯定能把它做出来。
只求做完,不求做好。所以虽然知识面广博,临场搏杀老练,前行勇猛,却未必能作出优秀的产品。
因为明显的收益,好多人恨不得在短时间内成为绝世高手。
其结果往往浮沙筑高台,虽巍巍雄壮,却终究耐不得推敲。
为把事情说得更清楚,这里我来看下面一个场景:
命题:请编写一个为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的时候,有多少人是在完整的看完帮助文档,并把相关概念都弄清楚后才使用的呢。
这种状况可能和大环境有关。
当企业为生存所迫,就不得不关注短期目标,所以就需要快枪手。
当员工为短期目标所迫,就不得不囫囵吞枣,也就没时间把基础打扎实。
中国的程序员虽然生存不易,但终究要对自己负责。
没人能避免程序中出现错误,但每个人都应该努力不写“应该没问题“的代码。
最终的产品就像拦河大堤,修起来要千万人力,但毁起来,老鼠打打洞就足够了。
在中国人眼里,日本人做事方式并不高明,
但日本的企业确实取得了非常大的成功,一个根本原因就是日本人非常的重视细节。他们不习惯放过任何一个
细小的问题。
相关文章推荐
- 2008年9月7号,星期日,晴。不为外撼,不以物移,而后可以任天下之大事。吕 坤《呻吟语•应务》
- 天下难事,必做于易;天下大事,必做于细。(ZZ)
- 天下大事做于细,从零实施ERP
- 天下难事,必作于易;天下大事,必作于细。
- 不为外撼,不以物移,而后可以任天下之大事
- 天下大事,必做于细!
- 天下大事必作于细,聊聊腾讯兼容测试的升级“打怪”历程
- 《精益创业》- 天下大事必作于细,天下难事必作于易
- 天下大事必作于细,聊聊腾讯兼容测试的升级“打怪”历程
- 天下大事必作于细,天下难事必作于易
- 天下难事始于易,天下大事始于细。
- 图难于其易;为大于其细。天下难事,必作于易,天下大事,必作于细。
- 流氓软件也来争雄天下:
- 家里的厨房一直以来并不是我一个人的天下
- 成大事必备9种能力、9种手段、9种心态
- ios ipv6被拒绝,后台定位被拒绝,免费的终极解决方案,大家齐心协力让天下没有解决不了的ipv6问题!
- 匿名者Anonymous 十项大事记
- 中国App增长联盟,和优秀的创始人玩着办大事!
- 黑马程序员:C/C++学习路线图已上线!一图在手,天下我有!
- 带着Mac 扛天下