«design» etiketlenmiş sorular

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

7
Sorgu dizesi ile URI tarafından bir REST api tasarlama
Diyelim ki bununla ilişkili üç kaynağım var: Grandparent (collection) -> Parent (collection) -> and Child (collection) Yukarıdakiler, bu kaynaklar arasındaki ilişkiyi şöyle gösterir: Her büyükbaba veya büyükanne bir veya birkaç ebeveyne eşlenebilir. Her ebeveyn bir veya birkaç çocuğa harita verebilir. Çocuk kaynağına karşı arama yapmayı ancak filtre kriterleri ile desteklemeyi …
73 design  rest  api 

7
Normal yolu izlemeli miyim yoksa erken mi başarısız olmalıyım?
Gönderen Kod tam kitabında aşağıdaki alıntı gelir: "Normal davaya sıradan sonra ifdeğil else" Bu, standart yoldan istisnaların / sapmaların elsekasaya konması gerektiği anlamına gelir . Fakat Pragmatik Programcı bize “erken çökmeyi ” öğretti (s. 120). Hangi kurala uymalıyım?
73 design 

11
40 yıldan daha uzun ömürlü web uygulaması tasarlama önerileri
senaryo Şu anda, temel gereksinimi, sağlık hizmeti sağlayıcıları tarafından kullanıcı tarafından oluşturulan formları kullanarak bilinmeyen özelliklerle veri toplamak olan bir sağlık projesi dışındayım. İkinci gereklilik, veri bütünlüğünün kilit olması ve uygulamanın 40+ yıl boyunca kullanılması. Şu anda müşterinin geçmiş 40 yıldaki verilerini çeşitli kaynaklardan (Paper, Excel, Access, vb.) Veritabanına taşıyoruz. …

9
Neden kısmi sınıflar kullanılıyor?
Anladığım kadarıyla, partialanahtar kelime bir sınıfın birkaç kaynak dosya arasında bölünmesine izin vermekten başka bir şey yapmaz. Bunu kod organizasyonu dışında yapmak için herhangi bir sebep var mı? Bunun için oluşturulan UI sınıflarında kullanıldığını gördüm. Tam bir anahtar kelime oluşturmak için kötü bir neden gibi görünüyor. Bir sınıf birden fazla …

12
SQL: boş dize vs NULL değeri
Bu konunun biraz tartışmalı olduğunu biliyorum ve internette dolaşan birçok makale / görüş var. Maalesef çoğu, kişinin NULL ile boş dize arasındaki farkın ne olduğunu bilmediğini varsayıyor. Bu yüzden birleşme / toplanmalarla şaşırtıcı sonuçlar hakkında hikayeler anlatıyorlar ve genellikle biraz daha gelişmiş SQL dersleri veriyorlar. Bunu yaparak, tüm noktayı kesinlikle …
72 design  database  sql  strings  null 

7
C # 'daki uzatma yöntemlerine sahip arabirimler yerine soyut sınıflar ne zaman kullanılır?
"Soyut sınıf" ve "arabirim" benzer kavramlardır; arabirim ikisinin daha soyut olmasını sağlar. Farklılaşan bir faktör, soyut sınıfların gerektiğinde türetilmiş sınıflar için yöntem uygulamaları sağlamasıdır. Bununla birlikte, C # 'da, bu farklılaşma faktörü, arayüz yöntemleri için uygulamaların sağlanmasına olanak tanıyan uzatma yöntemlerinin tanıtımıyla azaltılmıştır. Bir başka farklılaşma faktörü, bir sınıfın sadece …

10
Önerilen tasarımım genellikle meslektaşımınkinden daha kötü - nasıl daha iyi olabilirim? [kapalı]
Birkaç yıldır programlama yapıyorum ve genellikle sorunları çözmek ve küçük-orta dereceli komut dosyaları oluşturmak konusunda iyiyim, ancak genellikle büyük ölçekli programları nesne yönelimli olarak tasarlama konusunda iyi değilim. Birkaç soru Son zamanlarda, benimle aynı yıllara dayanan bir meslektaşım ve ben bir problem üzerinde çalışıyorduk. Ondan daha uzun bir problem üzerinde …

12
“Her şey bir Harita”, bunu doğru yapıyorum?
Stuart Sierra'nın " Data In Thinking " konusundaki konuşmasını izledim ve yaptığım oyunda bu fikirlerden birini tasarım ilkesi olarak aldım. Aradaki fark Clojure'de çalışıyor ve ben JavaScript'te çalışıyorum. Buradaki dillerimiz arasında bazı büyük farklılıklar görüyorum: Clojure deyimsel olarak işlevsel programlama Çoğu devlet değişmez Fikrini "Her Şey Bir Harita" slaytından aldım …

4
Java koleksiyonları neden arayüzde "isteğe bağlı yöntemlerle" uygulandı?
Java koleksiyon çerçevesini genişleten ilk uygulamam sırasında, koleksiyon arayüzünün isteğe bağlı olarak bildirilen yöntemler içerdiğini görmekten çok şaşırdım. Uygulayıcının desteklenmiyorsa UnsupportedOperationExceptions atması bekleniyor. Bu hemen bir zayıf API tasarım seçimi olarak beni vurdu. Joshua Bloch'un mükemmel "Etkili Java" kitabının çoğunu okuduktan ve daha sonra bu kararlardan sorumlu olabileceğini öğrendikten sonra, …

7
Amaçlanan davranışı yapmadan önce işlevlerin boş denetimler yapması gerekiyorsa, bu kötü tasarım mı?
Bu yüzden, bunun iyi mi yoksa kötü kod tasarımı mı olduğunu bilmiyorum, bu yüzden sormam daha iyi olur. Sık sık, sınıfları içeren veri işleme yöntemlerini oluşturuyorum ve elimden önce boş referanslar veya başka hatalar alamadığımdan emin olmak için çoğu zaman yöntemler üzerinde birçok kontrol yapıyorum. Çok basit bir örnek için: …
67 c#  design  validation 

12
Hata atıp atmamamız gerektiğini belirten bir bayrak olması
Kısa süre önce, bazı eski geliştiricilerin bulunduğu bir yerde çalışmaya başladım (yaklaşık 50+ yaşında). Sistemin çökemediği havacılık ile ilgili kritik uygulamalar üzerinde çalıştılar. Sonuç olarak, eski programcı bu şekilde kodlama eğilimindedir. Bir istisna atılıp atılmayacağını göstermek için nesnelere bir boolean yerleştirme eğilimindedir. Örnek public class AreaCalculator { AreaCalculator(bool shouldThrowExceptions) { …


11
Tek Sorumluluk İlkesini Netleştirin
Tek Sorumluluk İlkesi, bir sınıfın sadece bir tek şey yapması gerektiğini belirtir. Bazı davalar oldukça açık. Yine de diğerleri zordur, çünkü belirli bir soyutlama seviyesinde bakıldığında "bir şey" gibi görünen şey, daha düşük bir seviyede bakıldığında birçok şey olabilir. Ayrıca, Tek Sorumluluk Prensibi daha düşük seviyelerde onurlandırılırsa, aşırı derecede ayrışmış, …

14
MVC anti OOP değil midir?
OOP'un arkasındaki ana fikir, veri ve davranışları tek bir varlıkta (nesne) birleştirmek. Prosedürel programlamada veri var ve verileri değiştiren ayrı algoritmalar var. Model-View-Controller modelinde, veri ve mantık / algoritmalar sırasıyla model ve kontrolör olarak ayrı varlıklara yerleştirilir. Eşdeğer bir OOP yaklaşımında model ve kontrolör aynı mantıksal varlığa yerleştirilmemeli midir?


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.