«patterns-and-practices» etiketlenmiş sorular

Tasarım modelleri (sık karşılaşılan sorunlara tekrarlanabilir çözümler) ve yazılım mühendisliğindeki en iyi uygulamalar

11
“Efsanevi Adam Ayı” ndaki “Ameliyat Ekibi” modeline ne oldu?
Yıllar önce, Efsanevi Adam-Ay'ı okuduğumda, diğer kaynaklardan zaten bildiğim birçok şey buldum. Ancak, kitabın 1975'ten kalma olmasına rağmen, orada da yeni şeyler vardı. Bunlardan biri: Ameliyat Ekibi Mills, büyük bir işin her bölümünün bir takımla mücadele edilmesini, ancak ekibin domuz-kasaplık ekibinden ziyade cerrahi bir ekip olarak organize edilmesini önerir. Yani, …

13
İstisnalar - girişler teknik olarak geçerli, ancak karşılanamaz olduğunda belirlenen boş sonuç
Kamuya açıklanması amaçlanan bir kütüphane geliştiriyorum. Nesnelerin kümeleri üzerinde çalışmak için çeşitli yöntemler içerir - kümeleri oluşturmak, incelemek, bölümlemek ve kümeleri yeni biçimlere yansıtmak. İlgili olması durumunda, IEnumerableNuGet paketi olarak piyasaya sürülecek LINQ tarzı uzantıları içeren bir C # sınıfı kütüphanedir . Bu kütüphanedeki yöntemlerden bazıları tatmin edici olmayan giriş …

6
Birim testleri için yürütme emrini uygulamak kötü bir uygulama mıdır?
Birden fazla alt modülden oluşan bir proje için testler yazıyorum. Yazdığım her test durumu birbirinden bağımsız çalışıyor ve testler arasındaki tüm verileri temizliyorum. Testler bağımsız çalışsa da, bazı durumlarda birden fazla alt modül gerektirdiğinden, yürütme emrini yerine getirmeyi düşünüyorum. Örneğin, bir alt modül veri üretiyor, diğeri veri üzerinde sorgular çalıştırıyor. …

2
Javascript için pratikte uygulanabilir olan herhangi bir OO prensibi var mı?
Javascript, prototip tabanlı nesne yönelimli bir dildir ancak aşağıdaki yöntemlerden biriyle çeşitli şekillerde sınıf tabanlı olabilir: Sınıf olarak kullanılacak işlevleri kendiniz yazmak Şık bir sınıf sistemi bir çerçevede kullanın (örneğin, mootools Class.Class gibi ) Coffeescript'ten oluşturun Başlangıçta Javascript’te sınıf tabanlı bir kod yazmam ve yoğun bir şekilde güvenmem gerekti. Ancak …

4
Çıkarılması gereken bir özellik geliştirmek mi? [kapalı]
Bireysel katılımcılar (programcılar / tasarımcılar) amacıyla bir obje geliştirdi hangi modelin adı ne olacak şekilde bir saptırma olarak hizmet etmek olduğunu yönetim nihai üründe bu özelliği kaldırabilirsiniz ? Bu, eskiden büyük bir oyun geliştirme şirketinde çalışan eski bir meslektaşımdan duyduğum bir folklor. Bu şirkette, orta yönetimin “girdi vermek” ve üründe …

4
Const anahtar sözcüğü değişkenler için C’de ne zaman ve hangi amaçlarla kullanılmalıdır?
Burada kodumu incelerken constanahtar kelimeyi kullanma sorunu ortaya çıktı. Değişkenlere salt okunur davranış uygulamak için kullanıldığını biliyorum. Yararlı olabileceği çeşitli durumların ne olduğu konusunda kafam karıştı. İşlev prototiplerinde açıklık sağlamak için kullanılmalı mıdır? Kod geliştirme sırasında güvenlik önlemi olarak mı kullanılmalı? Çalışma zamanı sabitlerini bildirmek için çeşitli fonksiyonlar kapsamında mı …

8
“Yapılmadıysa bir şeyler yap” terimi için terim (ya da “kalıp”?) [Kapalı]
Kulağa oldukça basit geliyor, biliyorum, ama son zamanlarda bir meslektaşım bana bir yöntemin startHttpServeranlaşılmayacak kadar karmaşık olduğunu söylemişti, çünkü sadece zaten çalışmıyorsa, sunucuyu başlatıyor. "Cidden mi? Bunu yıllardır yapıyorum - programlamada çok yaygın bir kalıptır." Kabul etmeyi umduğumdan çok daha fazla, tüm programlama topluluğunun kendi bakış açısının gerisinde olduğunu ve …

5
“Yapılandırma kongre” temel programlama ilkelerini ihlal etmiyor mu?
WPF MVVM çerçevesi Caliburn.Micro'ya bakıyordum ve birçok standart şeyin adlandırma kurallarına dayandığını okudum . Örneğin, Görünüm'deki özelliklerin ViewModel'deki özelliklere otomatik olarak bağlanması. Her ne kadar bu uygun görünse de (bazı boyler kodunu kaldırsa da), ilk içgüdüsel tepkim bu kodu okuyacak yeni bir programcı için tamamen açık olmadığı yönünde. Başka bir …

11
Hata değişkenleri bir model mi yoksa iyi bir tasarım mı?
Yürütmeyi durdurmaması gereken olası birkaç hatayla başa çıkmak için error, istemcilerin istisnalar atmak için denetleyebileceği ve kullanabileceği bir değişkenim var. Bu bir Anti-Pattern mi? Bununla baş etmenin daha iyi bir yolu var mı? Bunun bir örneği olarak PHP'nin mysqli API'sini görebilirsiniz. Görünürlük sorunlarının (erişimciler, genel ve özel kapsam, bir sınıftaki …

6
Çocuğun ebeveyni referansını başlatmanın en iyi yolu nedir?
Çok sayıda farklı ebeveyn / çocuk sınıfı olan bir nesne modeli geliştiriyorum. Her alt nesnenin üst nesnesine bir başvurusu vardır. Ana referansı başlatmak için birkaç yol düşünebilirim (ve denedim), ancak her yaklaşımın önemli dezavantajlarını buldum. Aşağıda açıklanan yaklaşımlar göz önüne alındığında hangisi en iyisidir ... veya hangisi daha iyidir. Aşağıdaki …



3
Genel bir API'de türler nasıl temsil edilir?
Kendi müşterim için kullanmak ve gelecekte halka açmak istediğim basit bir API üzerinde çalışıyorum. Farklı "türleri" olabilecek "Öğe" nesnelerim var. Bu tip bir C "typedef enum" türü: typedef enum { ItemTypeBool, ItemTypeNumber, ItemTypeDate, } ItemType; (Gelecekte bazılarını ekleyebilirim) Merak ediyorum tamsayı olarak mı yoksa "dizge" olarak mı tanımlamalıyım? JSON şöyle …

6
Sadece başka bir fonksiyonda kullanılan fonksiyonları, o fonksiyonun içine mi koymalıyım?
Özellikle, JavaScript ile yazıyorum. Diyelim ki birincil işlevim İşlev A dır. İşlev A, İşlev B'ye birkaç çağrı yaparsa, ancak İşlev B başka bir yerde kullanılmazsa, İşlev B'yi İşlev A'ya yerleştirmem gerekir mi? Bu iyi bir uygulama mı? Yoksa yine de İşlev B'yi İşlev A ile aynı kapsamda mı koymalıyım?

12
Hangi tasarım desenleri en kötü veya en dar tanımlanmıştır? [kapalı]
Her programlama projesi için geçmiş programlama deneyimine sahip yöneticiler, projeniz için bazı tasarım desenleri önerdiklerinde parlamaya çalışırlar. Tasarım kalıplarını anlamlı bulduklarında veya ölçeklenebilir bir çözüme ihtiyaç duyduğunuzda seviyorum. Örneğin, Proxy'leri, Gözlemcileri ve Komut örneklerini olumlu bir şekilde kullandım ve bunu her gün yapıyorum. Ancak, bir nesneyi yaratmanın tek bir yolu …

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.