最近遇到一件让我很纳闷的事情。一位程序员自豪地宣称他无法理解他一周前写的任何代码。我很想知道他的骄傲从何而来,但我做不到。他每天写那么多代码是不是很自豪?会有人愿意聘请这样的人来写程序吗?首先我要明确说明我对这件事的看法:一个专业的程序员不能理解他一周前或一年前自己写的代码是不可原谅的。我就把它留在这里。现在,让我详细说说。我认真编程已经15年了。我很早就养成了一些编程习惯,此后一直没有改变。我可以很容易地理解我一年前写的代码,即使是2年前,12年前。在各种业务领域使用各种语言编写代码。算法、解析器、Web应用程序、嵌入式控制器、脚本、链接,应有尽有。尽管有一些非常早期的代码有点难以理解,但我仍然可以从中看到一些模式。我能做到这一点的主要方法是意识到代码必须是可读的。自己读起来容易,别人读起来也容易。不可读的代码与无法使用的代码一样糟糕,如果不是更糟的话。自己写的代码,如果过了一段时间自己都看不懂,别人就更不可能看懂了。没有这种可能。没有任何软件产品会以您为荣。让您的代码具有可读性和可理解性是多么重要,我怎么强调都不为过。不仅让你的软件产品更好,更容易被别人维护,而且这些代码也将成为你自己的个人工具箱,你将在未来的职业生涯中使用和重用。有了这样的工具箱,你就会变得超级强大,这将是你区别于其他编程高手的重要特征之一。数不清有多少次,当我遇到一些熟悉的问题时,我可以通过记忆在我的历史代码库中搜索,轻松快速地找到或编译出问题的解决方案。显然,您不理解的代码不会进入这样的工具箱。这样结束这篇文章似乎有点愤世嫉俗,我应该解释一下我是如何获得这样的技能的。坦率地说,这很难用语言来描述,但我尽力了。我很确定我的这种方法也被作家(以及任何从事创造性职业的人)使用。一旦你写了一段代码(越小越好),你需要停下来看看它是否可读和理解。读,读几遍。跳出您熟悉的问题上下文,想象有人在完全没有上下文的情况下阅读这段代码。这样的人能读懂吗?如果不是,为什么?在您的“代码可读性”宝箱中找到所有可用的技巧,并通过《代码大全》等好书加以丰富,并应用它们,直到您确定代码可读为止。满意后,再读一遍。过几天再读一遍。这让我想起自己写一些高深的技术文章,每句话都要看20遍,重写5遍。我经常以同样的方式编写代码。成功可以来自天赋,也可以来自不懈的重复和试验。因为我没有前者,所以我一直坚持着后者。***,重构,无畏改进。如果您遇到一段可以更清晰的代码,请使其更清晰。提高代码质量是我们职业中那些难以捉摸的副业之一,但是当你参与到一个持续一两年并涉及多人的大型项目时,你就会意识到它的重要性。英文原文:Understandingyourowncode翻译链接:http://www.aqee.net/understanding-your-own-code/
