<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0"/>
</head>
<card id="wapview" title="日志内容">
-- 日志内容 --<p>我有一个很熟的朋友，他现在忙的不可开交。他手上有一大堆没有完成的合同，而且一个跟他一起开发的助手也离他而去。于是，在三个大客户的催命鬼时的督促下，他已经连续好几个星期没休息了。<br/><br/><br/>其中有个客户跟他讨论他给这个客户做的iPad应用程序，客户告诉他“我们花钱雇了另外一个程序员来审查你的代码，他说你的代码写的很烂。”<br/><br/><br/>当他告诉我这个故事时，我只是微微一笑，想起了我以前是怎么唾弃别人的代码的。当我刚开始编程时，我看到过一段程序，我认为那是毋庸置疑的写的很烂的，我删掉了那段代码，用自己认为更好的方面重新写了一遍。当我变成的成熟后，我回头再看，发现我所删掉的那段代码其实是用了一个很好的设计模式，而我重写的确是丑陋无比。<br/><br/><br/>我就这样被上了一课。<br/><br/><br/>之后的日子里，我经常会遇到我认为是丑的不能再丑的代码。尽管如此，我也不通篇否定它们了，我只会在其中找一些特别的无法容忍的部分重新编写。可10次中有9次，当我快要完成时，我发现了一个问题使我不得不对自己说“哦，怪不得他们要写成这样了”，然后把代码恢复成原样，或也使用同样“丑的不能再丑”方式完成它。<br/><br/><br/>现在我变的更成熟了，我可以充满自信的告诉你，我再也不会看着别人编的代码说“哦，这代码很烂”了。我知道，在没有了解整个程序的解决方案之前，你不可能就那么轻易的判断代码的好和坏。真的，有时候它看起来很傻，或完成的不好，或没有文档标注（我的意思是自我注释），然而，你根本就不可能知道程序员在写这段代码时脑袋里是怎么思考的。更多的情况是，他们要选择这样做是有一定的理由的，除非去深入的研究它们，你不可能再有其他简单快速的方法来理解程序的上下文环境。<br/><br/><br/>所以，每当听到有人看着别人的代码说很烂时，我只会微微一笑，让我想起我当年的天真和盲目自信。的确，我以前坚信自己是个出色的开发人员，坚信知道每种算法的最优设计。我很想念当时的自大，但是我很高兴现在学到的这些理念，我知道，我唯一能鄙视的代码只能是我自己的代码，鄙视的原因就是我不能使它变的更好。<br/><br/></p><br/><a href="wapblog.asp">返回</a> | <a href="index.asp">首页</a>
</card>
</wml>