Я потягнув звідси термін smurf іменування (номер 21). Щоб врятувати будь-кого, хто не знайомий з проблемою, іменування Smurf - це акт префіксації купи пов’язаних класів, змінних тощо із загальним префіксом, щоб у результаті ви отримали " SmurfAccountViewпропуск a SmurfAccountDTOдо SmurfAccountController" тощо.
Я зазвичай чув це рішення - створити простір імен для smurf та скинути префікси smurf. Це, як правило, добре мені послужило, але я стикаюся з двома проблемами.
Я працюю з бібліотекою з
Configurationкласом. Це можна було назвати,WartmongerConfigurationале воно знаходиться в просторі імен Wartmonger, тому його просто називаютьConfiguration. У мене також єConfigurationклас, який можна було б назватиSmurfConfiguration, але він знаходиться в просторі імен Smurf, щоб це було зайвим. У моєму коді є місця, деSmurf.Configurationвідображається порядWartmonger.Configurationі вводити цілком кваліфіковані імена незграбно і робить код менш читабельним. Було б приємніше мати справу зSmurfConfigurationа (якщо це мій код, а не бібліотека)WartmongerConfiguration.У
Serviceмоєму просторі імен Smurf у мене є клас, який можна назватиSmurfService.Serviceявляє собою фасад на вершині складної бібліотеки Смурфа, в якій працюють завдання 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?