TGViewer
Бестиарий программирования Бестиарий программирования @programming_tales · 1.14K subscribers
Post #603 671

Forwarded from feelin (Valerii Filatov)

Проблемы с цепочками

В своих докладах о чистом коде я часто разбираю рефакторинг длинных цепочек вызовов. Основная мысль проста: такая конструкция не только замедляет чтение и понимание кода, но и бьёт по производительности.

Однажды меня спросили: "А что, если эти методы изменяют внутреннее состояние объекта?" Действительно, если audinfo() (ну или подобный метод в других примерах) возвращает объект, чьи методы мутируют состояние, то вынесение его в переменную превратит пять независимых вызовов в пять обращений к одному экземпляру. А значит, поведение программы может измениться.

Но ответ, на мой взгляд, кроется в самой постановке вопроса. Хороший код не должен порождать сомнения в духе "а что, если...". Если безопасный синтаксический рефакторинг меняет логику работы — это не недостаток рефакторинга, а яркий сигнал о проблемном дизайне.

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

🎤 feelin
  • 👍 7
  • 💯 2
More from @programming_tales
  1. Oct 2, 2026Запись вебинара: Go vet не поможет... Как сделать свой анализатор кода для Go?
  2. Oct 2, 2026В целях нетворкинга и просто так приглашаю коннектиться в TenChat — что-то типа LinkedIn.…
  3. Sep 29, 2026Сегодня коллега демонстрирует, как визуально проявляют себя баги в Java коде: Нашёл ошибки…
  4. Sep 29, 2026photo post
  5. Sep 28, 2026На днях выступал с докладом на форуме "Безопасность транспортных средств", организованном…
  6. Sep 28, 2026photo post
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 →