可重用的代码/类存储库

时间:2020-03-06 14:47:29  来源:igfitidea点击:

我有几个包含函数,类和模板的模块,这些模块保存在名为(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 / *提取的文档。我们将拥有可重复使用的模块/文档的轻松掌握的存档,可立即移植到工作中。/

这个问题涵盖了几乎相同的理由,我将以有利的方式结束这个问题。