Я пытаюсь понять, что Stuart Sierra's component
, в частности, соглашение об именах для компонентов, чтобы структурировать приложение Clojure.Clojure - составные части и названия
Если я смотрю в system
, например, я вижу несколько компонентов, отображенные на ключ :server
:
Поскольку оба используют тот же ключ :server
, это значит что я могу использовать только один из них, если я использую эту библиотеку?
Аналогичным образом, я использую onyx
. Несколько компонентов уже определены внутри onyx system.clj
. Означает ли это, что некоторые ключи эффективно зарезервированы на onyx
?
Что произойдет с параметром :port
, который, по-видимому, используется многими компонентами в дикой природе?
Вопросы
- Что получить разницу между клавишами, используемыми при
assoc
ИНГ в методе запуска и ключей, используемых вcomponent/system-map
? - Есть ли соглашение об именах для этих ключей, как мы можем избежать столкновений между этими ключами?
- В каких случаях (если есть) имеет смысл иметь несколько систем и может ли они работать одновременно?
Часть ключей ключей компонентов очистила от моего сознания туман. Какой из 1/2/3 являются ключами в моих ссылках на систему/{aleph, immutant}? Я предполагаю, что это (2), и что вы имеете в виду, что мне не нужно заботиться о ключах, установленных в записи, так как нет риска конфликта с другими записями? – nha
Насколько я вижу, в обоих случаях ключ сервера используется как внутренний объект реализации. Кроме того, в общем, я ожидаю, что компоненты, которые должны иметь зависимости, настроенные на то, чтобы ключи зависимостей были четко задокументированы. –