看到标题,也许你已经知道我的主题是什么了,不错,我的主题就是写代码。从踏上编程这条路开始,二年或是三年我们就一直与关键字与自定义数据为伍,我们的大多数时间用来编码,用来完成任务,结束项目。
这是一个美妙的过程,在这个过程中挑战极限,充分享受代码带来的痛苦和乐趣。我对编码的的定义就是在痛苦中寻找乐趣。可话说回来,在这个寻找的过程中我们又进入了另一种痛苦。这就像我们在沙漠中寻找绿洲一样,寻找的过程本身就是一种痛苦。
我对编码更明确的定义就是在痛苦中通过痛苦的寻找过程得到乐趣。 如此想来,那寻找的一丝乐趣也没有意思了。
我对编码更准确的定义就是在痛苦中通过痛苦的寻找过程得到还不如痛苦的乐趣,精华是没事找抽。所以编码就是没事找抽。 程序员就是没事找抽的角儿。
为什么会有这么变态的结论?我想这就是我这篇文章要与大家讨论的问题。在此我想问大家,假设我们这一天的任务就是要写代码,那么你会用多长的时间来调试?这个问题很重要。又用了多长时间来思考如何编码?这个问题也很重要。
这里有一个数据,我没有考证来源,只供参考。大多数程序员,无论他的水平如何,其平均每天只有10-12行的代码最终会进入最终的软件产品中。有的程序员为了得到这10-12行代码花费90%的时间来调试程序。有的程序员为了这10-12行代码花费90%的时间来思考,调查,研究最佳的设计。从表面上看,这两种程序员是在相同的时间内得到同样多的代码。但是他们完成代码的心情和质量却是不一样的。前者随意地改动代码并尝试让代码工作起来,一直处在痛苦边缘。所以有把时间多分配给思考,而不是调试。
好,思考是好事,但是思考什么才是最有效的?
我不要浆糊和烂泥,要的都是精华!
一方面要问这样写对不对,有没有更好的方法?另一方面在编程过程中要做到复用。使用已有的东西是一件简单的事情,所以在请尽量使用已经存在了的解决方案来解决问题,把握对通用的模式的识别和重用。好,我们通过重用思考把代码给写出来了,那么结束了吗?还没有!能过下一步思考我们可能要重构/重写自己的代码。我觉得还是重用思考。但不是重用已有代码,而是我们的代码是否有重用性。
我认为这样会让我在编码过程中尽量避开调试,节省时间,更重要的是减少痛苦。