【问题标题】:Learning from open-source projects / Browsing already written code [closed]从开源项目中学习/浏览已经编写的代码[关闭]
【发布时间】:2010-11-11 23:13:20
【问题描述】:

我想知道开源项目的学习价值有多大?

由于缺乏经验而不是缺乏知识,我仍然认为自己是“初学者”——我已经阅读了许多 C/C++ 教程和课程等,但我真的缺乏经验。因此,即使我了解主要的数据类型和编码技术,我对在我自己的编程中使用它们的方法没有一个扎实的把握。因此,在我继续阅读/练习/学习的同时,我一直在下载大量开源代码(随机应用程序、模拟器、游戏)。值得看看他们帮助学习吗?我觉得它非常有趣,但更多时候不仅仅是迷路。

第二个问题,做这件事时通常从哪里开始?您是否在某处寻找 main() 函数?您是否查看标头以了解在整个代码中可以使用哪些函数并了解可以使用的内容?

请告诉我!

R

【问题讨论】:

    标签: c++ open-source


    【解决方案1】:

    我个人不建议初学者阅读开源项目的源代码,特别是如果它们是成熟的项目。对于初学者来说,这可能会让人不知所措,因为它们往往是包含数千行代码的相当大的项目,而且很可能是一个不平凡的设计。

    如果您缺乏经验,那么在我看来,获得经验的最佳方式是编写自己的程序并承担您自己感兴趣的项目。您当然可以阅读其他人的代码以了解“它是如何完成的”,但实际上尝试自己在实践中实现这些想法更能帮助您理解如何编写代码,而不仅仅是被动地阅读代码。反过来,获得的理解和经验将使您更好地理解其他人的代码。

    这有点像数学;您可能知道公式,并且您可以看到数学家/教师/教授/等如何。使用这些公式,但在你自己尝试之前你不会真正理解它们。一旦你真正理解了它们,那么数学家写的东西就会更有意义。

    【讨论】:

      【解决方案2】:

      尝试专注于您想做的事情,为您没有参考点的应用程序查看代码并没有多大意义。

      最好的起点可能是查看像 Boost 这样的项目

      但是制定一系列您想研究的应用程序任务,可能是图形、文本编辑或套接字编程……然后从那里开始工作。

      获得一个可以帮助您浏览代码的优秀 IDE 或程序员编辑器是一大优势。

      例如,Emacs + ECTAGS/CEDET/Semantic 将帮助您浏览 C/C++ 项目中的所有函数/类。

      【讨论】:

      • 我不建议自称 C++ 初学者阅读 boost 源代码。它充斥着编译器的变通方法,使某些代码几乎无法理解。
      【解决方案3】:

      我同意@In silico。看别人的代码是很有用的,但是只有在你的水平有点高的时候,这样你才能学到一些东西。我见过不少项目过于“过度设计”,所以当你无法真正分辨好坏时,向它们学习将是一个坏主意。

      另一件事是向另一个程序员学习,当你可以问他为什么用一种方式而不是另一种方式时。在这种情况下,级别的差异并不重要。

      所以我建议您自己编程,并在您尝试过之后查看其他人的代码。通过这种方式,您将能够比较您所看到的选择以及您与其他人做出的决定(当您不深入了解问题时,任何建议的解决方案似乎都是正确的)。你知道,理论上,理论和实践是一样的。实际上,它们不是。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-08
        • 1970-01-01
        • 2010-12-02
        • 2010-11-06
        相关资源
        最近更新 更多