«design» etiketlenmiş sorular

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

1
Bir üçüncü taraf kodunun sarılması, tüketicilerini birim test etmek için tek çözüm mü?
Birim sınaması yapıyorum ve sınıflarımdan birinde yöntemlerden birinden posta göndermem gerekiyor, bu yüzden yapıcı enjeksiyonunu kullanarak Zend_MailZend çerçevesindeki sınıf örneğini enjekte ediyorum . Şimdi bazı insanlar bir kütüphane yeterince kararlıysa ve sık sık değişmeyecekse, onu sarmaya gerek olmadığını savunuyorlar. Bu nedenle Zend_Mail, istikrarlı olduğunu ve değişmeyeceğini ve ihtiyaçlarıma tamamen uyduğunu …


4
Latin alfabesinin görsel ve işitsel olarak anlaşılır alt kümesi?
Birisine "5SBDO0" kodlu bir kart verdiğinizi düşünün. Bazı yazı tiplerinde, "S" harfinin beş sayıdan görsel olarak ayırt edilmesi zordur (sıfır ve "O" harflerinde olduğu gibi). Kodu yüksek sesle okumak, "B" yi "D" den ayırt etmek, "B çocuk gibi B", "D köpek gibi" demek veya yerine " fonetik alfabe " kullanmak …
13 design 

8
Tek sorumluluk ilkesi - gereğinden fazla mı kullanıyorum?
Referans için - http://en.wikipedia.org/wiki/Single_responsibility_principle Ben bir uygulama modülünde defter girişleri oluşturmaktan sorumlu olduğu bir test senaryosu var. Gerçekleştirilebilecek üç temel görev vardır - Mevcut defter girişlerini tablo biçiminde görüntüleyin. Oluştur düğmesini kullanarak yeni defter girişi oluşturun. Tablodaki bir defter girişine tıklayın (ilk işaretçide belirtilir) ve ayrıntılarını bir sonraki sayfada görüntüleyin. …

7
Bir tasarım belgesi, belirli bir tasarımın artılarını / eksilerini tartışmalı mı yoksa gerçeklere ve mantığa mı odaklanmalı?
Şu anda bir tasarım belgesini, gelecekteki geliştiriciler için doğru ve güncel olacak şekilde güncelleme sürecindeyim. Şu anda, belge tasarımın nasıl olduğunu gösteren sadece gerçeklere odaklanmaktadır. Sunulan kararlar için herhangi bir gerekçe yoktur. Gerekçelerin yakalanmasının önemli olduğunu düşünüyorum, böylece geliştiriciler bir şeyin neden olduğu gibi olduğunu biliyorlar, çünkü bu muhtemelen gelecekteki …

3
SOLID ilkelerini uygulama
SOLID tasarım ilkelerinde oldukça yeniyim . Sebeplerini ve faydalarını anlıyorum, ancak yine de SOLID ilkelerini kullanmak için pratik bir egzersiz olarak yeniden düzenlemek istediğim daha küçük bir projeye uygulayamıyorum. Mükemmel çalışan bir uygulamayı değiştirmeye gerek olmadığını biliyorum, ancak yine de yeniden düzenlemek istiyorum, böylece gelecekteki projeler için tasarım deneyimi kazanıyorum. …

4
İstisna yönetimi kesişen bir konu mu?
İstisna işleme ve oturum açma kaygıları arasında, her ikisinin de birbiriyle kesişen endişeler olduğunu fark etmiyorum. Ne düşünüyorsun? Bir yöntemin uyguladığı çekirdek mantık ile serpiştirilmekten ziyade ayrı ayrı ele alınmamalı mı? EDIT : Söylemeye çalışıyorum, bence bir yöntem uygulaması sadece başarılı yürütme yolu için mantık içermeli ve istisnalar başka bir …

3
Parametreli sorgulara güvenmek SQL enjeksiyonuna karşı korumanın tek yolu mudur?
SQL enjeksiyon saldırılarında gördüğüm tek şey, parametreli sorguların, özellikle de saklı yordamlardaki sorguların, bu tür saldırılara karşı korunmanın tek yolu olduğunu gösteriyor. Çalışırken (Karanlık Çağlarda) depolanmış prosedürler, daha az bakım yapılabilir oldukları için kötü uygulama olarak görülüyordu; daha az test edilebilir; yüksek derecede birleşmiş; ve bir sistemi tek bir satıcıya …

7
Geliştirme Yaklaşımı: Kullanıcı Arayüzü Girişi veya Etki Alanı Modeli Çıkışı?
Smalltalk kullanarak hiçbir şey teslim etmeme rağmen, onunla oynadığım kısa zaman kesinlikle izini bıraktı. Deneyimi tanımlamanın tek yolu MVC'dir. Esasen, uygulamanız için tüm ağır kaldırma iş nesnelerinde (veya çok eğimli iseniz etki alanı modelinde) yapılır. Standart kontroller bir şekilde iş nesnelerine bağlıdır. Örneğin, bir metin kutusu bir nesnenin alanıyla eşlenir …

5
Alan Cooper'ın Birleşik Dosya Modeline ne oldu?
Alan Cooper ("About Face" kitabının 3 versiyonunda), diğer şeylerin yanı sıra, şimdiye kadar icat edilen en aptalca mesaj kutusu dediği şeyden vazgeçmek için "birleşik bir dosya modeli" ni tanıtmaktadır. "Değişikliklerinizi silmek istiyor musunuz?" yazan bir uygulama veya formdaki kapat düğmesine basıldığında açılır. Fikri ve argümanlarını seviyorum, ama aynı zamanda çoğu …

4
“Bildirim merkezi” modeli iyi veya kötü program tasarımını teşvik ediyor mu?
Bazen bu mesaj göbeği tarzı API'larla karşılaşıyorum, örneğin Cocoa NSNotificationCenter: http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html Genellikle bu API'lar, mesajlara / etkinliklere abone olduğunuz veya yayınladığınız global bir erişim noktası sağlar. Bağımlılık API açık değil, ancak kaynak kodunda gizli düz ve yapılandırılmamış bir program mimarisi teşvik çünkü bu bir sorun olduğunu düşünüyorum. Nesne sahipliği ve …

1
Bir dilbilgisine dayalı bir lexer yazarken izlenen prosedür nedir?
Dilbilgisi, Lexers ve Parsers hakkında açıklama konusundaki bir cevabı okurken , cevap şunları söyledi: [...] bir BNF dilbilgisi sözlüksel analiz ve ayrıştırma için ihtiyacınız olan tüm kuralları içerir. Bu benim için biraz garip geldi, çünkü şimdiye kadar, bir lexer'ın bir gramer üzerine hiç dayanmadığını düşünürken, bir ayrıştırıcı büyük ölçüde bir …

4
Veri değerlerini programa kodlamanın avantajları var mı?
Ben kendi kendini yetiştirmiş, acemi bir kodlayıcıyım, bu yüzden programcıyı dilediğime özür dilerim. Temelde verilerdeki sorgulardan raporlar oluşturmak için bir araç oluşturacak geliştiricilere sürekli olarak güncellenecek veriler sağladığım bir proje üzerinde çalışıyorum. Anlaşılan herkes, rapor oluşturma programına veri değerlerini (şema değil, etki alanları / değerlerin kendileri) sabit olarak kodlamaları gerektiğini …

6
İnsan tarafından okunabilir en basit yapılandırma dosyası biçimi nedir? [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 . 5 yıl önce kapalı . Geçerli yapılandırma dosyası aşağıdaki gibidir: mainwindow.title = 'test' mainwindow.position.x = 100 mainwindow.position.y = 200 mainwindow.button.label = 'apply' …


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.