阅读代码也是一种技能 - Trisha Gee


不只是鼓励程序员编写可读代码,还要承认程序员阅读代码也是另外一种技能。
 
1. 假设有人写了不可读的代码
没有人故意编写不可读的代码。如果你有一个只有你贡献代码的项目,你可以亲眼看到这一点——每次你在几个月、几周甚至几天缺席后再次检查时,你都会想知道你当时在写这段代码时到底在想什么,因为现在你知道多少做同样的事情的更好的办法,或者你有一个名字这是该方法更清晰。
 
2.这是一个责备的叙述,它没有解决任何问题
“不可读的代码是代码作者的错,你应该编写可读的代码”的叙述侧重于指责而不是看如何处理问题。
是的,我们应该编写可读的代码来考虑读者(他们可能是未来的我们)。我们也应该善待和关心代码的作者,学会接受代码的本来面目。真正的专业人士会学习他们代码库的方言。真正的专业人士会同情代码的贡献者。这将帮助他们更好地理解为什么事情会变成现在这样,只有这样他们才能找出前进的最佳方式。
  
3.可读代码是主观的
我对可读性的想法,就像代码库的不可读性一样,是我经验的积累。当切换到新语言环境时,,我掌握常见模式或大局的能力要有限得多。当然有用的方法和变量名、简短的方法、有意的设计等等应该使其更容易理解。但它并没有神奇地克服我对特定语言、框架、模式或业务领域的不熟悉。
无论如何,让读者的工作尽可能简单,但你不能仅仅因为你编写了你认为干净易读的代码就假设所有开发人员都能理解它。
 
阅读代码是一种技能
阅读代码是一种技能。阅读代码是一种可以学习、可以提高的技能。时间、经验、实践,使用不同的语言、框架和库;不同的代码库;不同的编程风格;不同的模式,将提高你阅读代码的能力。
我们一直在阅读代码,无论是在我们的代码库或 StackOverflow,还是博客或书籍或其他任何东西中,这是一个很好的开始——我们将通过做我们的工作来更好地阅读代码。但这还不够。Kathy Sierra 谈“刻意练习”. 通过刻意练习,我们会比通过简单的接触要好得多。
阅读代码是一项可以通过实践提高的技能。下次我们看到我们不理解的代码时,我们不应该因为“不会编写可读代码”而殴打作者。我们不应该因为不理解而自责,因为我们都有自己独特的经历。相反,我们可以将其视为练习阅读此特定代码并提升我们的“阅读代码”技能的机会。
  
总之

  • 阅读代码是一种技能。
  • 鼓励开发人员“编写可读代码”并不能消除开发人员提升“阅读代码”技能的需要。
  • 而当然,你应该写可读的代码。