Size: a a a

2019 November 18

СИ

Сергей Иванов in ErlangRus
Dmitry Russ (Aleksandrov)
Это тех. директор включился в наш репозиторий, не такой он и новый, дольше меня в комманде.
Предложи свой вариант, но делай как решит директор. А как лучше на месте виднее же. Думаешь все переписывали stepbystep на дебагер и обратно
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Сергей Иванов
Предложи свой вариант, но делай как решит директор. А как лучше на месте виднее же. Думаешь все переписывали stepbystep на дебагер и обратно
Мой вариант в мастере уже и я им пользуюсь уже несколько недель для вылавливания сложных багов.
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Приходит тех. директор и делает revert и pull request, который пока из-за своей неполноты отнимает инструменты для дебагга и показывает новый дизайн дебагга. И у меня смешанные чувства:
1) круто иметь эту функциональность где-то отдельно, действительно упрощает код
2) но возможности в деталях совершенно не те же самые
источник

TH

Taras Halturin in ErlangRus
Dmitry Russ (Aleksandrov)
Привет! Вопрос по архитектуре и дизайну.

Есть long running worker, который выполняет сложную логику, который очень сложно было дебаггить.

Теперь, я в своё время добавил то, что он собирает статистику и сделал его дизайн полностью step-by-step, что он мог останавливаться (по запросу), что его можно было интроспектировать и говорить, работай дальше, при том основную часть запросов я там научил складывать в queue и не держать в message queue.

Пришёл другой разработчик и хочет возможность процесса работать step-by-step убрать и добавить debugger модуль, а основной процесс умеет только делать - attach_debugger, detach_debugger и добавляет в одном месте возможность обратиться к дебаггеру и блокируется и уже другой процесс отвечает за то, продолжить или остановиться и что делать с процессом.

Мне казалось правильнее, если процесс сам умеет обрабатывать вещи частями, а другой разработчик считает, что это должно быть не в buisness логике, а вообще отдельно и вот таким образом приделывает.

Что считаете? Как по Вашему опыту лучше? Заранее благодарю за любое мнение.
Его понять можно. Он мыслит категориями разделения ответственности. На мой взгляд его позиция правильнее. Это если я правильно понял постановку вопроса. Возможно ваше решение красивое само по себе, но тут не о красоте, а о водоразделе, как мне кажется.
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Дело в том, что debugger и step-by-step - не одно и тоже.
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Мой step-by-step можно дальше переделать в траверсинг по времени, вперёд назад.
источник

TH

Taras Halturin in ErlangRus
Это у вас какой-то девелопеский стенд или продуктив?
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Т.е. step-by-step - в данном случае архитектурный паттерн, который можно по-разному использовать, а его debugger - это просто дебаггер.
источник

DF

Denis Fakhrtdinov in ErlangRus
Мейлбокс процесса не годидзе для хранения там сообщений "на потом" для отложенной обработки.
источник

DF

Denis Fakhrtdinov in ErlangRus
Пришло — обработал сразу.
источник

V

Vasilii Demidenok in ErlangRus
а что делает предложенный дебаггер?
источник

СИ

Сергей Иванов in ErlangRus
Dmitry Russ (Aleksandrov)
Мой step-by-step можно дальше переделать в траверсинг по времени, вперёд назад.
Товарищ, мне кажется кроме дружеской поддержки вопрос не решить тут) При любом раскладе главное не кипятиться
источник

TH

Taras Halturin in ErlangRus
Dmitry Russ (Aleksandrov)
Т.е. step-by-step - в данном случае архитектурный паттерн, который можно по-разному использовать, а его debugger - это просто дебаггер.
Вопрос не про неправильность паттерна. Хочется понять целевую задачу, а не какие кульбиты умеет тот или иной подход)
источник

V

Vasilii Demidenok in ErlangRus
sys:get_state вам для дебага не хватает вкупе с трассировкой?
источник

СИ

Сергей Иванов in ErlangRus
Denis Fakhrtdinov
Пришло — обработал сразу.
Сложить его в queue это не обработать, а спрятать от мониторинга
источник

DF

Denis Fakhrtdinov in ErlangRus
Что тебе мешает мониторить длину queue?
источник

V

Vasilii Demidenok in ErlangRus
сложить в queue это значит оставить респонсивнес процесса и самому контролировать когда начать дропать данные, что прилетают на вход если не успеваешь обработать
источник

СИ

Сергей Иванов in ErlangRus
Vasilii Demidenok
сложить в queue это значит оставить респонсивнес процесса и самому контролировать когда начать дропать данные, что прилетают на вход если не успеваешь обработать
Когда не успеваешь обработать надо рефакторить код а не дропать данные
источник

DR

Dmitry Russ (Aleksandrov) in ErlangRus
Vasilii Demidenok
sys:get_state вам для дебага не хватает вкупе с трассировкой?
Там такое количество данных и такая сложная логика, что не хватает.
источник

V

Vasilii Demidenok in ErlangRus
Сергей Иванов
Когда не успеваешь обработать надо рефакторить код а не дропать данные
зависит от задачи сильно, а с подходом не вычитывания очереди из генсервера ты как все системные сообщения обрабатывать собираешься?
источник