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

4.4 KiB
Raw Permalink Blame History

#рефакторинг #запахи_кода

!Pasted image 20241112222453.png

Программы, использующие короткие функции, живут долго и счастливо. Работая с такой программой на протяжении нескольких лет, вы понимаете, какую ценность представляют собой маленькие функции. Все выгоды, которые дает косвенность — понятность, совместное использование и выбор, — поддер­живаются именно маленькими функциями.
Еще на заре программирования было ясно, что чем длиннее функция, тем труднее понять, как она работает
Эвристическое правило, которому мы следуем, гласит, что если возни­кает необходимость что-то прокомментировать, то пора писать функцию. В этой функции содержится код, который требовал комментариев, но ее название от­ражает его назначение, а не способ решения им задачи

Признаки

  • Метод содержит слишком большое число строк кода. Длина метода более десяти строк должна начинать вас беспокоить

Причины появления

  • В метод всё время что-то добавляется, но ничего не выносится. Так как писать код намного проще, чем читать
  • Человеку зачастую ментально сложнее создать новый метод, чем дописать что-то в уже существующий: «Как же, мне нужно добавить всего две строки, не буду же я создавать для этого целый метод»

!Pasted image 20241112222556.png

Если ощущается необходимость что-то прокомментировать внутри метода, этот код лучше выделить в новый метод. Даже одну строку имеет смысл выделить в метод, если она нуждается в разъяснениях. К тому же, если у метода хорошее название, то не нужно будет смотреть в его код, чтобы понять, что он делает.

Рефакторинги

Результат

  • Из всех видов объектного кода дольше всего выживают классы с короткими методами. Чем длиннее ваш метод или функция, тем труднее будет её понять и поддерживать.
  • В длинных методах зачастую можно обнаружить «залежи» дублирования кода.

!Pasted image 20241112222648.png

Производительность

Многие волнуются, что увеличение числа методов может плохо сказаться на производительности. В абсолютном большинстве случаев, это не является реальной проблемой, так что просто перестаньте об этом думать.

Имея чистый и понятный код, вы с большей вероятностью натолкнётесь на отличный способ реструктуризировать код программы и увеличить реальную производительность, если такая надобность вообще будет.

Ссылки