Skip to content
This repository has been archived by the owner on May 5, 2020. It is now read-only.

Latest commit

 

History

History

007-when-to-prefer-duplication

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Когда следует дублировать код?

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

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

На начальном этапе реиспользование усложняет дальнейшее изменение и переписывание кода. При реиспользовании участок кода выносится в модуль, используемый в разных частях программы. Изменение такого модуля требует проверки работоспособности всех зависящих от него частей программы. Дублирование позволяет свести количество внешних зависимостей к минимуму — участок кода используется непосредственно там, где он написан. Это позволяет переписывать этот участок и не бояться, что в другой части программы что-то сломается.

Итак, дублирование кода позволяет минимизировать количество зависимых от него участков приложения, а значит упростить его дальнейшую доработку. Из этого следует ещё одна рекомендация: дублируйте код, который в будущем с большой вероятностью будет меняться. Чем более код специфичен, с тем большей вероятностью он изменится в будущем. Например, бизнес-логика меняется гораздо чаще, чем низкоуровневая логика общения с сервером (стандарт HTTP обновляется раз в несколько лет).