为什么阅读代码很重要(以及如何做得更好)

2020-05-21 05:15:28

我觉得很奇怪。我们听到了同样的信息:编写干净的代码。编写可读的代码。编写简洁的代码。

我同意这些观点。但是,所有关于编写代码的讨论都掩盖了另一项关键技能:阅读代码的能力。

这对我来说很奇怪,因为我们作为程序员的大部分时间都花在阅读代码上:

更重要的是,阅读代码可以帮助您更好地编写代码。

当我开始写文章的时候,我反复得到相同的自我提升建议:多写,多读。是的,多读书。

这就是我所做的(现在仍然在做)。我读过很多书。我读书是为了学习。我读书是为了更好地理解语法。我读书是为了理解如何组织和设计句子、段落和文章。

现在,作为一名程序员,我出于类似的原因阅读代码。我阅读代码来增强我的编程知识,并学习如何设计更好的程序。

在我看来,在这两种情况下,阅读只是工作的一部分。你需要不断地阅读,才能不断提高你作为散文或代码作者的技能。

编写代码和读取代码是两种不同的技能组合。运动员们清楚地表明了这一区别。

你会经常听到运动员观看他们的比赛影片。乍一看,当一个篮球运动员盯着电视看昨晚的比赛时,他似乎并没有变得更好。毕竟,他们是在看比赛,而不是在玩。

然而,他们这样做有一个很好的理由:为了更好地阅读游戏。结果,他们开始看到模式。

他们看到了投中三分的机会,他们在季度末放弃了这一机会。他们从对方球队的全明星控球后卫那里学习技巧。简而言之,他们评估自己的表现,看到改进的空间。

“读”告诉“做”。因此,当下一次练习或游戏来临时,他们会应用从“读”电影中学到的东西。

阅读代码就像一个运动员观看他们的比赛影片。当你成为一名广大的读者时,你会收获良多。

1.请参阅图案。训练你的头脑和眼睛去发现情况,以使用特定的算法、函数或数据结构。如果您遇到使用Reduce()的问题,很可能会遇到另一个使用它的问题。

当您阅读代码时,您会熟悉这些情况。因此,当您将来处理相关问题时,您将认识到该模式,并知道要达到什么目的。

2.学习解决同一问题的新策略。我用一系列字典解决了一个问题。然后我读了另一位解决了同样问题的程序员的代码,但他使用了defaultdict。事实证明,这是一种更好的方法。同样的问题,新的把戏。

3.完善代码设计。有人说易读难写。这对于编写散文和代码都是正确的。

当您阅读由伟大的程序员编写的代码时,会发现它是多么容易阅读。变量命名得很好。每个功能都有其用途。阅读起来毫不费力,部分原因是它是一个设计精良的程序。这是一件需要努力的事情。

4.更好地发现错误。我们必须先找到一个漏洞,然后才能修复它,这可能很棘手。这就是阅读代码的用武之地:阅读和理解代码的效率越高,发现和纠正错误的速度就越快。

这是因为,作为代码的广大读者,您预计每行代码应该做什么以及它应该返回什么。您熟悉可能发生的错误,也可以阅读和理解它们。这可以帮助您集中精力,找出导致您问题的原因。

我以前写过一个关于本·富兰克林曾经成为一名更好的作家的学习策略。我对它进行了修改,并用它来成为一名更好的程序员。

它是我的最爱,因为它强调阅读、研究和模拟高质量的代码。这是它的工作原理。

找一个比你更好的程序员,他解决了同样的问题。

研究他们的解决方案。这是至关重要的一步:阅读每一行代码,并在编辑器中键入注释以对其进行解释。

过了一段时间后重新求解相同的程序。使用您键入的注释作为提示来指导您前进的道路。

这种做法的好处很多。您将扩展您的编程知识。您将看到很好的代码设计。您将训练自己的眼睛看清模式,以便对给定类型的问题使用特定的算法,或者何时使用一种数据结构而不是另一种数据结构是有意义的。

简而言之,让自己养成好习惯。你会学到很多东西,你的编程技能也会增长。

在LeetCode网站上解决问题提供了一个重要的好处:它为问题提供了深入的解决方案。通常有多种解决方案和解释。

首先,您将看到解决同一问题的多种方法。这样,当您遇到相关问题(您将会遇到)时,您将拥有几种不同的方法。

解决方案可能是用您不懂的语言编写的,这没什么。试着把它弄清楚。

用您不懂的语言阅读代码可能是有益的,而不是有害的。这是一种处理模棱两可的做法,这是我们程序员每天都在做的事情。用外语阅读代码会给您带来这样的练习。

有几次我被自己的代码弄糊涂了。(这真的是我写的吗?!)。

解决一个问题,在你的日历上记下几天或几周后重新解决的问题。然后重新求解并比较您的解决方案。

就像网球运动员重新观看比赛来研究他们的发球一样,你正在研究你写的解决方案。

仔细阅读这两个解决方案。你最初想做什么?第二次你做得更好的是什么?为什么?什么变了?如果你要再次解决这个问题,你会采取什么不同的做法?

这里的目标是自我完善:阅读你的解决方案,了解哪些更好,为什么更好。

程序员会做很多事情。编写代码就是其中之一。读它也是如此。

最后,能够阅读代码可以帮助您编写代码。它是圆形的。阅读代码很重要,我们应该努力把它做得更好。

←返回所有帖子