Сегодня у нас очередные посиделки на тему «как не надо делать программы». И нашего гостя мы, вопреки обыкновению, представляем сразу: Barricade 0.6 rc2 (найти на SoftSearch, скачать у автора).
В обычной ситуации я бы с песнями прошел мимо этой программы — ну, еще один перпетуум мобиле (Баррикада заявлена, ни много ни мало, как «антивирусный монитор нового поколения, который не требует постоянного обновления антивирусных баз»; правда на сайте автор формулирует решаемые программой задачи уже по-другому), хорошо, хоть денег за него не просят. Но Баррикада оказалась написана на .NET — и пройти мимо я не смог. Дело в том, что я на полном серьезе считаю .NET будущим софтостроения, на платформе Windows она, безусловно, станет стандартом, на других платформах — будем посмотреть, как звезды встанут (и если вы думаете, что это я в шутку — бросьте уже этих шуток), но на текущий момент .NET живет в корпоративных заказах и на вебе (ситуации «программист пишет программерский инструмент для других программистов» мы не считаем), а вот .NET-продукты для конечных пользователей (sorry, но перевести по-другому end-user у меня не хватает фантазии) в дикой природе встречаются так же редко, как честные крадоначальники*.
Сама идея, сподвигнувшая автора Баррикады на труд, к жизнеспособным не относится. В чем замысел? Замысел в том, что пользователь самостоятельно (вот тут-то и порылась целая свора собак) определяет «опасные места» своей системы — фолдеры, файлы, ветки и ключи реестра — а Баррикада «слушает» их и рапортует при каждом распознанном ею изменении. А в чем порок замысла? Пороков не один, а целых два. Первый: нормальный пользователь понятия не имеет, что именно нужно поручить Баррикаде для мониторинга. Вирусы, к примеру, очень любят записывать себя в %System32%, но ведь и нормальные, доверенные программы тоже любят хранить там всякое. Дергаться на каждое изменение? Можно бы, но для этого нужно хотя бы знать, какой процесс явился автором изменений — а Баррикада таких сведений дать не может. Наконец, ни один пользователь в здравом уме и не будет заниматься низкоуровневой настройкой: зачем, когда любимый антивирус делает все на полном автомате?
Интерфейс Баррикады выполнен в стиле "подделка под индустриальный минимализм". Почему подделка? Потому, что "индустриальный" таки предполагает ту самую "индустрию".
Второй порок заключается в том, что Баррикада, вопреки названию, не ставит вредоносному софту никаких препон. Она честно рапортует: по таким-то координатам твоей системы контрольная сумма отличается от той, которая была замерена пять минут назад. Вопрос: а чем мне это поможет? За то время, пока я читаю мессагу, червь успеет прописаться в реестре, запустить тысячу своих копий и заразить тысячу соседних машин. Налицо обе классические ошибки: программа требует от пользователя слишком много, а дает ему слишком мало.
Но это, граждане, если пользоваться программой по назначению. На самом же деле автор (по-видимому, сам о том не подозревая) изготовил превосходный инструмент оповещения о возникших задачах. Вот вам вполне типичная ситуация: небольшая рабочая группа, никаких средств групповой работы, весь обмен информацией идет через банальный, sorry за тавтологию, файлообмен по локалке. Пользователь А пишет документ, кладет его в расшаренный фолдер, и посылает пользователю Б (три этажа вниз) мысленный сигнал. Пользователь Б открывает документ, вносит коррективы, нажимает CTRL+S и посылает мысленный сигнал обратно (три этажа наверх). Сколько времени уходит на передачу мыслей сквозь железобетонные перекрытия?
А если установить у себя Баррикаду и натравить ее на те самые общие фолдеры — любой входящий и/или забираемый документ будет порождать сигнал, который вы не сможете не заметить. Удобно? Еще бы.
Автору Баррикады осталась самая малость — научить ее издавать звуки, отличать залоченные файлы от свободных (чтобы будильнику не подрываться всякий раз, когда коллега по этажу сохраняет на диск промежуточную версию вордовского документа), ну и привести интерфейс к человеческому виду. После чего можно будет смело менять название программы на «FileWatcher» или «DocPatrol».
Общий вывод: простой и надежный файловый будильник, который зачем-то изображает из себя средство сетевой защиты.
* Термин «крадоначальник» был придуман человеком по имени Patologoanatom. Термин изумительный, да, но я стараюсь не нарушать копирайтов. ;-)