[Moscow.pm] AnyEvent::Pg
Alexandr Gomoliako
zzz на zzz.org.ua
Вт Май 1 13:26:42 PDT 2012
> как откуда? если возврат значения - всегда вызов каллбека, то пропуск
> вызова каллбека приводит к тому что кто-то ждет результата и никогда
> не дождется.
>
> и эти вещи в большом проекте КРАЙНЕ сложно отлаживаются. даже с
> хорошим набором тестов бывает сложновато уследить за этой проблемой.
Это как раз одно из преимуществ CPS перед.. ничем :)
Ошибка зависит от входных данных функции. Если писать в лог в какую
функцию зашли, то можно даже без тестов, всегда будет видно где
застряли.
> в CPS тебе ошибки тоже надо как-то обрабатывать. по мере возрастания
> сложности захочется два каллбка: результатов и ошибок. и начнется та
> же фигня "где-то так, где-то сяк"
Как бы не делали, но это всегда функция, которая возвращает результат
в следующую, иначе это уже не CPS.
> ведь ошибку не выявишь в первоначальной функции. ошибки как правило
> выясняются в каком-то глубоком месте.
Глубокое место в CPS -- тоже функция
http://en.wikipedia.org/wiki/Continuation-passing_style
Подробная информация о списке рассылки Moscow-pm