我已经下载了我最喜欢的程序的源代码。
在学校,他们教我们入口点是 main.c(pp),然后跟随标题,但我意识到并非总是如此。在某些情况下,在我能找到它的某个地方,没有一个主要的或它深埋的地方。
在大多数情况下,文档只描述了如何编译、你需要什么 deps 等等。
最重要的是,您已经下载了代码,解压了它.. 现在怎么办?
我没有任何特别的例子可以要求(帮助),所以如果你有任何例子可以帮助我,欢迎
我已经下载了我最喜欢的程序的源代码。
在学校,他们教我们入口点是 main.c(pp),然后跟随标题,但我意识到并非总是如此。在某些情况下,在我能找到它的某个地方,没有一个主要的或它深埋的地方。
在大多数情况下,文档只描述了如何编译、你需要什么 deps 等等。
最重要的是,您已经下载了代码,解压了它.. 现在怎么办?
我没有任何特别的例子可以要求(帮助),所以如果你有任何例子可以帮助我,欢迎
读代码往往比写代码更麻烦。此查询没有单一答案,您应该探索多种意见,看看哪种最适合您。您不应该从事的一种做法是从头到尾阅读代码。这将导致眼睛流血和令人麻木的挫败感。所以不要把它当作一本书,因为从头到尾地阅读它是非常低效的。阅读不是学习。应用你阅读的内容就是学习。要记住的一个关键点是不要气馁。您将很难找到能够快速掌握外国大型代码库的程序员。
最好的“书速阅读器”会快速浏览他们将要阅读的内容,从而形成脑海中的轮廓。他们记下逻辑部分的心理笔记,并描绘出一幅关于预期内容的薄图。当你的大脑以前看过某些东西时,它更有可能与这些材料互动。我会浏览头文件作为形成这个大纲的一种方式。如果没有头文件,则尝试快速浏览类接口并注意哪些是连接的以及它们的一般用途是什么。
再次浏览您感兴趣的代码部分。尝试识别代码的子系统,并进行第二次更详细的遍历。我个人会寻找用于识别子系统的连接组件(查看导入)。记下一些使用的数据结构以及相关的算法和设计模式。在它们之间建立关联,并尝试了解它们被使用的原因。
最后,不要仅仅满足于阅读代码。由于您正在寻找开源,因此挑战自己添加一个功能。选择您感兴趣的子系统之一并将其添加到其中。如果这仍然让您感到害怕,请更进一步。制作一个详细说明代码流程的快速流程图。淘汰您最喜欢的 IDE,并在您不了解流程的区域周围利用断点。试着把自己放在设计师的脑海里,想想他为什么在你通过断点时做出某些决定。底线:很容易阅读一些东西并认为你理解它。但是,做才是真正的学习发生的地方。添加新功能时,您会发现自己提出了更多问题并对代码进行了更多研究。有这个方向是有时需要的。
如果源代码利用了 OOP 解决方案,我强烈建议您学习一本设计模式书籍。我打算将设计模式作为项目符号包含在内,但我不知道您正在查看的源代码是否使用 OOP 方法。
希望这可以帮助!这是我几年前学习编码时采用的方法。