0Pricing
Lua Academy · Ders

Yapılandırma DSL'i Oluşturma

Korumalı alanda dofile() ile yüklenen bildirimsel bir yapılandırma dili oluşturun.

Yapılandırma DSL'i Oluşturma, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.

Amaç: Bildirimsel Yapılandırma

Bir yapılandırma DSL'si, kullanıcıların yapılandırmayı okunabilir ve bildirimsel bir biçimde ifade etmesini sağlarken arka planda Lua'nın tüm gücünü (koşullar, döngüler ve işlevler) kullanır.

Yapılandırma İşlevi Örüntüsü

Yapılandırmayı doğrulayıp depolayan bir config(tbl) işlevi sunun. Temiz bir sözdizimi için bu işlevi bir tablo değişmeziyle çağırın.

local function config(tbl)
  -- validate and store
  return tbl
end
-- config.lua:
return config {
  host = "localhost",
  port = 8080,
  debug = os.getenv("DEBUG") == "1",
}

Bölümlerle İç İçe Yapılandırma

Düzenli bir yapılandırma için iç içe bölümleri destekleyin.

return config {
  database = { host="db.local", port=5432 },
  cache    = { host="cache.local", ttl=300 },
  logging  = { level="INFO", file="/var/log/app.log" },
}

Yapılandırmada Yardımcı İşlevler

Hesaplanan değerler için yapılandırma içinde yardımcı işlevlerin çağrılmasına izin verin.

local function env(name, default)
  return os.getenv(name) or default
end
return config {
  host  = env("DB_HOST", "localhost"),
  port  = tonumber(env("DB_PORT", "5432")),
}

Yalıtılmış Yapılandırma Yükleme

Güvenlik için yapılandırmayı yalnızca güvenli yardımcıların kullanılmasına izin veren kısıtlı bir ortamda yükleyin.

local function loadConfig(path)
  local safeEnv = {
    config = config,
    env    = env,
    math   = math,
    table  = table,
  }
  local fn, err = loadfile(path, "t", safeEnv)
  if not fn then error(err) end
  return fn()
end

Şema Doğrulaması

Yükleme işleminden sonra zorunlu alanları ve türleri doğrulayın.

local function validate(cfg)
  assert(type(cfg.host) == "string", "host must be string")
  assert(type(cfg.port) == "number", "port must be number")
  assert(cfg.port > 0 and cfg.port < 65536, "port out of range")
end
validate(loadConfig("config.lua"))

Varsayılan Değerler

Zorunlu tüm anahtarların değerleri olmasını sağlamak için yüklenen yapılandırmayı varsayılanlarla birleştirin.

local defaults = {host="localhost", port=8080, debug=false}
local function loadWithDefaults(path)
  local cfg = loadConfig(path)
  for k, v in pairs(defaults) do
    if cfg[k] == nil then cfg[k] = v end
  end
  return cfg
end

Ortam Değişkenleriyle Geçersiz Kılma

Ortam değişkenlerinin yapılandırma dosyasındaki değerlerin üzerine yazmasına izin verin — bu, 12 faktörlü uygulama tasarımı için gereklidir.

Yapılandırma Kalıtımı

Önce temel yapılandırmayı yükleyin, ardından ortama özgü yapılandırmayı (geliştirme, hazırlık, üretim) bunun üzerine uygulayın.

Değişmez Yapılandırma

Yükleme işleminden sonra yapılandırma tablosunu, hata oluşturan bir __newindex ile dondurarak yanlışlıkla çalışma zamanında değiştirilmesini önleyin.

Yapılandırmada Belgeleme

Kendini açıklayan belgeler olarak açıklamaları ve yapılandırılmış anahtar adlarını kullanın. İyi tasarlanmış bir yapılandırma DSL'si, DevOps ekipleri için kendini açıklar.

Yapılandırma DSL'si Sorusu

Bir yapılandırma dosyası neden yalıtılmış bir _ENV ile yüklenir?

Özet: Yapılandırma DSL'si Oluşturma

Bir config(tbl) işlevi sunun. İç içe bölümleri ve yardımcı işlevleri destekleyin. Yalıtılmış bir ortamda yükleyin. Zorunlu alanları ve türleri doğrulayın. Varsayılanlar sağlayın ve 12 faktör uyumluluğu için ortam değişkenleriyle geçersiz kılmaya izin verin.

Sıkça Sorulan Sorular

“Yapılandırma DSL'i Oluşturma” dersi ücretsiz mi?

Evet — “Yapılandırma DSL'i Oluşturma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.

“Yapılandırma DSL'i Oluşturma” dersinde ne öğreneceğim?

Korumalı alanda dofile() ile yüklenen bildirimsel bir yapılandırma dili oluşturun. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Lua Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Yapılandırma DSL'i Oluşturma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Lua'da DSL Tasarım İlkeleri
  2. DSL Akıcılığı için Operatör Aşırı Yükleme
  3. Yapılandırma DSL'i Oluşturma
  4. Basit İfade Ayrıştırıcısı
← Lua Academy Sayfasına Dön