如何提高我的代码阅读技能


13

好吧,标题中有一个问题-如何提高我的代码阅读技能。

就编译时间和整个系统的测试时间而言,我目前正在开发的软件/硬件环境相当慢。该系统非常旧/复杂,因此将其拆分为几个较小的,更易于管理的子项目在不久的将来是不可行的。

我已经意识到真正阻碍开发进度的是我的代码阅读技能。如何提高我的代码阅读技能,以便甚至在我按下“执行编译”键之前,甚至在启动调试器之前,都可以发现代码中的大多数错误和问题?


我一直在处理类似的问题。我们的团队决定花时间将非常大的旧代码库改型为支持共享缓存的新版本。我们设法缩短了构建时间并显着提高了可靠性。此外,如果您可以重构到足以开始使用应用程序的大型预构建部分的时间,则还可以节省构建时间。
Smithco

1
像所有技能一样,只有通过实践并向经验丰富的人寻求建议,它才能变得更好。

就像学习语言一样。您阅读的代码更多,您的阅读技能也更加熟练。
Steven Mou

Answers:


1

阅读更多代码

首先,我通过阅读认证问题而获得了相当不错的代码阅读技能,这些问题很难遵循,因为它们故意写得不好

毕竟,他们应该测试您对语言的了解(在我的情况下为Java)。

您阅读的代码越多,积累的经验就越多,就这么简单


4

尽可能改善您的开发环境,以便为您提供可以使用的反馈。

如果您可以为他们提供必要的信息,现代IDE可以为他们提供帮助。例如:

  • 语法着色:一种颜色中的常量,另一种颜色中的注释,第三种中的标识符,第四种中的字符串,等等。我最近发现一段代码是…… 奇怪的 ……原来,一个变量被命名为常数将是-错误的颜色放弃了它。
  • 捕获简单的编译错误。大多数语言都具有可以教给编辑器的简单语法,因此它可以提前告诉您您将遇到错误。
  • 捕获复杂的编译错误。许多编译器可以生成信息文件,这些信息文件可以加载到您的IDE中,以便它知道给定函数采用多少个参数,等等。

还存在可以识别程序中逻辑错误的程序,您可以使用这些错误来获取有关您可以从中学习的程序的更多信息。

同样,您的IDE可以在您了解所有这些信息的情况下帮助您导航源。这使您可以轻松查找内容,而不必记住所有内容

建议您编辑问题,以提供有关工作环境和编写程序的更多信息,以获得更好的建议。


1
同样,一台高大的监视器(或一台宽大的,可旋转的监视器)可以产生奇迹,因为您可以一次查看更多代码。

1

除了其他人所说的之外,如果您要阅读代码(尤其是不是您自己的代码),则还需要耐心。是的,全心全意地阅读每行代码需要实践,但所有这些都是值得的,并且您还可以学习其他人的编码样式/技巧。这是我按顺序检查的内容:

  1. 变量名称,大括号,导入等
  2. 检查条件是否正确放置,并捕获错误
  3. 其他一切-功能的使用等

我习惯于在纯文本编辑器中编码,所以Ctrl + F是我的朋友,但是IDE非常有用,尤其是当您从多个文件中读取时。

现在,如果您是要编写代码的人,请不要害怕在空格,缩进和注释中加上空格。老实说,如果它看起来不悦目,它会成为头部的疼痛。


0

即使在发现所有错误之前都可以进行编译,我仍然会通过测试和编译进行检查。我只相信肯定的测试和正在运行的程序。

我确实认为,良好的代码阅读能力可以使您对代码的假设做得更好。“这可能会出错!”,然后进行测试。在发现错误时,“这可能是原因,请对其进行测试”

到达那里的最好方法是亲自编写代码。第二种最好的方法是,代码只是非常好的并且可以自我解释(如果真的很难,那么代码就不是那么好)

如果这不是您自己的代码,并且编写得不好,那么唯一的提高方法就是做,做,做。阅读代码,尝试不同的事情,针对它编写测试,了解代码库,进行重构。工具可能会有所帮助,这些工具可以找到使用方法的位置,实现接口的位置,声明变量的位置等。这些工具可以为您提供名称空间,它们之间的关系和度量的概述。


0

过去我也遇到过类似的问题-我的诀窍是写一点测试,离开办公桌一会儿,回来,然后在纸上模拟测试。这样,您就可以重新查看代码,并且有一个特定的值需要检查(不像遍历代码并说“啊……。啊……很有意义”))


0

一次集中学习一种代码阅读技能可能是一件好事,就像在正式的代码审阅中,每个审阅者都有不同的职责一样。用一段代码,花一个星期(比如说)寻找不好的变量名。下周再次点击相同的代码,寻找可能的空指针;下周寻找重复的代码块;然后是多线程问题,等等。

在花了很多时间磨练不同的检测器之后,您可能会发现现在可以在几个(或全部)两个都处于活动状态的情况下阅读代码,因此您一次阅读就可以拥有更丰富的代码意识。


0

如果您在谈论编译错误,那将不会发生。解决编译器错误的最佳方法是,将破坏构建的人员分配给婴儿,直到其他人破坏构建为止。你弄坏了,修好了。

逻辑错误很难检测到阻止。防止简单情况的一种技术是编写单元/回归测试。


0

我今天早上(在SE Radio上)听到的一个提示是拿一个文件并将其缩小为3pt类型,然后在文本中查找模式。您将无法阅读文本,但是会显示各种样式。这是一个很好的技巧。

这是命令行的朋友之一,grep和管道可以做很多有用的事情。


“获取文件并将其缩小为3pt类型”-您的意思是-将文本编辑器中的字体更改为3pt字体吗?

确切地说,其想法是看到文本的形状,而不是实际的单词。
Zachary K

0

我曾担任编程讲师多年。在此期间,我花费了大量时间阅读代码并对其进行评论。这涉及发现编译错误(我们并不总是编译学生的代码),逻辑和设计错误以及标准化问题。

为了做到这一点,我们必须敏锐地注意到这种类型的错误,并且能够“试运行”代码。这种活动也使我接触到许多编码样式。今天,由于这段时期,我的代码阅读技能相当出色。

因此,我对您的建议是:

  • 与同行进行代码审查。
  • 我建议在与他们一起阅读之前,单独阅读他们的代码,以便您必须弄清楚代码对自己的作用。
  • 评论代码结构和清洁度,标准和逻辑。
  • 这将提高您的代码质量以及代码阅读技能。
  • 在完成编码后的一段时间内,代码会检查您自己的代码,这样您就可以“以崭新的眼光”评估它并从错误中学习。

祝好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.