可重用的代码/类存储库
我有几个包含函数,类和模板的模块,这些模块保存在名为(hah!)'reuse'的目录中。我非常了解内容,因此查找特定的类或者少量代码不会花费太长时间,但是它的大小正在缓慢增长,我需要一些明智的方法来存储它们以便于搜索和检索。
我应该怎么做?
一个相关的问题可以在这里找到:全文搜索源代码
解决方案
- 按使用区域(网络,安全性,文本处理等)对来源进行分组;最好放在目录中,以便于浏览。
- 通过将关键字添加到源文档中来标记功能。使用适当的注释标记系统(例如javadoc)并创建某种可索引的文档。
- 在来源上使用某种全文本搜索(grep -r,google桌面)进行搜索。
我们可以将目录中的所有类划分。
问题使用什么语言?因为.Net,我们可能会有像DLL那样用命名空间划分的库。
- 按功能将功能/类/模板分组为模块/目录。假设我们将它们作为开源库发布;考虑一下我们希望如何组织他人的代码。最终,它将是其他人的代码:一两年前的我们。
- 使用文档系统。 Doxygen将为我们生成一个方便的HTML代码浏览器。
通常,我会根据文件的一般用途对文件进行分组。
前任:
重用\数据库
重用\图形
重用\数学
重用\等...
然后,我们可以将小组分组
重用\图形\ 2D
重用\图形\ 3D
高温超导
取决于系统,但是当可重用数量达到一定阈值时,我倾向于尝试将其逻辑块转换为"真实"库,就像我们在第三方(使用文档等)所使用的一样。将它们放入各自的库路径中,以便它们变得真正可重用。
如果我们不介意在某些OSS许可下放弃它们,甚至可以将它们放入与我们正在使用的任何环境等效的CPAN / PyPI / PEAR中。这增加了更多的可重用性。
我想最重要的部分仍然是将代码捆绑到真实的库中。然后,检索部分应该会容易得多,因为大多数情况下是自动的。
前段时间对此进行了辩论。标准的代码文件夹化对于提高可读性和组织性很有好处,但是当我们只想抓东西时,另一种方法是以某种方式使用标记(例如,通过在文件名或者其他元数据中添加标记)。标签可以很好地代替文件夹,因为我们可以快速地挖掘特定的或者一般的东西,而对于文件夹,则需要挖掘树来获取特定的东西。
标签:O(n)。文件夹:O(n ^ 2)
可能是。 :P
在VCS目录中根据语言(细分为功能)和标签进行文件夹化,并附带Doxygen / Perldoc / * Pod / *提取的文档。我们将拥有可重复使用的模块/文档的轻松掌握的存档,可立即移植到工作中。/
这个问题涵盖了几乎相同的理由,我将以有利的方式结束这个问题。