SORU
20 AĞUSTOS 2008, ÇARŞAMBA


Neden varlık nesneleri ihtiyacımız var mı?

Tamam, biliyorum, belki downvoted içine oblivion için bu soru, özellikle belirli duruşumu madde, ama gerçekten görmeniz gerek, biraz dürüst, düşünceli tartışma faziletlerine şu anda kabul ettikurumsal uygulamatasarım paradigması.

Varlık nesneleri olması gerektiğine inanıyorum.

Bizim gibi uygulamalar için inşa eğilimindedir tipik şeyler yani varlık nesneleri"", "Hesap", "Düzen", vb. Kişi

Güncel tasarım felsefem bu

  • Tüm erişim veritabanı saklı prosedürler) yerine getirmesi gerekir.
  • Veri ne zaman ihtiyacın olursa, bir saklı yordam çağrısı ve bir SqlDataReader veya DataTable satırları üzerinde yineleme

Ayrıca Java EE ile kurumsal uygulamalar yaptım, java Millet lütfen benim için equvalent değiştirin. (not: NET örnekler)

Anti-OO değilim. Farklı amaçlar için sınıfların çok, varlıkları sadece yazıyorum. Yazıyorum sınıfların büyük bir kısmı statik yardımcı sınıflar olduğunu kabul ediyorum.

Oyuncak yapıyorum. Büyük, yüksek hacimli işlem uygulamaları birden fazla makine geneli hakkında konuşuyorum. Web uygulamaları, windows hizmetleri, b2b etkileşim, adını Sen Koy hizmetleri.

Kullanılmış VEYA Mappers var. Birkaç yazdım. Yığın EE Java, CSLA, ve birkaç diğer benzerleri kullandım. Sadece onları kullandım ama aktif ve üretim ortamlarında bu uygulamalar gelişmiş sürdürdü.

Varlık nesneleri bizim engel olan savaş-test sonucuna vardım, ve yaşamlarımız olurdubu yüzdenonlar olmadan çok daha kolay.

Bu basit bir örneği ele alalım: düzgün çalışmayan uygulama belirli bir sayfa hakkında Destek telefon gelir, belki alanlardan biri olması gerektiği gibi. değil kalıcıdır Benim modeli ile geliştirici sorunu bulmak için atanmış açartam 3 dosyaları. Bir SEO bir SEO.CS ve bir SQL saklı yordam ile dosya. Saklı yordam çağrısı için eksik bir parametre olabilir sorunu çözmek için birkaç dakika sürer. Ama herhangi bir varlık modeli ile, her zaman hata ayıklayıcı, ateş, kod geçişi başlar ve 15-20 dosyaları Visual Studio açmak ile sona erebilir. Yığının dibine adım zaman, seni unuttum. Sadece bir anda kafamıza bir sürü şey devam edebiliriz. Yazılım gereksiz katmanları eklemeden inanılmaz derecede karışık.

Karmaşıklık ve sorun giderme gelişme benim sancı sadece bir yüzü.

Şimdi ölçülebilirlik hakkında konuşmak.

Geliştiriciler her yazma veya veritabanı ile etkileşim herhangi bir kodu değiştirmek her zaman, veritabanı üzerinde tam etki throrough bir analiz yapmak gerektiğini biliyor musunuz? Ve sadece geliştirme kopyası, yani bir taklit üretim, gördüğünüz gibi bu ek sütun artık ihtiyaç için nesne sadece geçersiz geçerli bir sorgu planı ve bir rapor oldu çalışan 1 saniye olacak şimdi 2 dakika, diye ekledi bir tek sütun seçim listesi? Ve sen Şimdi İste Endeksi DBA dosyalarınızın fiziksel düzeni değiştirmek ne kadar büyük olduğu ortaya çıktı?

Eğer insanlar, çok uzağa fiziksel veri deposu uzak bir soyutlama ile izin verirsen, ölçek için gereken uygulama ile zarar verirler.

Bir bağnaz değilim. Eğer yanılıyorsam ikna olabilirim, ve belki de bu kadar güçlü bir itme, ADO.NET EF, Hazırda bekleme, Java EE Sql için doğru Seri, vb vardır beri öyleyim. Lütfen cevaplarınızı düşün, eğer ben bir şey eksik Eğer gerçekten ne olduğunu ve benim düşüncemi değiştirmem gerektiğini bilmek istiyor.

[Düzenle]

Bu soru aniden tekrar aktif gibi görünüyor, yeni yorum özelliği var şimdi doğrudan çeşitli cevaplar yorumladı. Cevaplar için teşekkürler, bu sağlıklı bir tartışma olduğunu düşünüyorum.

Muhtemelen kurumsal uygulamalar bahsediyorum daha net olmalıydı. Gerçekten üzerinde yorum yapamam, diyelim birinin masaüstünde veya mobil bir uygulama çalıştıran bir oyun.

Burada birkaç benzer yanıtlar yanıt olarak üstüne koymak zorunda olduğum bir şey var: kaygılar genellikle varlık gitmek için sebep olarak gösterildi olsun diklik ve ayrılık/ORM. Saklı yordamları, bana, aklıma endişeleri ayrılığı en iyi örnektir. Eğer izin vermemek diğer tüm veritabanını access, başka ile saklı yordamları olabilir teorik olarak yeniden tüm veri modeli ve kıracak herhangi bir kod, çok uzun olarak tutulan giriş ve çıkışların saklı. Sözleşme ile (kaçınmak sürece " * " ve sonuç kümeleri belge) seçin. programlama mükemmel bir örnektir

Kaç uygulama ve UI katmanlar bir veritabanı üzerinde yaşamış olsa gelip gitti? uzun zamandır sektöründe olmuş ve uzun ömürlü uygulamalar ile çalışmış biri soruyor: Ne kadar zor melodi ve 4 veya 5 farklı sebat katmanları SQL veri elde etmek için üreten bir veritabanı yeniden Düzenle. Hiçbir şeyi değiştiremezsin! ORMs veya SQL üreten herhangi bir kodtaş veritabanı kilit.

CEVAP
20 AĞUSTOS 2008, ÇARŞAMBA


Aşağı nasıl "mantık uygulaması", ve uygulanan yerde. karmaşık geliyor sanırım Eğer mantığınız saklı yordamları ve uygulama yaptığı tüm bu işlemleri aramak ve sonuçları görüntülemek, daha sonra gelişmekte olan varlık nesneleri gerçekten de zaman kaybıdır. Ama bu nesnelerin birbiriyle zengin etkileşimler ve veritabanı sadece bir kalıcılık mekanizması olduğu bir uygulama için, bu nesnelerin sahip olmaya değer olabilir.

Bu yüzden, herkese uyan tek bir cevap yok diyebilirim. Geliştiriciler, bazen de OO olmaya çözer daha fazla sorunlara neden olabilir farkında olmak gerekir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ADDVOiCE

    ADDVOiCE

    28 Mayıs 2009
  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • fast2hell

    fast2hell

    16 AĞUSTOS 2006