Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux C++;项目源文件目录结构 我在Linux上工作了一个相当大的C++项目。我们正试图提出组织源文件目录结构的标准_C++_Linux_Directory Structure - Fatal编程技术网

Linux C++;项目源文件目录结构 我在Linux上工作了一个相当大的C++项目。我们正试图提出组织源文件目录结构的标准

Linux C++;项目源文件目录结构 我在Linux上工作了一个相当大的C++项目。我们正试图提出组织源文件目录结构的标准,c++,linux,directory-structure,C++,Linux,Directory Structure,我们的一个想法是让目录结构反映我们的架构选择。例如,我们的域类有一个根级别,边界类有一个根级别,域无关基础设施类有一个根级别 因此,在银行应用程序中,我们可能有一个名为src/domain/accounts、src/domain/customerTransactions、src/boundary/customerInputViews等的目录。然后我们可能有另一个名为src/infra/collections、src/infra/threading等目录 此外,在该结构中,我们将把接口类与实现类隔

我们的一个想法是让目录结构反映我们的架构选择。例如,我们的域类有一个根级别,边界类有一个根级别,域无关基础设施类有一个根级别

因此,在银行应用程序中,我们可能有一个名为src/domain/accounts、src/domain/customerTransactions、src/boundary/customerInputViews等的目录。然后我们可能有另一个名为src/infra/collections、src/infra/threading等目录

此外,在该结构中,我们将把接口类与实现类隔离开来。我们这样做是为了使接口的客户端不依赖于实现类的目录结构


有什么想法吗?

把代码分成独立的部分听起来是个好主意。这将允许您潜在地将内容分解为单独的单元(对于自动工具:您可以为组织提供方便的lib,以后甚至可以将它们完全分解为共享lib)


当然,子模块应该包含构建所需的所有内容:头文件、源文件和构建基础设施(可能只缺少包含的顶级构建定义文件)。这将确保C++可以对小单元进行测试(但是测试整个事情)。Qt就是一个明显的例子。