Tech / Dev

Generador de nombre de variable de entorno

Generá nombres en SCREAMING_SNAKE_CASE con prefijo de app, área y propósito claros.

Instantáneo🔒En tu navegadorSin registro
En vivo

SCREAMING_SNAKE_CASE: la convención POSIX

En shells Unix, las variables de entorno se nombran en mayúsculas con underscore por convención desde los años 70. PATH, HOME, USER. Mantener esa convención asegura compatibilidad con cualquier lenguaje, framework y herramienta de orquestación.

El factor III de 12-factor

El manifiesto 12-factor define que la configuración debe vivir en variables de entorno, no en archivos hardcodeados. Esto separa código de config y permite el mismo binario correr en dev, staging y prod cambiando solo las variables.

Estructura recomendada

<APP>_<ÁREA>_<PROPÓSITO>. Ejemplos: APP_DB_URL, APP_REDIS_HOST, APP_AWS_REGION, APP_MAIL_SMTP_HOST. El prefijo evita colisiones; el área agrupa visualmente; el propósito identifica.

Variables convencionales

  • NODE_ENV: development, production, test (Node).
  • DATABASE_URL: cadena de conexión completa.
  • PORT: puerto a escuchar (PaaS lo setea).
  • LOG_LEVEL: debug, info, warn, error.
  • TZ: zona horaria (default UTC).
  • HTTP_PROXY, HTTPS_PROXY: proxies salientes.

Booleanos en strings

Las env vars son siempre strings. Para booleanos, la convención es "true" / "false" o "1" / "0". Nunca compares con == true en JavaScript: el string "false" es truthy. Usá funciones como parseBool(env.FEATURE_FLAG).

Secrets vs config

Los secrets (passwords, API keys, tokens) no deberían vivir en archivos .env commiteables. Usá .env.local (gitignored) en dev y un secret manager (Vault, AWS Secrets Manager, GCP Secret Manager) en prod. La rotación debería ser parte del proceso operativo.

Validación al boot

Tu app debería fallar rápido si falta una variable crítica. Librerías como envalid (Node), pydantic-settings (Python), dotenv-rb + validators (Ruby) chequean tipos y presencia al iniciar. Mejor un crash claro que un null pointer en el primer request.

Variables específicas por entorno

Mantené la lista de variables idéntica entre entornos; cambiá los valores. Si APP_FEATURE_BETA existe en prod pero no en staging, agregalo aunque sea con false. Esto previene comportamiento divergente entre ambientes.

Preguntas frecuentes

¿Por qué SCREAMING_SNAKE?

Convención POSIX desde Unix. Compatible con todos los lenguajes.

¿Prefijo?

Sí: APP_DATABASE_URL evita colisiones con vars del sistema.

¿Secrets dónde?

Nunca en el repo. Vault, secret managers, .env.local en dev.

¿Te sirvió este generador?