Решил тут пару месяцев назад попробовать сделать один рабочий проект на эрланге. С одной стороны, вроде как предметная область уж очень ровно ложилась под OTP (по моим представлениям), с другой -- вроде как вокруг сплошные success story, поэтому интересно было поближе посмотреть на сабж. Вроде как всё получилось, и получилось неплохо, поэтому имеет
(
Read more... )
Comments 31
и большое количество специфичных вещей, которые надо знать,
когда на нем пишешь. Утилиты, бихейверы, это всё.
OTP скорее угнетает и мешает, чем помогает. На х-ле удавалось
писать практически пуленепробиваемые серверы - т.е внутренний процесс,
который чуть что помирает с исключениями, и внешний процесс, который
их ловит и перезапускает внутренний, что-то ничего больше мне обычно от
супервизоров и не надо.
В общем, как-то я не проникся тоже. Хоть и приходится на нем
проект сейчас развивать.
А, ну да. Эрланговый "FFI" по отвратительности стоит на уровне перлового. Хуже не бывает, наверное.
Reply
Про супервайзеры: мне лично пригодилось дерево супервайзеров и restarts rate. Просто в самодельном вотчдоге этот момент тоже надо отслеживать, а то, бывает, при какой-нибудь логической ошибке в распарсивании какого-нибудь бинарного пакета можно бесконечно падать начать при большой нагрузке.
А FFI я даже не пытался осваивать -- все ресурсоёмкие задачи я передаю через zmq наружу эрланга, где считаю их чем-нибудь более приспособленным для этого.
Reply
Reply
Reply
Очень доволен.
Reply
Reply
> Отвалившийся процесс в эрланге - это так же как и эксепшн ( ... )
Reply
> А вот насчёт "динамически влиять на программу" хотелось бы пояснений. Чего конкретно не хватает?Ну смотри, допустим, есть некий сервис: ему сыпятся запросы, он на каждый даёт какой-то ответ. Допустим, появилось подозрение, что для какого-то типа запросов у нас какая-то проблема в логике обработки ( ... )
Reply
Ну, я лично не пробовал, но если сервис написан как положено (т.е., через gen_server или что-то вроде этого), то я бы написал маленькую обвязку около него, после чего сделал бы sys:change_code. А в обвязке уже отследил бы нужный запрос.
> Не, безусловно, всё это как-то можно сэмулировать через reload кода и отладочные printf-ы, но это уже без поддержки IDE, неудобно и кривовато.
По-моему, честно говоря, IDE is a code smell. Даже на жабе я писал почти что в блокноте, и прекрасно себя чуйствовал.
Reply
Reply
А можно озвучить этот ряд?
Reply
Reply
Reply
Reply
когда же все так изменилось?
Reply
да никогда так нельзя было =) помнится, я в десятом классе MFC осваивал методом тыка, потому что тупо не понимал микрософтовский код (и сейчас не пойму, скорее всего)
Reply
Leave a comment