Повторное использование кода

Повторное использование кода

Повторное использование кода (англ. code reuse) — методология проектирования компьютерных и других систем, заключающаяся в том, что система (компьютерная программа, программный модуль) частично либо полностью должна составляться из частей, написанных ранее компонентов и/или частей другой системы. Повторное использование — основная методология, которая применяется для сокращения трудозатрат при разработке сложных систем.

Самый распространённый случай повторного использования кода — библиотеки программ. Библиотеки предоставляют общую достаточно универсальную функциональность, покрывающую избранную предметную область. Примеры: библиотека функций для работы с комплексными числами, библиотека функций для работы с 3D-графикой, библиотека для использования протокола TCP/IP, библиотека для работы с базами данных. Разработчики новой программы могут использовать существующие библиотеки для решения своих задач и не «изобретать велосипеды».

Содержание

Модульность систем

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

Примером удачной реализации модульности и принципа повторного использования могут служить инструменты командной оболочки Unix-систем и стандартные классы Java, помещенные в иерархию пространства имён.

Шаблоны (см. стандартная библиотека шаблонов STL в языке Си++) функций и классов стали важным этапом продвижения методологии повторного использования в индустрию объектно-ориентированного программирования.

Иерархическая модульность системы позволяет реализовать эффективные методы управления разработкой, основанные на построении иерархий управления соответствующей иерархии модулей самой системы.

Повторное использование в малом

Иногда повторное использование кода представляет собой простое копирование некоторой части кода из существующей программы в другую (англ. copy-paste). Это один из самых низкоуровневых подходов к повторному использованию. Но и он имеет место, особенно когда речь идет о повторном использовании кода «в малом» («reuse в малом»).

Подобный подход обычно не рекомендуется к использованию, вместо этого повторяющийся фрагмент программы оформляется в виде подпрограммы или макроса с набором параметров. Основным аргументом в пользу использования подпрограмм вместо копирования кода является то, что в случае наличия ошибки она должна быть исправлена однократно в теле подпрограммы, в противном же случае исправлению необходимо подвергнуть в общем случае несколько идентичных фрагментов кода, расположенных в разных местах программы. Кроме того, при копировании кода обычно возникает необходимость в изменении имен переменных, что также часто приводит к механическим ошибкам. В случае использования подпрограмм подобных переименований можно избежать путем использования локальных переменных.

Повторное использование кода и метасистемный переход в программировании

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

Достоинства и недостатки метода повторного использования

Рассмотрим достоинства и недостатки на примере библиотек функций.

Использование готовых библиотек имеет ряд преимуществ. Во-первых, разработчик новой системы снимает с себя заботу о реализации функциональности, заложенной в этой библиотеке. Весь цикл разработки библиотеки осуществляется разработчиком данной библиотеки. Он обычно берёт на себя ответственность за поддержку библиотеки: устранение ошибок, развитие и улучшение работы, тестирование. Метод повторного использования кода является тем механизмом, который позволяет разработчикам «встать на плечи гигантов»[1] и быстро строить новые сложные системы из уже отлаженных компонентов.

Кроме немногочисленных, но очень важных достоинств метод повторного использования кода имеет ряд недостатков. Подключение к проекту сторонних библиотек автоматически приводит к необходимости контроля совместимости версий компонент создаваемой системы и версий используемых библиотек. Самым характерным примером такой ошибки считается Авария ракеты-носителя Ариан 5 (4 июня 1996), вызванная использованием программного модуля, разработанного для ракеты Ариан-4. Важно также отметить, что многие библиотеки коммерческие и требуют денежных затрат (с развитием движения свободного ПО это постепенно теряет актуальность). Кроме того, часто библиотеки недостаточно универсальны и не реализуют той функциональности, которая требуется создаваемой системе, либо, наоборот, слишком универсальны и в результате неэффективны, неудобны или содержат много избыточной (для данного проекта) функциональности. Можно, если позволяет лицензия распространяемой библиотеки, использовать её исходные коды и модифицировать их в соответствии с необходимостью. Но после этого ответственность за поддержку функциональности библиотеки перекладывается на плечи разработчика новой системы.

Примечания

См. также

Ссылки

  • OnceAndOnlyOnce — «один и только один раз», принцип повторного использования, доведённый до крайности.
  • Orthogonality and the DRY Principle — формулировка принципа повторного в контексте принципа ортогональности в проектировании из книги Энди Ханта и Дэйва Томаса «The Pragmatic Programmer».

Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Повторное использование кода" в других словарях:

  • Повторное использование — кода (англ. code reuse) методология проектирования компьютерных и других систем, заключающаяся в том, что система (компьютерная программа, программный модуль) частично либо полностью должна составляться из частей, написанных ранее компонентов… …   Википедия

  • PHP — У этого термина существуют и другие значения, см. PHP (значения). PHP Семантика: мультипарадигменный …   Википедия

  • Хранимая процедура — Хранимая процедура  объект базы данных, представляющий собой набор SQL инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть… …   Википедия

  • Stored procedure — Хранимая процедура  объект базы данных, представляющий собой набор DDL, так и Содержание 1 Реализация хранимых процедур 2 Назначение и преимущества хранимых процедур[2] …   Википедия

  • Хранимые процедуры — Хранимая процедура  объект базы данных, представляющий собой набор DDL, так и Содержание 1 Реализация хранимых процедур 2 Назначение и преимущества хранимых процедур[2] …   Википедия

  • Smart Web Builder — О программе Smart Web BuilderSmart Web Builder многофункциональный web редактор для эффективного и качественного создания сайтов и web приложений. Сочетая простоту, гибкость и качество разработки и обладая профессиональными средствами контроля… …   Википедия

  • Don’t repeat yourself — (DRY, рус. Не повторяйся)  это принцип разработки программного обеспечения, нацеленный на снижение повторения информации различного рода, особенно в системах со множеством слоёв абстрагирования. Принцип DRY формулируется как: «Каждая часть… …   Википедия

  • Microsoft XNA — XNA Тип Фреймворк приложения Разработчик Microsoft Операционная система Microsoft Windows, Xbox 360, Zune, Windows Phone 7 Последняя версия 4.0 Refresh (6 октября 2011) …   Википедия

  • Стандартная библиотека шаблонов — Стандартная библиотека языка программирования C++ fstream iomanip ios iostream sstream Стандартная библиотека шаблонов …   Википедия

  • Интерфейс программирования приложений — (иногда интерфейс прикладного программирования) (англ. application programming interface, API [эй пи ай])[1]  набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»