Повторное использование кода
Материал из Википедии — свободной энциклопедии
Повторное использование кода (англ. code reuse) — методология проектирования компьютерных и других систем, заключающаяся в том, что система (компьютерная программа, программный модуль) частично либо полностью должна составляться из частей, написанных ранее компонентов и/или частей другой системы. Повторное использование — основная методология, которая применяется для сокращения трудозатрат при разработке сложных систем.
Самый распространённый случай повторного использования кода — библиотеки программ. Библиотеки предоставляют общую достаточно универсальную функциональность, покрывающую избранную предметную область. Примеры: библиотека функций для работы с комплексными числами, библиотека функций для работы с 3D-графикой, библиотека для использования протокола TCP/IP, библиотека для работы с базами данных. Разработчики новой программы могут использовать существующие библиотеки для решения своих задач и не «изобрететать велосипеды».
Содержание |
[править] Модульность систем
Программисты стремятся так проектировать свои системы, чтобы они были максимально модульны. В качестве абстраций, на основе которых можно построить модульность системы могут выступать функции, сопрограмма, класс, протокол. Библиотека функций хороший пример абстракции, удобной для реализации модульности программ и следования методологии повторного использования. Важным шагом на пути достижения максимальной модульности стал принцип иерархичного построения пространства имён.
Примером удачной реализации модульности и принципа повторного использования могут служить инструменты командной оболочки Unix-систем и стандартные классы Java, помещенные в иерархию пространства имён.
Шаблоны (см. стандартная библиотека шаблонов STL в языке Си++) функций и классов стали важным этапом продвижения методологии повторного использования в индустрию объектно-ориентированного программирования.
Иерархическая модульность системы позволяет реализовать эффективные методы управления разработкой, основанные на построении иерархий управления соответствующей иерархии модулей самой системы.
[править] Повторное использование в малом
Иногда повторное использование кода представляет собой простое копирование некоторой части кода из существующей программы в другую (англ. copy-paste). Это один из самых низкоуровневых подходов к повторному использованию. Но и он имеет место быть, особенно когда речь идет о повторном использовании кода «в малом» («reuse в малом»).
[править] Повторное использование кода и метасистемный переход в программировании
Метод повторногого использования кода является важным компонентом реализации принципа метасистемного перехода в развитии индустрии программного обеспечения. Воплощение этого принципа в жизнь позволяет разработчикам оперировать высокоуровневыми понятиями (отобразить картинку, удалить таблицу из базы данных, найти все корни уравнения, сконвертировать файл и т. д.), а не низкоуровневыми (покрасить пиксел в красный цвет, обнулить регистр, сложить два числа, прочитать символ из файла и т. д.).
[править] Достоинства и недостатки метода повторного использования
Рассмотрим достоинства и недостатки на примере библиотек функций.
Использование готовых библиотек имеет ряд преимуществ. Во-первых, разработчик новой системы снимает с себя заботу о реализации функциональности, заложенной в этой билиотеке. Весь цикл разработки библиотеки осуществляется разработчиком данной блиблиотеки. Он обычно берёт на себя ответственнось за поддержку библиотеки: устранение ошибок, развитие и улучшение работы, тестированние. Метод повторного использования кода является тем механизмом, который позволяет разработчикам «встать на плечи гигантов» и строить новые очень сложные системы.
Кроме немногочисленных, но очень важных достоинств метод повторного использования кода имеет ряд недостаков. Подключение к проекту сторонних библиотек автоматически приводит к необходимости контроля совместимости версий компонент создаваемой системы и версий используемых библиотек. Важно также отметить, что многие библиотеки коммерческие и требуют денежных затрат. Кроме того, часто библиотеки недостаточно универсальны и не реализуют той функциональности, которая требуется создаваемой системе, либо, наоборот, слишком универсальны и в результате неэффективны и непригодны для использования. Можно, если позволяет лицензия распространняемой библиотеки, использовать её исходные коды и модифицировать их в соответствии с необходимостью. Но после этого ответственность за поддержку функциональности библиотеки перекладывается на плечи разработчика новой системы.
[править] Смотри также
- Процедурное программирование.
- Объектно-ориентированное программирование.
- Обощённое программирование.
- Метапрограммирование.
- Библиотека.
- Шаблоны проектирования.
[править] Ссылки
- OnceAndOnlyOnce — «один и только один раз», принип повторного использования, доведённый до крайности.
- Orthogonality and the DRY Principle — формулировка принципа повторного в контексте принципа ортогональности в проектировании из книги Энди Ханта и Дэйва Томаса «The Pragmatic Programmer».