如何提高您对代码的阅读和理解?

时间:2009-08-20 17:48:48

标签: language-agnostic

在过去5年左右的时间里,我一直在使用截然不同的项目和系统。这些项目的代码在质量,风格,规模方面存在显着差异。我看到了两个例子:干净,令人厌恶的1000行函数以及条件代码。

我仍然不能很好地阅读其他人的代码,理解系统的内部结构等。

我想了解一下您使用哪些技巧来提高阅读和理解其他人的代码的技巧,如何快速掌握,通常使用的工具,方法等。

让我给出这个答案,许多人只会为此而努力:你可以通过阅读代码来提高阅读代码技能

有一篇相关的帖子可以提高编程技巧,并且与这篇文章相同:What is the single most effective thing you did to improve your programming skills?

9 个答案:

答案 0 :(得分:36)

对我来说最重要的是重构。

获取一个项目(这可以是一个工作项目,个人项目,开源项目,等等),然后开始重构。

随着时间的推移,你重构其他人的代码的次数越多,你就越能“进入他们的脑海”并理解他们的思维方式,无论好坏。

答案 1 :(得分:23)

我个人相信

“任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。” -Martin Fowler

所以我的方法是找到那个人并且吹掉他的头,这样他/她就不会说这种病毒了。

答案 2 :(得分:13)

最重要的是,帮助我的事情一直在测试重构。你不能说:“我理解这段代码”,直到你知道如何通过测试来破解它

答案 3 :(得分:9)

不要只读取开源代码,加入一个。通过这种方式,你可以问“为什么这样写”而不仅仅是阅读它。通常情况下,有一个潜在的原因可以做一些不正常的事情,无论是否真实。

此外,如果您积极参与,您将能够看到代码库的进展。您将熟悉不同人的发展方式。当您遇到需要阅读的非附属项目时,这可能为您的大脑提供不同的途径。

答案 4 :(得分:6)

除了能够更好地阅读代码的简单经验之外,我建议将调试器附加到应用程序,添加一些断点,并在数据通过系统时对其进行分析。这样你就知道发生了什么,而不是假设(通过逻辑或任何其他方式)发生了什么。

答案 5 :(得分:5)

特别是2件事

<强>重构 当你看到代码模糊IDE的水域时,重构它以便它有意义,所以它很容易阅读。

<强>注释 使用重构来划分“如何”,但使用您的评论来说明原因。

就像Steve McConnell在Code Complete 2中所说,遵循Psuedocode编程过程(在这种情况下,在编写代码之后)。它将帮助您和任何未来的开发人员阅读代码。

答案 6 :(得分:4)

“你可以通过阅读代码提高阅读代码技能”

正确。

要阅读哪些代码?

任何吸引您的开源项目。大多数开源编码非常好。

不要读随机代码。阅读你真正关心的东西。您越了解问题域,您就越能体会到您正在阅读的解决方案。

答案 7 :(得分:4)

你学习游泳游泳,你学习通过阅读阅读。  首先尝试阅读您喜欢的区域中其他人编写的小代码片段。

我开始通过 code.activestate.com上阅读我最喜欢的主题(数学,算法等)上的Python代码来开始这样做。

优点:

  • Python代码更清晰,因此 在第一次尝试时不会感到沮丧
  • 小的可管理的东西开始 帮助(很多)。
  • 使用 FREEMIND 等工具来整理您的想法也很有帮助。
  • 然后你可以继续使用更复杂和更脏的代码。

答案 8 :(得分:1)

我同意阅读开源编码。 O'reilly on Beautiful Code有一本书 - 但我觉得很糟糕。我会建议我阅读的书籍,以便为编程访谈做准备,并且经常会建议(我提供的所有链接都是Google图书链接:

[编程珍珠]是一个很好的(获得更新的版本,虽然概念是相同的), [编程实践]是另一个经典。

这些是非常实用的书籍,包含真实的代码世界示例

此外,练习为现有项目编写测试代码。这往往会让你被迫明白这个函数的功能。如果结果不符合您的预期,您将不得不考虑为什么此人的代码不能像您预期的那样进行测试。浏览StackOverflow并了解具有高声誉的人们所说的话总是有帮助。