2026-02-23 19:52:05 +03:00

33 lines
1.9 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 20241112224740.png]]
> “Стрельба дробью” подобна расходящимся изменениям, но представляет со­бой их противоположность. Унюхать ее можно, когда при выполнении любых из­менений приходится вносить множество мелких модификаций в большое число различных модулей. Когда изменения разбросаны повсюду, их трудно искать и можно пропустить важное изменение.
### **Признаки**
- При выполнении любых модификаций приходится вносить множество мелких изменений в большое число классов
### **Причины появления**
- Одна обязанность была разделена среди множества классов
![[Pasted image 20241112224755.png]]
### **Рефакторинги**
- [[Перенос функции (Move Function)]]
- [[Перенос поля (Move Field)]]
- [[Объединение функций в класс (Combine Functions into Class)]]
- [[Разделение этапа (Split Phase)]]
- [[Встраивание функции (Inline Function)]]
- [[Встраивание класса (Inline Class)]]
![[Pasted image 20241112224804.png]]
### **Результат**
- Улучшает организацию кода
- Уменьшает дублирование кода
- Упрощает поддержку.
### **Ссылки**
- [https://refactoring.guru/ru/smells/shotgun-surgery](https://refactoring.guru/ru/smells/shotgun-surgery)
- [[Мартин Фаулер - Рефакторинг кода на JavaScript]]