«design» etiketlenmiş sorular

Yazılım tasarımı ile problem çözme ve çözüm planlaması hakkında sorular.

11
Mükemmel ürün gamını tasarlama
Eğer bir dil tasarlayacak olsaydım, "mükemmel" ürün gamını nasıl tasarlayacağımı düşünüyordum. Sizin için bilmediğiniz bir ifadede 1-4 gibi bir değer aralığını temsil eden bir aralık değişmezini bilirsiniz. En çok foreach / foreach döngülerinde kullanılırlar Göz önünde bulundurulması gereken birkaç konu var gibi görünüyor Kapsayıcı ve özel aralıklar için destek, uç …

9
Sabit kodlanmış değerleri ve savunma tasarımını YAGNI ile kaldırma
İlk olarak biraz arka plan. Yaş -> Ücret aramasını kodluyorum. 7 yaş aralığı vardır, bu nedenle arama tablosu 7 satırlı 3 sütundan (Kimden | Kime | Ücret). Değerler nadiren değişir - bunlar 3 yıl boyunca aynı kalan yasal oranlardır (birinci ve üçüncü sütunlar). Bu tabloyu sabit kodlamadan depolamanın en kolay …
10 design 

6
Dijkstra, endişelerin ayrılması hakkında yazarken kod modülerleştirmeyi planladı mı?
İlk olarak, Edsger W. Dijkstra'nın 1974 tarihli "Bilimsel düşüncenin rolü hakkında" bir alıntı okudum: Size açıklamaya çalışayım, zevkimin ne olduğu tüm zeki düşünme için karakteristiktir. Kişi her zaman kişinin sadece bir yönüyle meşgul olduğunu bilerek, kendi tutarlılığının uğruna tek başına bir konunun bir yönünü derinlemesine incelemeye isteklidir. Bir programın doğru …

2
İstisnaların Ayrıntı Düzeyi
Birkaç arkadaş ve ben arasında bir tartışmaya girdim. İstisna alanları gibi ayrıntılarla ClientErrorExceptionve ServerErrorExceptionayrıntılarla genel istisnaları tercih ederken, işleri daha spesifik hale getirmeyi tercih ediyorum. Örneğin, aşağıdaki gibi bir avuç istisna olabilir: BadRequestException AuthenticationFailureException ProductNotFoundException Bunların her biri API'dan döndürülen hata koduna dayanarak oluşturulmuştur. İstisnaların Avantajları sonrasında bu Java için …

7
Derslerimi çok ayrıntılı mı yapıyorum? Tek Sorumluluk İlkesi nasıl uygulanmalıdır?
Üç temel adım içeren bir sürü kod yazıyorum. Bir yerden veri alın. Bu verileri dönüştürün. Bu verileri bir yere koyun. Tipik olarak, kendi tasarım modellerinden esinlenerek üç tip sınıf kullanıyorum. Fabrikalar - bazı kaynaklardan nesne oluşturmak için. Arabulucular - fabrikayı kullanmak, dönüşümü gerçekleştirmek, sonra komutanı kullanmak. Komutanlar - bu verileri …

2
Bu C ++ 'da "pImpl" tabanlı bir sınıf hiyerarşisi için iyi bir yaklaşım mı?
Arabirimi uygulamadan ayırmak istediğim bir sınıf hiyerarşisi var. Benim çözümüm iki hiyerarşiye sahip olmaktır: arabirim için tanıtıcı sınıf hiyerarşisi ve uygulama için ortak olmayan sınıf hiyerarşisi. Temel tanıtıcı sınıfı, türetilmiş tanıtıcı sınıflarının türetilmiş türde bir işaretçiye yayınladığı uygulamaya yönelik bir işaretleyiciye (işleve bakın getPimpl()) sahiptir. İşte benim türetilmiş iki sınıflı …
9 design  c++  c++11 

3
Arayüzlerin somut sınıflara bağlı olması uygun mudur?
Özel hata işleyici için Java'da arayüz oluşturuyorum. Bir argüman hata nesnesi geçmek istiyorum ama Exceptionsınıfın çocuğu olması gerekir . Tanımlı sınıf adımı bir arayüzde kullanmak uygun mudur? Herhangi bir uygulamaya bağımlı olmama açısından daha az bir arayüz oluşturmayacak mı? Böyle bir şey yapmaya çalışıyorum: public class CustomException { /* ... …

1
Kod Tasarımı: Keyfi işlevlerin devri
PPCG'de sık sık farklı kod botlarını birbirine düşüren King of the Hill zorluklarımız var. Bu zorlukları tek bir dille sınırlamaktan hoşlanmıyoruz, bu nedenle standart I / O üzerinden platformlar arası iletişim yapıyoruz. Amacım, meydan okuma yazarlarının bu zorlukları yazmayı kolaylaştırmak için kullanabilecekleri bir çerçeve yazmak. Aşağıdaki şartları yerine getirmek istiyorum: …

2
Veri Odaklı Arabirimlere Programlama
Kod tabanımızın aşağıdaki tarzda yazılmış bir kısmı vardır: // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { public …

2
Arayüz Ayrıştırma Prensibi: Arayüzler arasında önemli bir çakışma varsa ne yapmalı?
Gönderen Pearson Yeni Uluslararası Sürüm: Çevik Yazılım Geliştirme, İlkeleri, Desenleri, ve Uygulamaları : Bazen, farklı müşteri grupları tarafından çağrılan yöntemler çakışır. Örtüşme küçükse, gruplar için arayüzler ayrı kalmalıdır. Ortak işlevler, çakışan tüm arabirimlerde bildirilmelidir. Sunucu sınıfı, ortak arabirimleri bu arabirimlerin her birinden devralır, ancak yalnızca bir kez uygular. Bob Amca, …

2
Kodunuzun nasıl düzenleneceğini planlamak için UML diyagramlarını kullanmak neden uygunsuz?
Yani, evet, diyagramlar zaman zaman uygunsuz olabilir. Ne zaman uygunsuzlar? Onları doğrulamak için kod olmadan oluşturduğunuzda ve ardından bunları izlemeyi planladığınızda. Bir fikri keşfetmek için bir diyagram çizmenin yanlış bir yanı yoktur. Çevik Yazılım Geliştirme: İlkeler, Desenler ve Uygulamalar - Robert C. Martin Bununla tam olarak ne demek istiyor? UML …

5
Soyutlamalara bağlı olmanın önemli dezavantajları var mı?
Bu vikiyi Kararlı Soyutlamalar Prensibi (SAP) üzerine okuyordum . SAP, bir paket ne kadar kararlı olursa o kadar soyut olacağını belirtiyor. Bu, bir paket daha az kararlıysa (değişme olasılığı daha yüksekse) daha somut olması gerektiği anlamına gelir. Gerçekten anlamadığım şey, durumun neden böyle olması gerektiğidir. Elbette istikrardan bağımsız olarak her …

3
CRUD API: Güncellenecek alanları nasıl belirlersiniz?
Diyelim ki bir çeşit veritabanında var olan bir çeşit veri yapınız var. Basit olması için, bu veri yapısı diyelim Person. Artık diğer uygulamaların oluşturmasına, okumasına, güncellemesine ve silmesine izin veren bir CRUD API'si tasarlamakla görevlisiniz Person. Basit olması için, bu API'ya bir tür web hizmeti üzerinden erişildiğini varsayalım. CRUD'nin C, …

1
C ++ serileştirme tasarım incelemesi
Bir C ++ uygulaması yazıyorum. Çoğu uygulama gerekli veri alıntılarını okur ve yazar ve bu bir istisna değildir. Veri modeli ve serileştirme mantığı için üst düzey bir tasarım oluşturdum. Bu soru, tasarımımın bu belirli hedefler göz önünde bulundurularak incelenmesini istiyor: Veri modellerini keyfi formatlarda okumak ve yazmak için kolay ve …
9 design  c++  c++11 

2
Tüm modül kullanımını mı yoksa sadece genel yöntem argümanlarını mı doğrulamamız gerekiyor?
Genel yöntemlerin argümanlarının doğrulanmasının önerildiğini duydum: Biri null beklemiyorsa null olup olmadığını kontrol etmeli mi? Bir yöntem parametrelerini doğrulamalı mı? MSDN - CA1062: Genel yöntemlerin bağımsız değişkenlerini doğrulama (.NET arka planım var ama soru C # 'a özgü değil) Motivasyon anlaşılabilir. Bir modül yanlış bir şekilde kullanılacaksa, öngörülemeyen davranışlar yerine …

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.