~/VibeHandbook
PDF grátis

Capítulo 05 · 05

Variáveis de ambiente e configuração

Alguns valores não podem ser escritos dentro do seu código: chaves secretas, senhas de banco de dados, o endereço de um serviço. E alguns precisam mudar dependendo de onde o app está rodando. O código que você testa no seu notebook (o ambiente de dev, ou desenvolvimento) deve conversar com um banco de dados de teste; o app ao vivo que seus usuários acessam (o ambiente de prod, ou produção) precisa conversar com o banco real — usando o mesmo código.

A resposta são as variáveis de ambiente (frequentemente chamadas de "env vars"): valores nomeados que vivem fora do código e são fornecidos a ele quando é executado. O código diz "me dê DATABASE_URL," e o ambiente decide qual valor entregar.

# A config file (e.g. .env) — values live here, not in the code

DATABASE_URL=postgres://localhost/myapp_dev
STRIPE_SECRET_KEY=sk_test_51H...     # dev = a test key
SEND_REAL_EMAILS=false               # don't email real users while testing

Duas regras vão te poupar de dores de cabeça reais:

  • Segredos nunca vão dentro do código. Qualquer coisa no seu código pode acabar se tornando pública (especialmente em um repositório compartilhado), e uma chave de pagamento ou senha de banco de dados vazada é uma emergência de verdade. Segredos pertencem às variáveis de ambiente, mantidos fora do controle de versão.
  • Dev e prod são diferentes. O ponto é que o mesmo código se comporta corretamente em ambos, porque o ambiente — não o código — decide qual banco de dados e quais chaves usar.

O mesmo código, duas casas — as variáveis de ambiente são o que muda:

        SAME CODE
       /         \
      ▼           ▼
   ┌─────────────────┐     ┌─────────────────┐
   │  DEV            │     │  PROD           │
   │  your laptop    │     │  hosting (cloud)│
   │  test database  │     │  real database  │
   │  test API key   │     │  live API key   │
   │  fake emails    │     │  real emails    │
   └─────────────────┘     └─────────────────┘
     only you see it         your users see it

Quer offline?

Baixe o livro inteiro em PDF ou EPUB — grátis.