从开源项目中学习/浏览已编写的代码

时间:2010-11-11 23:13:21

标签: c++ open-source

我想知道有哪些宝贵的开源项目需要学习?

我仍然认为自己是“初学者”,因为缺乏经验而不是缺乏知识 - 我读过许多C / C ++教程和上课等等,但我真的缺乏经验。因此,即使我理解主要的数据类型和编码技术,我也没有充分掌握在我自己的编程中使用它们的方法。因此,当我继续阅读/练习/学习时,我一直在下载大量的开源代码(随机应用程序,模拟器,游戏)。值得看看它们来帮助学习?我发现它非常有趣,但往往不仅仅是迷路。

第二个问题,这样做通常会从哪里开始?你在某个地方追捕一个main()函数吗?您是否查看标题以查看整个代码中可用的功能,并了解可以使用的内容?

请告诉我!

[R

3 个答案:

答案 0 :(得分:4)

我个人不建议向初学者阅读开源项目的源代码,特别是如果它们是成熟的项目。对于初学者来说,这可能是压倒性的,因为它们往往是具有数千行代码的相当大的项目,很可能是非平凡的设计。

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

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

答案 1 :(得分:0)

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

最好的起点可能是查看像Boost

这样的项目

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

获得一个好的IDE或程序员编辑器可以帮助您导航代码是一个重要的优点。

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

答案 2 :(得分:0)

我同意@In silico。看到其他代码是非常有用的,但只有当它超出你的水平时才会这样,这样你才能学到一些东西。我见过很多太过“过度设计”的项目,所以当你无法从糟糕的方面告诉好事时,从中吸取教训将是一个坏主意。

另一件事是从另一个程序员那里学习,当你可以问他为什么做某种方式而不是另一种方式。在这种情况下,水平的差异无关紧要。

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