33 lines
3.0 KiB
Markdown
33 lines
3.0 KiB
Markdown
#рефакторинг #запахи_кода
|
||
|
||
![[Pasted image 20241114072528.png]]
|
||
|
||
> Комментарии приводят нас к плохому коду, издающему всевозможные дурные запахи, о которых мы писали в этой главе. Первым действием должно быть удаление этих запахов с помощью рефакторинга. После этого комментарии часто оказываются ненужными.
|
||
> Почувствовав необходимость написать комментарий, попробуйте сначала изменить структуру кода так, чтобы любые комментарии стали ненужными.
|
||
> Комментарии полезны, когда вы не знаете, что делать. Помимо описания про исходящего, комментарии могут отмечать те места, в которых вы не уверены. Комментарии — хорошее место пояснить, почему вы поступаете именно так. Эта информация пригодится тем, кто будет работать с вашим кодом в будущем.
|
||
|
||
### **Признаки**
|
||
- Метод содержит множество поясняющих комментариев
|
||
|
||
### **Причины появления**
|
||
- Зачастую комментарии создаются с хорошими намерениями, когда автор и сам понимает, что его код недостаточно очевиден и понятен. В таких случаях комментарии играют роль «дезодоранта», т.е. пытаются заглушить «дурной запах» недостаточно проработанного кода
|
||
- Самый лучший комментарий — это хорошее название метода или класса
|
||
|
||
### **Рефакторинги**
|
||
- [[Извлечение функции (Extract Function)]]
|
||
- [[Изменение объявления функции (Change Function Declaration)]]
|
||
- [[Введение утверждения (Introduce Assertion)]]
|
||
|
||
![[Pasted image 20241114072633.png]]
|
||
|
||
### **Результат**
|
||
- Код становится более очевидным и понятным
|
||
|
||
### **Не стоит трогать, если...**
|
||
Иногда комментарии бывают полезными:
|
||
- Те, которые объясняют **почему** что-то выполняется именно таким образом.
|
||
- Те, которые объясняют сложные алгоритмы (когда все иные средства упростить алгоритм уже были испробованы).
|
||
|
||
### **Ссылки**
|
||
- https://refactoring.guru/ru/smells/comments
|
||
- [[Мартин Фаулер - Рефакторинг кода на JavaScript]] |