如何与其他开发人员共享代码? (和命名)

How To Share Code W/ Other Devs? (And naming)

tl;dr 我有我认为其他人会觉得有用的代码,但不知道如何将其打包以供其他人包含在他们的项目中并轻松修改。

我是 C++ 的新手,我创建了一种算法来有效(足够)地为机器人求解路径。该算法在一组点 ("Nodes") 内创建可能的最长路径,但有两个限制,即节点只有 single-visit,并且跳转到的下一个节点必须在当前节点的 X 距离内.

在拥有 "finished" 机器人(学习练习)后,我决定从机器人中删除寻路算法并将其打包为更通用且更易于理解的代码段以托管在 GitHub 供他人使用。

我很难找到有关如何最好地构建我的 "library" 的信息 - 可能是因为如果我更熟悉 C++,这真的很明显。我不希望它像 OpenCV 那样是一个 DLL,而我唯一的另一个例子是 .hpp JSON 库 + Google 风格指南中的信息。

我不确定将我的代码分发为 Header(带有概述 + 使用文档)和 CPP(带有更具体的注释)文件是否会产生我想要的结果 - 即 JSON .hpp 工作流程 - 我只需要下载文件 #include JSON.hpp,然后我就可以调用它的方法。


<-< PS。如何命名这样一种算法?我正在根据 Google 建议使用命名空间,但目前这会导致未使用我的命名空间的开发人员使用非常长的名称。

Google 的 Styleguide 适用于大型项目 - 而不是单个分布式文件 - 所以也许我应该命名 GitHub / "official name" 一些描述性的东西但给出名称空间/项目"SVNL" ?

单次访问节点链接器

在单个节点之间的距离内移动的最大节点的单次访问节点路径

访问在单个节点之间的距离内最大化节点链接器

没有分发 C++ 代码的标准方法,但分发像您这样的小型库的最简单方法是将其包装在一个短命名空间中,然后 post 到 GitHub/GitLab/BitBucket/etc。

我会确保包含一个自述文件,解释该项目是什么、如何使用它以及如何构建它。编写构建脚本并将其包含在存储库中的奖励积分。