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
DRY'yi kuplajı arttırmadan uygulamak mümkün müdür?
Bir F fonksiyonunu uygulayan bir yazılım modülümüz A olduğunu varsayalım. Başka bir B modülü F 'ile aynı fonksiyonu uygular. Yinelenen koddan kurtulmanın birkaç yolu vardır: A'nın B'den F 'kullanmasına izin verin. B'nin A'dan F'yi kullanmasına izin verin. F'yi kendi modül C'sine yerleştirin ve hem A hem de B'yi kullanmasına izin …

4
Polimorfizm bağlamında alt tipler için eklenen yöntemler nasıl ele alınır?
Polimorfizm kavramını kullandığınızda bir sınıf hiyerarşisi yaratırsınız ve ebeveyn referansını kullanarak, hangi türün nesneye sahip olduğunu bilmeden arayüz işlevlerini çağırırsınız. Bu harika. Misal: Hayvan koleksiyonunuz var ve tüm hayvan fonksiyonlarını çağırıyorsunuz eatve bir köpek yemi mi yoksa kedi mi olduğunu umursamıyorsunuz. Miras ve sınıftan uygulanan diğerinden daha - Ama aynı …


3
RxJava sınıfı Flowable'ın yasal olarak 460 yöntemi olabilir mi?
Ben sadece RxJava , Java'nın ReactiveX ( Rx ve Reaktif Uzantıları olarak da bilinir) uygulaması ile başlıyorum . Gerçekten bana vurdu o şey kitlesel büyüklüğündeydi RxJava en Akışkan sınıfta : o 460 yöntemleri vardır! Adil olmak: Aşırı yüklenmiş, toplam yöntem sayısını önemli ölçüde çarptıran birçok yöntem vardır. Belki de bu …



6
Eski veritabanı sütunlarının kullanımdan kaldırılmasıyla ilgili en iyi uygulamalar nelerdir? [kapalı]
Kapalı . Bu sorunun daha fazla odaklanması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu, yalnızca bu yayını düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 2 yıl önce kapalı . Erken bir aşamada müşterilerden A, B ve C verileri toplayacak bir uygulama tasarlıyorum, ancak …

1
LLVM'nin neden ağaç benzeri bir IR yerine montaj benzeri bir IR'si var? Veya: projeler neden clang AST yerine LLVM IR'yi hedefliyor?
LLVM'nin ara temsil (LLVM IR) montajı neden ağaç gibi değil? Alternatif olarak, dil uygulamaları neden clang AST'sinden ziyade LLVM IR'yi hedefliyor? Öyle görünüyorsa, aynı anda iki farklı soru sormaya çalışmıyorum. Bana göre, hem istemci hem de kütüphane programcıları LLVM'nin API'sinin, daha fazla ve daha az bir şey olmadığı açık bir …

7
Basit etki alanı nesnesini temsil etmek için ilkel mi sınıf mı?
Etki alanına özgü bir nesnenin düz bir Dize veya sayıya karşı ne zaman kullanılacağına ilişkin genel kurallar veya genel kurallar nelerdir? Örnekler: Yaş sınıfı vs Tamsayı? FirstName sınıfı vs String? UniqueID ve Dize PhoneNumber sınıfı vs String vs Long? DomainName sınıfı vs String? Bence çoğu OOP uygulayıcısı kesinlikle PhoneNumber ve …

3
Paralel Diziler ne zaman kullanılabilir?
Ben 'Paralel Diziler' veya Listeler dediğim kullanan kod (yeni kod) çalıştırıyorum. Yani ilgili veriler içeren ve dizideki konumlarına (dizinlerine) bağlı 2 dizi vardır. Bunu kafa karıştırıcı ve her türlü hataya eğilimli olarak görüyorum. Normalde önerdiğim çözüm CompanyCompanyId ve CompanyName alanlarıyla adlandırılan bir nesne oluşturmaktır . Çok gerçek bir örnek: List<string> …

2
Neden türün kendisi yerine tür kısıtlaması olan genel bir yöntem kullanmalıyım?
Farklı bir StackExchange soruda, bu prototip kullanan birini fark ettim: void DoSomething<T>(T arg) where T: SomeSpecificReferenceType { //Code.... } Sadece tek bir tip kısıtlaması ( SomeSpecificReferenceType) vardır, sadece bunun gibi yazmanın farkı ve avantajı nedir: void DoSomething(SomeSpecificReferenceType arg) { //Code.... } Her iki durumda da, argderleme zamanı tip kontrolüne tabi …
14 c#  .net  generics 

3
Tek bir uygulama oluşturan çokluk. Umutsuz mu? Servis bulucu mu kullanıyorsunuz?
Enjeksiyonları kabul etmek yerine doğrudan bağımlılıklarını oluşturan 1001 müşterimiz olduğunu varsayalım. Patronumuza göre 1001'i yeniden düzenlemek bir seçenek değil. Aslında kaynaklarına erişime bile izin verilmiyor, sadece sınıf dosyalarına. Yapmamız gereken, bu 1001 müşterinin geçtiği sistemi "modernize etmek" tir. İstediğimiz her şeyi yeniden düzenleyebiliriz. Bağımlılıklar bu sistemin bir parçasıdır. Ve bu …

1
Bir meslektaşın aşırı karmaşıklık ve soyutlama getirmesini nasıl önleyebilirim?
Çok zor zamanlar yaşıyorum çünkü meslektaşım sergiliyor Erken / Gereksiz optimizasyon çabaları Şüpheli soyutlamalarla erken veri tekilleştirme Örneğin, değiştirilmiş bir VIPER mimarisi kullanıyoruz. İlk yönlendirici yığınını diğer yönlendiricilerde tam olarak neyin kopyalanacağını bilmeden uygulamanın bir parçası olarak Yönlendirici bileşeni (jenerikler kullanarak) için bir temel sınıf tanıttı. Artık UseCasekullanım durumlarını tutan …

2
Gerçek Dünya - Liskov İkame İlkesi
Arka plan: Bir mesajlaşma çerçevesi geliştiriyorum. Bu çerçeve şunları sağlayacaktır: servis otobüsü üzerinden mesaj gönderme mesaj veri yolundaki kuyruklara abone olma mesaj veri yolundaki konulara abone olma Şu anda RabbitMQ kullanıyoruz, ancak çok yakında Microsoft Hizmet Veri Yolu'na (Şirket İçi) taşınacağımızı biliyorum. Bir dizi arabirim ve uygulama oluşturmayı planlıyorum, böylece …

5
OOP Kodlama stili: yapıcıdaki her şey başlatılsın mı?
Kendimi hala bir çırak programcısı olarak görüyorum, bu yüzden her zaman tipik programlama için "daha iyi" bir yol öğrenmek istiyorum. Bugün, iş arkadaşım kodlama tarzımın bazı gereksiz çalışmalar yaptığını ve başkalarından fikir duymak istediğini savundu. Tipik olarak, bir sınıfı OOP dilinde (Genellikle C ++ veya Python) tasarladığımda, başlatmayı iki farklı …

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.