Начальный

Имена и функции

Урок 2 из 5 в курсе Чистый код и рефакторинг

Содержание курса (2/5)

Имена и функции

хорошие имена и маленькие функции — два самых мощных инструмента читаемости.

Почему это важно: Плохие имена и длинные функции — главная причина того, что код сложно понимать.

Главная идея

Имя должно говорить, что объект делает или представляет, а функция — выполнять одно действие на одном уровне абстракции.

Как это выглядит на практике

  1. Видим переменную data и пытаемся понять, что в ней.
  2. Переименовываем в active_users — становится ясно с первого взгляда.
  3. Длинная функция process разбивается на validate_input, save_user, send_email.
  4. Каждая маленькая функция читается как абзац связного текста.

Что происходит под капотом

  • Избегайте сокращений: usr_lst → users.
  • Глагол + объект для функций: calculate_total, send_invoice.
  • Логические переменные через is_/has_/can_: is_admin, has_access.
  • Если функцию сложно назвать — она делает слишком много.

Типичные ошибки и заблуждения

  • Ошибка: длинные имена замедляют. Современные IDE автодополняют — длина имени почти бесплатна.
  • Ошибка: функция должна помещаться в экран. Идеально — в несколько строк.
  • Ошибка: 'я и так помню, что это'. Через месяц вы не вспомните.
  • Ошибка: можно мешать уровни абстракции. Из-за этого функцию приходится читать целиком, чтобы понять.

Ключевые выводы

  • Имя — это контракт.
  • Маленькая функция = один уровень абстракции.
  • Если функция требует комментария 'что она делает' — переименуйте.
  • Считайте число параметров: 0-2 хорошо, 3 — повод задуматься, 4+ — обычно плохо.

Термины урока

Cohesion — насколько элементы внутри модуля связаны единой целью.
Single Responsibility Principle — у класса/функции одна причина для изменения.
Magic number — числовая константа без названия в коде.
Refactoring — изменение структуры кода без изменения его поведения.

Связь с работой backend-разработчика

В backend много слоёв (контроллер, сервис, репозиторий) — без хороших имён и маленьких функций они быстро превращаются в кашу.

Мини-разбор реальной ситуации

Сервис расчёта цен из 600 строк не менялся 2 года — все боялись. После переименования и разделения на 12 функций команда добавила 3 новые скидки за неделю.

Что запомнить

  • Имена выражают намерение.
  • Функции — на одном уровне абстракции.
  • Меньше параметров = проще тесты.

Итог

Имена и размер функций — самые дешёвые рычаги читаемости.

Комментарии к уроку

Войдите, чтобы оставить комментарий.

Пока нет комментариев — будьте первым.