8

C# で記述したクラス ライブラリの 1 つをオープン ソースとしてリリースすることを検討しています。それを行う前に、一般大衆の要求を満たすようにリファクタリングを試みています:)

使用するのに最適な名前空間スキーマは何でしょうか? 基本的に、次のオプションが表示されます。

  • namespace MyTool : これは、私にとっては整理されているようには見えません。つまり、(ほぼ) .NET Framework のすべての名前空間には System というプレフィックスが付いているため、実際には標準的な方法ではないと思います。
  • namespace MyOrganization.MyTool : 「MyOrganization」がまったくないという問題。暇つぶしに書いています。
  • namespace MyName.MyTool : もっと控えめなものを好むでしょう。つまり、名前空間に自分の名前を入れたくありません。

現在、Stackoverflow には既にthisthisなどの関連する質問がいくつかありますが、実際に私の質問に答えるものはありません。

助言がありますか?

4

9 に答える 9

6

私は次のようなもので行きます:

namespace OpenSourceProjectCodeName.MajorFunctionalArea

例えば:

namespace VideoWizardMagicThing.Audio
namespace VideoWizardMagicThing.Audio.Codecs
namespace VideoWizardMagicThing.Video
namespace VideoWizardMagicThing.Video.Codecs

名前空間に完全に夢中になる必要はありません。必要なのは、1 つまたは 2 つの MajorFunctionalArea だけです。ただし、プロジェクトがどのように構成されているか、またはそれが何をするかを知らなければ、それを言うのは困難です。

于 2008-12-22T22:49:29.120 に答える
0

それがオープンソースであり、貢献者がいる場合、私はMyToolを選びます。

于 2008-12-22T22:35:50.847 に答える
0

MyToolは、プロジェクト コード/ブランド名とほとんど同じように聞こえますか?

その場合、組織名や個人名を使用せずにさらに分類したい場合は、対象となる業界または問題のドメインにフックします。

VideoEditing.MyTool

会計.MyTool

ホームAutomation.MyTool

于 2008-12-23T07:56:44.710 に答える
0

後で変更する余裕がある場合は、MyName.MyToolを使用します。ツールを書いているのがあなただけである場合は、完全なクレジットが必要であり、名前空間にあなたの名前が含まれていても、誰も害を及ぼすことはありません。

新しい貢献者を引き受けた場合、名前空間から名前を削除できますが、他の人が実際に大きな貢献をした場合に限ります。仕事の大部分があなたのものなら、私はそれを残します.

于 2008-12-22T22:38:08.597 に答える
0

MyTool名前が一意ではないという問題があります。名前の競合に向かっています。MyCompany.MyTool自分にラベルを付けたくない場合は、あなたのケースには当てはまりません。

私はむしろ、製品に関連付けられた URI を逆にするという Java の規則が好きです。企業の場合、これは企業の Web サイトです。あなたの場合 – アドレスがすぐに変更されそうにないブログ/個人のホームページをお持ちですか? 次に、TLD と第 2 レベル ドメインを逆にした名前を使用します。私の場合: net.madrat.MyTool.

私は何人かの人がどちらを使っTheirName.MyToolているか知っています。ただし、これは 2 番目の投稿者がいるとすぐに問題になります。

于 2008-12-22T22:39:29.593 に答える
0

MyOrganization を取得して使用することをお勧めします。仕事のためにお金を取ることがあれば、エンティティが必要になり、責任からあなたを守ることができます. 何かを設定するのはかなり簡単です。

または、MyOrganization 名を使用して後でエンティティを作成しますが、最初に設定しないと、法的な名前の競合などのリスクがあります。

于 2008-12-22T22:48:16.407 に答える
0

MyToolProject.MyTool を実行できます。または、「組織」にクリエイティブな名前を付けて、それを将来のすべてのオープンソース プロジェクトの名前にすることもできます。次に、MyCreativeOrgName.MyTool を持つことができます。

于 2008-12-22T22:48:22.337 に答える
0

MyOrganization.Technologyは、名前空間を開始するための推奨される方法です。

以前は、趣味のプロジェクトの名前空間に同様の問題がありました。それで、開発グループの名前を 1 つ作成し (短くて読みやすい名前にしたい)、それを使い始めました。

ただし、使いやすさは依然として重要であることを忘れないでください。たとえば、これはルールからの 1 つの例外です。私たちのオープン ソースのLokad 共有ライブラリは、.NET 自体の名前空間 (つまり、SystemまたはSystem.Threading ) に従っています。これは、開発者が BCL 以外のコードを利用していることに気付かずに利用できる日常的なヘルパーや拡張機能が数多くあるためです。

また、using 宣言の見栄えも良くなります。

于 2008-12-23T07:14:18.507 に答える
-1

最終的に、いくつかのプロジェクト (私の Web サイト) には Idunno.* を使用し、メインのプロジェクトには SharpSTS.* を使用しました (それがプロジェクト名であるため)。

于 2008-12-22T22:39:25.893 に答える