Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Изменение объявления функции (Change Function Declaration).md
2026-02-23 19:52:05 +03:00

41 lines
3.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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