On Mon, Mar 24, 2008 at 09:34:48PM +0200, Igor Vlasenko wrote: > > Я для этого в свое время в пакете qa-robot сделал cmdcache(1). > > Но никакой инвалидации кеша там нет, так что это можно использовать > > только для очень стабильно работающих команд -- например, для file(1) > > в сочетании c nm(1). > > Кстати, куски qa-robot и в состав федоры входят, в пакете > rpmdevtools. Меня как раз qa-robot и вдохновил. Хотелось > чего-то этакого, но чтобы легче добавлять тесты. Сие практически отрадно, но не очень. На самом деле topic это коллекторы vs мемоизация. Я считаю, что мемоизация для базовых/стабильных/низкоуровневых данных подходит лучше, чем коллекторы. Коллекторы -- это избыточная бизнес-логика, а мемоизация может быть полностью прозрачной. Я в свое время тоже написал пригорошню перловых модлуей для этого дела, но они так нигде и не были опубликованы, поелику я счел, что на шелле и так получается достаточно дёшево и сердино. Далее приложено несколько файлов где-то конца 2005--начала 2006 года: qa::cache - суперэффективный кеш на основе BerkeleyDB и Compress::LZO; qa::memoize -- мемоизация обработки файлов; qa::rpmsoname -- то что делает rpmsoname(1). В принципе есть ещё всякий код та эту тему, но скорее недоделанный. Мое мнение простое -- мемоизация, когда она возможна, лучше специальной бизнес-логики. Всё где-то хранится, и какая разница, где хранить. А если взгяд на вещи упрощается, то разница такая, что мне проще об этом думать. А это может стоить не меньше двадцати долларов!!