45


18

名前空間の命名規則

再利用可能なコンポーネントを書いているあなたにとって、.NETフレームワークの機能を拡張する場合、どのようにしてベストプラクティスと考えるのでしょうか。

たとえば、私はPop3ライブラリを作成していますが、.NETには存在しません。 カスタム名前空間を作成しますか、それとも `+ System.Net.Mail`を使用しますか?

2 Answer


59


_ _ 名前空間の命名の一般的な規則は、次のようにテクノロジー名とオプションで機能とデザインが後に続く会社名を使用することです。 コードをコピー

+ CompanyName.TechnologyName [.Feature] [。Design] + _ _

一般的に、フレームワークやライブラリのデフォルトの名前空間にものを含めることを始めるのは本当に悪い習慣です。 これは、新しい名前空間が、全員に配布されるフレームワークの一部である既存のライブラリの一部であるのか、他の人によって追加されたカスタムフレームワークの一部であるのかについて混乱を引き起こす可能性があります。

また、命名規則は、 `+ CompanyName +`のような一意の識別子を持つことにより、名前空間の衝突を回避しようとします。 また、新しいライブラリのソースに関して混乱や問題を減らすことができます。

これはマイクロソフトの問題だけでなく、Javaの問題でもあります。 「パッケージ」と呼ばれるJavaのネームスペースには、http://www.oracle.com/technetwork/java/codeconventions-135099.html [次の規則]があります。

_ _ 一意のパッケージ名のプレフィックスは常にすべて小文字のASCII文字で書かれており、現在はcom、edu、gov、mil、net、org、または英語の2文字コードのいずれかであるトップレベルドメイン名の1つであるべきですISO規格3166、1981で指定されている国の識別

パッケージ名の後続の構成要素は、組織独自の内部命名規則に従って異なります。 このような規則では、特定のディレクトリ名の構成要素が部門名、部門名、プロジェクト名、マシン名、またはログイン名であると指定することがあります。 _ _

したがって、私が非常に素晴らしいソフトウェアを持っている場合、それは `+ net.coobird.superawesomesoftware +`パッケージに含まれている可能性があります。

そして、デフォルトの + java。++ javax。+、 `+ com.sun。+`パッケージを含むパッケージ名を使用することは、大したことではありません。


15


名前空間の命名に関するガイドラインについては、MSDNの次の記事も参照してください。

名前空間に選ばれた名前は名前空間の型によって利用可能にされた機能性を示すべきです。 たとえば、System.Net.Sockets名前空間には、開発者がソケットを使用してネットワークを介して通信することを可能にする型が含まれています。

名前空間名の一般的な形式は次のとおりです。

+。(|)[。] [。] +

たとえば、「+ Microsoft.WindowsMo​​bile.DirectX +」。 _ _