Size: a a a

2019 March 06

DR

Dmitry Russ (Aleksandrov) in pro.elixir
кана
вопрос по поводу описания своих поведений: что обычно делается, когда нужно описать свое поведение поверх ген-сервера? Что делать с коллизией коллбеков? Нормальная ли практика генерировать внутренние модули под поведение в using?

Вот пример
https://gist.github.com/kana-sama/6d7a74af3662ead695a1828880bfe47c
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Лучше перенести имплементацию из using в модуль  GenTicker и параметризировать.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Т.е. сохранять модуль и delay в state-е
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
кана
вопрос по поводу описания своих поведений: что обычно делается, когда нужно описать свое поведение поверх ген-сервера? Что делать с коллизией коллбеков? Нормальная ли практика генерировать внутренние модули под поведение в using?

Вот пример
https://gist.github.com/kana-sama/6d7a74af3662ead695a1828880bfe47c
Я комментарий оставил с тем, как лучше было бы сделать. Так будет лучше, потому что код будет в одном месте, а не генерироваться каждый раз на каждый чих без особой на то надобности(модули будут меньше по размеру) и такой код потом проще трейсить.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
кана
вопрос по поводу описания своих поведений: что обычно делается, когда нужно описать свое поведение поверх ген-сервера? Что делать с коллизией коллбеков? Нормальная ли практика генерировать внутренние модули под поведение в using?

Вот пример
https://gist.github.com/kana-sama/6d7a74af3662ead695a1828880bfe47c
"что обычно делается, когда нужно описать свое поведение поверх ген-сервера? Что делать с коллизией коллбеков?" => Создаётся новый behaviour, который описывает свои callback-и и описывает те, которые он использует из GenServer-а заного, потому что этот модуль решает какие callback-и самому обрабатывать, а какие пробрасывать в GenServer.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Нормальная. Не нормально использовать префикс Gen
В данном случае однозначно не нормальная.
источник

к

кана in pro.elixir
ага, а коллизии-то и не происходит, это я не понял вчера
источник

к

кана in pro.elixir
спасибо
источник

AG

Alexey Golda in pro.elixir
источник

AG

Alexey Golda in pro.elixir
First_name + last_message иногда дают неожиданный результат )
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Dmitry Russ (Aleksandrov)
В данном случае однозначно не нормальная.
Я до сих пор не понимаю, зачем вложенные модули. А так вроде все норм
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Źmićer Rubinštejn
Я до сих пор не понимаю, зачем вложенные модули. А так вроде все норм
Я там внизу добавил как нормально, но то как было сделано - это не нормально - это раздувание модулей(или их количества со вложенным модулем) по объёму без на то особой причины, когда все можно было решить просто имплементировав один раз. Даже в книге мета программирование на Elixir говорится, что лучше макро использовать как call в функцию, вместо того, чтобы кучу единообразного кода генерировать.
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
Я уж не говорю о том, что функции в модуле проще трейсить и понять где ошибка, в случае стектрейса. Вообще, чтобы стектрейс в изначальном варианте был адекватный и указывал на строку ошибки, там нужно было поставить опцию location: :keep - иначе у тебя ошибка где-то в этой сгенерированной каше, а он в стектрейсе показывает ошибка в строчке 2 модуля Example. Т.е. Даже если оставлять не необходимое раздувание кода, то оно бы принесло проблемы в продакшене из-за не информативных стектрейсов.
источник

IR

Ilya Roslyakov in pro.elixir
Будет курс Erlang от WG Forge для студентов, залетайте кому интересно: https://wgforge.wargaming.com/ru/course/wargaming-forge-platform-back-end
источник

AB

Alexey Bolshakov in pro.elixir
источник

AB

Alexey Bolshakov in pro.elixir
Инск - это в смысле Минск?
источник

AM

Aliaksandr Martsinovich in pro.elixir
что же с нами стало
источник

IR

Ilya Roslyakov in pro.elixir
Aliaksandr Martsinovich
что же с нами стало
А что тут именно плохо?
источник

AM

Aliaksandr Martsinovich in pro.elixir
скачет начало строки)
источник

AF

Alexander Fyodorov in pro.elixir
перфекционисты и дизайнеры плачут
источник