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

3
DDD ve CRQS kullanırken, komut başına tam olarak bir olay mı olmalı?
Ben yapılandırma üzerinde kongre ile bir ddd uygulaması tasarlamak için bir yol arıyorum. Toplam "İstemci" nin "FillProfile" tanımlı bir komutu olduğunu varsayalım. Mantıksal olarak "ProfileFilled" etkinliğini yükseltir. Bir komutun bir olaydan daha fazla yükseleceği veya bir komutun bazı mantığa dayalı olarak farklı olayları toplayacağı durumlar var mı? Yoksa bu her …

6
Numaralandırmalar ne zaman bir kod kokusu DEĞİLDİR?
İkilem Nesneye yönelik uygulamalar hakkında birçok iyi uygulama kitabı okudum ve okuduğum hemen hemen her kitabın, numaraların kod kokusu olduğunu söyledikleri bir parçası vardı. Sanırım sayılar geçerli olduğunda açıkladıkları kısmı kaçırmışlar. Gibi, enums bir kod kokusu DEĞİL ve aslında geçerli bir yapı DEĞİL yönergeleri ve / veya kullanım durumları arıyorum …

2
Std :: bitset üzerinden c-tarzı bit manipülasyonunun herhangi bir avantajı var mı?
Neredeyse sadece C ++ 11 / 14'te çalışıyorum ve genellikle böyle bir kod gördüğümde cringe: std::int64_t mArray; mArray |= someMask << 1; Bu sadece bir örnek; Genel olarak biraz akıllı manipülasyondan bahsediyorum. C ++ 'ta gerçekten bir anlamı var mı? Yukarıda belirtilenler, aşağıdakileri std::bitsetyapmanıza olanak tanıyan zihin çözgü ve hataya …

4
İstemci tarafı ve sunucu tarafı doğrulamalarını tek bir yerden yönetme
Bir Bu durumda gemide% 100 değilim gerektiğini kesinlikle istemci tarafı ve sunucu tarafı veri doğrulama hem kullanın. Ancak çalıştığım çerçevelerde ve ortamlarda gördüğüm yaklaşımlar hiç KURU olmamıştı. Çoğu zaman bir plan veya kalıp yoktur - onaylar model spesifikasyonunda yazılır ve onaylar görünümde formda yazılır. (Not: İlk deneyimimin çoğu RaQ, Sinatra …

5
TDD'de üretim kodunu değiştirmeden geçen bir test senaryosu yazarsam, bu ne anlama geliyor?
Bunlar Robert C. Martin'in TDD kuralları : Başarısız bir birim test geçişi yapmadığı sürece üretim kodu yazmanıza izin verilmez. Başarısız olmak için yeterli olandan daha fazla birim testi yazmanıza izin verilmez; ve derleme hataları hatalardır. Arızalı bir birim testini geçmek için yeterli olandan daha fazla üretim kodu yazmanıza izin verilmez. …

4
Enjeksiyon bağımlılıkları ctorda mı yoksa yöntem başına mı yapılmalıdır?
Düşünmek: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } karşısında: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …

1
Birim ve entegrasyon testlerini ayırmalı mıyım?
Bir proje için birim testleri ve entegrasyon testleri yazmam gerekiyor. Tüm testler tek bir test klasörüne konulmalı mı? Yoksa birim testleri ve entegrasyon testlerinin her biri ayrı bir test klasöründe olmalı mı? Yoksa onları ayrı projelere mi koymalıyım ? Onları bir arada tutarsam, bu yaklaşımın herhangi bir avantajı veya dezavantajı …

5
Elm'in iddia ettiği gibi “çalışma zamanı istisnası yok” unun avantajı nedir?
Bazı diller "diğer çalışma zamanı istisnaları" bulunmadığını ve bu dillere sahip diğer diller için açık bir avantaj olduğunu iddia etmektedir. Bu konuda kafam karıştı. Çalışma zamanı istisnası bildiğim kadarıyla ve iyi kullanıldığında sadece bir araçtır: "kirli" durumları iletebilirsiniz (beklenmedik verilere atarak) yığın ekleyerek hata zincirine işaret edebilirsiniz karmaşa (ör. geçersiz …

2
DDD: Bir kök toplamının başka bir kök toplamına referans tutması doğru mu?
Etki alanına dayalı tasarımı (DDD) izlerken, bir kök toplamı için ayrı bir toplamda kök varlık olan bir iç varlığa referans olması doğru mudur? Bunun doğru olmadığına inanıyorum, esas olarak mavi kitaptaki bu kural nedeniyle : AGGREGATE sınırının dışında hiçbir şey, kök ENTITY (kök ENTITY) dışında herhangi bir şeye referans veremez. …

3
Neden Her ikisi de (işaretli) İstisna kullanılır?
Çok uzun zaman önce Java yerine Scala kullanmaya başladım. Benim için diller arasındaki "dönüşüm" sürecinin bir Eitherkısmı (işaretli) yerine s kullanmayı öğreniyordu Exception. Bir süredir bu şekilde kod yazıyorum, ancak son zamanlarda bunun gerçekten daha iyi bir yol olup olmadığını merak etmeye başladım. Önemli bir avantaj Eitheredemediği Exceptiondaha iyi performans; …

5
Ne zaman MongoDB kullanmalıyız?
MongoDB, kullanımı oldukça kolay bulduğum bir NoSQL veritabanı. Son zamanlarda, HTTP isteklerini kullanarak bazı verileri toplamak ve verileri işledikten sonra bazı sonuçları depolamak için gereken basit bir uygulama geliştirmek zorunda kaldım ve MongoDB'yi kullanmayı denedim. Bu deneyimlerden, geleneksel ilişkisel veritabanlarından çok daha hoş buldum ve bir DBA değil, bir geliştirici …

2
Yazılım geliştirmeye artımlı ve yinelemeli yaklaşım arasındaki fark nedir?
Artımlı bir yaklaşım ürün tamamlanana kadar modeli (biraz daha her zaman ilave edilir) aşamalı olarak tasarlanan, uygulanan test yazılımı geliştirme için bir yöntemdir. Hem geliştirme hem de bakım gerektirir. Ürün, tüm gereksinimlerini karşıladığında bitmiş olarak tanımlanır Tasarımların , prototip, analiz, test ve bir ürün veya işlem rafine bir siklik işlemine …

4
Programlamada Bootstrapper nedir?
Bazen "Bootstrapper" terimini görüyorum. Prizma için bazı öğrenme alıştırmaları yaparken bunu en son gördüm. UnityBootstrapperDerse tökezledim . Benim sorum: Ne zaman bir sınıfa "Bootstrapper" derdiniz? Neden? Sınıf hakkında ne diyor?

2
Ezme çekme istekleri git'in birleştirme algoritmasını bozar mı?
Şu anda git kodunu yönetmek için VSTS kullanan bir şirket için çalışıyorum. Microsoft'un bir şubeyi birleştirmenin "önerilen" yolu, bir "squash birleşmesi" yapmaktır, yani bu şubeye ilişkin tüm taahhütler, tüm değişiklikleri içeren yeni bir taahhütte ezilir. Sorun, bir biriktirme öğesi için bir dalda bazı değişiklikler yaparsam, hemen başka bir biriktirme öğesi …
17 git 

5
MVC: Kontrolör Tek Sorumluluk İlkesini ihlal ediyor mu?
Tek Sorumluluk İlkesi "bir sınıfın değişimin bir nedeni olması gerektiğini" belirtir. MVC modelinde, Kontrolcünün işi Görünüm ve Model arasında aracılık etmektir. Kullanıcı tarafından GUI üzerinde yapılan eylemleri rapor etmek için Görünüm için bir arayüz sunar (örneğin, Görünüm'ün çağrı yapmasına izin vermek controller.specificButtonPressed()) ve verilerini değiştirmek veya işlemlerini başlatmak için Model …

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.