Size: a a a

2020 July 17

VS

Vladimir Sekisov in ErlangRus
Maksim Lapshin
я не понимаю, причем тут behaviour.

Проблема этого кода в том, что в нём вперемешку pure логика парсинга пакетов и бизнес-логика вида «сделай высокоуровневое апи в стиле циски»
да, там чего-то типа модуля
lldp_transport между gen_lldp и lldp_pdu явно не хватает
источник

AK

Aleksey Kluchnikov in ErlangRus
Вот как пример, как на мой взгляд хорошо делать https://github.com/VoyagerInnovations/esmpp реализация протокола smpp. синхронные и асинхронные посылки. Конфигурируется и используется элементарно. Под свои нужды затачивается тоже
источник

AK

Aleksey Kluchnikov in ErlangRus
банальный module:send/2 для послыки и callback_dr => {mymodule, myfunction} для приема
источник

AK

Aleksey Kluchnikov in ErlangRus
А есть для того же самого gen_esme, который на бехавеорах и который адский. Кто с смсками работал тот в курсе
источник

DF

Denis Fakhrtdinov in ErlangRus
Просто есть нормальные behaviour, а есть не нормальные.
источник

DF

Denis Fakhrtdinov in ErlangRus
Сам инструмент тут не при делах.
источник

AK

Aleksey Kluchnikov in ErlangRus
И не к месту примененные еще есть
источник

AK

Aleksey Kluchnikov in ErlangRus
Если чтото используется интенсивно из проекта в проект и с помошью бихевора можно сократить количество писанины,  вот тогда оправдано. Как тот же gen_server
источник

EK

Evgeny Khramtsov in ErlangRus
gen_server моветон же уже
источник

EK

Evgeny Khramtsov in ErlangRus
gen_statem - наше всё, бойлерплейта меньше же
источник

EK

Evgeny Khramtsov in ErlangRus
плюс нормальные таймауты, плюс нормальная посылка сообщения с переходом в новый state
источник

EK

Evgeny Khramtsov in ErlangRus
а вообще да, размазывание кодера с бизнес-логикой - частая проблема
источник

ML

Maksim Lapshin in ErlangRus
Evgeny Khramtsov
gen_statem - наше всё, бойлерплейта меньше же
Меня все таки продолжает смущать, когда бизнес логика может слать сообщения.

У нас в основном код живет в виде f(Input, State) -> {Output, State}
источник

ML

Maksim Lapshin in ErlangRus
а тот кто пользуется, тот и шлет сообщения куда хочет
источник

EK

Evgeny Khramtsov in ErlangRus
ну да, я имел в виду в себя послать без гонки
источник

EK

Evgeny Khramtsov in ErlangRus
ну это узкий кейс
источник

AK

Aleksey Kluchnikov in ErlangRus
Evgeny Khramtsov
gen_statem - наше всё, бойлерплейта меньше же
относительно простой gen_server + бойлерплейт или сильно более сложный gen_statem? Вопрос дискуссионный
источник

AK

Aleksey Kluchnikov in ErlangRus
другое дело упоротся во что то новое..
источник

SP

Sergey Prokhorov in ErlangRus
В epgsql behaviours хорошо зашли. Есть behaviour для бинарного кодирования типов данных. Есть для кастомных команд (этот сложнее).
источник

TT

Taras 🦀 Taraskin in ErlangRus
Evgeny Khramtsov
gen_statem - наше всё, бойлерплейта меньше же
если у вас в закладках есть какие годные статьи-гайды с примерами gen_statem — прошу вас поделиться )
источник