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

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