Yazılım Mühendisliği

Sistem geliştirme yaşam döngüsü içinde çalışan profesyoneller, akademisyenler ve öğrenciler için soru-cevap

2
Durum bilgisi olan bir kütüphanenin üzerinde yan etkisi olmayan arayüz
Bir In John Hughes ile mülakat o Erlang ve Haskell bahsediyor, o Erlang durum bilgisi kütüphaneleri kullanma hakkında söylenecek aşağıdaki vardır: Durum bilgisi olan bir kütüphane kullanmak istersem, genellikle kodumun geri kalanında güvenle kullanabilmem için yan etkisiz bir arayüz oluştururum. Bununla ne demek istiyor? Bunun nasıl görüneceğine dair bir örnek …

1
Ziyaretçi Desenini Anlama
GUI denetimlerini temsil eden bir sınıflar hiyerarşisi var. Bunun gibi bir şey: Control->ContainerControl->Form Çeşitli şeyler yapan nesnelerle çalışan bir dizi algoritma uygulamak zorundayım ve Ziyaretçi deseninin en temiz çözüm olacağını düşünüyorum. Örneğin, bir nesne hiyerarşisinin Xml temsilini oluşturan bir algoritmayı ele alalım. 'Klasik' yaklaşımını kullanarak şunu yaparım: public abstract class …

3
Jenerikler nasıl uygulanır?
Derleyici iç perspektifinden gelen soru budur. Ben jenerikler, şablonlar (C ++) ile ilgilenmiyorum, bu yüzden soruyu C # ile işaretledim. Java değil, çünkü AFAIK her iki dildeki jenerikler uygulamalarda farklılık göstermektedir. Jenerik olmayan dillere baktığımda oldukça basit, sınıf tanımını doğrulayabilir, hiyerarşiye ekleyebilir ve hepsi bu. Fakat genel sınıfla ne yapmalı …
16 c#  generics 


2
Tipik bir modern mikroişlemci boru hattı ne kadardır?
Boru hattı hakkında bazı şeyler öğrendim ama bunlar 4 aşamalı ve 5 aşamalıydı ve tipik olarak modern boru hattının uygulamada çok daha uzun ve daha karmaşık olduğunu düşünüyorum. Tipik boru hatları ne kadar sürer ve ne kadar artmasını bekleyebiliriz ve daha uzun boru hatları için performans kazançlarında azalan getirilere ulaşma …

5
“Tüm ekip” C ++ özellikleri?
C ++ 'da istisnalar gibi özellikler tüm programınızı etkiler: programınızın tamamında bunları devre dışı bırakabilir veya kodunuz boyunca bunlarla uğraşmanız gerekir. Bir olarak ünlü C ++ Raporuna makale koyar: Sezgisel olarak, kodlama istisnalarının zor kısmı açık atışlar ve yakalamalar değildir. İstisnaları kullanmanın gerçekten zor kısmı, araya giren tüm kodu, keyfi …

3
Kural Motorları Prologda Neden Yazılmıyor? [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 . 6 yıl önce kapalı . Prolog'da gördüğüm kadarıyla, bir uygulama için bir kural motoru hazırlamak için ideal gibi görünüyor. Yine de, Prolog'da …

2
Açık kaynaklı yazılımın kapalı kaynaklı yazılıma dönüşen bazı etkileri nelerdir?
Bir şirket izinli olarak lisanslanmış bir açık kaynak uygulaması alır ve daha sonra uygulamanın geniş bölümlerini yeniden çalışarak, yeni özellikler ekleyerek ve hata düzeltmeleri uygulayarak kapalı kaynak uygulaması geliştirirse ... Lisans gereksinimlerini yok saymak ... Geçiş nasıl gerçekleşir ve bir fark lisansı seçmenin ötesinde bunu önlemek için neler yapılabilir? Şirketin …

4
Kavramsal olarak, bir oyun için kurallar / kısıtlamalar (grafikler / fizik değil) nasıl yapılır?
Kendi maceranı seç kitaplarına benzer basit bir oyun yapmak istiyorum. Oyuncuya bir anlatı metni sunulur ve eylemini bir olasılıklar listesinden seçer. Bu da yeni bir anlatı metnine, reklam sonsuzluğuna yol açar. Tek yakalama, önceki bazı kararlara bağlı olarak, olasılık listesinin farklı olabileceğidir. İlk bakışta, bu, if-else deyimlerinin bir yükü gibi …

1
Fonksiyonel ara formun dezavantajları
JavaScript'e benzer bir dil için bir optimize edici yazıyorum ve bir ara kod temsili seçmem gerekiyor. Bugünlerde bariz / tipik seçim Statik Tekil Atama'dır (SSA). Bununla birlikte, C'deki Modern Derleyici Uygulaması, aynı zamanda temel olarak ara gösterim için saf işlevselliğe gitme anlamına gelir (sadece yerel değişkenler açısından saf, yığın verileri …

6
Nesneye Dayalı Tasarımda Gevşek Kavrama
GRASP öğrenmeye çalışıyorum ve bu düşük kuplaj hakkında açıkladı ( burada sayfa 3 ) ve bunu bulduğumda çok şaşırdım: addTrackBir Albumsınıfın yöntemini düşünün , iki olası yöntem şunlardır: addTrack( Track t ) ve addTrack( int no, String title, double duration ) Hangi yöntem kuplajı azaltır? İkincisi, Album sınıfını kullanan sınıfın …

1
Üçüncülük Kuralı'nda üçüncü defaya kadar beklemek gerek mi?
Ben sadece wikipedia'da " Üç Kural " makalesine rastladım Üçüncüsü, çoğaltılan bir kod parçasının ne zaman yeni bir yordamla değiştirileceğine karar vermek için bir kod yeniden düzenleme kuralını belirtir. Kodun bir kez kopyalanabileceğini, ancak aynı kod üç kez kullanıldığında, yeni bir prosedüre çıkarılması gerektiğini belirtir. Kural, Yeniden Düzenleme'de Martin Fowler …

6
“Ana” özellik birikimine paralel olarak “ısırık boyutunda” görevlerin bir biriktirme listesi mi?
Son derece sessiz, "yalnız kurt" geliştirme departmanı yapısında iki yıldan fazla çalıştıktan sonra Agile SCRUM'u benimsiyoruz. Harika. Çevik'i severim; bir geliştirici olarak, dün yaptıkları beklentisiyle boğazınızı projelendirdikten sonra sayısız paydaşınızın projeyi shoving etmesine odaklanmadan, yoğun ve üretken olmanızı sağlar. Bununla birlikte, şu anki “modelimiz” e karşı SCRUM'a geçmenin bir yönü …

10
Neden “geri arama işlevlerine” ihtiyacımız var?
Kitabı okuyorum programming in Lua. Dedi ki Kapaklar birçok bağlamda değerli bir araç sağlar. Gördüğümüz gibi, bunlar sıralama gibi üst düzey işlevlerin argümanları olarak yararlıdır. Kapaklar, newCounter örneğimiz gibi diğer işlevleri de oluşturan işlevler için değerlidir; bu mekanizma, Lua programlarının fonksiyonel dünyadan gelişmiş programlama tekniklerini kullanmasını sağlar. Kapaklar geri arama …

7
Rastgele matematik ifadesi oluşturma
Rastgele matematiksel ifadeler üretmek ve değerlendirmek için kafamda dolaşan bu fikrim var. Bu yüzden, test etmek için kodlamadan önce bir deneme yapmaya ve bir algoritma geliştirmeye karar verdim. Misal: Rastgele oluşturmak istediğim bazı örnek ifadeler şunlardır: 4 + 2 [easy] 3 * 6 - 7 + 2 [medium] 6 * …
16 algorithms 

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.