2016-08-15 5 views
0

申し訳ありませんが、私はより良いタイトルがありません。C#同じ種類の型名の名前の規則

私は命名規則に関する質問がありますが、これは説明するのが少し難しいです。

私は、次のlibにプロジェクトを持っている:

Common.CQRS 
-- Interfaces 
---- IQuery 
Common.CQRS.EntityFramework 
-- Interfaces 
---- IQuery <--- Question 
Common.CQRS.Mongo 
-- Interfaces 
---- IQuery <--- Question 

明らかにIQUERYは単なるデータストアシステムに(この場合は)関連、どこでも同じことを行います。 "Common.CQRS"からのIQueryはベースであり、他のIQueryはこのIQueryを継承しなければなりません。 これまでIQueryBaseという名前のIQueryを「Common.CQRS」という名前にしましたが、これは避けるべきです。 "Common.CQRS.EntityFramework" IEntityFrameworkQueryとMongo IMongoQueryなどのIQueryの名前を付けることができますか? 名前空間のために何とか冗長ですね。

ご意見ありがとうございます。

答えて

0

私はあなたがそれを変更するよう提案しても大丈夫だと思います。私はあなたの現在のコンベンションを、私が取り組んでいる1つのプロジェクトに、提案したものをもう1つに持っています。これはコードを見やすくします。どこでもコード内にEntityFramework.Interfaces.IQueryまたはMongo.Interfaces.IQueryを指定するのは醜いです。 IEntityFrameworkQueryIMongoQueryはもっと良いです。

0

チームで作業している場合、チーム全体が同意し、1つの大会に固執する必要があります。

個々の開発者/唯一の意思決定者であれば、多くの人、多くの慣習と慣習が従うので、この質問はここで理にかなっています。

IQueryBase - このインターフェイスのみを実装する実装(class)がないと思われる場合は、これを、または好ましくはIBaseQueryにすることができます。それ以外の場合は、IQueryとしてください。

namespace.IQuery - 私は@ブレンダンと同意します。EntityFramework.Interfaces.IQueryなどは醜いです。ただし、名前空間のエイリアスを使用して短縮することができます。短いが、何efimiスタンドに読み取り可能ではありません

using efi = Common.CQRS.EntityFramework.Interfaces; 
using mi = Common.CQRS.Mongo.Interfaces; 

efi.IQuery 
mi.IQuery 

。私はちょうど参照を短縮する可能性としてそれを言いました。完全修飾名または名前空間エイリアスが嫌いな場合は、あいまいなエラーが発生します。

ISpecializedQuery - これは、残りの唯一のオプションです。同意したEntityFramework.Interfaces.IEntityFrameworkQueryは冗長ですが、命名基準はコードの読みやすさのために多くあります。