Size: a a a

2019 November 06

Е

Евгений in pro.elixir
Dmitry Russ (Aleksandrov)
Если не держать часть конфига в зависимом приложении, то будет code duplication. Т.е. захочешь запускать a_app отдельно - один конфиг, если запускать single_node_app, то будет тот же самый конфиг (или почти такой же), только в другом месте. Я в таком случае за import и отсутствие code duplication-а, но принимаю дубликат конфига между a_app и single_node_app как вполне жизнеспособную альтернативу.
согласен
источник

Е

Евгений in pro.elixir
Зависимости по умолчанию почему-то собираются и запускаются в :prod окружении, а не в окружении основного приложения. Зачем?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я думаю, что если в этом примере много code duplication, то конфиги сделаны не правильно.
Потому что конфиги как раз и определяют контекст выполнения приложения. В случае запуска “отдельно” и запуска “как зависимость другого вместе на ноде” это контексты тупо разные
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Я думаю, что если в этом примере много code duplication, то конфиги сделаны не правильно.
Потому что конфиги как раз и определяют контекст выполнения приложения. В случае запуска “отдельно” и запуска “как зависимость другого вместе на ноде” это контексты тупо разные
Все сделано правильно - и код дупликейшен будет. Если ты запускаешь a_app внутри ноуды или отдельной ноудой - им по-прежнему нужно будет подключаться к одной и той же базе данных, иметь какие-то свои неймспейсы и размеры кешей и так далее. То, что оно запускается внутри одной VM или внутри разных VM - все эти параметры не меняет.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Я думаю, что если в этом примере много code duplication, то конфиги сделаны не правильно.
Потому что конфиги как раз и определяют контекст выполнения приложения. В случае запуска “отдельно” и запуска “как зависимость другого вместе на ноде” это контексты тупо разные
Это не разные контексты. Это тоже самое, как спор микросервисы или модульный монолит - разделение обязанностей одинаковое, но физическое расположение разное.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Получается ты конфигурируешь не свое приложение, а экто, феникс и тыды. Исходя из такой логики ИХ конфиг тоже должен отдельно лежать, а потом оттуда импортироваться
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Получается ты конфигурируешь не свое приложение, а экто, феникс и тыды. Исходя из такой логики ИХ конфиг тоже должен отдельно лежать, а потом оттуда импортироваться
Здесь есть разница большая разница.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Получается ты конфигурируешь не свое приложение, а экто, феникс и тыды. Исходя из такой логики ИХ конфиг тоже должен отдельно лежать, а потом оттуда импортироваться
Если a_app может запускаться отдельно, то phoenix нет. Точно так же, как ssl или libc ты не будешь выносить в микросервис, потому что это либа не существующая отдельно. А вот web app, auth service, admin app вполне выносятся в микросервисы и может иметь смысл запускать их физически в одной или на разных ноудах.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Согласен, так и есть
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Согласен, так и есть
И к примеру, если в auth service ты конфигурируешь 5 неудачных попыток прежде, чем блокировать - то эта конфигурация останется - будешь ты запускать auth service физически в одной ноуде с другими приложениями или нет.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Тогда надо вручную импортировать конфиг
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Но для этого походу придумали umbrella
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Тогда надо вручную импортировать конфиг
О чем я написал выше. Вручную через import_config
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Но для этого походу придумали umbrella
Я такое и делаю через umbrella.
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Но для этого походу придумали umbrella
у умбрелла стартует все что есть в app
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Евгений
у умбрелла стартует все что есть в app
Я в umbrella никогда не использую корневое приложение.
источник

Е

Евгений in pro.elixir
Dmitry Russ (Aleksandrov)
Я в umbrella никогда не использую корневое приложение.
а как тогда стартовать в нужном порядке?
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
У меня бы было там a_app, b_app, single_node_app - когда мне нужен конкретный app - иду в его папку.
источник

Е

Евгений in pro.elixir
чисто по зависимостям?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Евгений
чисто по зависимостям?
ну да
источник