2.7 KiB
2.7 KiB
#рефакторинг #запахи_кода
Увидев одинаковые структуры кода в нескольких местах, можно быть уверенным, что если их удастся объединить, то программа от этого только выиграет. Дублирование означает, что каждый раз, когда вы читаете такие копии, вам необходимо внимательно проверять — нет ли между ними какой-либо разницы. Если вам нужно изменить дублированный код, вы должны найти и исправить каждую копию.
Признаки
- Два фрагмента кода выглядят почти одинаковыми.
Причины появления
- В проекте работает несколько человек, и не знают, что коллега уже написал похожий код, который можно использовать вместо написания своего
- Косвенное дублирование - когда конкретные участки кода отличаются внешне, хотя и выполняют одну и ту же задачу. Такое дублирование бывает довольно сложно обнаружить и исправить
- Намеренно, в спешке, когда поджимают сроки
- Программист просто слишком ленив, чтобы избавить код от дублирования
Рефакторинги
- Извлечение функции (Extract Function)
- Перемещение инструкций (Slide Statements)
- Подъем метода (Pull Up Method)
Результат
- Объединение дублирующего кода позволяет улучшить структуру кода и уменьшить его объём
- Упрощение и удешевление поддержки кода в будущем
Не стоит трогать, если...
- В очень редких случаях объединение двух одинаковых участков кода может сделать код менее очевидным и понятным.


