Unit Test 05: Test Edilebilir Yazılım Nasıl Geliştirilir?
May 18, 2021
20:15
Unit Test 05: Test Edilebilir Yazılım Nasıl Geliştirilir?

“Unit Test” yazı dizisinin bir önceki yazısında kaliteli unit test nasıl yazılır konusunu incelemiştik. Bu yazıda da test edilebilir yazılımlar nasıl tasarlanır sorusuna cevap arayacağız.

Unit Test 04: Kaliteli Unit Test Nasıl Yazılır?
May 18, 2021
20:10
Unit Test 04: Kaliteli Unit Test Nasıl Yazılır?

“Unit Test” yazı dizisinin bir önceki yazısında neden unit test yazarız sorusuna cevaplar arayıp unit testlerin faydalarına değinmiştik. İkna olduysak artık test yazmaya başlayabiliriz. Peki unit test nasıl yazılmalı? Unit test yazarken nelere dikkat etmeliyiz? Unit testlerimizin kaliteli, faydalı ve amaca yönelik olması için takip etmemiz gereken kurallar nelerdir? Bu yazıda da konunun bu boyutunu ele alıyor olacağız.

Unit Test 03: Neden Unit Test Yazarız?
May 18, 2021
20:05
Unit Test 03: Neden Unit Test Yazarız?

“Unit Test” yazı dizisinin bir önceki yazısında unit test ve diğer test çeşitlerini birbirinden ayıran temel farkları incelemiştik. Bu yazıda neden unit test yazmalıyız sorusuna cevap arayacağız. Bu soruya bulduğumuz cevaplar bize aslında unit test yazmanın faydalarını anlatıyor olacak.

Unit Test 02: Unit Test'in Diğer Test Çeşitlerinden Farkları Nedir?
May 18, 2021
20:00
Unit Test 02: Unit Test'in Diğer Test Çeşitlerinden Farkları Nedir?

“Unit Test” yazı dizisinin bir önceki yazısında unit test nedir kısaca onu incelemiştik. Şimdi diğer bazı test çeşitleri nelerdir ve unit testleri diğer test çeşitlerinden ayıran temel özellikler nelerdir bunları inceleyeceğiz.

Unit Test 01: Unit Test Nedir?
May 17, 2021
23:51
Unit Test 01: Unit Test Nedir?

Yazılımcılar ikiye ayrılır. Unit test yazanlar ve unit test yazmayanlar. Bazen vakit yok deriz, bazen zor gelir, bazen proje/kod test yazmaya uygun değil deriz. Unit test yazmak istemediğimizde bu saydıklarım gibi çok fazla miktarda bahaneler üretebiliriz ve üretebileceğimiz bahanelerin de hemen hemen hepsini daha önce başkalarından da duymuşuzdur. Bu yazı dizisinde unit test konusu ile ilgili birçok soruya cevaplar arayarak kaliteli yazılım geliştirme basamaklarından birkaç tanesini hep birlikte tırmanmaya çalışacağız.

Gradle: Spring Boot & Angular Uygulamalarını Birlikte Build Edelim
Jan 10, 2021
14:04
Gradle: Spring Boot & Angular Uygulamalarını Birlikte Build Edelim

Yeni bir projeye başlamanın en sıkıcı maddelerinden birisi de projeyi oluşturup her projede kullandığımız basmakalıp (boilerplate) kodları yazmaktır. Build aracını (maven, gradle, vs) seçmek, bağımlılıkları build aracına eklemek, kullanılan frameworklerin (spring, angular, vs) konfigürasyonlarının yapılması gibi her projede tekrar tekrar yaptığımız işler vardır ve bir kişi o işi yapıp projeyi repository’ye atmazsa ekibin geri kalanı projede yazılım geliştirmeye başlayamaz. Genellikle bu işlem varolan bir projeyi kopyalayıp içinde yeni projeye lazım olmayan ne var ne yok silmek şeklinde yapılsa da bazen yeni bir proje yapısını gerektiren durumlar oluşabilir. 2018 yılında backend için Spring Boot ve frontend için Angular framework’lerini kullanmaya karar verdiğimizde ekip için bu yeni bir proje yapısıydı ve biraz araştırıp bu iki arkadaşı bir arada kullanmanın proje için en uygun yolunu bulmam gerekmişti. O günden beri ekip olarak birçok projede kullandığımız bu proje yapısını sıfırdan bir proje oluşturarak anlatmaya çalışacağım.

Dağıtık Uygulamada Büyük Veri Okumak
Jan 8, 2021
22:48
Dağıtık Uygulamada Büyük Veri Okumak

2020 senesi içerisinde Inomera‘da Telekom sektörü için geliştirdiğimiz devasa bir projeyi başarıyla canlıya aldık. Oldukça güncel teknolojiler kullandığımız ve mikroservis mimarisi ile geliştirdiğimiz bu sistem Kubernetes ortamı üzerinde çalışmakta. Bu yazıda bu sistemde yaklaşık 22 milyon satır kullanıcı verisini veritabanından okuyup dağıtık bir cache Map’ine dolduran küçük bir mikroserviste uyguladığımız dağıtık veri okuma yöntemini anlatmaya çalışacağım.

Daha Tatlı Bir Git Log
Apr 26, 2020
02:40
Daha Tatlı Bir Git Log

git log, Git versiyon kontrol sisteminde oluşturulmuş commit geçmişini tarihsel olarak sondan başa doğru sırasıyla konsola yazan bir Git komutudur. Tek başına kullanıldığında oldukça sıkıcı bir görünüme sahip olan git log komutunu birkaç parametre ile daha tatlı bir hale getirebiliyoruz.

Git
Git Commit Mesajı Nasıl Yazılmalı
Apr 19, 2020
13:25
Git Commit Mesajı Nasıl Yazılmalı

Kaynak kodda yaptığımız bir değişikliği versiyon kontrol sistemine kaydederken yapmamız gereken en önemli maddelerden bir tanesi bu değişikliği iyi yazılmış bir mesaj ile açıklamaktır. Peki iyi bir commit mesajını diğerlerinden ayıran özellikler nelerdir? Bu yazıda dünya genelinde kabul görmüş bazı standartları göreceğiz.

Git
Thread Local Nedir?
Apr 12, 2020
21:50
Thread Local Nedir?

Bu yazıda Java dünyasında sıkça kullanıldığına veya bahsedildiğine şahit olduğumuz ThreadLocal sınıfını inceleyeceğiz. ThreadLocal sınıfı belirlediğimiz nesnelerin sadece aynı thread tarafından erişilebilir olmasını sağlar. Bu sayede thread safe olmayan nesneleri thread safe kullanmış oluruz. Bir ThreadLocal nesnesi içerisine yazdığımız nesne, ThreadLocal‘e yazan thread tarafından çalıştırılan tüm methodlar tarafından okunabilir olacaktır. Gelin bu güçlü aracı avantajları ve dezavantajları ile inceleyelim.

Slf4j: MDC Kullanarak Log Takibini Kolaylaştırma
Feb 13, 2019
22:49
Slf4j: MDC Kullanarak Log Takibini Kolaylaştırma

Bu yazıda birden fazla sınıfın log yazdığı bir log dosyasında spesifik bir HTTP isteğine ait logları nasıl buluruz sorusuna kolay uygulanabilir bir cevap paylaşacağım.

User Threads vs Daemon Threads
Feb 11, 2019
23:37
User Threads vs Daemon Threads

Java’da birden fazla görevi eş zamanlı gerçekleştirmek istediğimizde Thread‘lerden faydalanırız. Yeni bir Thread nesnesi oluşturur, constructor argümanı olarak bir Runnable geçeriz veya Thread sınıfını extend eder, void run() methodunu override ederiz. Bunları daha önce yaptıysanız belki Thread sınıfının üzerindeki setDaemon(boolean on) methodunu da farketmişsinizdir. Peki kimdir bu daemon?