Base/Knowledges/IT/Рефакторинг/Методы рефакторинга/Переименование поля (Rename Field).md
2026-02-23 19:52:05 +03:00

41 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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 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]]