Про эрланг vs XXX: интроспекция для отладки

Feb 13, 2014 12:53

Каждый раз, когда я вижу увлеченные рассказы о технологии N для разработки долгоживущих серверных программ, много работающих с сетью, у меня сразу возникает вопрос: какие механизмы отладки предлагает эта технология ( Read more... )

fp, erlyvideo, erlang

Leave a comment

Comments 21

_slw February 13 2014, 09:31:00 UTC
а разве для того, что бы попробовать dtrace не надо совсем перейти на темную сторону (т.е. на фрю/солярку)?
насколько в линухе штатно dtrace работоспособен?

ну и это, ты не рассказал про алгоритмические проблемы.

Reply

levgem February 13 2014, 09:32:13 UTC
в линуксе есть systemtap, но я даже на макоси dtrace не использовал.

Как я могу рассказывать про алгоритмические проблемы? Они же у всех разные.

Reply

_slw February 13 2014, 09:35:24 UTC
systemtap это, кажется несколько не то, что dtrace. но могу ошибаться, в отличии от dtrace systemtap я не использовал.

а вот способы лечения у всех одинаковые, для обычных сишечек, к примеру -- отладочная печать, брякпоинт, условный брякпоинт, анализ корки.

Reply

levgem February 13 2014, 09:36:23 UTC
Здесь всё то же самое: логгирование (причем с тегами), фиксирование условий паттерн-матчингом и анализ дампов ошибок (те же корки)

Reply


ext_1527665 February 13 2014, 10:29:07 UTC
кстати экономить время на танцах с erlang:processes() позволяет http://ferd.github.io/recon/

Макс, а ты часто пользуешься erlang:trace? Никогда не упирался в то, что нельзя разным процессам задать разные trace_pattern?

Reply

levgem February 13 2014, 11:09:32 UTC
Я не пользуюсь trace, как-то не приучился, хотя штука может быть неплохая.

Reply


ext_513967 February 13 2014, 10:43:01 UTC
Вы все правильно пишите. Но есть одна проблема.

Если у вас RESTful сервис, все состояние которого лежит в базе, и этот сервис должен делать 1. много реально тяжелых вычислений 2. по убиться об стену сложной логике, то через какое-то время возникает сильное и совершенно естественное желание обменять remsh, dbg и горячее обновление кода на скорость и строгую статическую типизацию например.

Не все пишут erlyvideo. Задач много, специфика везде своя.

Reply

levgem February 13 2014, 11:00:00 UTC
Твои слова не более чем очевидное пересказывание очевидных вещей: бла-бла, разные задачи, разные инструменты. Никакой интересной конкретики и вообще никакого собственного опыта. Причем я сразу в самом начале написал про какой класс задач говорю и видеостриминг - это лишь малая часть таких задач.

Ты написал про Cloud Haskell, причем в таком ключе, что «всё, выбрасываем всё остальное». Такие слова очень характерны для гей- хаскель-пропаганды, только вот пишущих про хаскель гораздо больше, чем пишущих на хаскеле =) Веб-запросы сервить - это понятно, там другие проблемы возникают, но уж никак не необходимость отлаживаться без остановки ( ... )

Reply

ext_513967 February 13 2014, 11:59:50 UTC
>> Ты написал про Cloud Haskell, причем в таком ключе, что «всё, выбрасываем всё остальное»

Ну все как обычно. TL;DR, всю серию из пяти частей не читал, но осуждаю.

О том, кто и куда вам не смог добавить клиента я ничего не знаю. Но подозреваю, что в любой серьезной системе при возникновении проблемы а) в случае с блокером ее тут же откатывают к стабильной версии б) в случае с не блокером ее чинят в следующем билде. Независимо от того, на Erlang вы пишите или не на Erlang. Разрабатывают на живом, без полного цикла тестирования и тп только наркоманы.

Reply

shur_ik February 14 2014, 03:16:32 UTC
Или бизнесмены.

На самом деле, если Вам из Вашей башни слоновой кости не видно -- весь (это не преувеличение, а факт) бизнес живёт решениями "на живую нитку, а тут щас подпороть и обметать".

Reply


kpoxman February 13 2014, 11:31:03 UTC
sendtimeout +1.

Я такой баг в ejabberd нашел и зарепортил. Фикс приняли.

Reply


ext_1324728 February 13 2014, 20:27:02 UTC
redbug - dbg с человеческим лицом.

Reply


Leave a comment

Up