41 lines
2.7 KiB
Markdown
41 lines
2.7 KiB
Markdown
#рефакторинг #методы_рефакторинга
|
||
|
||
![[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]] |