饥饿的程序员

编程很像吃饭 。
晚上我饿了 。我不在家 。我不能到厨房里找点东西吃 。我四周看了看 , 看到只有一家街对面的麦当劳 。
于是 , 我就进入了一个任何时候我离开家、离开我那舒适的小窝后遇到的两难境地:是吃那些垃圾食品 , 先填饱肚子呢?还是先饿着肚子 , 等回到家后去吃更健康的食物?
当我在思考这种困境时 , 我不禁或多或少会把这个问题跟代码质量作一定的联系 。当然更多的还是先考虑吃的问题 。
我的话只是表达我自己的观点 , 我并不认为麦当劳是一个能够提供我健康食品的餐馆 。作为一个追求绿色食物的人 , 甚至只是作为一个注意饮食的人 , 麦当劳的食品远在我的健康食品的标准之下 。但是 , 我相信 , 跟你们很多人一样 , 我们已经养成了吃麦当劳里的食物时不再思考这些食物的健康价值了 。我饿了 , 麦当劳里有食物 。
既然我已经认识到了麦当劳食物对我身体的短期和长期的影响 , 我就会全力避免去吃它 。对所有预处理过的食物都要这样 。这对我来说是漫漫长路 。决定去改变自己的饮食习惯并不是一蹴而就的事 , 
健康饮食是一种持续动作 。
很快你就会发现这一切都跟编程有联系 。
健康饮食是一种持续动作?
麦当劳的食品不是一种健康食品 。然而吃巨无霸汉堡加水果沙拉会比吃巨无霸汉堡加油炸土豆条要稍微健康一些 。吃星巴克的金枪鱼会比吃大汉堡要稍微健康些 。在本地咖啡连锁店里喝一碗汤要比吃星巴克的沙丁鱼要稍微健康些 。在家里吃新鲜蔬菜做的食物要比其它任何地方的食物都健康 。

饥饿的程序员

文章插图
按这样的方式看食物 , 我们会得出两点信息:
所有的事情都是相对的 。你永远都可以做到更好 , 也一直可以做的更差 。吃一个巨无霸汉堡并不意味着你会死 , 而为了能在家里吃饭而忍住一天不进食也未必更健康 。
每一顿饭都是一个新的开始 。人很容易落入这样一种陷进:“既然我昨天已经吃了一个大汉堡 , 不妨今天就再吃一个了” 。这种思考方式是毫无逻辑的 , 也是有害的 。每顿饭要吃什么都是一个新的决定 。即使你今天早餐吃了一个大汉堡 , 午餐时吃家做的食物也是你的健康饮食之旅上前进的一步 。
把程序代码当作食物
很像食物 , 代码质量的保证也是个持续的过程 。
从简单层面上我们可以认为 , 一个没有测试和文档就发布的程序包要比有测试和文档的相同的程序包质量要差 。
可是 , 在这些一眼就能看清楚的问题之外 , 还有很多说不清楚的东西 。没有人都对什么是”健康”的代码有自己的标准 。有些人非常清楚自己的编程问题 , 并在不断的改进自己 。有些人数年来一直写着相同烂代码却从来没有想过这些代码是否“健康” 。
做出健康的选择
像对待食物那样对待程序代码 。
就像你需要吃饭一样 , 你最终需要发布你的程序 。那么 , 如何处理这短期和长期里的影响呢?
饥饿的程序员

文章插图
如果你按照吃麦当劳食物的态度 , 发布了烂程序出去 , 那么 , 短期内你的需求是满足了 。但从长期看 , 你将会一直受到它的影响 。你的代码将会很难维护 , 需要你投入更多的精力 。它对你长期的生活和健康没有什么好处 。