«design» etiketlenmiş sorular

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


3
Uygulamada açık-kapalı ilkesine nasıl uyulur
Açık-kapalı prensibinin amacını anlıyorum. Değiştirmeden genişletmeyi denemenizi söyleyerek, değiştirirken zaten çalışan bir şeyi kırma riskini azaltmak içindir. Ancak, bu prensibin uygulamada nasıl uygulandığını anlamakta zorlandım. Anladığım kadarıyla bunu uygulamanın iki yolu var. Olası bir değişiklikten önce ve sonra: Önce: soyutlamalara programlayın ve 'geleceği tahmin edin' olabildiğince. Örneğin , gelecekte sisteme …

5
DRY'yi kuplajı arttırmadan uygulamak mümkün müdür?
Bir F fonksiyonunu uygulayan bir yazılım modülümüz A olduğunu varsayalım. Başka bir B modülü F 'ile aynı fonksiyonu uygular. Yinelenen koddan kurtulmanın birkaç yolu vardır: A'nın B'den F 'kullanmasına izin verin. B'nin A'dan F'yi kullanmasına izin verin. F'yi kendi modül C'sine yerleştirin ve hem A hem de B'yi kullanmasına izin …

3
Tek bir uygulama oluşturan çokluk. Umutsuz mu? Servis bulucu mu kullanıyorsunuz?
Enjeksiyonları kabul etmek yerine doğrudan bağımlılıklarını oluşturan 1001 müşterimiz olduğunu varsayalım. Patronumuza göre 1001'i yeniden düzenlemek bir seçenek değil. Aslında kaynaklarına erişime bile izin verilmiyor, sadece sınıf dosyalarına. Yapmamız gereken, bu 1001 müşterinin geçtiği sistemi "modernize etmek" tir. İstediğimiz her şeyi yeniden düzenleyebiliriz. Bağımlılıklar bu sistemin bir parçasıdır. Ve bu …

5
OOP Kodlama stili: yapıcıdaki her şey başlatılsın mı?
Kendimi hala bir çırak programcısı olarak görüyorum, bu yüzden her zaman tipik programlama için "daha iyi" bir yol öğrenmek istiyorum. Bugün, iş arkadaşım kodlama tarzımın bazı gereksiz çalışmalar yaptığını ve başkalarından fikir duymak istediğini savundu. Tipik olarak, bir sınıfı OOP dilinde (Genellikle C ++ veya Python) tasarladığımda, başlatmayı iki farklı …

1
İki Java 8 varsayılan yöntemini birbirleri açısından uygulamak iyi bir uygulama mudur?
Buna benzer iki yöntemle bir arayüz tasarlıyorum: public interface ThingComputer { default Thing computeFirstThing() { return computeAllThings().get(0); } default List<Thing> computeAllThings() { return ImmutableList.of(computeFirstThing()); } } Uygulamaların yaklaşık yarısı sadece bir şeyi hesaplarken, diğer yarısı daha fazla hesaplayabilir. Bunun yaygın olarak kullanılan Java 8 kodunda emsali var mı? Haskell'in bazı …


5
Uygulamadan önce bir arayüz API'si yazmalı mıyım?
Son zamanlarda daha "organize" programlamaya giriyorum ve bir uygulamaya değil, bir arayüze programlamam gerektiğini öğreniyorum. Bunu göz önünde bulundurarak, mümkün olan yerlerde uygulamayı yazmadan önce arabirimlerdeki bir projeyi "taslak haline getirmek" daha iyi olur mu? Ve eğer durum buysa, 3. taraf kitaplıkların (örneğin Lidgren) kullanılması durumunda, bunları arayüzlere de sarmalı …

2
Tasarım kararı - neden <p> olmadan </p> üretelim?
tl; Dr. Html üreten bazı yaygın olarak kullanılan programlar, tarayıcının paragrafları düzgün bir şekilde kapatacağını varsayarsak, yalnızca açılış paragraf etiketlerini oluşturur ve kapanış olanları oluşturmaz. Görünüşe göre, tarayıcıların paragrafları düzgün bir şekilde kapatacağı varsayımı doğru değil. Benim yorumum doğru mu? Daha genel olarak, bu tür bir karara hangi ödünleşmeler dahildir? …

10
RDBMS'ler neden birleştirilmiş tabloları iç içe biçimde döndürmüyor?
Örneğin, bir Kullanıcıyı ve tüm telefon numaralarını ve e-posta adreslerini almak istediğimi varsayalım. Telefon numaraları ve e-postalar ayrı tablolarda saklanır, Bir kullanıcıya birçok telefon / e-posta. Bunu oldukça kolay bir şekilde yapabilirim: SELECT * FROM users user LEFT JOIN emails email ON email.user_id=user.id LEFT JOIN phones phone ON phone.user_id=user.id Buradaki …
14 design  sql  rdbms 

7
Bir vekil anahtar bir kullanıcıya maruz kalmalı mıdır?
Genellikle doğal anahtarı olmayan bir tabloda, kullanıcıların benzersiz bir şekilde oluşturulmuş bir tanımlayıcıya sahip olması hala yararlıdır. Tablonun yedek bir birincil anahtarı varsa (ve böyle bir durumda kesinlikle beklemeniz gerekir), bu anahtar kullanıcıya açık olmalı mı yoksa bu amaçla başka bir alan kullanılmalı mıdır? Yedek anahtarı göstermemenin bir nedeni, artık …

3
Strateji kalıbını kullanarak Java'da genel dosya ayrıştırıcı tasarımı
Modüllerden birinin sorumluluğunun XML dosyalarını ayrıştırmak ve gerekli içeriği bir veritabanına dökmek olduğu bir ürün üzerinde çalışıyorum. Mevcut gereksinim yalnızca XML dosyalarını ayrıştırmak olsa da, ayrıştırma modülümü gelecekte her türlü dosyayı destekleyebileceğim şekilde tasarlamak istiyorum. Bu yaklaşımın nedeni, bu ürünü belirli bir müşteri için inşa etmemiz, ancak yakın gelecekte diğer …
14 java  design  parsing  xml 

1
Havuz desenini doğru kullanıyor muyuz?
-repositoryVeritabanından veri almak için eklenmiş bir grup ayrı sınıf kullanıyoruz ; her tablo için kendi havuzu. Örneğin customerrepository, müşterileri almak için her türlü yöntemi olan ve vacancyrepositoryboş pozisyonları almak için her türlü yöntemi olan bir sınıfa sahibiz . Bu şekilde bir şeyler yapmayla ilgili iki sorum var: Birden çok tabloyu …

8
Teknik görüşmelerde OO Design ile ilgili sorular [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 4 yıl önce kapalı . Son zamanlarda oldukça az sayıda röportaja katıldım ve şirketler tarafından "bir model ekle" sorularını birkaç defadan fazla …

5
'Util' dersleri almak endişe yaratıyor mu? [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ı . …

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.