Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!Шпора по ООПиП (3).docx
Скачиваний:
36
Добавлен:
22.09.2019
Размер:
2.31 Mб
Скачать

57. Анти-шаблоны управления разработкой программ

Анти-паттерны в управлении разработкой ПО

  1. Дым и зеркала (Smoke and mirrors): Демонстрация того, как будут выглядеть ненаписанные функции (название происходит от двух излюбленных способов, которыми фокусники скрывают свои секреты)

  2. Раздувание по (Software bloat): Разрешение последующим версиям системы требовать всё больше и больше ресурсов

Раздува́ние програ́ммного обеспе́чения (англ. software bloat, bloatware) — тенденция новых программ быть больше по объёму и требовать больше системных ресурсов по сравнению со старыми.

Сравнение минимальных конфигураций компьютера для разных версий Microsoft Windows (по данным Microsoft):

Версия ОС

Частота процессора

Оперативная память

Место на диске

Windows 95[2]

25 МГц

8 Мб

~50 Мб

Windows 98[3]

66 МГц

24 Мб

140—255 Мб

Windows ME[4]

150 МГц

32 Мб

320 Мб

Windows 2000 Server[5]

133 МГц

64 Мб

1 Гб

Windows XP (2001) [6]

300 МГц

128 Мб

1,5 Гб

Windows Vista (2007) [7]

800 МГц

512 Мб

15 Гб

Windows 7 (2009) [8]

1 ГГц

1 Гб

16 Гб

Отношение к раздуванию ПО

Пользователи, как правило, относятся к раздутому ПО отрицательно. По мнению Джоэла Спольски, зря[9] по следующим причинам:

  • С прогрессом микроэлектроники аппаратное обеспечение, на котором новая версия способна работать, часто оказывается даже дешевле. Например, Excel 1.0 потреблял 36 долл. дискового пространства по ценам 1993 года, Excel 2000 — 1,03 долл. по ценам 2000 года.

  • Оптимизация экономически оправдана только в ключевых точках программы. Вовремя вышедшая программа важнее хорошо оптимизированной (в крайнем случае можно выпустить патч).

  • Хотя типичный пользователь использует 20 % функций, у разных пользователей эти 20 % разные. Поэтому, если написать облегчённую программу, в которой реализованы только 20 % функций, есть риск, что она нужна будет только разработчику и больше никому.

Кроме того, как заметил Реймонд Чен, пользователь часто не замечает усовершенствованные «внутренности» ПО. Например, калькулятор Windows часто ругали за потерю точности. В какой-то момент стандартную библиотеку работы с числами с плавающей запятой в формате IEEE заменили на библиотеку с поддержкой чисел произвольной точности, но это мало кто заметил.[10]

Альтернативы раздутому ПО

  • Модульный принцип — к основной программе подключается дополнительная функциональность в виде плагинов. Это позволит исключить из основной поставки редкоиспользуемую функциональность.

  • Написание ПО по хорошо проработанному техническому заданию, без «функций для галочки».

  • Открытое ПО может скрывать редкоиспользуемые функции с помощью директив препроцессора (см.: Условная компиляция). Правда, для этого придётся перекомпилировать приложение.

  • Даунгрейд — использование старых версий ПО, которые требуют меньше ресурсов, не перегружены спецэффектами и ненужным большинству пользователей функционалом.

  1. Функции для галочки: Превращение программы в конгломерат плохо реализованных и не связанных между собой функций (как правило, для того, чтобы заявить в рекламе, что функция есть)