2.5. Дублирование кода

Важной задачей при создании программного обеспечения является минимизация дублирования кода.

Копирование кода из одной части программы в другую ведет к печальному эффекту [10], который заключается в том, что вместе с кодом копируются все ошибки, допущенные в нем. Из-за этого обнаружение и исправление одной такой ошибки не ведет к полному ее устранению: ошибка остается в том месте, куда ее скопировали.

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

Наилучший способ избежать дублирования кода – это использовать стандартную библиотеку. Многие распространенные задачи уже решены квалифицированными людьми, потратившими много сил на тестирование своих творений, а стандартные библиотеки испытаны сотнями и тысячами пользователей.

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

Но не все функции, которые необходимы разработчику, реализованы в стандартной библиотеке. С другой стороны, если такая функция понадобилась более чем в одном месте программного обеспечения, то придется сделать ее «библиотечной» уже разработчику. Таким образом, в любом большом проекте вместе с основной функциональностью развивается вспомогательная библиотека. Хорошо, если ее создают и тестируют вдумчиво.