饥饿的码农

fmms 12年前
     <p>        编程就像是吃饭。</p>    <p>        今晚我加班,有点饿,没有厨房,没有小吃。环顾四周,我只看到街角的麦当劳。</p>    <p>        于是我就面临了一个选择难题,我是现在去吃垃圾食品来填饱肚子呢还是再忍一忍,然后回家吃一顿健康的?</p>    <p>        在我思考这个问题的时候,我不由自主的将这个问题和代码的质量联系了起来。</p>    <p style="text-align:center;"><img alt="饥饿的码农" src="https://simg.open-open.com/show/9945e39afd074244d35cd92e36054437.jpg" width="300" height="300" /></p>    <p>        <strong>健康的饮食是连续非离散的?</strong></p>    <p>        显然吃麦当劳不是健康的饮食。但是吃麦当劳巨无霸的时候,配色拉要比配薯条健康一点。去星巴克买一个金枪鱼面皮卷显然要比任何麦当劳套餐健康。去当地的小店喝一碗热汤显然要比星巴克的金枪鱼面皮卷健康。当然,自己在家做一顿新鲜的晚餐比上述的任何饮食都要健康。</p>    <p>        这里有两点:</p>    <p>        1. 任何东西都是相对的。你总是可以做的更好或者更差。吃巨无霸不等于自杀,但是整天不吃饭就等着回家的新鲜晚餐也是不健康的。</p>    <p>        2. 每顿饭都是独立的。我今天吃了麦当劳并不代表我明天也要吃麦当劳。通常情况下,每一顿饭吃什么的决定都是一个独立的判断。</p>    <p>        <strong>代码如食物</strong></p>    <p>        和食物一样,代码的质量也是连续的。</p>    <p>        简单的来讲,没有经过测试,没有文档的代码要比有测试和文档的代码的质量低。但是事实往往比这个复杂,就像是一滩浑水。每个人都有他们自己的标 准来判断代码的好坏。有些人很清楚自己的编程习惯和问题,也懂得如何改进。而有些人则一直在写着垃圾代码,并不考虑他们的代码是否健康。</p>    <p>        <strong>做健康的选择</strong></p>    <p>        像对待食物一样来对待代码。</p>    <p>        就如你必须得吃东西一样,你必须得提交代码。但是你怎么吃或者怎么提交将会产生短期和长期的影响。</p>    <p>        如果你采用麦当劳式的方法,那你就是发布了垃圾代码,但是满足了短期的需求。但是你会尝到长期的恶果。你的代码将难以维护,不会拥有健康的未来。</p>    <p>        如果你采用自己做饭的方法,那你就必须忍受一段时间的“饥饿”。短期来看你是饿着了,但是长远的来看,效果是正面的。</p>    <p>        <strong>如何做决定?</strong></p>    <p>        编写健康的代码和健康的饮食有相同的要求:意识到并且坚持做。从吃垃圾食品到吃健康的食物需要首先意识到吃的东西可以改进。要执行这个改进,你需要坚持你的决定。编程也是一样的。</p>    <p>        不管怎样,你的选择必须实用。你必须得吃东西,你的代码在将来的某个时刻必须提交。在没有选择的情况下,麦当劳也得吃。就如很多时候,你必须提 交写的像狗屎一样的代码。但是请记住,健康的编码是连续的。在不能完全达到“健康”的状况下,你可以改进一点点,就如吃巨无霸的时候可以配色拉,而非薯 条。</p>    <p>        世界上没有最健康的实物。任何东西在进到你胃里之前,对你都没有任何好处。同样的,代码质量是很重要,但是你不发布你的代码的话也是一无用处。</p>    <p>        增量改进你的代码是不错的选择。每天进步一点点,而不是推翻重来 :)</p>    <p>        <a href="/misc/goto?guid=4958326220861420878">英文原文</a></p>