web-gelistirme-sc.com

Dinamik bir GUI oluşturmanın iyi yolları?

Tasarladığım bir uygulama var ve şu anda oldukça işlevsel bir durumda. Ama kullandığım veritabanında 1000 öğe var ve sürekli değişiyor ve büyüyor. Belirli veri öğelerinin uygulanması, kullanıcı kısıtlamalarına da bağlı olarak değişebilir (ürün ile arayüz, kullanıcı seviyeleri, vb.). Bu düzeni veritabanı temelde GUI düzenleri kontrol noktaya mümkün olduğunca esnek yapmaya çalıştım.

Bir şey değiştiğinde her şeyi yeniden yapmak zorunda kalmadan bu GUI'yi mümkün olduğunca temiz ve kullanımı kolay hale getirmek istiyorum. Yani temelde ....

Dinamik/ölçeklenebilir bir GUI yapmak için iyi yaklaşımlar nelerdir? Böyle bir şey mümkünse.

EDIT- Şimdiye kadar iyi şeyler, siz neden bahsettiğimi görmek istediğiniz için, işte bir fikir. Gruplandırmalar ve görüntüleme biçimleri ve soldaki dinamik bir yapılandırma ağacına ayrıştırılmış diğer şeyler içeren bir SQLite veritabanı var ve sekmeler ve grup kutuları tüm dinamik bazı yaratıcı SQL oluşturulur. Çok fazla veri var, bu yüzden genel bir şey tam olarak kötü bir şey değil, çünkü karmaşık şeyler zaten daha az gelişmiş kullanıcılardan gizlenecek. Veritabanı düzgün kurulursa bu çok iyi çalışabileceğini düşünüyorum.
Biraz çalışmam gereken bir sihirbaz da var, ancak çok sık dokunulmadığı için bunun bir sürü işini kolaylaştıracak. Ancak, sihirbazdan geçmeden hepsinin erişilebilir olması gerekir, böylece birisi özel bir yapılandırma ayarlayabilir.

10
radix07

"Veritabanının temelde GUI mizanpajlarını kontrol ettiği noktaya olabildiğince esnek" dediğinde ne düşündüğünü biliyorum, ancak bu bir uyarı işaretidir: kullanılabilirlik maliyeti. Bunu, geliştiricilerin veritabanı ve nesne yönelimli mimarisini kullanıcı arayüzüne genişlettikleri "programcı kullanıcı arayüzleri" ile çok şey görüyorum. Ne yazık ki, genellikle son kullanıcı yerine programcı için tasarlanmış bir kullanıcı arayüzü ile sonuçlanırsınız.

Benim tavsiyem, ideal süper esnek, dinamik, ölçeklenebilir GUI'yi aramayı unutmak ve bunun yerine tasarım yapabileceğiniz kullanım kalıplarını tanımlamaya başlamak olacaktır. Daha fazla ayrıntı sağlarsanız (bu alan için tasarladığınız alan adı, örnekler, örnekler vb.) Size bu alanda daha fazla yardımcı olabilirim.


Düzenle: Yani, eklediğiniz ekran görüntüsüne giderek, veritabanının karmaşıklığı kullanıcı arayüzüne dökülüyor gibi görünüyor. Burada gördüğüm şey tam anlamıyla seçeneklerle dolu büyük bir pano - parlayan düğmelerle dolu panellerle Star Trek'te olduğumu hissediyorum! Bir yabancı olarak kendimden hızlı bir ilk izlenim vereyim:

Görünüşe göre bir şey yapılandırıyoruz. Solda yapılandırılacak bir öğe seçerek, sağ alan değiştirilebilen parametrelere karşılık gelen giriş alanlarıyla güncellenir mi? Ancak bu giriş alanlarının kendileri bir sekme içinde bulunur ve ekran görüntüsünün sağına doğru akan çok sayıda sekme vardır. Ayrıca, her alanın etiketi en iyi şekilde şifrelenir: "Mx Ld Fct". Gezinirken daha fazla açıklayan bir etiket görüyorsunuz, ancak gerçekten aradığım şey olmadığını öğrenmek için farklı öğelerin üzerine gelmek ister miyim? Paskalya yumurtası avı gibi. Ayrıca, sol alt kısımda "araçların" ne yaptığı açık değil. Soldaki her iki bölme de en üst düzeye çıkarılabilir gibi görünüyor, ancak hangi etkiye sahip olduğundan emin değilim.

Bununla nereye gittiğini biraz görebiliyorum, ama buna karşı tavsiyede bulunmalıyım. Bu işlemi daha önce yapmadıysanız nedenini açıklamak zor. Verebileceğim en iyi tavsiye, şu anda bunu kullanacak bazı kişileri kapmak ve uygulamayı kullanmasını sağlamak. Onlarla birlikte oturun ve bazı ortak görevleri yerine getirmelerini isteyin. Yorum yapmadan, ne yaptıklarını izleyin ve düşüncelerinizin ne olduğunu bir not defterine yazın. Çok şey öğreneceksin. Bunu her hafta, tüm geliştirme ekibi ile yapmaya çalışın.

13
Rahul

Dikkate alacağım bazı noktalar var:

  • Uzun dizelerin düzeni bozmadığından emin olun. Doğal olarak verilerin kendisinden bahsediyorum, ancak çevredeki kullanıcı arayüzü de acı çekebilir. Örneğin, düğmeli bir komut çubuğu düşünün. Düğmelerdeki metin çevrildiğinde, büyüyebilir ve çubuktan taşabilirler.
  • Kullanıcı arayüzünün bazı bilgileri "tembel yük" haline getirin ve sayfalandırmayı kullanmayı düşünün. Örneğin, binlerce öğenin aynı anda yüklenmesi çok uzun sürebilir - kullanıcı arayüzünün yüklenirken donmuş veya kırık görünmediğinden veya bir sayfa yüklediğinizden ve geri kalanı yüklerken kullanıcı ile etkileşime girebildiğinden emin olun kullanıcı arayüzü.

Aksi takdirde, Rahul'a katılıyorum, daha ayrıntılı olmak için daha fazla ayrıntıya ihtiyacımız var.

4
Dan Barak