Love.Passion.Dream

程序员是如何给自己挖坑的?

经常会有同学在抱怨说是在各种填坑,抱怨说之前挖了一个坑给自己填。有的时候明知道是坑还在挖,或者以为挖的是宝藏,到最后下来发现挖完之后只有一个坑。

这两年接触各类语言,各类项目,广泛去挖坑填坑。填了不少坑当然也挖了很多,凭这些填坑挖坑的经验来说,一个程序员挖一个坑不外乎有两点原因:

  1. 把简单的事情搞得太复杂
  2. 把复杂的问题想得太简单

更深一步解释就是:

  1. 遇到一些简单的问题或者是自己感兴趣的问题的时候往往想去拿出一个完美的解决方案,画了一个很大的饼,信心满满,心情激动。最后发现自己却吃不下。最终要么是简单的以一个粗糙的结果完事,要么是放弃选择了一个简单的方案。

  2. 对于第二类情况是更常见的,就是拿到一个看上去简单的问题想快速的解决,从而忽略了一些细节的问题。然而那些细节的问题恰恰可能是关键所在,也许就会让整个问题改变本质。经常会有人为了快速的解决一个问题而采用了投机取巧的方案,然而往往后续会发现无法适应新的一些小改动,最终不得不改变架构重新来过。

举两个例子:

  1. 一开始是需要做一个自动化测试工具,后来心血来潮想要做一个自动化测试平台,想要提供一套丰富的测试方案。但是最后因为时间紧张,也没有技术强的人一起搞,最后只能是草草的做了一个勉强能用的版本。无赖最终还是有以一个超简单的工具的形式实现了一个简单的版本,虽然比起最初想要实现的方案要差很多,但是至少可用靠谱。

  2. 一个关于数据的需求需要计算一个估算数据,一开始想到一个简单的解决方案可以很快实现,但是发现有一个问题就是这种解决方案会存在某种情况的误差,为了能够快速实现,最后是睁一只眼闭一只眼。但是最后实现之后发现数据的误差还是没能达到能够容忍的状况,无奈只能从头来过。

从我自己的经验来看,要避免给自己或者别人挖坑就要保证一点:你的代码可以简单,但是不能粗糙!

遇到可以简单解决的问题的时候,如果想要做到更好,需要仔细评估成本,如果无法完美实现那么还不如产出一个短小精悍的版本。至少能够保证用的时候不会出问题。

拿到一个问题的时候不要想着走捷径,要稳健!要知道,出来混总是要还的。现在偷懒写出来的代码很可能会然你日后付出更多是时间!

与诸君共勉!