如何研究开源库代码,特别是标准库? 代码库通常很大,很难导航。如何找到一些函数或类定义?
我搜索下载的源文件吗? 我需要cvs / svn吗? 也许网络搜索? 我应该只知道标准库的结构吗? 有什么参考吗? 或者某些IDE有这样的功能?还是其他一些工具? 没有一个如何有效地做到这一点? 在任何开源库中执行此操作的最佳实践是什么? 有没有关于如何在Linux / Unix系统上操作源的约定? 特定编程语言有什么区别?
强烈鼓励广泛介绍该主题。 我标记了这个“社区维基”,所以每个人都可以改写并扩展我的尴尬表达!
更新:可能没有明确表达问题。我想要的是查看某些特定库类或函数的源代码。问题主要在于工作组织和可用性 - 如何在大量资源中导航以找到问题,可能有特定的工具或方法?感觉应该早就存在一些解决方案。
答案 0 :(得分:1)
有一点需要注意的是,标准库有时(通常是?)优化得比大多数生产代码更好。
因为它们被广泛使用,它们必须在各种各样的条件下表现良好,并且可能充满了巧妙的技巧和角落案例的特殊逻辑。
作为初学者,也许他们不是最好的学习方法。
只是一个想法。
答案 1 :(得分:0)
嗯,我认为只是站点并读取库的代码是疯了。我的方法是每当我遇到需要自己实现某些东西的时候进行搜索,然后研究它在这些库中的实现方式。
还有一些具有优秀文档的项目/库,我发现阅读比代码更重要。在基于Unix的系统中,您经常可以在手册页中找到有价值的信息。
答案 2 :(得分:0)
简短的回答:这取决于。
答案很长: 有些库提供文档,而有些库则没有。无论您选择的库实现是否包含文档,标准库通常都有很好的文档记录。例如,您可能已经找到了没有文档的c标准库的实现,但是c标准已经存在很长时间,以至于有数百本可用的好参考书。具有超链接的文档是学习新API的一种非常有用的方法。在任何情况下,我看的第一个地方是图书馆的主要网站
对于缺乏文档的知名度较低的图书馆,我发现两种不同的方法非常有用。
首先是一个doc生成器。我所知道的几乎所有语言都有一种语言。它基本上解析源树并创建可用于学习库的文档(通常为html或xml)。有些人在代码中使用特殊格式的注释来创建更完整的文档。 JavaDoc就是一个很好的例子。许多其他语言的Doc生成器都是从JavaDoc借用的。
第二个带有类浏览器的IDE。这些作为一种动态文档。有些只显示库的界面。其他包括来自图书馆来源的描述评论。
这两个都需要访问库源(如果你打算实际使用库,这将会派上用场)。
这些工具和技术中的许多对闭合/专有库同样有效。
答案 3 :(得分:0)
标准Java库的源代码可用。对于初学的Java程序员来说,这些都是很好的阅读。特别是Collections框架是一个很好的起点。以ArrayList的实现为例,学习如何在Java中实现可调整大小的数组。大多数消息来源甚至都有用。
阅读的最佳部分可能是您可以立即理解的目的。从简单的部分开始,尝试按照您自己的代码中所做的单个调用隐藏的所有步骤。
答案 4 :(得分:0)
我不时做的事情:
apt-get source foo
然后在Eclipse中导入新的C ++项目(或其他任何东西)。
=>哇 !可浏览! (使用F3)