Coding: 写 Test 还是不写 Test?

admin 10年前
     <p style="text-align:center;"><img title="Coding: 写 Test 还是不写 Test?" border="0" alt="Coding: 写 Test 还是不写 Test?" src="https://simg.open-open.com/show/7351375b67c748317f2add98e93b4ad9.jpg" width="550" height="366" /></p>    <p> 在 <a href="/misc/goto?guid=4958188777376257340" target="_blank">appWorks</a>有一些问题我们常常讨论,例如:用什么工具、做什么产品、该怎么营销、该跟谁合作、怎么合作、什么时候增资、该拿多少钱…等等,这些问题往往没有一定的答案,也必须要视情况而定。但越是没有标准答案的,我认为越是应该多讨论,这样才能帮助创业者们根据自己的情况,定义出最适合自己的处理方式。</p>    <p> 而关于 coding,「要不要写 test」就是其中有一个这样的问题。我个人的意见是当你要做一个非常简单、用完即丢的<a href="/misc/goto?guid=4958188778109433824" target="_blank">MVP</a>,那不必写 test。如果逻辑比较复杂、日后有维护的必要或是有和人家协同工作,那你一定要逼迫自己写 test。</p>    <p> 这绝对不只是完整性、逻辑性或是身为一个工程师的职责问题,而是你如果不写 test,就是跟自己过不去—跟<a href="/misc/goto?guid=4958188778834908102" target="_blank">好的 comment/documentation</a> 一样,不做的话,日后要维护时,你将会花更多时间在弄懂自己当初写的 code,当别人要用你的东西,你也必须花更多时间跟他解释,这不就是跟自己过不去吗?</p>    <p> 我得承认关于更深入的判断什么时候要写 test、该怎么写,我不是专家。但是今天读到<a href="/misc/goto?guid=4958188779572499886" target="_blank">一篇文章</a>写得很好,在这里跟大家分享。</p>    <ol>     <li><strong>Test </strong><strong>让你用程序功力去挑战你的程序功力</strong> —身为工程师,大家最讨厌的就是不断的手动测试了,那何不把这些写成程序?况且最好的进步方法就是以己之矛,攻己之盾,这样不断的循环下去,你的程序功力一定突飞猛进。</li>     <li><strong>Test </strong><strong>让你跟你写的程序还有你自己对话</strong> —当你若干时间之后回来看自己写的 test,你将会重新检视自己当初的逻辑—这样复杂的错误处理真的有必要吗?这个对象够独立吗…等等,并且想清楚你写的程序跟整个系统的架构是否吻合。</li>     <li><strong>Test </strong><strong>提醒你程序是用「用了」多少行衡量,而不是「写了」多少行</strong>–记住,<a href="/misc/goto?guid=4958188778834908102" target="_blank">最棒的程序代码,不是程序代码</a>!</li>     <li><strong>好的</strong><strong>Test </strong><strong>设计还包含好的</strong><strong>Test </strong><strong>批注</strong> —如果你写好的测试,别人更容易了解你的程序,和如何跟你介接。</li>     <li><strong>Test </strong><strong>让你可以看穿别人写的</strong><strong>code</strong> —同样的道理,如果大家都写好的测试,那你可以更容易了解别人写的 code,大家都会进步的更快。</li>    </ol>    <p> 以上,就是一些关于写 test 这件事情的观念,希望能够让你更认同test code 的价值。或许你有更有趣的经验?欢迎留言跟大家分享。</p>    <p> imagevia <a href="/misc/goto?guid=4958188780967904117" target="_blank">richardmoross</a><br />       来自: <a id="link_source2" href="http://mrjamie.cc/2011/09/01/test-code/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+MrJamie+%28Mr.+Jamie+%E7%9C%8B%E7%B6%B2%E8%B7%AF%E8%88%87%E5%89%B5%E6%8A%95%29&amp;utm_content=Google+Reader" target="_blank">mrjamie.cc</a></p>