Основы объектно-ориентированного программирования | страница 6
[x]. Стандартные структуры данных, как в системе Lisp, где все данные, а также программы, представлены бинарными деревьями (называемыми списками).
[x]. Стандартные пользовательские интерфейсы, как в различных версиях Windows, OS/2 и MacOS, где все инструменты опираются на единую парадигму для коммуникации с пользователем, основанную на стандартных компонентах, таких как окна, значки, меню и т. д.
Большая общность достигается при определении стандартных протоколов доступа ко всем важным элементам, управляемым программами. Такова идея, лежащая в основе абстрактных типов данных и ОО-подхода, а также так называемого связующего программного обеспечения (middleware), например CORBA и Microsoft's OLE-COM (ActiveX).
Эффективность (Efficiency)
Определение: эффективность
Эффективность - это способность ПО как можно меньше зависеть от ресурсов оборудования: процессорного времени, пространства, занимаемого во внутренней и внешней памяти, пропускной способности, используемой в устройствах связи.
Почти синонимом эффективности является слово "производительность" (performance). В программистском сообществе есть два типичных отношения к эффективности:
[x]. Некоторые разработчики одержимы проблемами производительности, что заставляет их прилагать много усилий к предполагаемой оптимизации.
[x]. Существует общая тенденция недооценки вопросов эффективности, вытекающая из справедливых убеждений, существующих в промышленности:"сделай правильно, прежде чем сделать быстро" и "модель компьютера будущего года все равно будет на 50% быстрее".
Часто один и тот же человек в разное время высказывает разные типы отношения и является то доктором Abstract, то мистером Microsecond - происходит раздвоение личности, как в известной истории про доктора Джекила и мистера Хайда.
Где же истина? Разработчики часто явно излишне заботятся о микрооптимизации. Как уже отмечалось, эффективность не дорого стоит, если ПО некорректно. Можно привести новое изречение: "не беспокойтесь о быстродействии ПО, если оно к тому же и неверно". Забота об эффективности должна сопоставляться с другими целями, такими как расширяемость и возможность повторного использования. Оптимизация может сделать ПО настолько специализированным, что оно не будет годно для повторного использования и в случаях изменения спецификации. Более того, постоянно растущая мощь компьютерного оборудования позволяет нам слегка расслабиться и не стараться использовать последний байт или микросекунду.