ODMA
Читаемый код
Предсказуемые соглашения
Используем содержательные имена в snake_case, если это соглашение проекта. Имена типов начинаются с T. Предпочитаем явные контракты type и отображения через as const. Связанный код остаётся рядом с владельцем, а существующие решения изучаются до введения новых паттернов.
type TProgram = { id: string, title: string }
const visible_programs = programs.filter(program => program.title.length > 0)
Для условий используем ранний возврат, для настоящих отображений — типизированные реестры. Импорты группируем по внешним пакетам, слоям и относительным путям. Не переформатируем посторонний код.
Читаемое выражение примерно до 130 символов может оставаться одной строкой. Длина файла — повод проверить ответственность, а не механически сжимать код. Комментарий объясняет решение или инвариант, а не пересказывает реализацию.