Press "Enter" to skip to content

Month: May 2020

Effective Java Madde 48: Streamleri Paralel Yaparken Dikkatli Olun

Yaygın olarak kullanılan programlama dilleri arasında Java, paralel programlamayı kolaylaştıran araçlar sunma konusunda her zaman en önde olmuştur. 1996’da Java ilk ortaya çıktığında wait/notify mekanizması ile threadleri destekliyordu. Java 5 java.util.concurrent paketiyle beraber paralel koleksiyonlar ve executor yapısını dile eklerken, Java 7 ile fork-join mekanizmasına kavuştuk. Java 8 ise tek…

Share
Leave a Comment

Effective Java Madde 47: Dönüş Türü Olarak Stream Yerine Collection Tercih Edin

Bir dizi eleman döndüren metotlarla sıkça karşılaşırız. Java 8’den önce bu tür metotlar için dönüş türü olarak ya Collection, Set, List gibi koleksiyon türleri, ya Iterable ya da dizi türleri kullanılırdı. Çoğu zaman da bunlardan birisini seçmek zor olmazdı. Metodun amacı dönüş değerinin for-each döngüsünde kullanılmasını mümkün kılmaksa veya döndürülen…

Share
Leave a Comment

Effective Java Madde 46: Stream Kullanırken Yan Etkisi Olmayan Fonksiyonları Tercih Edin

Stream kullanmaya yeni başladıysanız alışmak zaman alabilir. Yapmak istediğiniz hesaplamayı stream hatları (stream pipeline) kullanarak ifade etmek zor gelebilir. Bunu başardığınız zaman da size pek bir faydası olmadığını düşünebilirsiniz. Streamler sadece yeni bir API değil, aynı zamanda bir fonksiyonel programlamaya yaklaşımıdır. Streamlerden en üst düzeyde faydalanabilmek için sadece API’ı değil…

Share
1 Comment

Effective Java Madde 45: Streamleri Akıllıca Kullanın

Stream API Java 8 ile dile eklenmiştir ve sıralı veya paralel toplu işlemleri (bulk operations) kolaylaştırmak amacıyla kullanılır. Bu API stream denilen sonlu veya sonsuz sayıda eleman ve stream hattı (stream pipeline) denilen ve bu elemanlar üzerinde aşamalı olarak hesaplama yapan iki parçadan oluşur. Stream elemanlarının kaynağı diziler, koleksiyonlar (collections),…

Share
2 Comments

Effective Java Madde 44: Standart Fonksiyonel Arayüzlerin Kullanımına Öncelik Verin

Java diline lambdalar eklendikten sonra API yazmanın kuralları değişti diyebiliriz. Örneğin, Template Method tasarım desenini gerçekleştirirken çocuk sınıfların ata sınıftaki soyut metotları geçersiz kılması artık pek de çekici değildir. Bunun daha modern olan alternatifi fonksiyon nesnesi kabul eden bir statik fabrika veya yapıcı metot yazmak olacaktır. Genel olarak şunu söyleyebiliriz,…

Share
Leave a Comment
%d bloggers like this: