[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