Size: a a a

2019 December 15

P

Pavel in pro.elixir
Ну мы можем много спорить, я говорю о том, что для меня конвенция, которая скоупнута на функционал - это нормально. А когда оно меняет тебе кусок кернела или чужого для неё кода, что является сайдэффектом - уже зашквар.
источник

P

Pavel in pro.elixir
Вот таких зашкваров нет в феникс
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Сайдв это сайды, они ортогональны магии )
источник

P

Pavel in pro.elixir
Это как раз и есть магия. Конвенция - це не магия.
источник

P

Pavel in pro.elixir
Если нет сайдэффектов - какая тут магия то? Макрос - не есть магия, кодогенерацмя - не есть магия.
источник

P

Pavel in pro.elixir
Там даже неявного поведения нет, так как конвенция жестко заыигачена на макрос scope в твоём примере
источник

P

Pavel in pro.elixir
И вообще где курсы - ты обещал
источник
2019 December 16

AK

Aleksey Kudrenko in pro.elixir
Доброго времени суток, ребят. Сорри за оффтоп. Я новичёк в фп, пишу тут тестовый проект и появился вопрос по качеству кода. задача проста: если нет в кэше id города, создать новую запись, добавить id в мапу и вернуть tuple для дальнейших манипуляций. вот я написал нечто, что делает указанное. но адекватно-ли в pipeline помимо функций ещё и case пихать, в которых тоже pipeline'ы будут? мб стоит всё раскидать по мелким функциям да и дело в шляпе? В общем, прошу помощи и советов..
источник

ŹR

Źmićer Rubinštejn in pro.elixir
че за -1? Это ты из сиплюсплюса вызываешь get_city_id_by_name?
источник

AK

Aleksey Kudrenko in pro.elixir
-1 возвращается, когда нет значений. лучше возвращать атом?
источник

IB

Ilya Borovitinov in pro.elixir
Aleksey Kudrenko
-1 возвращается, когда нет значений. лучше возвращать атом?
nil
источник

ŹR

Źmićer Rubinštejn in pro.elixir
скинь код текстом
источник

AK

Aleksey Kudrenko in pro.elixir
понял, благодарю
источник

AK

Aleksey Kudrenko in pro.elixir
момент
источник

AK

Aleksey Kudrenko in pro.elixir
def add_city({:ok, attrs}) do
   attrs.city
   |> get_city_id_by_name
   |> case do
     -1 -> Proj.Repo.insert_city(attrs.city)
     id -> {:ok, %{id: id}}
   end
   |> case  do
     {:ok, city_info} -> {:ok, Map.put(attrs, :city_id, city_info.id)}
     error -> error
   end
 end
источник

V

V in pro.elixir
Котаны, как вы отключаете периодические задачи при тестировании?
Например, пишу MyApp.Scheduler, который запускает джобу сразу при инициализации и дальше через час.
Кладу её в дерево супервизора феникса:
children = [
 MyApp.Repo,
 MyApp.Endpoint,
 MyApp.Scheduler
]
В dev-режиме оно работает нормально. А вот когда делаю mix test - этот Scheduler начинает выполнять свою работу, которая не нужна. Как отключить именно его в режиме тестирования? mix test --no-start отключает всё дерево, а тестам нужно чтоб Repo была поднята.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Нужно вручную включить repo
источник

V

V in pro.elixir
Как это лучше всего сделать?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
🤷‍♂️
источник

RS

Roman Suleymanov in pro.elixir
Можно же разные children сделать
источник