TGViewer
Программист живёт нормально Программист живёт нормально @programmers_ed · 1.99K subscribers
Post #78 712
"Вас прёт упрощение, а я усложняю всё" - © Мирон Янович

Продолжаем месяц адвентов, и сегодня пятый день наших подарочков ❤️


Каким должен быть метод (Функция)?

Метод должен быть понятным и простым, чтобы каждый смог понять его, когда придет на проект ♨️

Есть много различных способов оценить сложность метода: можно посмотреть на длину метода, количеству параметров, в него поступающих, можно взять более сложные вещи, вроде цикломатической и когнитивной сложности. Мы с вами сейчас поговорим о двух первых способах. А в следующие разы о других вариантах оценки.

В величайшей, по моему мнению, книге Роберта Мартина "Чистый код" приводится такое мнение:

"Первое правило: функции должны быть компактными, второе: еще компактнее... Желательно, чтобы длина функции не превышала 20 строк"

И все? Просто пишем методы, которые короче 20 строк?

С одной стороны - да, стараемся сделать метод максимально минимальным, но не переусердствуем, все таки метод из одной строки - тоже сомнительная вещь. Более того, по правилам оформления java-кода (например) длина строки не должна превышать 80 символов.

Есть еще ряд метрик, которые говорят о том, что ваш метод "сложен". Роберт Мартин дает еще один важный совет по поводу устройства методов: "Функция должна выполнять только одну операцию, она должна делать это хорошо и ничего другого она делать не должна".
Понятно, что в методе происходит много действий, но операция тут воспринимается как нечто более высокоуровневое. Например, открыть файл - вполне себе одна операция, хоть и содержит внутри много действий. А вот открыть и записать туда какие-то начальные значения - это уже две операции (как минимум).

Есть еще одна важная метрика - количество аргументов (параметров) вашего метода-функции 🧠
В книге, из которой я подчерпнул знания и вдохновение, пишется: "В идеальном случае количество аргументов функции равно 0... Функции с 3 аргументами стоит избегать". Тут все довольно просто - чем меньше параметров в методе, тем он более легок в освоении, понимании и тестировании. См. раздел "Аргументы функции" в "Чистом Коде".

Итак:
1) Методы короче 20 строчек
2) Один метод - одна операция
3) Минимум аргументов

Пишите методы понятными, приятными, любите программирование, читайте книги!

Это кстати, только маленькая информации из книги 👀

#junior #middle #Поговорим
  • 👍 9
More from @programmers_ed
  1. Jun 12, 2026За 2025 и часть 2026 удалось выделить прилично времени на различное обучение. Тут и обучен…
  2. May 17, 2026Решил для себя, что максимально оттяну момент, когда начну в работе использовать ИИ-агенты…
  3. Mar 23, 2026Пришло время рассказать о моем обучении на мини-курсе Стратоплана «Основа», который стал п…
  4. Mar 22, 2026Недавно осознал такую мысль Пока ты начинаешь осваивать программирование - некоторые подхо…
  5. Feb 4, 2026Ну что, мое обучение в Стратоплане продолжается На этот раз успели разобрать много полезно…
  6. Feb 1, 2026Post #434
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →