这是一个关于如何构建 C++ 应用程序的问题,而不是关于 C++ 本身的问题
我正在构建一个被设想为图形应用程序的应用程序,但实现的细节需要大量抽象功能来简化界面,例如从文件、网络资源等读取对象列表。我已经想出如何毫不费力地实现这个功能,但我没有好的方法来测试它。具体来说,我已经开始实现图形环境,但还没有准备好使用较低级别的功能。
我还构建了大量我希望下层执行的操作,但尚未经过测试。所有这些代码都位于一个文件夹中,并存储在定期提交的版本控制系统中。
对于用 C++ 编写任何功能性的东西,我还比较陌生,到目前为止我只参与过类项目,但我已经用 PHP 编写了大量不同类型的程序。
如果这是一个 PHP 项目,那么测试任何功能似乎都很简单:
- 我会简单地从交互式实现开始
- 将其编码成一个小文件
- 编写一些使用该功能的代码
- 将其构建为一个函数
- 将该函数导入到我更大的代码体中。
用 C++ 做同样的事情似乎是一种非常笨拙的方法。我是不是把这一切都弄反了,你如何解决小的孤立问题,在你编译的程序中,并将它们导入你的项目中?是否有您认为有用的工作流程。
最佳答案
一般来说,您的问题的答案是使用类和单元测试。在互联网上搜索敏捷/极限编程。
思路是这样的:
- 做所有关于敏捷的故事(我会让你自己阅读)
- 你将你的设计分解成类
- 编写定义类“规范”的单元测试
- 编写空的占位符函数。
- 查看单元测试失败。
- 编写代码直到单元测试成功。
- 返回第 3 步并在其余类(class)中重复。
如果您以这种方式编写代码,您将创建可重用且健壮的代码。
老实说,我个人并不相信真正的 TDD(测试驱动开发)——我觉得在编写代码之后再编写单元测试会更好(我感觉到来自用户尖叫的即将到来的厄运之火“敏捷或死亡!”)。
编辑:如果您的问题更多是关于多个类的实际构建的谎言,那很容易。一般来说,你的每个类都应该封装在2个文件中(源代码和头文件)。只需在新项目中包含这些文件(以及您要使用的所有其他类的文件)。在需要使用类的适当位置#include "xxx.h",编写使用这些类的代码,然后构建。就是这样。
关于c++ - 你如何在 C++ 中模块化地构建应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103340/