名前空間に適切な名前を付けることで、プログラマはその名前空間にどういったものがあるのか、すぐに判断することができる。
次のテンプレートは、名前空間の命名規則を示している。
Softcube.メインカテゴリ.サブカテゴリ
次に名前空間の具体例も示しておこう。
Softcube.Utility
Softcube.Geometry
Softcube.Mvvm
Softcube.SceneGraph
Softcube.SceneGraph.Graphics
Softcube.SceneGraph.Physics
Softcube.Models.Domain
Softcube.Models.Simulation
Softcube.ViewModels
Softcube.Views
✔ Pascal
記法を使用し、ピリオド(.)で名前空間のコンポーネントを分割しよう。
お客様のブランド名が一般的な名前空間の大文字と小文字の表記から逸脱している場合、ブランドで定義された大文字と小文字の表記に従おう。
✔ 適切な個所では名前空間の名前に複数形を使用することを検討しよう。
たとえば、Softcube.ViewModel の代わりに Softcube.ViewModels を使用する。
ただしブランド名や略語は、この規則の例外とする。
✖ 名前空間とその名前空間内の型に同じ名前を使用しない。
たとえば、Debug という名前空間内に同じ Debug というクラス名を使用しない。
このセクションに示すガイドラインのいくつかは、次のカテゴリの名前空間に関連している。
✔ 既存の名前と競合する名前空間名や型名を選択した場合、ライブラリ
ユーザーは、影響を受ける項目への参照を修飾しなくてはならない。
大部分のコードでは、このような事態を避けよう。
✖ Element 、Node 、Log 、および Message など一般的な名前を型名として使用しない。
一般的な名前の競合は高い確率でおこる。一般的な名前は修飾できないかを検討しよう (FormElement, 、XmlNode, 、EventLog,
、SoapMessage)。
山﨑:上記はマイクロソフトのガイドラインからの引用だが、この規則は不要だと思う(厳守すると可読性が下がるように思う)。
たとえば、Color、Material、Line、Arc、Point3d、Vector3dなどは一般的な名前の主要な型だが、修飾語やプレフィックスをつけると読みにくい。
そもそも .NET Framework
内にも、File、Directory、TimeSpan、Color など一般的な名前の型が数多く含まれている。
✖ コア名前空間の型と競合する名前は必ず避けよう。
たとえば、Stream という型名を使用しないで欲しい。非常に良く使用する System.IO.Stream と競合するからだ。