
Есть несколько стандартных вопросов для собеседований на позицию разработчик эрланг/эликсир. Речь не идёт про веб, там от людей обычно требуется умение писать код на Phoenix, который настолько хорошо абстрагирует OTP от ранимого разработчика, что можно годами клепать на нем сайты и не иметь представления о том, что такое акторная модель.
Но если речь идёт о понимании парадигмы, людей обычно спрашивают примерно о таких вещах:
▸ [junior] чем отличается GenServer.call/2
от GenServer.cast/2
и от Process.send/3
▸ [middle] как реализована модель синхронных вызовов (GenServer.call/2
) и зачем в колбэке нужен второй параметр
▸ [middle] зачем нужен колбэк init/1
и в каких случаях из него имеет смысл вернуть кортеж {:ok, state, {:continue, arg}}
▸ [senior] как перенести процесс на другую ноду
Поскольку на хабре все без исключения носят лычку Синьёр++, сегодня мы поговорим о переносе процесса.