SORU
4 Mayıs 2010, Salı


Ne kadar Esnek bir Eklenti Mimarisi Oluşturmak İçin?

Geliştirme çalışmalarında yinelenen bir tema veya bir eklenti mimarisi oluşturma kullanımı olmuştur. Birçok yönden yapılandırma dosyaları (XML, .yaklaştı gördüm conf, vb.), miras çerçeveler, veritabanı bilgileri, kütüphaneler, ve diğerleri. Benim durumumda:

  • Bir veritabanı veri ile yapılandırma bilgilerini, özellikle co-karışmış saklamak için harika bir yer değil
  • Miras hiyerarşisi ile bu girişimi eklentileri kodlu olması, plug-in mimarisi tüm bu dinamik değil anlamı hakkında bilgi gerektirir
  • Yapılandırma dosyaları da basit bilgi sağlamak için çalışır, ancak daha karmaşık davranışları kaldıramaz
  • Kütüphaneler iyi iş gibi görünüyor, ama tek yönlü bağımlılıklar özenle oluşturulmuş olması gerekir.

Beraber çalıştığım çeşitli mimarileri öğrenmek için arıyorum da önerileriniz için toplum için arıyorum. Nasıl eklenti sağlam bir mimari uygulanıyor mu? En kötü hatası (ya gördüğüm en kötü hatası) ne oldu? Eğer yeni bir eklenti mimarisi uygulamak için gidiyor olsaydın ne yapardın? SDK veya açık kaynak ile birlikte çalıştığın proje ne güzel bir mimarisinin en iyi örneği var mı?

Kendim buluyorum birkaç örnek:

Bu örnekler, çeşitli dil bildiğini yap gibi görünüyor. Güzel bir eklenti mimarisi mutlaka dili bağlı? Araçları kullanmak için en iyi eklenti mimarisi oluşturmak için, ya da kendi Aşağıdaki modeller üzerinde yapmak mı?

CEVAP
7 Mayıs 2010, Cuma


Bu bir değilcevappotansiyel olarak yararlı açıklamalar kadar bir sürü örnekleri var.

  • Uygulamanız genişletilebilir yapmak için tek etkin yolu, bir betik dili olarak kendi iç ortaya çıkarmak ve tüm üst düzey yazma dilinde bir şeyler için. Bu oldukça değiştirilebilir hale getirir ve geleceğe yönelik eğer senin ilkel insanların iyi seçilmiş ve uygulanmış ise) neredeyse. Bu tarz bir başarı hikayesi Emacs. Eğer işlevselliğini genişletmek istiyorum, API öğrenmek ve/ayrı bir eklenti yazmak derlemek gerek yok çünkü tutulma tarzı eklenti sistemine tercih ederim. Geçerli arabellek kendi içinde 3 satır bir kod yazıp, bunu değerlendirmek ve bunu kullanabilirim. Çok düzgün bir öğrenme eğrisi ve sonuçlar çok sevindirici.

  • Biraz genişletilmiş olduğum bir uygulama Trac. Bu durumda görevler uzantısı puan reklam modülleri verilmiş demektir bir bileşen mimarisi vardır. Sonra bu noktaları içine uyabilecek diğer bileşenlerini uygulamak ve akışını değiştirebilirsiniz. Biraz Kalkie önerisi yukarıdaki gibi.

  • İyi durumda olan bir tane py.test. "En iyi API" felsefesine dayanır ve tamamen kanca her düzeyinde çağrıldığını. hiçbir API izler Fonksiyonları bir sözleşmeye göre adlandırılmış/dosyaları bu kancalar geçersiz kılar ve bu davranışı değiştirebilirsiniz. Sitede eklentiler listesinde uygulanabilir nasıl görmek görebilirsiniz.

Birkaç genel bir puan.

  • Non-genişletilebilir/olmayan kullanıcı tarafından düzenlenebilir mümkün olduğunca küçük olarak core tutmaya çalışın. Uzama artar, böylece daha yüksek bir katman için elinden geleni temsilci. Daha az malzeme daha sonra kötü seçimler durumda çekirdek düzeltmek için.
  • Başlangıçta projenin gidişatı hakkında çok fazla kararlar vermemelisin yukarıda nokta ile ilgilidir. En küçük gerekli alt uygulamak ve eklentileri yazmaya başlayın.
  • Eğer betik dili gömdüğünüz, genel programlar ve oyuncak bir dil değil yazabilirsin tam olduğundan emin olunsadeceuygulamanız için.
  • Mümkün olduğu kadar çok klişe azaltmak. Böyle sınıflara, karmaşık API, eklenti kayıt falan uğraşmıyor. Bu yüzden bu basit tutmaya çalışınkolayve sadece değilmümkünuzatmak için. Bu eklenti API daha fazla kullanılmasına izin verecek ve son kullanıcılar eklentileri yazmak için teşvik edecektir. Sadece eklenti geliştiricileri. py.test iyi yapar. Bildiğim kadarıyla, does not Eclipse.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • natescamp

    natescamp

    30 NİSAN 2009
  • Qmusic Romania

    Qmusic Roman

    8 Temmuz 2011
  • Triune Films

    Triune Films

    9 ŞUBAT 2006