TGViewer
feelin feelin @feelindev · 47 subscribers
Post #200 79
Не делай так: and в названии метода.

Если в названии метода есть and между глаголами - это признак того, что метод берёт на себя слишком много.

Простейший пример:
def validate_and_save_user(user: User):
...


На самом деле это два метода, которые, как гномы из "Гравити Фолз", притворяются одним. Здесь нужна декомпозиция:
def validate_user(user: User):
...

def save_user(user: User):
...


Помимо длинного названия подобные методы создадут много проблем:

- их сложно тестировать. Нужно покрывать все действия, происходящие внутри, поэтому тесты становятся огромными, а процесс их написания превращается в практику по комбинаторике;

- нельзя переиспользовать код. А что, если я в будущем захочу только валидировать пользователя?

- риск прячущихся жуков. При достаточной длине метода в нём могут прятаться баги, которых мы скорее всего не сможем обнаружить глазами.

Казалось бы - мелочь. Но я собственными руками рефакторил такой код. А как-то даже писал на него тесты, потому что зарефакторить спустя годы его существования уже являлось трудной задачей.

#неДелайТак - декомпозируй!

🎤 feelin #cleanCode
  • 🔥 4
  • ⚡ 1
  • 👨‍💻 1
More from @feelindev
  1. Oct 1, 2026Мне нужна твоя одежда и твой мотоцикл Вечная тема, которая преследует AI: не взбунтуются л…
  2. Sep 28, 2026Искусственное сопротивление В последнее время я часто задумываюсь о том, почему некоторые…
  3. Sep 22, 2026Яблочная секта Уже пару месяцев как я прикупил себе последний MacBook Air на M5. Сегодня р…
  4. Sep 18, 2026Highway to AI В Developer Relations есть один важный аспект – открытость своего продукта и…
  5. Sep 16, 2026Plata за хайп На прошлой неделе в IT-тусовке разразился скандал из-за ситуации с разработч…
  6. Sep 15, 2026Яблочный телепорт На прошлой неделе случайно нащупал технологию, о существовании которой д…
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 →