Ana içeriğe atlaZiva En İyi Uygulamaları
Ziva’u üretim sistemlerine entegre ederken bu rehberi kullanın. Yapı, doğrulama, stil, performans ve test konularında ipuçları içerir.
Mimari ve kod düzeni
- Kuyrukları okunur tutmak için görev oluşturmayı fabrika/yardımcı fonksiyonlara taşıyın.
- Görevleri aşamalara ayırın ve her aşama için ayrı kuyruklar çalıştırın (topla → doğrula → uygula). Bu yaklaşım testi ve yeniden kullanımı kolaylaştırır.
queue.Run() sonrasında ihtiyaç duyacağınız görev referanslarını saklayın; görevler durumlarını korur.
- Kuyruk oluşturmadan önce
main() içinde ziva.AutoConfigure() çağırın ve dil ayarlarını (SetDefaultLanguage, SetLanguage) yapın.
Kuyruk yönetimi
- Uzun senaryolarda
WithTasksNumbered(true, "[%02d]") kullanarak numaralandırma ekleyin; operatörler daha hızlı yön bulur.
- Son özet gerekmediğinde
WithOutSummary() ile kapatın; aksi hâlde WithSummaryFunction ile önemli sonuçları satır içinde gösterin.
- Headless ortamlarda (CI, SSH) mutlaka
WithTimeout*() belirtin ve senaryo için güvenli bir varsayılan değer seçin.
- Dinamik akışlarda yeni bir
Queue oluşturun, üretilen görevleri ekleyin ve ana kuyruktan sonra çalıştırın.
Doğrulama ve giriş
Description() metinlerini kullanıcı dostu tutun — Ziva metni alanın altında gösterir.
DefaultValidators içindeki yerleşik doğrulayıcıları özel tiplerle birleştirin. Karmaşık kurallar için kompozisyon yapın ve testlerle güvence altına alın.
- Boş girişe izin verecekseniz
WithAllowEmpty(true) ile boş değeri kabul eden doğrulayıcıları (örn. OptionalEmail) birlikte kullanın.
- CRM’de kopya e-posta gibi harici kontroller gerekiyorsa girdiden sonra
FuncTask ekleyin ve sonucu kullanıcıya gösterin.
Stil ve yerelleştirme
- Marka renklerini yakalamak için
ziva.SetErrorColor kullanın; denemelerden sonra ResetErrorColors() çağırmayı unutmayın.
- Kısıtlı terminallerde
EnableEmbeddedMode() ve EnableASCIIMode() kombinasyonu çıktıyı okunur tutar.
- Tamamlanan görev geçmişini
ZIVA_MAX_COMPLETED_TASKS ortam değişkeniyle sınırlandırın.
- Belleği
ZIVA_MEMORY_PRESSURE_THRESHOLD ile izleyin ve uzun ömürlü CLI’larda ziva.ClearInternCache() çağırarak string önbelleğini temizleyin.
- Büyük listelerde
WithViewport(...) kullanın; arayüz tepki verilir kalır.
- Ağır işleri küçük
FuncTask adımlarına bölün ki kullanıcı sık sık ilerleme görsün.
Test ve hata ayıklama
- Görev fabrikalarını unit testlerle doğrulayın: görevi oluşturun,
Update ile mesaj simüle edin ve son durumu kontrol edin.
examples/ altında demo kuyruklar tutun ve manuel olarak çalıştırın. Kayıt sırasında WithClearScreen(false) ayarıyla ekran görüntüsü/GIF almak kolaylaşır.
WithStopOnError(true) nedeniyle durdurulan kuyruklar için Ziva dışında (örn. log, zap) hata kaydı tutun.
Yayın öncesi kontrol listesi
Bu önerileri örnekler bölümündeki kodlarla birlikte kullanarak dayanıklı ve kullanıcı dostu Ziva tabanlı TUI’ler geliştirin.