#рефакторинг #методы_рефакторинга ![[Pasted image 20250204083941.png]] ### **Проблема** Название метода не раскрывает суть того, что он делает. ```typescript class Organization { get name() {...} } ``` ### **Решение** Измените название метода. ```typescript class Organization { get title() {...} } ``` ### **Причины рефакторинга** Метод мог получить неудачное название с самого начала. Например, кто-то создал метод впопыхах, не придал должного значения хорошему названию. С другой стороны, метод мог быть назван удачно изначально, но ввиду расширения его функциональности, имя метода перестало быть актуальным. ### **Достоинства** Улучшает читабельность кода. Постарайтесь дать новому методу такое название, которое бы отражало суть того, что он делает. Например, `createOrder()`, `renderCustomerInfo()` и т. д. ### **Порядок рефакторинга** 1. Проверьте, не определён ли метод в суперклассе или подклассе. Если так, нужно будет повторить все шаги и в этих классах. 2. Следующий шаг важен, чтобы сохранить работоспособность программы во время рефакторинга. Итак, создайте новый метод с новыми именем. Скопируйте туда код старого метода. Удалите весь код в старом методе и вставьте вместо него вызов нового метода. 3. Найдите все обращения к старому методу и замените их обращениями к новому 4. Удалите старый метод. Этот шаг неосуществим, если старый метод является частью публичного интерфейса. В этом случае, старый метод нужно пометить как устаревший (`deprecated`). ### **Борется с запахом** - [[Альтернативные классы с разными интерфейсами]] - [[Комментарии]] ### **Ссылки** - https://refactoring.guru/ru/rename-method - [[Мартин Фаулер - Рефакторинг кода на JavaScript]]