#language-agnostic #domain-driven-design #naming-conventions
#не зависит от языка #дизайн, управляемый доменом #соглашения об именовании
Вопрос:
У меня есть приложение, которое имеет набор коллекций, которые содержат настраиваемые извне значения.
Например:
Валюты, часовые пояса, страны, штаты.
Обычно эти значения отображаются пользователю в раскрывающихся списках и загружаются из внешней службы, сгруппированные по вышеуказанным категориям.
Есть ли существительное, которое эффективно описывает эту «коллекцию коллекций значений конфигурации»?
например:
interface xxxxRepository
{
List<String> getXXXXX(String category);
}
Каковы эффективные имена, которые четко описывают эту концепцию?
Ответ №1:
Будут ли «Системные свойства» звучать достаточно обобщенно? или «MetaDataService» звучит самоочевидно / логично?
Комментарии:
1. Метаданные могут быть возможны, но в то же время метаданные настолько универсальны (и часто используются неправильно), что они почти бессмысленны.
Ответ №2:
«Системные свойства» довольно часто используются для значений конфигурации для всего приложения, но я бы использовал это больше для простых пар foo = «bar» ключ / значение, например, для строки подключения к базе данных.
Похоже, что ваш пример (валюты, страны, штаты) выходит за рамки того, что я бы назвал базовой «конфигурацией». В некотором смысле вы определяете возможные значения перечисления на основе данных. Может быть, EnumerationRepository или EnumerationValueRepository были бы уместны?
Ответ №3:
По сути, вам нужен метаданный и способ группировки элементов путем классификации их как классификаций и элементов классификации
AppSemanticsRepostiory{
getClassification();
}
Ответ №4:
В Ada это было бы примерно аналогично package elaboration
для универсальных пакетов… хотя это не интуитивно понятный ответ, он передает желаемое значение, если вы разрешаете «пакет» для обозначения вашего программного обеспечения [-package] .