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 SmurfAccountViewgeht a SmurfAccountDTOan 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
ConfigurationKlasse. Es hätte aufgerufen werden können,WartmongerConfigurationaber es befindet sich im Wartmonger-Namespace. Es wird also nur aufgerufenConfiguration. Ich habe ebenfalls eineConfigurationKlasse, 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.Configurationnebeneinander angezeigt wirdWartmonger.Configurationund die Eingabe von vollständig qualifizierten Namen klobig ist und den Code weniger lesbar macht. Es wäre schöner, mit einemSmurfConfigurationund umzugehen (wenn es mein Code und keine Bibliothek wäre)WartmongerConfiguration.ServiceIn meinem Smurf-Namespace befindet sich eine Klasse, die aufgerufen werden könnteSmurfService.Serviceist eine Fassade auf einer komplexen Schlumpfbibliothek, in der Schlumpfjobs ausgeführt werden.SmurfServicescheint ein besserer Name zu sein, dennServiceohne das Smurf-Präfix ist das so unglaublich generisch. Ich kann akzeptieren, dass diesSmurfServicebereits ein generischer, unbrauchbarer Name war, und das Entfernen von Schlumpf machte dies nur deutlicher. Aber es hätte benannt werdenRunnerkönnenLauncher, usw. und es würde sich für mich immer noch "besser anfühlen",SmurfLauncherweil ich nicht weiß, was einLaunchertut, aber ich weiß, was einSmurfLaunchertut. Man könnte argumentieren, dass das, was einSmurf.Launchertut, 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?
SmurfJobs oder führt sie technisch aus, um mit der Sprache der Schlumpfdokumentation übereinzustimmen. In Anbetracht dessen, und die anderen Antworten, ich werde umbenennen SmurfServicezu 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 SmurfConfigurationder richtige Anruf wäre, aber in meinem Fall denke ich, Configurationist es das Beste, selbst mit dem Ärger von Wartmonger.Configuration.
Smurf.Configurationund SmurfConfigurationfühlen sich anders an ? Sicherlich ist es nicht der Sonderpreis, oder? (Kürzen auf, Configwenn die Länge das Problem ist.) Gibt Smurf.Configurationes Probleme, bei denen SmurfConfigurationdies nicht der Fall ist?
Smurf.LauncherSchlümpfe oder startet esSmurfJobs? Vielleicht könnte es aufgerufen werdenSmurf.JobLauncher?