Size: a a a

2018 November 08

IA

Ivan Ananev in pro.elixir
так что уж лучше патерн матчинг
источник

Е

Евгений in pro.elixir
Ну, скажем честно, я пришел в эликсир совсем не ради философии. Плевать я хотел на радости ФП или ИП.
источник

Е

Евгений in pro.elixir
Просто не нашел ни одной альтернативы с хорошей поддержкой конкуррентости.
источник

Е

Евгений in pro.elixir
Впрочем вру, есть же Go, но тошнит
источник

AB

Alexey Bolshakov in pro.elixir
мне плевать на отп. программирую как хочу )
источник

Е

Евгений in pro.elixir
Alexey Bolshakov
мне плевать на отп. программирую как хочу )
Ну скажем на let it crash я точно наплевал :)
источник

AB

Alexey Bolshakov in pro.elixir
ты на него плевал, но он у тебя все равно работает )
источник

Е

Евгений in pro.elixir
супервизоры есть, но забавно то что, там где "лет ит краш" можно применить, оно никогда не крашнется.  А то что может крашнуться ну никак нельзя чтобы крашилось
источник

AB

Alexey Bolshakov in pro.elixir
значит ты что то делаешь не так
источник

Е

Евгений in pro.elixir
Может быть, но задача специфическая.
источник

Е

Евгений in pro.elixir
Вот у меня есть процесс обрабатывающий заказ пользователя через сторонние API, если он крашнется его бесмысленно рестартовать, стейт убился и восстановить его страшный геморрой
источник

AB

Alexey Bolshakov in pro.elixir
это да. известное озарение. лет ит креш это про то, что сервер не упал. а вот что делать после этого с клиентом, данными. тут уже думать надо. каждый раз.
источник

VP

Vladimir Potapev in pro.elixir
Alex Golubov
Elixir already provides mechanisms to write your everyday code in a simple and readable fashion by using its data structures and functions. Macros should only be used as a last resort. Remember that explicit is better than implicit. Clear code is better than concise code.
Ровно то же самое говорят и опытные кложуристы (ЕМНИП RIch Hickey об этом так же упоминал).
источник

Е

Евгений in pro.elixir
вот еще дурацкая проблема. Мне нужно сделать GenServer.call, но процесс-адресат может быть уже мертвым. Как сделать так, чтобы если адресат сдох, то возвращать ошибку, а если жив, то результат call?
источник

VP

Vladimir Potapev in pro.elixir
Alexey Bolshakov
Поправлю. Весь эликсир - это макрос
Там где нужна кодогенерация, без макросов и всяких quote никуда.
источник

Е

Евгений in pro.elixir
После длительных изысканий выяснилось, что единственно возможный вариант решить эту проблему без крашей - ловить эти краши при помощи try/catch. Ну вот что за говно?
источник

AK

Alexey Kuznetsov in pro.elixir
Евгений
вот еще дурацкая проблема. Мне нужно сделать GenServer.call, но процесс-адресат может быть уже мертвым. Как сделать так, чтобы если адресат сдох, то возвращать ошибку, а если жив, то результат call?
Можно же спросить Process.alive? перед этим
источник

AG

Alex Golubov in pro.elixir
Евгений
вот еще дурацкая проблема. Мне нужно сделать GenServer.call, но процесс-адресат может быть уже мертвым. Как сделать так, чтобы если адресат сдох, то возвращать ошибку, а если жив, то результат call?
кому возвращать?
источник

Е

Евгений in pro.elixir
Alexey Kuznetsov
Можно же спросить Process.alive? перед этим
Процесс может помереть между Process.alive? и GenServer.call, у нас же полная конкурентность.
источник

Е

Евгений in pro.elixir
Alex Golubov
кому возвращать?
тому кто вызвал GenServer.call, очевидно
источник