Konu Başlıkları
Yükleniyor...

Karmaşık İşlemlerde Form mu Uygulama mı: Eşik Nerede

Form ile web uygulaması arasında seçim: karar kuralı

Bir işlemin form olarak mı yoksa uygulama olarak mı kurulacağı çoğu zaman alan sayısına bakılarak kararlaştırılır. Doğru ölçü alan sayısı değil, kullanıcının vermek zorunda kaldığı karar sayısıdır. Form, kararı olmayan doğrusal işleri taşır; kararlar dallanmaya başladığı anda taşıyıcılığını kaybeder.

Form neyi iyi yapar

Form sabit bir soru kümesini tek seferde toplamak için vardır. Abonelik kaydı, fatura adresi, basit bir destek talebi. Sorular herkes için aynıysa ve sıraları değişmiyorsa formdan ucuz çözüm yok: tek şablon, tek doğrulama kümesi, tek gönderim.

Sınırı da buradan gelir. Sorulardan biri "duruma göre" cevaplanıyorsa form o durumu taşımak zorunda kalır, taşıdığı anda da form olmaktan çıkar.

"İki ekranı aşıyorsa" ölçüsü neden tutmaz

Yaygın tavsiye şudur: form iki ekranı aşıyorsa uygulamaya çevirin. Pratik duruyor ama ekran cihaza bağlı bir birim. Masaüstünde iki ekran tutan bir form telefonda beş ekran tutar, yani aynı form aynı gün iki ayrı karara götürür. Ölçüyü cihazın belirlediği yerde ölçü yoktur.

Sayılması gereken şeyler daha somut. Kaç zorunlu alan var? Kaç tanesi kullanıcının o an bilmediği bir bilgiyi istiyor, sipariş kodu, IBAN, poliçe numarası gibi? Kaç koşullu dallanma var? Üç dallanma ve dışarıdan bakılması gereken iki bilgi, hepsi tek ekrana sığsa bile o akış artık form değildir.

Koşullu alanlar nerede kırılır

Dallanmayı forma sığdırmanın standart yolu alanları duruma göre gizleyip göstermektir. Görünürde çalışır, altta iki ayrı doğrulama kümesi biriktirir: istemcinin gösterdiği ile sunucunun beklediği. Gizlenmiş alanı gönderilmemiş saymayı, o alanı sunucuda hiç kabul etmemekten daha kırılgan bulurum; ilkinde tarayıcıda kalmış eski bir değer sessizce kaydedilir, ikincisinde istek net biçimde reddedilir ve hatayı aynı gün görürsünüz.

Buradan işe yarar bir eşik çıkıyor: ekranda gizlediğiniz her alan için, o alanın hangi koşulda geçerli olduğunu sunucu tarafında da yazabiliyor olmanız gerekir. Yazamıyorsanız akış forma sığmıyor demektir.

Uygulama neyi satın alır, neye mal olur

Uygulamanın formdan tek farkı vardır ve her şeyi o fark belirler: durum tutar. Kullanıcı yarıda bırakıp döndüğünde kaldığı yerden devam eder, önceki cevaplarına göre sonraki adımı değiştirir, girilen veriyi beklemeden doğrular. Kredi başvurusu, sigorta teklifi, ürün yapılandırıcısı bu yüzden uygulama olarak kurulur.

Bedeli de aynı yerden gelir. Yarım kalmış bir başvurunun ne kadar saklanacağı, alanlar değiştiğinde eski kayıtların ne olacağı, kullanıcı tarayıcının geri düğmesine bastığında hangi adımın geçerli sayılacağı, hepsi ayrı birer karardır ve ayrı ayrı test ister. Bir formu bir öğleden sonra kurarsınız. Çok adımlı bir akışın kenar durumlarını haftalarca kovalarsınız, üstelik bunların çoğu tasarım dosyasında hiç görünmez.

Karar kuralı

Sırayla üç soru sorun: sorular herkes için aynı mı, kullanıcı cevapları ekrana gelmeden önce biliyor mu, işlemin yarıda bırakılması beklenen bir durum mu? Cevaplar evet, evet ve hayır ise form yeterli, uygulamaya geçmek sadece bakım yükü ekler. İçlerinden biri değişiyorsa akışı baştan uygulama olarak kurun. Formu büyüterek aradaki mesafeyi kapatmaya çalışmak ikisinin de kötü bir sürümünü verir: uygulamanın karmaşıklığını taşıyan, ama durumu tutmayan bir ekran.