#рефакторинг #методы_рефакторинга ![[Pasted image 20250131091654.png]] ### **Проблема** Код легче понять, когда связанные друг с другом фрагменты находятся рядом. ```javascript const pricingPlan = retrievePricingPlan(); const order = retreiveOrder(); let charge; const chargePerUnit = pricingPlan.unit; ``` ### **Решение** Если несколько строк кода обращаются к одной и той же структуре данных, то лучше, чтобы они были вместе, а не были перемешаны с кодом, обращающимся к другим структурам данных ```javascript const pricingPlan = retrievePricingPlan(); const chargePerUnit = pricingPlan.unit; const order = retreiveOrder(); let charge; ``` ### **Порядок рефакторинга** 1. Определите целевое местоположение для перемещения фрагмента кода. Изучите инструкции между исходным и целевым местоположениями, чтобы увидеть, нет ли каких-то помех для кандидата на перемещение. Если таковые имеются — откажитесь от дальнейших действий. 2. Вырежьте фрагмент из исходного местоположения и вставьте его в целевую позицию. ### **Борется с запахом** - [[Дублируемый код]] - [[Большой класс]] - [[Расходящиеся изменения]] - [[Группы данных]] - [[Одержимость примитивами]] - [[Временное поле]] - [[Неуместная близость]] ### **Обратный рефакторинг** - [[Встраивание класса (Inline Class)]] ### **Ссылки** - https://refactoring.guru/ru/extract-class - [[Мартин Фаулер - Рефакторинг кода на JavaScript]]