2.5. Дублирование кода
Важной задачей при создании программного обеспечения является минимизация дублирования кода.
Копирование кода из одной части программы в другую ведет к печальному эффекту [10], который заключается в том, что вместе с кодом копируются все ошибки, допущенные в нем. Из-за этого обнаружение и исправление одной такой ошибки не ведет к полному ее устранению: ошибка остается в том месте, куда ее скопировали.
Кроме того, повторение одной и той же функциональности загромождает систему однотипными фрагментами кода, содержащими, возможно, незаметные, но существенные различия. Это затрудняет понимание устройства системы, поиск ошибок и модификацию кода.
Наилучший способ избежать дублирования кода – это использовать стандартную библиотеку. Многие распространенные задачи уже решены квалифицированными людьми, потратившими много сил на тестирование своих творений, а стандартные библиотеки испытаны сотнями и тысячами пользователей.
Владение стандартными библиотеками языка, на котором осуществляется разработка ПО, обязательно, так же как и API библиотеками операционных систем. Стандартная библиотека продумана и протестирована лучше вновь разрабатываемого программного обеспечения. Ее использование делает код компактнее и повышает понятность кода для тех, кто также владеет этой библиотекой.
Но не все функции, которые необходимы разработчику, реализованы в стандартной библиотеке. С другой стороны, если такая функция понадобилась более чем в одном месте программного обеспечения, то придется сделать ее «библиотечной» уже разработчику. Таким образом, в любом большом проекте вместе с основной функциональностью развивается вспомогательная библиотека. Хорошо, если ее создают и тестируют вдумчиво.