Я потягнув звідси термін 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.
Якщо є відкритий і закритий спосіб розібратися з будь-яким із них, це було б чудово. Якщо ні, то які загальні практики зменшення їх роздратування?
SmurfJob
s, або технічно запускає їх, щоб вони відповідали мові документації Smurf. У світлі цього і інші відповіді, я збираюся перейменувати SmurfService
в SmurfJobRunner
. Здається, номер 1 не має найкращого мовного агностичного рішення, як я очікував. Я можу побачити випадки, коли з цим SmurfConfiguration
буде правильний дзвінок, але в моєму випадку я вважаю, що Configuration
це найкраще навіть із клопотами Wartmonger.Configuration
.
Smurf.Configuration
і SmurfConfiguration
відчувати себе по-різному? Звичайно, це не зайвий чар, чи не так? (Скоротіть, Config
якщо проблема - це довжина.) Чи Smurf.Configuration
є проблеми, які SmurfConfiguration
не виникають ?
Smurf.Launcher
запускає smurfs, чи він запускаєSmurfJob
s? Можливо, це можна було б назватиSmurf.JobLauncher
?