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
Gereksinimleri Yazarken Shall ve Must Kullanımı için En İyi Uygulama
Daha önce geliştiricilerimize, türetilmiş gereksinimlerinizde 'Shall' kelimesinin kullanılmasının işlevsel gereksinimlerinize uymaması gerektiğini hatırlatan bir e-posta gönderdim . İşlevsel gereksinimler yazılırken, türetilmiş bir gereksinimin yapması gereken işlevi tanımlamak için 'Zorunlu' sözcüğü kullanılır. Türetilmiş = Sistem Gereklilik olmalı İşlevsel = Sistem gereklilik yapmalıdır Büyüklerimizden biri tarafından, yanlış olan ve her şartta kullanılması …


2
Orijinal tercümandan bağımsız bir “önyükleme” tercümanı oluşturmak mümkün mü?
Wikipedia'ya göre , derleyici yazma bağlamında "önyükleme" terimi şu anlama gelir : Bilgisayar bilimlerinde önyükleme, derlemek istediği kaynak programlama dilinde bir derleyici (veya bir derleyici) yazma işlemidir. Bu tekniğin uygulanması, kendi kendini barındıran bir derleyiciye yol açar. Ve bunun nasıl işe yarayacağını anlayabiliyorum. Ancak, hikaye tercümanlar için biraz farklı görünüyor. …

3
C # 'daki bu belirgin öz referansın amacı nedir?
Projelerimden birinde kullanım için Piranha ( http://piranhacms.org/ ) adlı açık kaynaklı bir CMS'yi değerlendiriyorum . En azından benim için aşağıdaki kodu ilginç ve biraz kafa karıştırıcı buldum. Bazıları sınıfın neden aynı tip bir temelden devraldığını anlamama yardımcı olabilir mi? public abstract class BasePage<T> : Page<T> where T : BasePage<T> { …
21 c#  architecture  .net  cms 

4
Tanım olarak C # 'da soyut sınıfı kullanın
Bir C ++ geliştiricisi olarak C ++ başlık dosyalarına oldukça alışkınım ve kodun içinde bir tür zorunlu "dokümantasyon" bulundurmanın yararlı olduğunu düşünüyorum. Bu nedenle bazı C # kodlarını okumak zorunda kaldığımda genellikle kötü zaman geçiriyorum: Çalıştığım sınıfın zihinsel haritasına sahip değilim. Bir yazılım mühendisi olarak bir programın çerçevesini tasarladığımı varsayalım. …

6
Neden kodu yorumlamak ve daha sonra ne yaptığımı ve yapılması gerekenlerin kaydını tutmak için yavaş yavaş kaldırmak neden yanlış?
Kodumun büyük bir bölümünün değiştirilmesi gerektiğine karar verdiğimde, ya yanlış olduğu ya da diğer nedenlerle gerekli büyük mimari değişikliklere adapte edilmesi gerektiği için, tipik olarak yaptığım şey şu: Değiştirmem gerekebileceğini düşündüğüm tüm kodları yorumluyorum. Yorumlanan kodu TODO listemin bir türü olarak kabul ediyorum. Bu kodun yorumlanan kodunu ve uncomment bölümlerini …


4
C # 7'de bir “Dene” yöntemi yazmanın en zarif yolu nedir?
İşlem başarılı olursa boole değeri döndürdüğüm, TryDequeueçeşitli .NET TryParseyöntemlerine benzer bir kalıp kullanan bir yönteme sahip bir tür Queue uygulaması yazıyorum outve fiili boşaltılmış değeri döndürmek için bir parametre kullanıyorum . public bool TryDequeue(out Message message) => _innerQueue.TryDequeue(out message); Şimdi, outne zaman mümkün olursa paramlardan kaçınmayı seviyorum . C # …
21 c# 

5
Önemsiz olmayan koşullu ifadeler, döngülerin başlangıç ​​bölümüne taşınmalı mıdır?
Bu fikri stackoverflow.com adresinde aldım. Aşağıdaki desen yaygındır: final x = 10;//whatever constant value for(int i = 0; i < Math.floor(Math.sqrt(x)) + 1; i++) { //...do something } Yapmaya çalıştığım nokta koşullu ifade karmaşık bir şey ve değişmez. Bunu, döngünün başlangıç ​​bölümünde belirtmek daha doğru olur mu? final x = …

3
Web uygulamalarını arka uçlarına ve ön yüzlerine tamamen ayırmak ve (JSON) REST API ile iletişim kurmalarına izin vermek normal bir tasarım mıdır?
Yeni iş web uygulaması oluşturuyorum ve ulaşmak istiyorum: Kendi alanlarındaki en iyi teknolojileri kullanın. Sağlam ORM ile güvenilir bir arka uç çerçevesi istiyorum. Ve ön uç uygulama için en güncel HTML ve Javascript özelliklerinin kullanımıyla en gelişmiş SPA (tek sayfa uygulama) çerçevesini istiyorum. Web uygulamaları, mobil (Android) ve muhtemelen diğer …

3
C ++ sınıfı yapıcısındaki başarısızlık durumları nasıl ele alınır?
Yapıcısı bazı işlemler yapan bir CPP sınıfım var. Bu işlemlerin bazıları başarısız olabilir. Yapıcıların hiçbir şey getirmediğini biliyorum. Benim sorularım Bir kurucuda üyeleri başlatan başka işlemler yapmasına izin verilir mi? Çağıran fonksiyona, yapıcıdaki bazı işlemlerin başarısız olduğunu söylemek mümkün müdür? new ClassName()Yapıcıda bazı hatalar oluşursa NULL dönüş yapabilir miyim ?

5
Uygulama yazdıktan sonra testte bir hata nasıl düzeltilir
Mantığı doğru uyguladıktan sonra test hala başarısız olursa TDD'deki en iyi eylem yolu nedir (testte bir hata olduğu için)? Örneğin, aşağıdaki işlevi geliştirmek istediğinizi varsayalım: int add(int a, int b) { return a + b; } Aşağıdaki adımlarda geliştirdiğimizi varsayalım: Test yaz (henüz işlev yok): // test1 Assert.assertEquals(5, add(2, 3)); …
21 tdd  mistakes 

2
Büyük ikili dosyalar içeren bir git repoyu optimize edin
Projemiz yaklaşık 11GB, 10'u ikili veridir (.png görüntüleri). Sonuç olarak, a git diffveya git statusoperasyonlar bir dakikadan fazla sürüyor. Neyse ki tüm veri dosyaları harika bir isimle bir klasöre ayrılmıştır data. Atama “İkili dosyalar üzerinde sıkıştırma, farklılaştırma ve diğer pahalı işlemleri yapmaktan kaçının” şeklindedir. Projenin iki depoya bölündüğü kabul edildi. …
21 git  binary 

3
Bir lexer'ın çözümleyicisine döndürdüğü belirteçlerin veri türü ne olmalıdır?
Başlıkta belirtildiği gibi, bir lexer çözümleyiciye hangi veri türünü iade etmeli / vermelidir? Vikipedi'nin sahip olduğu sözcüksel analiz makalesini okurken , şunu belirtmiştir: Bilgisayar bilimlerinde sözcüksel analiz, bir dizi karakterin (bir bilgisayar programında veya web sayfasında olduğu gibi) bir dizi dizinin ( tanımlanmış "anlamı" olan dizeler ) dönüştürülmesi işlemidir . …
21 data-types  lexer  flex 

4
Bağımlılık enjeksiyonuna özel olarak tasarlanmış bir programlama dili var mı?
Birçok genel programlama dili, bağımlılık enjeksiyonunu desteklemenize izin verecek kadar esnektir. Kütüphane veya çerçeve desteği olmadan bile. Ancak bir dil, herhangi bir programlama problemini çözmek için yeterince eksiksiz olsa bile, bir dil, neyin kolay ve neyin zor olduğunu belirleyen seçimler yapar. Bağımlılık enjeksiyonunu kolaylaştırmak ve özel olarak gizli bağımlılıklar yaratmayı …

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.