Имена и функции
хорошие имена и маленькие функции — два самых мощных инструмента читаемости.
Почему это важно: Плохие имена и длинные функции — главная причина того, что код сложно понимать.
Главная идея
Имя должно говорить, что объект делает или представляет, а функция — выполнять одно действие на одном уровне абстракции.
Как это выглядит на практике
- Видим переменную data и пытаемся понять, что в ней.
- Переименовываем в active_users — становится ясно с первого взгляда.
- Длинная функция process разбивается на validate_input, save_user, send_email.
- Каждая маленькая функция читается как абзац связного текста.
Что происходит под капотом
- Избегайте сокращений: 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 новые скидки за неделю.
Что запомнить
- Имена выражают намерение.
- Функции — на одном уровне абстракции.
- Меньше параметров = проще тесты.
Итог
Имена и размер функций — самые дешёвые рычаги читаемости.
Комментарии к уроку
Войдите, чтобы оставить комментарий.
Пока нет комментариев — будьте первым.