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


5
Yöntemlerin yalnızca argüman adıyla (tür değil) ayırt edilmesi yeterli mi?
Yöntemlerin yalnızca argüman adıyla (tür değil) ayırt edilmesi yeterli mi yoksa daha açık bir şekilde adlandırılması daha mı iyi? Örneğin T Find<T>(int id)vs T FindById<T>(int id). ByIdSadece argüman adını tutmak vs daha açık bir şekilde adlandırmak için herhangi bir iyi sebep var mı ? Düşünebilmemin bir nedeni, yöntemlerin imzalarının aynı …

3
“Mirasa ilişkin kompozisyon” “kuru ilke” yi ihlal ediyor mu?
Örneğin, diğer sınıfların genişletmesi için bir sınıfım olduğunu düşünün: public class LoginPage { public String userId; public String session; public boolean checkSessionValid() { } } ve bazı alt sınıflar: public class HomePage extends LoginPage { } public class EditInfoPage extends LoginPage { } Aslında, alt sınıfın geçersiz kılacak bir yöntemi …

5
Bir yöntemin geçersiz sayılabileceğini, bir yöntemin çağrılabileceğini tanımlamaktan daha güçlü bir bağlılık olarak tanımlamak nasıl olabilir?
Gönderen: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Hala on yıl sonra bile doğru olduğunu düşünüyorum. Kalıtım, davranışı değiştirmek için harika bir yoldur. Ancak bunun kırılgan olduğunu biliyoruz, çünkü alt sınıf, geçersiz kıldığı bir yöntemin çağrıldığı bağlam hakkında kolayca varsayımlarda bulunabilir. Taktığım alt sınıf kodunun çağrılacağı dolaylı bağlam nedeniyle, temel sınıf ve alt sınıf …


8
Bir nesnenin yetenekleri, yalnızca uyguladığı arabirimler tarafından tanımlanmalı mı?
C # isoperatörü ve Java'nın instanceofoperatörü, bir nesne örneğinin uyguladığı arabirime (ya da daha temel olarak, temel sınıfına) dal vermenize izin verir. Bir arayüzün sağladığı yeteneklere dayanarak bu özelliği yüksek seviye dallanma için kullanmak uygun mudur? Veya bir temel sınıf, bir nesnenin sahip olduğu yetenekleri tanımlayan bir arayüz sağlamak için …

2
Sınırsız miktarda parametre alan yöntemler neden daha az parametreye sahip aşırı yükleri tanımlar?
Örneğin, .NET'teki System.IO.Path.Combineyöntem aşağıdaki aşırı yüklemelere sahiptir: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Son üçün amacı ne? İlki hepsini kapsayacak, yakından bakarsanız, paramsanahtar kelimeyi kullanır . Geriye dönük uyumluluk argümanı yalnızca Combine(String, String)varyantı kapsayacaktır , çünkü .NET 4'e kadar olan tek sürümdü.

2
4. ve 5. programlama dili neslleri nelerdir? Dahası var mı? [kapalı]
Genellikle okul / kolej düzeyinde sınıflandırıldığından, popüler programlama dilleri (C #, Java, C ++) tüm 3. nesil dillerdir (makinenin fiziksel bölümlerinden daha yüksek düzeyde soyutlama ile). Ayrıca, montaj dilleri 2. ve makine dilleri 1. nesil diller olarak sınıflandırılır. Başlangıçta, SQL'in 4. nesil dil olarak kabul edilmesi gerektiğini düşünüyordum, çünkü bu …


9
Neden okullar Listedeki dizileri öğretiyor? [kapalı]
Okulumdaki ilk programlama dersleri için yapılan ödevlerin çoğu, dizileri kullanmamı gerektiriyordu. Şimdi tam gün çalışıyorum ve üzerinde çalıştığım herhangi bir proje için hiçbir zaman bir dizi kullanmadım. Mevcut projelerde bile, dizilerin kullanımını hiçbir yerde görmedim. Bence List kullanımı daha kolay ve standart. Neden profesörler öğrencilere ödevlerinde dizileri kullanmalarını söylüyor? Sadece …

7
Çok az zaman verilen önemli teknik kararlar nasıl alınır
Şirketimin WPF uygulamasını Linux / Android / iOS'a taşımak için kullanacağı araçlar ve platformlar hakkında çok ciddi bir karar verdiğim için 2 günüm var. Açıkçası, yaşlılarıma, tüm olası seçenekleri okumak, prototip yapmak, vb. Denemek, prototip yapmak vb. İçin 2 günün yetmeyeceğini söyleyebilirim. Bunu söyleyebilirim, bana biraz yardımcı olmaz, 2 günüm …


5
Kod incelemelerinde olumlu yorumlar almak uygun mudur yoksa yalnızca yapıcı eleştiri için mi?
Son zamanlarda çok sayıda kod incelemesi yapıyorum ve kod incelemelerine olumlu ve / veya komik yorumlar getirmenin olumlu ve olumsuz etkilerinden ve profesyonelliğinden emin değilim. Takımımda kod inceleme platformu olarak Github kullanıyoruz, bu yüzden yorumlar herkes tarafından görülebiliyor. Genel olarak bu platformu kullanmaya çalışırım, böylece baştan sona tüm süreç görünür …

3
SASS'ın LESS'e göre herhangi bir avantajı var mı? [kapalı]
Bu css önişleyiciler hakkında araştırma yapmaya çalışıyorum. Bir sss önişlemcisi olarak sass kullanmanın herhangi bir avantajı var mı? Aradığım faktörler arasında topluluk büyüklüğü, yazılım projesi olgunluğu vb. Bununla ilgili başka bir soru olduğunu biliyorum , ancak yapıcı bir şekilde yazılı ve kapalı değildi. Güncelleştirme Önyükleme şimdi Sass kullanmak için gitti …
36 css  less 

6
Yahtzee oyununu nasıl TDD yapmalısınız?
Diyelim ki Yahtzee oyunu TDD stili yazıyorsunuz. Beş kalıp rulosunun dolu bir ev olup olmadığını belirleyen kodun bir kısmını test etmek istiyorsunuz. Bildiğim kadarıyla, TDD yaparken, şu ilkeleri takip ediyorsunuz: Önce testleri yaz İşe yarayan en basit şeyi yaz Rafine ve refactor Öyleyse, ilk test böyle bir şeye benzeyebilir: public …
36 unit-testing  tdd 

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.