P
Size: a a a
P
LL
with {:user, {:ok, user}} <- {:user, User.find(user_id)}
LL
else очень редко что-то появляетсяhappy-path до конца, либо возвращаешь ошибку, которая случилась по путиLL
{:error, reason()} у каждой функции должен быть свой reason%UserError{kind: :not_found} немного душно, а вот {:error, :user_not_found} сделать не сложноLL
{:step_name, bar} <- {:step_name, foo()} выглядят криво и тяжело понимаютсяRB
GenServer.cast, а когда send? У меня коллега спросил и мне сложно ответить на 100% точно почему один, а не другой.handle_info для этого.ML
GenServer.cast, а когда send? У меня коллега спросил и мне сложно ответить на 100% точно почему один, а не другой.handle_info для этого.gen_server:case(well_known_name, MyMessage)
case whereis(well_known_name) of
undefined -> ok;
Pid -> Pid ! MyMessage
end
ML
RB
ŹR
RB
ŹR
IK
LL
{:"$gen_cast", message} или как-то такLL
iex(1)> GenServer.cast self(), :x
iex(2)> flush
{:"$gen_cast", :x}
RB
AD
RB
AD
defmodule Worker do
def do_smth(message), do: GenServer.cast(__MODULE__, ...)
def handle_cast(...), do: ...
end
defmodule AnotherModule do
@worker Application.get_env(:my_app, :worker)
def another_fun do
@worker.do_smth
end
end
LL
defmodule Worker do
def do_smth(message), do: GenServer.cast(__MODULE__, ...)
def handle_cast(...), do: ...
end
defmodule AnotherModule do
@worker Application.get_env(:my_app, :worker)
def another_fun do
@worker.do_smth
end
end
@module Application.get_env