2016-03-26 35 views
1

DDD ve mimari ve son birkaç hafta hakkında çok şey okudum ve şu anki projemin gerçekten dağınık olduğu sonucuna vardım. uygulama (web uygulaması) kiralık araçların gerçek zamanlı konumlarını (her 2 saniyede bir güncellemeleri) gösterir, konumları eski bir koddan gelir (birçok kaynaktan gelen verileri alan ve db'ye belirli bir biçimde yerleştiren arka plan hizmeti) Şu an için değiştirilemeyen uygulama, verileri db'den alıp, farklı biçime dönüştürüyor - harita altyapımız için uygun bir format (şu anda ESRI) ve db'de saklamak, böylece tüm kullanıcılar Verileri mümkün olduğunca çabuk.Sunumdan ayrı etki alanı modelleri

Sorunum alan adı modelleri (araba, tren ..) sunum uygulanması ile karıştırılır, örneğin bizim araba sınıfı bir konum yani

@Entity 
class Car { 
    long id; 
    @Ref long manufacturerId 
    @Ref String customerId; 
    ESRIJson currLocation; (pretension related) 
  • Bizim DB gibi bir şey mongodb olduğunu görünüyor subdoc olarak kaydedildi

Araç modelimi sunma nedenlerinden nasıl ayırabilirim, çünkü şimdi ESRI kullanıyoruz, yarın başka bir şey kullanabiliriz, ancak bunun gerçek zamanlı olması gerekir. Çünkü Her istek için formatlar arasında gizlenemiyorum, bu çok ağır bir işlem.

cevap

2

Bir nesneyi (arabanızdaki araç) ikiye bölmek isteyebileceğinizi açıklayan CQRS'ye bir göz atın. Bir tanesi yazı yazmak için kullanılır (aslında alan modelinizin yaşadığı yerdir) ve bir diğeri okumak için kullanılır. Okumak için model, okuma için daha iyi hale getirilmiştir ve okuma modelinizde sunuma özgü verileri mükemmel şekilde okur. Farklı amaçlar için optimize edilmiş çoklu okuma modellerine bile sahip olabilirsiniz. Ayrıca, yapmaya çalıştığınız şey "kahverengiyi ayırma" dır, eski sisteminizle ayrı bir sınırlı bağlam olarak ilgilenirsiniz. Siz, bu eski veri tabanından okumak (bunu yapmak için daha iyi bir yol bulabileceğinizi merak ediyorum), kendi türünüze karşı bir çeşit yolsuzlukla mücadele tabakası kullanıyorsunuz. Bu DDD'de iyi ve iyi bilinen bir modeldir.

İlgili konular