foundation

Lint

Запускайте семантические и стилевые проверки единообразно, чтобы review фокусировался на поведении, а не на механических замечаниях.

Lint в CI превращает повторяемые правила качества кода в объективный merge gate. В зависимости от toolchain он покрывает imports, React hooks, accessibility, мёртвый код, подозрительные паттерны и интеграцию с форматтерами.

| Слой | Типичный инструмент | |------|---------------------| | Форматирование | Prettier, Biome format | | Семантический lint | ESLint, Biome lint | | Type-aware lint | `typescript-eslint` с `project` |

					{
  "scripts": {
    "lint": "eslint . --max-warnings 0",
    "format:check": "prettier --check ."
  }
}
				

Сильные пайплайны запускают форматирование и семантический lint отдельными шагами, чтобы падения были понятны. CI — авторитет для механических проверок; локальные hooks — удобство, а не единственный gate.

На интервью: разделение formatter и semantic lint, когда type-aware lint оправдан по стоимости, `--max-warnings 0` в CI и читаемость сообщений об ошибках.

Типовые ошибки: шумный lint, который команда обходит; дорогой type-aware lint без кэша; дублирование правил Prettier в ESLint.

Компромисс — полнота проверок против latency feedback и терпимости к шуму правил.

Чеклист:

  • Правила полезны и actionable.
  • Форматирование отдельно или последовательно.
  • CI авторитетен для механических проверок.
  • Измеряйте и кэшируйте медленные lint-пути.