«design» etiketlenmiş sorular

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

3
Dairesel bağımlılık nasıl çözülür?
Birbirine dairesel bağlı üç sınıfım var: TestExecuter, TestScenario'nun isteklerini yerine getirir ve ReportGenerator sınıfını kullanarak bir rapor dosyasını saklar. Yani: TestExecuter, raporu oluşturmak için ReportGenerator'e bağlıdır ReportGenerator, TestScenario'ya ve TestExecuter'dan ayarlanan parametrelere bağlıdır. TestScenario, TestExecuter'a bağlıdır. Bağırsak bağımlılıklarının nasıl giderileceğini çözemiyorum. public class TestExecuter { ReportGenerator reportGenerator; public void getReportGenerator() …

7
Bir özelliği uygulamak için iyi bir fikrim yoksa ne olur? [kapalı]
Kendi başvurum üzerinde çalışıyorum ve takılıyorum. Bir özellik uygulamak zorundayım, ancak bu özelliği uygulamak için iyi bir yaklaşım bulamıyorum. Birkaç gündür bunu düşünüyordum ve iyi düşünceler gelmedi. İnternette arama yapmak bana ilham vermedi. Devam etmeliyim, ama bilmek istiyorum, en iyisi nedir: Daha fazla düşün, daha fazla bekle ve en iyi …
32 design 

3
En az şaşkınlık ilkesi nedir?
Programlamada en az şaşkınlık ilkesi ne denir? Bu konseptin iyi API'ler tasarlama ile ilgisi nedir? Bu sadece nesne yönelimli programlama için uygulanabilir mi yoksa başka programlama tekniklerine de nüfuz ediyor mu? Bu, "yönteminizde tek bir şey yapmak ve iyi yapmak" ilkesiyle mi ilgili?

2
Ölçeklenebilir bir bildirim sistemi nasıl tasarlanır? [kapalı]
Bir bildirim sistemi yöneticisi yazmam gerekiyor. İşte benim gereksinimlerim: Tamamen farklı olabilecek farklı platformlarda bir Bildirim gönderebilmem gerekiyor (örneğin, SMS veya E-posta gönderebilmem gerekiyor). Bazen bildirim, belirli bir platformdaki tüm alıcılar için aynı olabilir, ancak bazen platform başına alıcı (veya birkaç) başına bildirim olabilir. Her bildirim platforma özgü veri yükü …

18
Bir geliştirici gereksiz veya zararlı özelliklere karşı mı tartışmalı?
Yeni özellikleri ve yani kritik olmayan / sorgulanamayan özellikleri tartışırken geliştiricilerin iyi bir tutumu nedir? Dil gibi bir tür Java geliştirdiğinizi ve patronun dediği gibi: "Geliştiricilerin doğrudan nesne belleğiyle başa çıkabilmeleri için işaretçilere ihtiyacımız var!" Geliştirici, düşünülemez bir karmaşıklık ve güvenlik açıkları eklediği için fikri aşağı çekmeli mi, yoksa sorulan …
32 design 


1
“StringBuilder”, Builder Design Pattern'in bir uygulaması mı?
“Oluşturucu” paterni “teleskop yapıcı” anti paternini ele almakla sınırlandırılmış mıdır, yoksa karmaşık değişken nesnelerin yaratılmasının daha genel bir soruna hitap ettiği söylenebilir mi? StringBuilderSınıf adında kelime "oluşturucu" var, ama Kurucular iç içe ile ilgisi yoktur, sadece bize değişmez bir nesnenin yapıcısı geçmek için gereken tüm verileri toplamak yardımcı olur. Bana …

10
Herhangi bir fiziksel miktarın, taşma veya akış olmadan 64-bit bir tamsayı ile temsil edilebileceğini varsaymak mantıklı mıdır?
JDK'daki orijinal ikili arama algoritması, 32-bit tam sayılar kullandı ve eğer (low + high) > INT_MAX( http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html ) . Aynı ikili arama algoritmasını (imzalı) 64 bit tam sayıları kullanarak yeniden low + highyazdıysak, INT64_MAX değerini asla aşmayacağını varsayabiliriz, çünkü fiziksel olarak 10 ^ 18 bayt olması imkansız mı? Fiziksel büyüklükleri …

5
Yukarıdan aşağıya veya aşağıdan yukarıya doğru tasarım tercih edilir mi?
Anladığım kadarıyla, yukarıdan aşağıya tasarım, en küçük yapı taşı tanımlanana kadar soyut yüksek seviye konseptini daha küçük beton ve anlaşılabilir parçalara rafine ederek yapmaktır. Öte yandan, aşağıdan yukarıya düşük seviyeli parçaları tanımlar, daha sonra tüm sistem oluşana kadar kademeli olarak daha yüksek seviye blokları oluşturur. Uygulamada, iki yöntemi birleştirmenin en …
31 design  c++  lisp 

15
Programcılar inşaat sektöründen neler öğrenebilir? [kapalı]
İş arkadaşlarınızla yazılım tasarım ve geliştirme ilkeleri hakkında konuşurken, analojiler için en yaygın kaynaklardan birinin inşaat endüstrisi olduğunu fark ettim. Biz inşa yazılım ve biz tasarım ve yapı olarak kabul mimarisi . Öğrenmenin (veya öğretmenin) en iyi yollarından biri analojileri analiz etmektir - inşaattan başka hangi analojiler çıkarılabilir? (zaten yazılımda …


5
Ürün tasarım kararlarının arkasındaki gerekçeleri kaydetmenin etkili bir yolu nedir?
Şirketimizde ürün tasarım belgelerini kullanmıyoruz. Toplam üç çalışanımız var, bu nedenle tüm ürün tasarımı tartışması şahsen veya Slack'de gerçekleşiyor. (Ayrıca yalnızca en yeni mesajları görüntülemenizi sağlayan temel Slack paketindeyiz.) Ürünümüz hala erken aşamada ve aylar önce karar verilen tasarım öğelerini tekrar ziyaret ediyoruz. Sık sık sıkça karşılaştığımız bir sorun, ürün …

9
Bireysel özellikler yerine bütün sınıfları parametre olarak alabilmek için bir Sınıf tasarlamak
Diyelim ki, denilen yaygın olarak paylaşılan bir sınıfla bir uygulamanız var User. Bu sınıf, kullanıcı, kimliği, adı, her modüle erişim düzeyleri, saat dilimi vb. Hakkındaki tüm bilgileri gösterir. Kullanıcı verilerine açıkça sistem genelinde geniş bir şekilde atıfta bulunulmaktadır, ancak her ne sebeple olursa olsun, sistem bu kullanıcı nesnesini ona bağlı …
30 java  c#  design  solid 

10
Bir at sürüsü göz önüne alındığında, tek boynuzlu atların ortalama boynuz uzunluğunu nasıl bulabilirim?
Yukarıdaki soru, eski kodda karşılaştığım ortak bir problemin veya bu problemi çözmek için önceki girişimlerden kaynaklanan problemlerin daha doğru bir örneğidir. Yöntem gibi bu sorunu çözmeyi amaçlayan en az bir .NET framework yöntemi düşünebilirim Enumerable.OfType<T>. Ama nihayetinde çalışma zamanında bir nesnenin türünü sorguya çekmenizin gerçeği benimle tam oturmuyor. Her ata …

2
python factory işlevi en iyi yöntemler
foo.pyBir sınıf içeren bir dosyam olduğunu varsayalım Foo: class Foo(object): def __init__(self, data): ... Şimdi Foo, ham kaynak verilerinden belirli bir şekilde bir nesne yaratan bir işlev eklemek istiyorum . Foo'da statik bir yöntem mi yoksa ayrı bir işlev olarak mı kullanmalıyım? class Foo(object): def __init__(self, data): ... # option …
30 design  python 

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.