c++ - 一个好的C++项目应该包含哪些部分? (文档、Makefile、测试等...)

标签 c++ project-management

<分区>

我正在写我的学士论文,其中附有一些 C++ 代码。 我想要一个漂亮干净的项目。

那么里面应该有什么?

我认为:

  • html 文档(使用 Doxygen 生成)
  • 自述文件
  • Makefile(哪个制作?CMake?)
  • 单元测试(哪个单元测试框架?)
  • 版权文本 ?
  • ...

我错过了什么吗?

最佳答案

简化列表:

  • 文档位于易于查找和阅读的位置和形式,包括
    • 关于如何构建它的说明;
    • 关于如何使用它的说明。
  • 某种置信度测试(“我编译了它,但它有效吗?”)。

文档是 HTML、纯文本还是源代码注释; README.txt 中是否有 Makefile 或批处理脚本或复制粘贴一行;无论您有成熟的单元测试套件还是“黄金文件”测试:

真的没关系。

重要的是您可以构建它,测试它,并尽可能轻松地使用它。


补充个人意见:

吻。 (保持简短。)

对小项目使用简单的源代码注释,只有当你成长到一定程度时才开始使用 Doxygen。确保您的文档框架不会使通过全文搜索更难查找内容,因为根据我的经验,除非您真正编写文档,否则人们最终会这样做> 好吧。

只在必要时使用简单的 Makefile 并使用更复杂的东西(如 CMake、automake 等)。对于小型项目,与“真实”源文件相比,“元数据”的数量可能会变得荒谬。

您可以在这个“配角阵容”中投入相当多的时间和精力,在项目开始时,这些配角应该投入到项目本身中。构建系统、文档等可以根据需要增长,但项目架构本身一旦发布就很难重构。这就是您的主要关注点。

关于c++ - 一个好的C++项目应该包含哪些部分? (文档、Makefile、测试等...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2534449/

相关文章:

c++ - 从帧缓冲区 GLSL 读取到 OpenCV

c++ - 使用标准 C++/C++11、14、17/C 检查文件是否存在的最快方法?

c++ - 在不使用 std 的情况下如何使用 int32_t?

java - 如何在支持 AspectJ 的 Eclipse 中创建 Maven 项目?

C++ 反向 vector TL 引擎

project-management - 软件项目的基础设施

ios - 如何处理依赖分析警告? iOS

project-management - 将所有用例行动流映射到用户故事

c++ - 如何处理一些频繁使用的库的逐步重构?

c++ - 如何在 C++ 中创建不可删除的注册表项(或文件)