~/VibeHandbook
PDF Gratis

Bab 05 · 05

Variabel lingkungan dan konfigurasi

Beberapa nilai tidak bisa ditulis langsung ke dalam kodemu: kunci rahasia, kata sandi , alamat sebuah layanan. Dan beberapa perlu berubah tergantung di mana aplikasi itu berjalan. Kode yang kamu uji di laptopmu (lingkungan dev) seharusnya berbicara dengan database uji coba; aplikasi langsung yang disentuh penggunamu (lingkungan prod, atau produksi) harus berbicara dengan database yang sesungguhnya — menggunakan kode yang sama persis.

Jawabannya adalah variabel lingkungan (environment variables, sering disebut "env vars"): nilai bernama yang berada di luar kode dan disediakan untuknya saat dijalankan. Kodenya berkata "berikan aku DATABASE_URL," dan lingkungannya yang memutuskan mana yang diberikan.

# 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

Dua aturan ini akan menyelamatkanmu dari rasa sakit yang nyata:

  • Rahasia tidak pernah masuk ke dalam kode. Apa pun di dalam kodemu bisa berakhir menjadi publik (apalagi di repositori bersama), dan kunci pembayaran atau kata sandi database yang bocor adalah keadaan darurat yang sungguhan. Rahasia adalah tempatnya di variabel lingkungan, dijauhkan dari kontrol versi.
  • Dev dan prod itu berbeda. Intinya adalah kode yang sama berperilaku benar di keduanya, karena lingkungan — bukan kode — yang memutuskan database dan kunci mana yang dipakai.

Kode yang sama, dua rumah — variabel lingkungan itulah yang membedakannya:

        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

Mau versi offline?

Unduh seluruh buku sebagai PDF atau EPUB — gratis.