Image for post
Image for post
Spring Boot

Springboot da proje oluşturmak spring boot initializer ile artık daha kolay bir hale geldi. Bu yazıda oluşturacağımız proje standart bir Create, Read, Update ve Delete işlemleri yapacağından projede Spring Data , PostgreSQL, Spring Mvc Web bağımlılıklarını kullanacağız.

Örnek ekran görüntüsü :


Image for post
Image for post

Stream kelimesini ilk duyduğum zaman aklıma Java I/O paketinde bulunan InputStream ve OutputStream gelmişti. Fakat bunun böyle olmadığını api dökümanını inceleyince fark ettim. Bu yazıda streamler nasıl çalışır , türleri nelerdir ve nasıl kullanılır sorularını cevaplamaya çalışacağım.

Stream ler fonksiyonel programlama da kullanılan Monad tasarım kalıplarına çok benzemektedir. Türkçe kelime anlamı akıştır. Bir dizi öge üzerinde hesaplamalar yapmak ve farklı türde operasyonlar yapmamızı sağlarlar.

Nasıl çalışır?

Bir stream aslında iki türlü işlem yapar. Bunlar ara işlemler ve sonlandırıcı işlemlerdir. Ara işlemler işlemin sonucunda Stream dönerken sonlandırıcı işlemler void yada stream olmayan türde değer döner.

List<String> list =
Arrays.asList(“ali”, “veli”, “ahmet”,”mehmet”);


Image for post
Image for post

Yazılım projeleri yazılımcılara verilen belirli argümanlar üzerinden oluşan projelerdir. Genellikle proje geliştirmelerinde büyük resim tam anlamıyla görüntülenemediğinden projeler zamanla değişmektedirler.Bu değişimler bazen projelerin yeniden yazılmasını gerektirmektedir. İşte bu kadar köklü değişimlerin önüne geçmek açısından projelerimizi belirli tasarım kalıplarına oturtarak ilerler isek değişimlerin maliyetlerini küçültebiliriz.

Nasıl ortaya çıkmıştır?

Kalıplar(Patterns) Amerikalı mimar Christopher Alexander tarafından 1977 yılında mimari konseptler adıyla ortaya çıkmıştır. 1987 yılında Kent Beck ve Ward Cunningham bu kalıpları kendi deneyimleri ile programlama üzerinde uygulamışlardır ve o yıl düzenlenen OOPSLA konferansında bu çalışmalarını sunmuşlardır. …


React Js ile Facebook Login Entegrasyonu

Uygulamalarda kullanıcı sayısını arttırabilmek için sosyal medya bağlantılarının yapılması günümüzde büyük önem taşımaktadır. Bu yazıda React.js uygulamamıza Facebook’u nasıl entegre edebileceğimizi göreceğiz.

Entegrasyon yapılırken Facebook’un sağlamış olduğu javascript sdk dan yararlanılmıştır.

Facebook Software Development Kit (SDK) ‘in yüklenmesi

Uygulamamızda componentDidMount içerisinde sdk nın sağladığı Facebook.init methodu ile facebook sdk projeye yüklenir.
FB.init methodu içerisinde 4 adet parametre sayesinde sdk ayarları yapılmaktadır. Bunlar ;

appId : Entegre edilen uygulama için Facebook tarafından verilen id. Aşağıda nasıl oluşturulacağı ile ilgili bilgilendirilme yapılmıştır.
version : Entegre olunan sdk versiyonu.
cookie : Cookilere izin verilip/verilmeyeceğini belirler.


Her yazılımcının yazılım hayatı boyunca en çok karşılaştığı exceptionlardan biri olan NullPointerException Java 8 ile artık önlenebilir hale gelmiştir.

Bu yazıda Java 8'in yeni özelliklerden biri olan java.util.Optional sınıfını inceleyeceğiz. Optional sınıfı içerisinde toplamda 15 adet method bulundurmaktadır.Bu methodlar ile NullPointerException ın nasıl önleneceğini örnekler ile anlatmaya çalışacağım.

of : Bu method Optional türde olmayan herhangi bir nesneyi Optional türe çevirmek için kullanılır. Tabiki bu nesneye bir değer atanmış olması gerekmektedir. Eğer NullPointerException almak istiyor isek of methodunun içerisine null değerini vermemiz yeterlidir.

Örnek olarak ;

Optional<String> chuck = Optional.of("Chuck Norris");

ofNullable : Bu method Optional türde olmayan herhangi bir…


Image for post
Image for post

Senkron programlama, yazılımda her bir işlemin sıra ile yapılmasıdır. Örneğin süpermarketlerdeki kasa kuyruğunda bir önceki müşteri, ürünlerinin ödemesini yapmadan sizin ürünlerinize sıra gelmemektedir. Beklerken yaşanan zaman kaybı Asenkron programlamada ortadan kalkar. Asenkron programlama; işlemlerin birbirini beklemeden , bağımsız olarak gerçekleşmesidir. Süpermarket örneğinden devam edecek olursak, Asenkron programlama; her müşterinin sıra beklemeden istediği kasadan ödeme yapabilmesini sağlamaktadır.

Java programlama dili, Java 8 ile birlikte Asenkron programlamaya da ilgisini arttırmıştır. CompletableFuture arayüzü Java’nın Asenkron programlama için kullanılan bir sınıfıdır. CompletableFuture java.util.concurrent paketi içinde bulunmaktadır. Java 8 öncesi Guava Framework’un de ListenableFuture kullanılmaktadır.

CompletableFuture sınıfı temelde Future<T> ve CompletionStage<T> arayüz sınıflarından türemektedir. CompletionStage<T>…

Arif PEHLİVAN

Software Engineer www.arifpehlivan.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store