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
İşlevsel programlamada atama operatörü veya döngülerin kullanımı neden önerilmez?
İşlevim iki gereksinimin altındaysa, Sum verilen koşul için öğenin doğru olarak değerlendirildiği bir listedeki öğelerin toplamını döndürmek işlevinin saf işlev olarak nitelendirilebileceğine inanıyorum, değil mi? 1) Verilen i / p seti için, fonksiyon çağrıldığı zamandan bağımsız olarak aynı o / p döndürülür 2) herhangi bir yan etkisi yoktur public int …

2
Havuz Kalıbı ve DAL Nesnesi Oluşturma
Bildiğim kadarıyla IRepositoryiçermelidir CRUD. Sonra bu miras IRepositorygibi diğer Interfaces IProductve uygulamak IProductbeton sınıfı ProductRepositorygibi yöntemlerle, GetAllProducts(), Top5Products(). Aynı şeyi n katmanlı mimari ile de yapabiliriz. Gibi, Oluşturma DAL Class Libraryve içinde , Productgibi yöntemlerle bir sınıf tanımlar .GetAllProducts()Top5Products() İkisinde de DAL.Productve Repo.ProductRepositorybiz başlatmak sınıfların DB Contextarasında Entity Frameworkve ilgili …

6
Dijkstra, endişelerin ayrılması hakkında yazarken kod modülerleştirmeyi planladı mı?
İlk olarak, Edsger W. Dijkstra'nın 1974 tarihli "Bilimsel düşüncenin rolü hakkında" bir alıntı okudum: Size açıklamaya çalışayım, zevkimin ne olduğu tüm zeki düşünme için karakteristiktir. Kişi her zaman kişinin sadece bir yönüyle meşgul olduğunu bilerek, kendi tutarlılığının uğruna tek başına bir konunun bir yönünü derinlemesine incelemeye isteklidir. Bir programın doğru …

2
Erişim izinleri ve roller JWT yüküne dahil edilmeli midir?
İstemcinin izinleri ve rolleri hakkında bilgi JWT'ye dahil edilmeli midir? JWT jetonunda bu tür bir bilgiye sahip olmak, geçerli bir jeton her geldiğinde çok yararlı olacaktır, kullanıcı hakkındaki izin hakkındaki bilgileri çıkarmak daha kolay olacaktır ve veritabanını aynı şekilde çağırmaya gerek kalmayacaktır. Ancak bu tür bilgileri dahil etmek ve veritabanında …

1
Bir tür parametresinin tür bağımsız değişkenlerini çıkarım için tekniğin adı?
Kurulum: Diyelim Iteratorki bir type parametresi olan bir türümüz var Element: interface Iterator<Element> {} Sonra bir Iterabledöndürecek bir yöntemi olan bir arayüz var Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Genel Iteratorolmakla ilgili sorun, ona tür argümanları sunmamız gerektiğidir. Bunu çözmek …

2
İstisnaların Ayrıntı Düzeyi
Birkaç arkadaş ve ben arasında bir tartışmaya girdim. İstisna alanları gibi ayrıntılarla ClientErrorExceptionve ServerErrorExceptionayrıntılarla genel istisnaları tercih ederken, işleri daha spesifik hale getirmeyi tercih ediyorum. Örneğin, aşağıdaki gibi bir avuç istisna olabilir: BadRequestException AuthenticationFailureException ProductNotFoundException Bunların her biri API'dan döndürülen hata koduna dayanarak oluşturulmuştur. İstisnaların Avantajları sonrasında bu Java için …


6
nesnem değiştirilebilirse, işlevsel programlama bağlamında ne ters gidebilir?
Değişmez nesneler gibi değişebilir nesnelerin faydalarının, paylaşılan ve yazılabilir durum nedeniyle çok iş parçacıklı programlamadaki sorunları gidermek için çok fazla zaman harcadığını görebiliyorum. Aksine, değiştirilebilir nesneler her seferinde yeni kopya oluşturmak yerine nesnenin kimliğiyle başa çıkmaya yardımcı olur ve böylece özellikle büyük nesneler için performans ve bellek kullanımını geliştirir. Anlamaya …

3
For-if antipattern
Bu blog yazısında for-if anti-pattern hakkında okuyordum ve bunun neden bir anti-pattern olduğunu anladığımdan emin değilim. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } } Soru 1: Çünkü return new StreamReader(filename);içinde for loopmi? ya da forbu durumda bir döngüye ihtiyacınız olmadığı gerçeği ? Blogun …

5
Mikro hizmetler: MonolithFirst?
Tüm artıları ve eksileri, nedenleri ve nedenleri, vb.Yüksek düzeyde bir genel bakış elde etmeye çalışan mikro hizmet mimarilerini araştırıyorum. Okuduğum / izlediğim bilgilerin çoğu ThoughtWorks'ten geliyor (Martin Fowler, Neal Ford, et ark). Martin Fowler'in konuyla ilgili çalışmalarının çoğu, Microservices (programlamada bir ev ismi olarak, genel pratikte olmasa bile) hala gençken …

3
Değerin ilettiği parametrelerin değerlerini değiştirmemenin bir nedeni var mı?
Bir fonksiyonun gövdesindeki by-value parametrelerinin değerlerini değiştirmeye karşı veya ona karşı nesnel, desteklenebilir yazılım mühendisliği argümanları var mı? Ekibimde tekrar eden bir tükürük (çoğunlukla iyi eğlenceler), değere göre iletilen parametrelerin değiştirilip değiştirilmeyeceği. Ekibin birkaç üyesi, parametrelere asla atanmaması gerektiği konusunda kararlıdır, böylece fonksiyona başlangıçta iletilen değer her zaman sorgulanabilir. Ben …


3
Ayrıştırma hatası durumunda ayrıntılı bilgi sağlayan bir TryParse yöntemini nasıl tasarlayabilirim?
Kullanıcı girişini ayrıştırırken genellikle istisnaları atmamak ve yakalamak değil, daha ziyade doğrulama yöntemlerini kullanmanız önerilir. .NET BCL'de bu, örneğin int.Parse(geçersiz veriler için bir istisna atar) ve int.TryParse( falsegeçersiz verilerde geri dönüşler ) arasındaki fark olacaktır. Kendim tasarlıyorum Foo.TryParse(string s, out Foo result) yöntemi ve dönüş değeri hakkında emin değilim. bool.NET'in …
9 c#  .net  api-design 

5
Bildiklerimin yolunu takip edin, sonra doğru kodlama uygulamalarını uygulamaya çalışın veya iyi kodlama uygulamalarıyla başlayın ve yoluma devam etmeye çalışın.
Öncelikle, Prosedür Programlamayı hobim olarak yapmaya alışkın olduğumu söylemek istiyorum - OOP'u birkaç dilde öğrenmeye ve teoriyi anlamaya çalışıyorum , sadece uygulamayı değil. Ben, özellikle PHP bir veritabanı arka uç (ne bir umurumda değildi) ile inşa etmek istedim bir evcil hayvan projesi var. Temel nedenim uygulamanın herhangi bir cihazda kullanılmasıydı, …

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.