Я вытащил отсюда термин «смурф» (номер 21). Чтобы избавить кого-то, кто не знаком с проблемой, именование Smurf - это префикс префикса группы связанных классов, переменных и т. Д. С общим префиксом, так что в итоге вы получаете «a SmurfAccountViewpass a SmurfAccountDTOto SmurfAccountController» и т. Д.
Решение, которое я обычно слышал, заключается в создании пространства имен smurf и отбрасывании префиксов smurf. В целом это хорошо мне помогло, но я сталкиваюсь с двумя проблемами.
Я работаю с библиотекой с
Configurationклассом. Его можно было бы назвать,WartmongerConfigurationно он находится в пространстве имен Wartmonger, поэтому он просто называетсяConfiguration. У меня также естьConfigurationкласс, который можно вызыватьSmurfConfiguration, но он находится в пространстве имен Smurf, поэтому он будет избыточным. В моем коде есть места, гдеSmurf.Configurationпоявляется рядом,Wartmonger.Configurationи ввод полностью определенных имен неуклюж и делает код менее читабельным. Было бы лучше иметь дело с aSmurfConfigurationи (если бы это был мой код, а не библиотека)WartmongerConfiguration.В
Serviceмоем пространстве имен Smurf есть класс, который можно было бы вызватьSmurfService.Serviceэто фасад на вершине сложной библиотеки Smurf, которая выполняет задания Smurf.SmurfServiceкажется лучшим именем, потому чтоServiceбез префикса Smurf это невероятно универсально. Я могу признать, что этоSmurfServiceбыло уже общее, бесполезное имя, и удаление смарфа просто сделало это более очевидным. Но его можно было бы назватьRunnerиLauncherт. Д., И мне все равно было бы «легче»,SmurfLauncherпотому что я не знаю, что онLauncherделает, но я знаю, что онSmurfLauncherделает. Вы можете утверждать, что то, чтоSmurf.Launcherделает, должно быть столь же очевидно, какSmurf.SmurfLauncher, но я мог видеть, что Smurf.Launcher - это некий класс, связанный с настройкой, а не класс, запускающий smurfs.
Если есть открытый и закрытый способ справиться с любым из них, это было бы здорово. Если нет, каковы некоторые распространенные практики, чтобы смягчить их раздражение?
SmurfJobs или технически запускает их в соответствии с языком документации Smurf. В свете этого и других ответов я собираюсь переименовать SmurfServiceв SmurfJobRunner. Кажется, номер 1 не имеет лучшего разрешения, как я ожидал. Я могу видеть случаи, когда подход SmurfConfigurationбыл бы правильным решением, но в моем случае я думаю, что Configurationэто лучше, даже несмотря на трудности Wartmonger.Configuration.
Smurf.Configurationи SmurfConfigurationчувствуешь себя иначе? Конечно, это не дополнительный символ, не так ли? (Сократите до, Configесли проблема в длине.) Есть ли Smurf.Configurationпроблемы, которых SmurfConfigurationнет?
Smurf.Launcherзапуск Smurfs, или это запуститьSmurfJobS? Возможно, это можно назватьSmurf.JobLauncher?