Size: a a a

2021 January 04

ŹR

Źmićer Rubinštejn in pro.elixir
Timofey Chernousov
Почему в доках Phoenix нет деплоя через Docker?
Прямолинейный подход упирается в необходимость знать DATABASE_URL на этапе сборки образа, а я хочу задавать её при запуске образа... Если есть толковый гайд, дайте, пожалуйста
источник

TC

Timofey Chernousov in pro.elixir
Спасибо!
источник

ⰿⱄ

ⰿⰰⰾⱏ ⱄⰽⱃⰹⰾⰵⰲⱏ... in pro.elixir
спасибо за бота, однако по моим наблюдениям, боты уже умеют нажимать кнопку)
источник

ML

Maksim Lapshin in pro.elixir
Timofey Chernousov
Почему в доках Phoenix нет деплоя через Docker?
Прямолинейный подход упирается в необходимость знать DATABASE_URL на этапе сборки образа, а я хочу задавать её при запуске образа... Если есть толковый гайд, дайте, пожалуйста
Откуда требование на наличие database url на сборке?
источник

AM

Aliaksandr Martsinov... in pro.elixir
Maksim Lapshin
Откуда требование на наличие database url на сборке?
по дефолту феникс запекает урл в prod.secret.exs
источник

TC

Timofey Chernousov in pro.elixir
Maksim Lapshin
Откуда требование на наличие database url на сборке?
Уже подсказали: по умолчанию database url требуется, но ниже в той же доке есть workaround, чтобы более гибко сделать: https://hexdocs.pm/phoenix/releases.html
источник

ML

Maksim Lapshin in pro.elixir
Значит надо писать скрипт, который как в постгресе: на первом старте что-то делает.

Те геморрой и закат солнца вручную
источник

AM

Aliaksandr Martsinov... in pro.elixir
Да прост использовать рантайм конфиг вместо компайл тайма
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Maksim Lapshin
Значит надо писать скрипт, который как в постгресе: на первом старте что-то делает.

Те геморрой и закат солнца вручную
Этот скрипт встроен в механизм релизов elixir. Те как бы это не совсем workaround, а такой типа официальный костыль.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Вернее там получатся два раза запускается VM - первый раз чтобы сделать sys.config, а второй - уже нормально
источник

ŹR

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

ŹR

Źmićer Rubinštejn in pro.elixir
И это отключить появилось сильно недавно
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Из бонусов - конфигурации можно брать реально откуда угодно, потому что в первый запуск у тебя все ещё весь тьюринг полный эрланг
источник

M

Mexx in pro.elixir
Добрый вечер, я не давно начал алхимить после jvm языков, привлёк beam. Есть вопрос: Имеется проект, там куча модулей и в каждом модуле куча маленьких приватных функций для обработки какого то кейса - Я так понимаю это норм подход. Но меня после императивных языков, очень сильно передергивает что в целом все эти маленькие функции никогда не переиспользуются и по факту в проекте злоупотребляют этим подходом и разбивают сложный алгоритм на множество маленьких кусочков. Это норм в целом или что то не так ?
источник

M

Mexx in pro.elixir
Иногда вообще не понятно зачем кусочки вынесены из одной функции в отдельные которые добавляют свои def.. do.. end и одна две строки полезного кода, в итоге египетский манускрипт )
источник

V

V in pro.elixir
Это норм
источник

V

V in pro.elixir
> Разбивают сложный алгоритм на множество маленьких кусочков

Именно. В этом и суть.
источник

B

Bogdan in pro.elixir
Mexx
Добрый вечер, я не давно начал алхимить после jvm языков, привлёк beam. Есть вопрос: Имеется проект, там куча модулей и в каждом модуле куча маленьких приватных функций для обработки какого то кейса - Я так понимаю это норм подход. Но меня после императивных языков, очень сильно передергивает что в целом все эти маленькие функции никогда не переиспользуются и по факту в проекте злоупотребляют этим подходом и разбивают сложный алгоритм на множество маленьких кусочков. Это норм в целом или что то не так ?
В принципи пофиг будешь ты переиспользовать или нет, главное что читается легче, когда ты это все пайпить начнешь.
источник

B

Bogdan in pro.elixir
И соответственно дебагать это все проще будет, один кусочек на другой заменяешь, вместо того чтобы спагети бол разматыватью
источник

AL

Anton Lapshin in pro.elixir
1. проще дебагать
2. проще тестировать
3. проще вносить точечные изменения

когда у тебя одна большая функция, можно, во-первых, допустить какие-нибудь ошибки по-невнимательности, навроде переопределения локальной переменной. во-вторых, велик соблазн реализовать логику таким образом, что у тебя будет грубо говоря не последовательные операции с входными данными, в итоге функция становится запутанной. вносить точечные изменения становится сложнее, количество тест-кейсов на одну функцию/объект становится велико (а если их вообще нет?).
источник