«patterns-and-practices» etiketlenmiş sorular

Tasarım modelleri (sık karşılaşılan sorunlara tekrarlanabilir çözümler) ve yazılım mühendisliğindeki en iyi uygulamalar

1
Etki Alanı Etkinliği kullanmak veya uygulama katmanının her şeyi düzenlemesine izin vermek arasında nasıl seçim yapılır
İlk adımımı etki alanı odaklı tasarıma koyuyorum, mavi kitabı ve hepsini aldım ve kendimi belirli bir çözümü uygulamak için üç yol görüyorum. Kayıt için: CQRS veya Event Sourcing kullanmıyorum. Diyelim ki bir kullanıcı isteği uygulama servis katmanına giriyor. Bu isteğin iş mantığı (herhangi bir nedenden ötürü) varlık üzerindeki bir yönteme …

7
Veritabanında bit maskesi kullanmanın avantajları ve dezavantajları
Çok uzun zaman önce meslektaşımla konuştum ve kesinlikle bit maskeleri kullanmaya karşı çıktı çünkü veritabanında depolanan tüm değerleri anlamak zordu. Kanımca, örneğin mevcut kullanıcının rollerini belirlemek için bunları kullanmak her zaman kötü bir fikir değildir. Aksi halde, ayrı bir tabloda saklamanız gerekir, bu da bir JOIN daha ekleyecektir. Yanılıyorsam bana …

4
Bir nesneyi oluşturmak için yöntem zincirini kullanan deyim adı nedir?
Bir nesneyi, a veya desene benzer şekilde ayarlamak için yöntem zincirini kullandığım , ancak her yöntem çağrısı ile yeni nesneler oluşturmadığım, orijinal nesneyi değiştirdiğim bir desen kullanıyorum .BuilderPrototype Örnek: new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner"); Sadece bu kalıp için bir isim olup olmadığını ve bunun anti-pattern olarak kabul edilip edilmediğini merak etmek, çünkü …

4
Büyük veritabanlarında yanlış veri güncellemelerinden kaçınmak için izlediğiniz uygulamalar nelerdir?
Herhangi bir üretim dağıtımından önce verilen tipik bir tavsiye, önce DB'yi yedeklemektir. Bu şekilde, yeni güncellemede potansiyel veri kaybına veya mantıksal veri bozulmasına yol açabilecek bir sorun varsa, eski kayıtları karşılaştırmak ve düzeltmek için bir yedeğiniz vardır. Ancak, DB boyutu birkaç GBs olana kadar bu iyi çalışabilir. DB boyutu büyük …

2
Yeni System.Tuple sınıfı kötü tasarım kullanıyor mu?
System.Tuple kavramını beğendim, çünkü yeni bir sınıf oluşturmadan tek bir işlev çağrısında birden fazla parametre döndürmeme izin veriyor, ancak bu, Microsoft Patterns & Practices, SOLID Principles, vb.Gibi iyi programlama uygulamalarına meydan okuyor. Ben sadece bu özelliği ne kadar liberal olarak kullanmam gerektiğini ya da sadece gerektiğinde uç senaryo senaryolarında kullanmam …

9
Yeni bir ekip olarak sürdürülebilirlik sorunları olan bir projeye öncülük etmek için ne yapmalı?
Ben sadece sürdürülebilirlik sorunları olan bir kod projesinden sorumlu tutuldu. Projeyi sağlam bir temelde oturtmak için ne yapabilirim? Kendimi, birim testleri, IOC, MEF, çok fazla statik sınıf, saf veri seti vb. sadece 24 ama neredeyse üç yıldır buradayım (bu uygulama 5 yıldır geliştirilmektedir) ve çoğunlukla zaman kısıtlamaları nedeniyle sadece diğer …

6
Deneme / Yakalama / Günlük / Tekrar Et - Anti Desen mi?
Merkezi konumda veya süreç sınırında istisna işlemenin öneminin denemek / yakalamak etrafında her kod bloğunu çöp yerine iyi bir uygulama olarak vurgulandığı birkaç yazı görebiliyorum. Çoğumuzun önemini anladığımıza inanıyorum, ancak insanların genellikle herhangi bir istisna sırasında sorun gidermeyi kolaylaştırmak için catch-log-rethrow anti modeliyle son bulduklarını görüyorum. geçti) ve yol, try …

4
Kullanıcı tanımlı alanlara izin vermek kötü bir uygulama mı?
Genel olarak konuşursak, bir webapp için bir veritabanında kullanıcı tarafından oluşturulan alanlara izin vermek kötü uygulama olarak kabul edilir mi? Örneğin, eşim için bir ev envanteri web uygulaması yapıyorum ve farklı öğeler için kendi alanlarını tanımlamak isteyecek. Öğe kategorileri oluşturmasına ve bu kategorilere "özellikler" eklemesine izin vermeyi planlıyordum. Özellikler sadece …


4
Enjeksiyon bağımlılıkları ctorda mı yoksa yöntem başına mı yapılmalıdır?
Düşünmek: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } karşısında: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …

5
Alıcıları ve ayarlayıcıları birleştirme
JQuery gibi JavaScript kitaplıkları, programlama arayüzünde 'getters' ve 'setters' öğelerini birleştirir: $('element').css({'color','blue'}); rengi ayarlayacak veya $('element').css(); bir öğe için css alır. Böyle bir model için bir isim var mı ve uygulamalarda kullanmak iyi bir uygulama mı?

6
Strateji Modelinin Avantajları
Eğer if / then durumunda kodunuzu yazabiliyorsanız strateji modelini kullanmak neden yararlıdır? Örneğin: Bir TaxPayer sınıfım var ve yöntemlerinden biri farklı algoritmalar kullanarak vergileri hesaplıyor. Öyleyse neden if / then durumlarına sahip olamaz ve strateji modelini kullanmak yerine bu yöntemde hangi algoritmayı kullanacağını anlayamıyor? Ayrıca, neden TaxPayer sınıfındaki her algoritma …


6
Alıcıları ve ayarlayıcıları hangi sırayla tanımlar? [kapalı]
Şu anda olduğu gibi, bu soru Soru-Cevap formatımıza uygun değil. Yanıtların gerçekler, referanslar veya uzmanlık tarafından desteklenmesini bekliyoruz, ancak bu soru muhtemelen tartışma, tartışma, oylama veya genişletilmiş tartışma talep edecektir. Bu sorunun çözülebileceğini ve muhtemelen yeniden açılabileceğini düşünüyorsanız, yardım için yardım merkezini ziyaret edin . 7 yıl önce kapalı . …

5
Düşüncemi C ++ 'dan C #' ye nasıl taşıyabilirim?
Deneyimli bir C ++ geliştiricisiyim, dili ayrıntılı olarak biliyorum ve bazı özelliklerini yoğun bir şekilde kullandım. Ayrıca, OOD prensiplerini ve tasarım modellerini biliyorum. Şimdi C # öğreniyorum ama C ++ zihniyet kurtulmak değil duygu durduramıyorum. Kendimi C ++ güçlü yönlerine o kadar sıkı bağladım ki, bazı özellikler olmadan yaşayamam. Ve …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.