Главная » Delphi » Совет 4 — о функциональности

0

Программа не должна делать ничего лишнего. Типичный пример — запуск второго экземпляра программы. Пели это специально не предусмотрено (подобно тому, как Internet Explorer можно запустить в любом количестве экземпляров и это отвечает его назначению), то программа обязана, по крайней мере, информировать пользователя о том, что он запускает второй экземпляр.

Программа не должна уметь ничего лишнего. Часто встречающейся концептуальной ошибкой, которой подвержены даже самые крупные и известные софтверные фирмы, является неудержимое стремление как можно больше расширить функциональность продукта. Это далеко не всегда означает, что разработчики так уж глупы — просто в этой среде принято выпускать каждый год по новой версии продукта в целях поддержания конкурентоспособности. И в ситуации, когда некая программа и так уже отлично делает все, что нужно и даже сверх того, разработчики просто вынуждены в чисто маркетинговых целях увеличивать ее функциональность— очень часто вместо того, чтобы просто поправить ошибки и довести программу до ума. Типичный пример-— Word for Windows, который уже в 6-й версии (еще под Windows Зл), и даже в почт и забытой ныне 2-й. содержал практически всю нужную самому продвинутому пользователю функциональность. Когда же его пытаются декларировать, например, как средство создания HTML- страничек, ничего, кроме улыбок, это вызвать не может — это совсем другой продукт и предназначен он для иных целей. Единственным разумным способом как-то объединить под одной крышей разные функции является не нагромождение функций в новой версии "все в одном", а модульный принцип построения, например, использование плагинов— кому надо, тот и установит. Но на самом деле и это не всегда требуется — вполне нормально, если каждая программа будет работать в своей области, но зато делать это на пять баллов. Ну не получается в прокрустовых рамках Windows делать универсальные программы в стиле Раскина! Я не знаю примеров программ, которые осуществляли бы разные действия лучше, чем отдельные программы, "выглаженные" каждая для одного своего действия.

Заметки на полях

Здесь можно привести аналогию с производителями принтеров, сканеров и факсов — почти 10 лет они не могли понять, почему это пользователи настолько глупы, что не желают понимать своей выгоды и приобретать устройства "все в одном" (многофункциональные устройства, МФУ) в полтора-два раза дешевле, чем по сумме каждого из агрегатов в отдельности. Количество проданных МФУ в России в 2004 году составило всего чуть больше 10% от количестве принтеров, но тенденции этого рынка очень показательны: он вырос зв год на 140% (а продажи принтеров— всего на 12%). Что же произошло? Очень просто: в течение всего периоде с момента выхода первого МФУ, каждая из его функций самв по себе былв звведомо хуже по качеству, чем отдельные устройства. И только теперь, когда все функции делаются на основе лучших отдельных продуктов той же фирмы, пользователи начинают соглашаться — да, так выгоднее и удобнее. Применяя эти соображения к нашим программам, можно выразиться так: пока Word в роли HTML-редвктора будет хоть в чем-то хуже, чем DreamWeawer, эта функция в нем никому не нужна. Так что если вы решили написать текстовый редактор для создвния программ на ассемблере, совершенно необязательно звставлять его проигрывать МРЗ-файлы — WinAmp с этим справится однозначно лучше.

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

По теме:

  • Комментарии