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
Akışları normalde Koleksiyonlar döndüreceğimiz yere döndürmek akılcı bir şey mi?
Herhangi bir eski koda bağlı olmayan API'mı geliştirirken, genellikle sonuçları toplayarak tamamen Streams pipeline olan sonlandırılmış yöntemler yazıyorum. Bunun gibi: ImmutableSet<T> deriveSomethingMeaningfulFromPrivateState() { return myPrivateThingies.stream() .map(this::ownerOfThing) .map(Owner::socialStatus) .filter(SocialStatus::isHeAFineMatey) .collect(MyCustomCollectors.toImmutableSet()); } Şimdi, bu sınıftaki müşterilerin çoğu genellikle öğeleri aramak ve yinelemek için Koleksiyona (bu durumda bir ImmutableSet) ihtiyaç duyacaktır, ancak bazı …



4
“Verileri temsil etmek için sınıf yerine haritayı kullan” -Rich Hickey
In Zengin Hickey tarafından bu videoda , Clojure yaratıcısı, o Java tamamlandı olarak yerine onu temsil edecek bir sınıf kullanmanın verileri temsil etmek haritayı kullanmak için önerir. Nasıl daha iyi olabileceğini anlamıyorum, çünkü API kullanıcısı sadece harita olarak gösteriliyorsa giriş anahtarlarının ne olduğunu nasıl bilebilir. Örnek : PersonAPI { Person …
19 java  design  class  clojure  map 

8
Bir programcının zaman zaman kendi kodları üzerinde% 100 netliğe sahip olmaması normal midir? [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 5 yıl önce kapalı . Uzman bir programcı değilim, bu yüzden bu olabilir, ancak karmaşık kod oluşturduğumda (yakın zamanda yaptığım bir Satranç …

2
Bir kurucuda [Saf] ne zaman kullanılır?
.NET'te kod sözleşmeleri hakkında bilgi ediniyorum ve saf yapıcılar fikrini anlamaya çalışıyorum. Kod sözleşmeleri belgelerine durumları: Bir sözleşme kapsamında çağrılan tüm yöntemler saf olmalıdır; yani önceden var olan herhangi bir durumu güncellememeleri gerekir. Bir saf yöntemin, saf yönteme girdikten sonra oluşturulan nesneleri değiştirmesine izin verilir. Ve PureAttributebelgeler şöyle diyor: Bir …

4
Neden C'deki değişkenin veri türünden bahsetmek zorundayız?
Genellikle C'de, bilgisayara değişken bildirimindeki veri türünü söylememiz gerekir. Örneğin, aşağıdaki programda, X ve Y olmak üzere iki kayan nokta sayısının toplamını yazdırmak istiyorum. #include<stdio.h> main() { float X=5.2; float Y=5.1; float Z; Z=Y+X; printf("%f",Z); } Derleyiciye X değişkeninin türünü söylemem gerekiyordu. Derleyici türünü belirleyemiyor mu? X tek başına belirleyemiyor …

1
Güvenli paralellik uygulamak için teklik türlerini kullanma
Bir süredir saf işlevsel dillerdeki monadlara alternatif olarak benzersizlik türleriyle ilgileniyorum; ne yazık ki, bu tür CS araştırma ezoterik bir alan ve tek tip türleri ile programlama hakkında çevrimiçi kaynaklar az ve çok arasındadır. Tekillik türlerinin referanslar ("kutular") ve diziler gibi durum bilgisi olan veri yapılarını uygulamak için nasıl kullanılabileceği …


5
“#Define me (* this)” tanımlamak iyi bir fikir mi?
Bu makro bazı genel üstbilgilerde veya daha iyisi bir derleyici komut satırı parametresi olarak tanımlanabilir: #define me (*this) Ve bazı kullanım örnekleri: some_header.h: inline void Update() { /* ... */ } main.cpp: #include "some_header.h" class A { public: void SetX(int x) { me.x = x; me.Update(); } void SomeOtherFunction() { …
19 c++ 

2
Neden C # 'da yeni () bir kısıtlama var ama benzer bir kısıtlama yok?
C # jeneriklerinde, type parametresinin Tvarsayılan yapıcıya sahip olması için bir kısıtlama söyleyerek söyleyebiliriz where T : new(). Bununla birlikte, bunun gibi başka hiçbir kısıtlama geçerli değildir - new(string)örneğin, vb. Bir dil tasarımı ve / veya uygulama bakış açısından, bunun nedeni nedir? Yapıcıların çalışma biçiminde ya da bunu yasaklayan (ya …

1
GitHub'da projeme yıldızlı kullanıcılarla nasıl daha iyi etkileşim kurabilirim?
Bu yayını iyileştirmek ister misiniz? Alıntılar ve cevabınızın neden doğru olduğuna dair bir açıklama da dahil olmak üzere bu soruya ayrıntılı cevaplar verin. Yeterli ayrıntı içermeyen yanıtlar düzenlenebilir veya silinebilir. Son zamanlarda GitHub üzerinde çalıştığım Hebel adlı bir proje hazırladım . Python ve Nvidia CUDA'da yazılmış GPU hızlandırılmış derin öğrenme …



5
Bir Turing tam işlemcisi oluşturmak için gereken minimum talimatlar dizisi nedir
İşlemcinin talimatları nasıl ele aldığına dair genel bir fikrim var, ancak zamanımı çoğunlukla üst düzey dillerde çalışarak geçiriyorum. Belki de demire daha yakın çalışan birisi değerli bir içgörü sağlayabilir. Programlama dillerinin temelde bir işlemcinin komut setinin çok yüksek düzeyli soyutlamaları olduğunu varsayarsak, bir turing komple makinesi oluşturmak için gereken en …

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.