ここからsmurf命名という用語を取りました(21番)。トラブルに慣れていない人を救うために、Smurfの命名は、関連するクラス、変数などの束に共通の接頭辞を付ける行為であるため、「a SmurfAccountView
pass SmurfAccountDTO
to to SmurfAccountController
」などになります。
私がこれに対して一般的に聞いた解決策は、smurf名前空間を作成し、smurfプレフィックスを削除することです。これは一般的に私に役立ちましたが、私は2つの問題に直面しています。
私は
Configuration
クラスを持つライブラリで作業しています。呼び出すこともできましたがWartmongerConfiguration
、Wartmonger名前空間にあるため、単に呼び出されConfiguration
ます。同様Configuration
に呼び出すことができるクラスもありますSmurfConfiguration
が、それはSmurf名前空間にあるため、冗長になります。私のコードにSmurf.Configuration
は横に表示される場所があり、Wartmonger.Configuration
完全修飾名を入力するのは面倒で、コードが読みにくくなります。SmurfConfiguration
and(ライブラリではなく私のコードである場合)を扱う方が良いでしょうWartmongerConfiguration
。私は
Service
Smurf名前空間で呼び出されたクラスを呼び出しましたSmurfService
。Smurfジョブを実行する複雑なSmurfライブラリの上にService
あるファサードです。Smurf接頭辞がなければ非常に一般的なSmurfService
ため、より良い名前のようService
です。それSmurfService
はすでに一般的で役に立たない名前であり、スマーフを取り除くことはこれをより明白にしただけだと認めることができます。しかし、、などと命名することもできますがRunner
、Launcher
それでも「気分が良くなる」SmurfLauncher
のLauncher
は、a が何をするのかわからないからですが、aSmurfLauncher
が何をするのかは知っているからです。あなたは、aSmurf.Launcher
がすることはa と同じように明白であるべきだと主張することができますSmurf.SmurfLauncher
、しかし、 `Smurf.Launcherは、smurfsを起動するクラスではなく、セットアップに関連する何らかのクラスであることがわかりました。
これらのいずれかに対処するためのオープンな方法と閉じた方法があれば、それは素晴らしいことです。そうでない場合、彼らの迷惑を軽減するための一般的な慣行は何ですか?
SmurfJob
sを起動するか、技術的に実行してSmurfドキュメントの言語と一致させます。それと他の答えを踏まえて、私はに名前SmurfService
を変更しSmurfJobRunner
ます。私が予想したように、ナンバー1には言語にとらわれない最適な解像度がないようです。行くのがSmurfConfiguration
適切な場合がありますが、私の場合Configuration
は面倒でも最高だと思いますWartmonger.Configuration
。
Smurf.Configuration
をSmurfConfiguration
感じるのですか?確かにそれは余分な文字ではありませんよね?(Config
長さが問題である場合は短縮されます。)Smurf.Configuration
問題はありSmurfConfiguration
ませんか?
Smurf.Launcher
smurfsを起動しますか、それともsmurfsを起動しSmurfJob
ますか?おそらくそれを呼び出すことができますSmurf.JobLauncher
か?