使用名称空间和文件夹来组织代码是否有些过分
Is using namespaces as well as folders to organize code overkill?
使用名称空间和文件夹来组织代码是否有些多余?
的例子:
Folder Structure:
Engine (Root)
--Audio
--Exceptions
--Game
--GFX
--Input
--Math
--Messages
--Physics
--Time
--[global headers]
所有类都包含在[root]::
命名空间中,以防止与std::
和第三方代码发生冲突。Math文件夹包含[root]::Math::
命名空间中包含的一些辅助(免费)函数的头,Audio在[root]::AudioHandler::
命名空间中有一些更多的辅助(免费)函数。
我应该把每个文件夹中的类放在一个类似的描述命名空间中吗?(即物理文件夹中的类也会在[root]::Physics::
命名空间中)
命名空间组织逻辑接口,目录组织"物理"文件。
单个名称空间内的代码越多,相对稳定和良好协调就越重要;如果标识符不稳定且不协调,则在合并更改时可能会看到冲突。根据您对这种冲突的经验或感觉,您可以选择您的名称空间。
std::
是一个非常稳定和协调良好的名称空间的明显例子,这意味着可以成功地将许多内容捆绑到其中。如果您在一个人的项目中工作——从库一直到应用程序——您也更有可能处理更少的名称空间。
另一方面,如果您有几个独立工作的全局团队—不断更改/添加标识符—那么最好将代码分隔到名称空间中。此外,如果您经常遇到在一个系统中使用的明显且理想的标识符已经在另一个系统中使用的情况,那么也建议使用名称空间。
相关文章:
- 此代码是否违反一个定义规则
- 是否应该在模板化代码中完全避免const
- 不同/较旧的处理器运行c++代码的方式是否不同
- 是否值得降低我的代码的可读性,以便在出现内存不足错误时提供异常安全性?
- 是否可以使用 C++ 中的模板减小删除代码大小
- 编写了一个C++代码来检查表达式是否具有平衡括号并且我的代码未运行.我已经卡了一天了
- 是否可以在Linux上使用.Net Core 3.1创建C++/CLI代码的C#DLL
- Visual Studio 中是否有来自代码块的编译器标志的类似物?
- 代码在 CodeSignal 中工作不正确。不确定这是否是我的代码缺陷
- 在映射中插入一对时,C++是否需要额外的代码
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符
- 任何人都可以解释一下我是否需要 & 在第一个代码片段中
- 我的代码中是否有任何类型的错误,因为它没有给出正确的输出
- C++ LeetCode #377 的 DP 解决方案中,此代码是否有错误?
- 是否可以像这样编写c malloc函数代码
- 是否可以访问代码中的调用堆栈?
- GCC 编译器是否应该对涉及 [[fallthrough]] 属性的格式错误的C++代码进行诊断?
- 是否可以避免在以下代码中复制/移动构造函数的需要?
- 在cpp中使用boost-python的python代码是否进行动态内存分配
- 这是否C++代码交换第一个和最后一个位