使用名称空间和文件夹来组织代码是否有些过分

Is using namespaces as well as folders to organize code overkill?

本文关键字:是否 代码 空间 文件夹      更新时间:2023-10-16

使用名称空间和文件夹来组织代码是否有些多余?

的例子:

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::是一个非常稳定和协调良好的名称空间的明显例子,这意味着可以成功地将许多内容捆绑到其中。如果您在一个人的项目中工作——从库一直到应用程序——您也更有可能处理更少的名称空间。

另一方面,如果您有几个独立工作的全局团队—不断更改/添加标识符—那么最好将代码分隔到名称空间中。此外,如果您经常遇到在一个系统中使用的明显且理想的标识符已经在另一个系统中使用的情况,那么也建议使用名称空间。