Перейти к основному содержимому

О разделе "Культура кода"

Культура кода — это общие договорённости в команде — как мы называем сущности, форматируем файлы, комментируем неочевидное, ревьюим изменения и не превращаем качество в личный вкус одного человека. Хорошая культура снижает стоимость правок: код читают и меняют чаще, чем пишут с нуля.

Знать синтаксис языка недостаточно — важно понимать стиль проекта, инструменты (форматтеры, линтеры) и то, какую информацию оставлять в коде, а какую — в документации и тестах.


Для кого

  • Новичкам — соглашения об именовании, форматирование, комментарии "про зачем", а не "про что".
  • Разработчикам — связь читаемости с метриками (цикломатическая сложность), принципы KISS/DRY/YAGNI на примерах.
  • Тимлидам и ревьюерам — как обсуждать качество без морализаторства и споров "на вкус".

Рекомендуемый порядок

ШагМатериалСодержание
1Культура написания и поддержки кодаИменование, стиль, комментарии, XML/JSDoc, IntelliSense, базовые принципы
2Цикломатическая сложность и читаемостьМетрика, пороги, запахи кода, рефакторинг, кейсы
3MAPPER — модель и реальностьСопоставление домена и кода, биекция, единый принцип
4Анемичные модели и примитивыБогатые объекты, value objects
5Изменяемость и побочные эффектыconst, иммутабельность
5aДекларативный код"Что" и "как", итерации, async, ошибки
6Условия, null и контрактыFail fast, меньше if, без null
7Связанность и глобалыSingleton, god object, запахи модульности
8YAGNI, быстрый провал, техдолгОбъём кода, PR, warnings
9Тесты как часть культурыКачество assert, flaky, моки
10Исключенияtry/catch, сообщения об ошибках
11ИтогиКраткое резюме раздела
12Чек-лист самопроверкиВопросы перед merge
Справочник темСимптом → статья раздела

Если времени мало: 1256Примитивы, value objects и маленькие типы8; перед ревью — 4 и 13 (поиск по симптому).


Что здесь и чего нет

Здесь — качество исходного кода на уровне файла и модуля. Настройка пайплайнов, политики веток и процессы релиза — в других главах энциклопедии (методология, инфраструктура, команда). Зато много про формулировки в ревью, автоматизацию рутины и то, как не спорить о пробелах вручную.


Закрепить базовую теорию (глава 2)

Читаемый код не отменяет понимания среды, в которой он работает:

Вопрос при ревью или ошибкахТеория
HTTP-контракт, статусы, идемпотентность2.09 API и HTTP · HTTP
Сообщения об ошибках и утечки в ответах2.08 Основы ИБ · исключения в культуре кода
Асинхронность, очереди, retryБрокеры · устойчивость в 7.06

Закрепить базовую теорию (глава 4)

Культура кода — про файл и модуль; фундамент терминов и механизмов — в томе "Код и разработка":

Вопрос при ревью или рефакторингеТеория
Запахи, каталог приёмов ФаулераМетоды рефакторинга
Примитивы, value objectsПримитивы и маленькие типы · ООП — введение
Иммутабельность, потокиПараллельные вычисления — о разделе
Декларативность, async/awaitАсинхронность — о разделе
SOLID, DIP, абстракцииSOLID
try/catch, стек, Error vs ExceptionОшибки и исключения
YAGNI, мёртвый код, техдолгАрхитектура выполнения · технический долг

В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

ТехлидМикросервисы и интеграция — о разделе, Технический дизайн на основе требований, Архитектура выполнения — о разделе, Командная работа в разработке ПО, Проектирование — о разделе, Паттерны проектирования — о разделе.

Управление проектами и AgileБазы знаний и задачники — о разделе, Экономика производства ПО — о разделе, Scrum — о разделе, Коммуникация и общение — о разделе, Методология и жизненный цикл ПО — о разделе, Команда и управление — о разделе.

ТимлидScrum — о разделе, Организационная иерархия и деловая переписка, Ежедневные стендапы и коммуникация, Первые 90 дней тимлида, Роль тимлида — ожидания, риски и выбор траектории, Эффективное управление разработчиками.