Ich habe den Begriff Schlumpfnamen von hier gezogen (Nummer 21). Um jedem zu ersparen, der nicht mit den Problemen vertraut ist, wird beim Benennen von Schlümpfen eine Reihe verwandter Klassen, Variablen usw. mit einem gemeinsamen Präfix vorangestellt, sodass am Ende "a SmurfAccountView
geht a SmurfAccountDTO
an die SmurfAccountController
" usw. angezeigt werden.
Die Lösung, die ich bisher gehört habe, besteht darin, einen Schlumpf-Namespace zu erstellen und die Schlumpf-Präfixe zu löschen. Das hat mir im Allgemeinen gute Dienste geleistet, aber ich habe zwei Probleme.
Ich arbeite mit einer Bibliothek mit einer
Configuration
Klasse. Es hätte aufgerufen werden können,WartmongerConfiguration
aber es befindet sich im Wartmonger-Namespace. Es wird also nur aufgerufenConfiguration
. Ich habe ebenfalls eineConfiguration
Klasse, die aufgerufen werden könnteSmurfConfiguration
, aber sie befindet sich im Schlumpf-Namespace, sodass sie überflüssig wäre. Es gibt Stellen in meinem Code, an denenSmurf.Configuration
nebeneinander angezeigt wirdWartmonger.Configuration
und die Eingabe von vollständig qualifizierten Namen klobig ist und den Code weniger lesbar macht. Es wäre schöner, mit einemSmurfConfiguration
und umzugehen (wenn es mein Code und keine Bibliothek wäre)WartmongerConfiguration
.Service
In meinem Smurf-Namespace befindet sich eine Klasse, die aufgerufen werden könnteSmurfService
.Service
ist eine Fassade auf einer komplexen Schlumpfbibliothek, in der Schlumpfjobs ausgeführt werden.SmurfService
scheint ein besserer Name zu sein, dennService
ohne das Smurf-Präfix ist das so unglaublich generisch. Ich kann akzeptieren, dass diesSmurfService
bereits ein generischer, unbrauchbarer Name war, und das Entfernen von Schlumpf machte dies nur deutlicher. Aber es hätte benannt werdenRunner
könnenLauncher
, usw. und es würde sich für mich immer noch "besser anfühlen",SmurfLauncher
weil ich nicht weiß, was einLauncher
tut, aber ich weiß, was einSmurfLauncher
tut. Man könnte argumentieren, dass das, was einSmurf.Launcher
tut, genauso offensichtlich sein sollte wie einSmurf.SmurfLauncher
, aber ich konnte sehen, dass `Smurf.Launcher eine Art Klasse ist, die sich eher auf Setup bezieht als auf eine Klasse, die Schlümpfe startet.
Wenn es einen offenen und geschlossenen Weg gibt, mit beiden umzugehen, wäre das großartig. Wenn nicht, was sind einige gängige Praktiken, um ihre Belästigung zu lindern?
SmurfJob
s oder führt sie technisch aus, um mit der Sprache der Schlumpfdokumentation übereinzustimmen. In Anbetracht dessen, und die anderen Antworten, ich werde umbenennen SmurfService
zu SmurfJobRunner
. Es scheint, dass Nummer 1 keine sprachenunabhängige beste Auflösung hat, wie ich erwartet hatte. Ich kann Fälle sehen, in denen das Mitgehen SmurfConfiguration
der richtige Anruf wäre, aber in meinem Fall denke ich, Configuration
ist es das Beste, selbst mit dem Ärger von Wartmonger.Configuration
.
Smurf.Configuration
und SmurfConfiguration
fühlen sich anders an ? Sicherlich ist es nicht der Sonderpreis, oder? (Kürzen auf, Config
wenn die Länge das Problem ist.) Gibt Smurf.Configuration
es Probleme, bei denen SmurfConfiguration
dies nicht der Fall ist?
Smurf.Launcher
Schlümpfe oder startet esSmurfJob
s? Vielleicht könnte es aufgerufen werdenSmurf.JobLauncher
?