foundation

Environment variables

Используйте env vars для deployment-specific config, учитывая parsing, missing values, secret exposure и test isolation.

Переменные окружения — интерфейс между orchestrator и процессом Node: только строки, наследуются от shell, видны в `process.env`.

					const port = Number(process.env.PORT ?? 3000);
const enabled = process.env.FEATURE_X === 'true'; // явно, не truthy для "false"
				

`.env` через dotenv — удобство для dev; секреты не в git; в продакшене — platform (K8s secrets, IAM, vault). `NODE_ENV` влияет на кэш, логи и библиотеки — задавайте осознанно.

Изоляция тестов: stub env; не оставляйте мутации `process.env` без cleanup.

На интервью: ловушки строкового типа; эффекты `NODE_ENV`; почему env слаб для сложного config без парсинга.

Типовые ошибки: `if (process.env.FLAG)` и `"0"` как true; утечка env в error pages; дочерние процессы с полным env и секретами.

Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.

Чеклист:

  • Парсинг и валидация в одном месте.
  • Не логировать весь `process.env`.
  • dotenv только локально; документируйте injection в prod.
  • Восстанавливайте env после тестов.