C# ? ve ?? Operator Kullanımı Kısaca bahsedilecek olursa ? operatörü null kontrolü yapılmasını sağlar. Yazılım geliştirme sırasında en çok rastlanan hatanın sebebi null dönen ifadelerdir. Bu bazen bir değişken bazen parametre vs. olabilir. Ama sebep ifadenin null olmasıdır. Önceden şu şekilde kontrol ediyorduk. var a; if(a != null) { Console.Write(a); } şimdi var a; Console.Write(a ?? "boş değer"); Yukarıdaki söz dizimi ile şunu söylüyoruz. Eğer a değeri null değil ise ekrana a nın değerini yaz.
Okumaya Devam Et

Kısa Hikaye : Üstünde çalışmakta olduğum bir projede kredi kartı ile ödeme yapısı kurmam gerekti. Kısaca projenin yapısından bahsedecek olursak Backend : .Net Client : Android (Java) Ödeme altyapısı : İyzico Client tarafında rest isteğiyle tüm işlemlerimizi backend tarafında yapıyoruz. Ödeme yapımızı da bu doğrultuda geliştirdik. Problem : 3DS ile ödeme almaya çalıştığımızda malumunuz işin içerisine bankanın bize telefonumuza gelen şifreyi girmemiz için göndermiş olduğu web sayfası vs.
Okumaya Devam Et

Docker Komutları ve Açıklamaları > docker images Docker hostuna yüklü olan image leri gösterir. > docker ps Docker hostunda yüklü olan imagelerle inşa edilmiş olan container ları listeler. > docker run hello-world İlk olarak Local de (bilgisayarımızda) hello-world isminde bir image var mı kontrol eder. Eğer varsa direkt olarak çalıştırır. Local de verilen isimde bir image bulamaz ise cloud da arama yapar, bulur, local e indirir ve ardından çalıştırır.
Okumaya Devam Et

Docker

DOCKER Docker aldı başını gidiyor. Yeni bir devrim açıyor. E haliyle yazılım dünyası buna sessiz kalmamakla beraber bir çok Docker nedir? örnekleri vs. hazırlanıyor. Bu nedenle biz Docker nedir? tanımlamasından daha çok hızlı ilerlemeler şeklinde ufak uygulamalar geliştiricez. Bende bu yazı serisiyle paralel şekilde öğrenimimi sağlayacağımı belirtmek isterim ! 🙂 Başlıyoruz.. İlk olarak makinemize Docker ı kuralım. Mac: https://docs.docker.com/docker-for-mac/ Windows : https://docs.docker.com/docker-for-windows/ İndirip kurulumu sağladıktan sonra terminali açarak
Okumaya Devam Et

Executor newCachedThreadPool() newFixedThreadPool(n) newSingleThreadExecutor() Thread kullanımı, Java ile multi-threading yazılım geliştiriyorsanız mutlaka ama mutlaka bilmeniz gereken konulardan biridir. ThreadPool Gün geldi çattı ve uygulamanız ilk kurulduğu amacın evrimleşmesi sonucu bambaşka bir hale büründü 🙂 Yani birçok uygulamada gidişat bu yöndedir ve olması gerekende budur. Aynı anda 1000 den fazla kullanıcıya cevap verme gereksinimiz var artık. Sadece patron kullanmıyor sonuçta. Ya da patron öyle bir uygulama istemişki ağır işler gerektiriyor. Uzun süreler gerektiren işlemler sonucunda akış tamamlanıyor vs.
Okumaya Devam Et

RxJava range() Kullanımı **Örnek kod:– private void range() { Observable.range(3, 5).subscribeOn(Schedulers.io()) .subscribe(success -> { Log.i(TAG, "val: " + success.toString()); }); } Açıklama: İlk değer 3 kabul edilerek sonraki 5 sayı için teker teker onNext() çağırılır. Yani 3 , 4, 5, 6, 7 Yukarıda ki kodun çıktısı aşağıdaki gibidir. I/MainActivity: val: 3 I/MainActivity: val: 4 I/MainActivity: val: 5 I/MainActivity: val: 6 I/MainActivity: val: 7 RxJava candır 😉
Okumaya Devam Et

RxJava scan() Kullanımı RxJava da scan() kullanımı iki şekilde olur. 1. İlk değer ataması yapılarak private void scan() { Observable.just(3, 5, 7, 9) .scan(10,(val1, val2) -> { // Log.i(TAG, "val1: " + val1.toString()); Log.i(TAG, "val2: " + val2.toString()); return val1 + val2; }).subscribeOn(Schedulers.io()) .subscribe(success -> { Log.i(TAG, "Sonuc:" + success.toString()); }); } 2. İlk değer ataması yapılmadan private void scan() { Observable.just(3, 5, 7, 9) .
Okumaya Devam Et

RxJava reduce() Kullanımı reduce() fonskyionu iki şekilde çalışır; 1 .reduce(new BiFunction<Integer, Integer, Integer>() { @Override public Integer apply(Integer val1, Integer val2) throws Exception { return null; } }) 2 .reduce(10,new BiFunction<Integer, Integer, Integer>() { @Override public Integer apply(Integer val1, Integer val2) throws Exception { return null; } }) 1 ile 2 nin farkı, 2 de görüldüğü üzere fonksiyona başlangıç değeri atanabilmesidir. Aşağıdaki örneklerde daha net görebilirsiniz.
Okumaya Devam Et

Aykut Asil

Continious Innovation

Software Developer

Turkey