阅读别人的源码要注意什么? [已关闭]

问题描述 投票:0回答:6

如果你读过别人的源代码,你是如何处理这些代码的?您正在寻找什么模式(数据类型、循环、控制流的使用……)?你能读别人的代码多长时间而不感到无聊?到目前为止,您发现的最令人兴奋的模式是什么?

java design-patterns
6个回答
8
投票

起初,我忽略了更改代码的冲动。这有时很难做到。但先了解后改变可以为自己节省很多讨厌的“学习经历”。

接下来如果格式错误,请重新格式化。如果有代码格式化程序,请使用它。这是因为您倾向于查看缩进,如果缩进不好,您对代码的理解也会受到质疑。

然后,如果有复杂的数据结构,我喜欢画一个小图。这里的挑战是让它尽可能简单。墙上的大图表很有趣,但大多数时候,它们看起来很麻烦。所以这是浪费时间。

如果你最终明白了一段代码的作用,请写下评论。这是很重要的,否则你下次来的时候就不会明白了。

以下步骤是创建单元测试。现在你不仅可以测试代码,还可以测试你对代码的理解。

最后,如果您理解它并且知道它可以(并且需要)更好,请更改它。但一定要运行测试。除非你通过每个解决的错误获得报酬。


3
投票

一个时髦的新术语是 Code Spelunking


1
投票

除了明显的“从上到下工作”的一般方法之外,这取决于为什么我正在阅读它:代码审查,试图理解一些可用的代码以适应我自己的使用,试图学习新的技术等

这也很大程度上取决于语言。如果是 OOPL,我可能会这样做:

  1. 首先寻找主要的类关系,并尝试了解每个类的主要职责。
  2. 查看班级之间的互动,了解他们如何协作。
  3. 查看关键类的接口,了解它们为协作者提供哪些“服务”。
  4. 查看重要方法的内部是否重要的是了解它们如何工作而不是它们负责什么。
  5. 谢谢,如果我理解正确的话,第一步是识别上下文,第二步识别 API,并将 API 放在上下文中。我只是意识到这有点像看一座建筑或一件艺术品,你可以关注所使用的材料,或部件的功能,尝试不同的视角,判断部件如何融入整体......这是一个很好的作品发现过程:
这里 - 数学家是如何思考的

1
投票

这完全取决于您正在阅读的代码类型。它是网络应用程序、服务还是桌面应用程序?当我开始阅读其他人的代码时,我通常会开始寻找所使用的设计模式。或者针对特定于框架的事情。但这又是如果你正在做评论的话。如果您是为了自己的兴趣而阅读并学习一些东西,那么确实没有答案 - 您应该彻底阅读并理解代码。


0
投票

在最终产品中选择一个你理解的项目,看看它是如何组合在一起的。如果您进行了单元测试,那么它们会很有帮助。


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.