c++ - 你如何在 C++ 中模块化地构建应用程序

标签 c++ workflow modular

这是一个关于如何构建 C++ 应用程序的问题,而不是关于 C++ 本身的问题

我正在构建一个被设想为图形应用程序的应用程序,但实现的细节需要大量抽象功能来简化界面,例如从文件、网络资源等读取对象列表。我已经想出如何毫不费力地实现这个功能,但我没有好的方法来测试它。具体来说,我已经开始实现图形环境,但还没有准备好使用较低级别的功能。

我还构建了大量我希望下层执行的操作,但尚未经过测试。所有这些代码都位于一个文件夹中,并存储在定期提交的版本控制系统中。

对于用 C++ 编写任何功能性的东西,我还比较陌生,到目前为止我只参与过类项目,但我已经用 PHP 编写了大量不同类型的程序。

如果这是一个 PHP 项目,那么测试任何功能似乎都很简单:

  1. 我会简单地从交互式实现开始
  2. 将其编码成一个小文件
  3. 编写一些使用该功能的代码
  4. 将其构建为一个函数
  5. 将该函数导入到我更大的代码体中。

用 C++ 做同样的事情似乎是一种非常笨拙的方法。我是不是把这一切都弄反了,你如何解决小的孤立问题,在你编译的程序中,并将它们导入你的项目中?是否有您认为有用的工作流程。

最佳答案

一般来说,您的问题的答案是使用类和单元测试。在互联网上搜索敏捷/极限编程。

思路是这样的:

  1. 做所有关于敏捷的故事(我会让你自己阅读)
  2. 你将你的设计分解成类
  3. 编写定义类“规范”的单元测试
  4. 编写空的占位符函数。
  5. 查看单元测试失败。
  6. 编写代码直到单元测试成功。
  7. 返回第 3 步并在其余类(class)中重复。

如果您以这种方式编写代码,您将创建可重用且健壮的代码。

老实说,我个人并不相信真正的 TDD(测试驱动开发)——我觉得在编写代码之后再编写单元测试会更好(我感觉到来自用户尖叫的即将到来的厄运之火“敏捷或死亡!”)。

编辑:如果您的问题更多是关于多个类的实际构建的谎言,那很容易。一般来说,你的每个类都应该封装在2个文件中(源代码和头文件)。只需在新项目中包含这些文件(以及您要使用的所有其他类的文件)。在需要使用类的适当位置#include "xxx.h",编写使用这些类的代码,然后构建。就是这样。

关于c++ - 你如何在 C++ 中模块化地构建应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103340/

相关文章:

c++ - 有没有办法将 "inherit"设为 int 等基类型?

c++ - C++14 标准中哪里说不能在 constexpr 函数的定义中使用非 constexpr 函数?

wcf - 我们可以将工作流服务作为 Windows 服务托管吗?

c++ - 为什么 SO_RCVTIMEO 从监听套接字继承到接受套接字?

hadoop - 如何在 OOZIE 工作流中使用逻辑运算符

php - 翻译算法

javascript - 模块化 JS 和原型(prototype)继承

c - 如何将一个C文件分成多个文件

performance - "Fast Integer Multiplication Using Modular Arithmetic"(2008) 算法什么时候比 Schönhage-Strassen 算法快?

c++ - 在 Qt 中寻找 PostMessage 功能