2

コードを整理するために名前空間とフォルダーを使用するのはやり過ぎですか?

例:

Folder Structure:
Engine (Root)
--Audio
--Exceptions
--Game
--GFX
--Input
--Math
--Messages
--Physics
--Time
--[global headers]

すべてのクラスは名前空間に含まれており、サードパーティ コードとの[root]::衝突を防ぎます。std::Math フォルダーには、名前空間に含まれるいくつかのヘルパー (無料) 関数のヘッダーが含まれており[root]::Math::、Audio には名前空間にさらにいくつかのヘルパー (無料) 関数があり[root]::AudioHandler::ます。

各フォルダー内のクラスを同様に記述する名前空間に配置する必要がありますか? (つまり、Physics フォルダー内のクラスも[root]::Physics::名前空間に含まれます。)

4

1 に答える 1

2

名前空間は論理インターフェース、ディレクトリは「物理」ファイルを構成します。

1 つの名前空間内のコードが多いほど、それが比較的安定しており、適切に調整されていることが重要になります。識別子が揮発性で調整されていない場合、変更がマージされるときに競合が発生する可能性があります。このような競合の経験や感じ方に基づいて、名前空間を選択できます。

std::は、非常に安定してよく調整された名前空間の明らかな例です。これは、多くのものをうまくバンドルできることを意味します。ワンマン プロジェクト (ライブラリからアプリケーションまで) に取り組んでいる場合は、より少ない名前空間に対処する可能性も高くなります。

一方、複数のグローバル チームが独立して作業している場合 (常に識別子を変更/追加している場合) は、コードを名前空間に分離することをお勧めします。さらに、あるシステムで使用する明白で望ましい識別子が別のシステムで既に使用されているという定期的な経験がある場合は、名前空間も示唆しています。

于 2013-04-23T05:32:13.330 に答える