Kategoriler

Agile

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

Alertmanager

Prometheus ve Alertmanager ile Alarm Yönetimi

Bu blog yazısında, Prometheus ve Alertmanager kullanılarak sistemlerdeki kritik olayların etkin bir şekilde izlenmesi ve uyarıların ilgili ekiplere ulaştırılması süreci ele alınmaktadır.

Büyük Ölçekli

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

CNI

Cilium Genel Bakış & Cilium Envoy L7 Proxy & Cilium L7 Network Policy

Bu blog serisinde, `Cilium`'dan bahsedeceğim. Öncesinde, CNI nedir ve neden ihtiyaç duyarız, kısaca açıklayacağım. Teorik bilgiyle yetinmek istemeyenler için de pratik yapacağız; 🔗[Isovalent'in](https://isovalent.com/resource-library/labs/) hazırladığı lab'lar üzerinde Cilium'u deneyimleyeceğiz. Bu pratiklerde, `Cilium L7 network policy`, `L7 load-balancing` ve `Envoy` gibi konulara odaklanacağız.

Cilium

Cilium Genel Bakış & Cilium Envoy L7 Proxy & Cilium L7 Network Policy

Bu blog serisinde, `Cilium`'dan bahsedeceğim. Öncesinde, CNI nedir ve neden ihtiyaç duyarız, kısaca açıklayacağım. Teorik bilgiyle yetinmek istemeyenler için de pratik yapacağız; 🔗[Isovalent'in](https://isovalent.com/resource-library/labs/) hazırladığı lab'lar üzerinde Cilium'u deneyimleyeceğiz. Bu pratiklerde, `Cilium L7 network policy`, `L7 load-balancing` ve `Envoy` gibi konulara odaklanacağız.

KOBİ

Dijital Dönüşüm Yolculuğunun Navigasyonu: KOBİ'ler, Endüstri 4.0 ve Toplum 5.0

Teknolojinin ve ihtiyaçların hızlı bir şekilde evrim sürecinde bulunmasıyla, talepleri ve cevap verme şekilleri ile birlikte KOBİ’leri de kapsayan eşi görülmemiş bir değişim dönemi başladı. KOBİ’ler için ise bu dijital değişim Endüstri 4.0 ve Toplum 5.0 ile daha da odaklanılmış bir yolculuk haline geldi. Bu...

Metodoloji

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

Monitoring

Prometheus ve Alertmanager ile Alarm Yönetimi

Bu blog yazısında, Prometheus ve Alertmanager kullanılarak sistemlerdeki kritik olayların etkin bir şekilde izlenmesi ve uyarıların ilgili ekiplere ulaştırılması süreci ele alınmaktadır.

Network

Cilium Genel Bakış & Cilium Envoy L7 Proxy & Cilium L7 Network Policy

Bu blog serisinde, `Cilium`'dan bahsedeceğim. Öncesinde, CNI nedir ve neden ihtiyaç duyarız, kısaca açıklayacağım. Teorik bilgiyle yetinmek istemeyenler için de pratik yapacağız; 🔗[Isovalent'in](https://isovalent.com/resource-library/labs/) hazırladığı lab'lar üzerinde Cilium'u deneyimleyeceğiz. Bu pratiklerde, `Cilium L7 network policy`, `L7 load-balancing` ve `Envoy` gibi konulara odaklanacağız.

Nexus

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

Prometheus

Prometheus ve Alertmanager ile Alarm Yönetimi

Bu blog yazısında, Prometheus ve Alertmanager kullanılarak sistemlerdeki kritik olayların etkin bir şekilde izlenmesi ve uyarıların ilgili ekiplere ulaştırılması süreci ele alınmaktadır.

Scrum

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

agile

SCRUM Değerleri

Bu blog yazısında, SCRUM çerçevesinin, diğer yöntemler gibi her soruna spesifik bir çözüm sunmadığına, bunun yerine yazılımcılara rehberlik eden bir değerler bütünü sunduğuna odaklanılmaktadır. Bu değerler bütünü, yazılımcıların karşılaştıkları zorluklar karşısında karar almalarına ve uygun çözümler geliştirmelerine yol gösterici bir pusula niteliği taşır.

Çevik Projeler için Kurumsal Gereklilikler

Çevik projeler için kurumsal değişim ve organizasyon kültüründe ne gibi değişiklikliğe gidilmelidir?

Devops Kültürü Nedir?

Devops, yazılım geliştirme (dev) ve bilişim teknolojileri operasyonlarını (ops) birleştiren iyi pratikler kümesidir. Yıllar boyunca olması gerektiği şekilde, yeni teknoloji ve keşfedilen iyi pratiklerle kendini güncelleyerek buralara gelmiştir. Agile Prensipleri etrafında, Agile prensiplerini uygulamaya dönüştürmek için ortaya çıkmıştır. Bir kuruluşun uygulamaları ve hizmetleri yüksek hızda...

Scrum'da Uygulanan Kötü Pratikler

Günlük Scrum toplantılarının amacından sapması, sprintlerin belirsiz sürelerinin olması, planlama yaparken aşırı düşünme, sahip olunan scrum rolü en iyi nasıl uygulanır gibi bir çok noktaya değinilmiştir.

Çevik Yaklaşımlara Genel Bakış

Çevik yaklaşım, Çevik Manifestosu'nun birleştirdiği değerler ve ilkeler bütünü olarak o yıl başlayan bir harekettir; bununla birlikte "kalite" ve "tasarım odaklı düşünce" gibi daha erken tarihli pek çok öncülü bulunmaktadır.

Agile Test

Hataları veya açıkları bulmak, gereksinimlerin sağlandığına emin olmak gibi amaçların yerine; Ekibimizin başarıya ulaşmasına nasıl katkı sağlayabileceğimizi ya da ortaya çıkabilecek hataları ilk aşamada nasıl ortadan kaldırabileceğimizi düşünmeliyiz. Amacımızın sadece kodlamak ve hataları bulup düzeltmek olmadığını; Test edilebilir kod yazmanın veya oluşturulan yazılımın başarılı bir...

aktiviti

BPMN 2.0 Teknolojileri

Bu blog serisinde BPMN 2.0 standartını ve bu standartı kullanan bazı teknolojileri ele alacağız.

altyapı

Prometheus İzleme Aracı

Günümüzün karmaşık ve dinamik sistemlerinde, işletmelerin hızla büyüyen altyapılarını izlemek ve yönetmek hayati öneme sahiptir. Bu noktada, Prometheus monitoring gibi güçlü bir araç devreye giriyor. Prometheus, modern bir açık kaynak tabanlı izleme ve alarm sistemi olarak, karmaşık sistemlerin performansını, kaynak kullanımını ve hataları etkin bir...

Kimlik Doğrulama Altyapılarının Kullanımı

Bu çalışma kapsamında açık kaynak olmaları, kapsamları ve ihtiyaçlara göre genişletilebilirlikleri açısından öne çıkan web tabanlı uygulamalara güvenli tekil oturum açma (Single Sign On / SSO) hizmetine sahip Apereo CAS ve Keycloak teknolojileri incelenecektir...

api

OpenAPI ve Spring Boot ile API Dokümantasyonu

Bu blog yazısında, OpenAPI ve Spring Boot kullanarak API dokümantasyonunun oluşturulması, bu dokümanın bağımsız olarak dışa aktarılması, sürüm kontrolü, doküman güvenliğinin sağlanması ve en iyi uygulama pratikleri ele alınacaktır.

architecture

Dapr'da Outbox Deseni ve Mesajlaşma Aracısını Değiştirme Uygulaması

Dapr, dağıtık uygulamaları geliştirmek ve yönetmek için tasarlanmış bir açık kaynaklı platformdur. Bu platform, modern uygulama geliştirme senaryolarına uyum sağlamak amacıyla geliştirilmiştir. Bu nedenle, farklı ortamlarda kullanılabilirlik sunar. Bunlar arasında bulut tabanlı altyapılar, kenar hesaplama (edge computing) cihazları ve yerel geliştirme makineleri gibi çeşitli seçenekler...

aws

Serverless Mikroservisler: AWS Uygulaması

Bu çalışmada kurum projelerinde halihazırda kullanmakta olduğumuz mikroservis mimarisinin avantajlarını keşfetmek, bu avantajları serverless anlayışı ile birleştirerek daha da bağımsız ve güvenilir bir yapı elde edebilmenin yöntemlerini aradık. Mikroservis mimarisi ile birlikte servislerin birbirinden bağımsızlığını sağlarken, serverless ile de iş mantığı ile altyapı arasındaki ilişkiyi...

batch

Spring Batch Mimarisi ve Veri İşleme Stratejileri

Spring Batch, büyük veri setleri üzerinde toplu işlemleri kolayca yönetmek için kullanılan Java tabanlı bir yazılım çerçevesidir. Bu yazımızda, Spring Batch'in mimarisi, çalışma prensibi ve kullanım alanlarını örnek kodlarıyla birlikte inceleyeceğiz.

bpmn2.0

BPMN 2.0 Teknolojileri

Bu blog serisinde BPMN 2.0 standartını ve bu standartı kullanan bazı teknolojileri ele alacağız.

bsd

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis, son yaptığı güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre Versiyon 7.4'ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Hâlihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz...

camunda

BPMN 2.0 Teknolojileri

Bu blog serisinde BPMN 2.0 standartını ve bu standartı kullanan bazı teknolojileri ele alacağız.

cloud native

Dapr: State Management

State yönetimi, herhangi bir yeni, eski, monolith veya microservice uygulamasının en yaygın ihtiyaçlarından biridir. Farklı veritabanı kütüphaneleri ile uğraşmak ve bunları test etmek ve hataları handle etmek hem zor hem de zaman alıcı olabilir. Bir uygulamanın save, get ve delete statelerini yönetmek için key/value state...

Dapr: Service Invocation

Mikroservis tabanlı uygulamalarda, birden çok servisin birbiri ile haberleşmesine ihtiyaç vardır. Bu iletişim gereksinimi de beraberinde aşağıdaki sorunları getirmektedir.

cockroachdb

CockroachDB: Modern Çağın Dağıtık Veri Tabanı Çözümü

CockroachDB modern uygulamaların ihtiyaçlarını karşılamak için tasarlanmış, yüksek erişilebilirlik ve ölçeklenebilirlik sağlayan, dağıtık mimarili bir veri tabanıdır. Bu yazımızda, CockroachDB’nin yapısı, özellikleri ve PostgreSQL’den CockroachDB’ye nasıl geçiş yapılabileceği gibi konuları ele alacağız.

dapr

Dapr'da Outbox Deseni ve Mesajlaşma Aracısını Değiştirme Uygulaması

Dapr, dağıtık uygulamaları geliştirmek ve yönetmek için tasarlanmış bir açık kaynaklı platformdur. Bu platform, modern uygulama geliştirme senaryolarına uyum sağlamak amacıyla geliştirilmiştir. Bu nedenle, farklı ortamlarda kullanılabilirlik sunar. Bunlar arasında bulut tabanlı altyapılar, kenar hesaplama (edge computing) cihazları ve yerel geliştirme makineleri gibi çeşitli seçenekler...

detekt

Detekt ile Kod Kalitesini Artırma

Detekt kotlin tabanlı projelerde statik kod analizini gerçekleştiren araçlardan biridir. Kotlin için özel olarak yapılandırılmış olması, bu aracı özellikle Kotlin projelerinde vazgeçilmez kılar.Bu blog yazımızda Detek ve kullanım alanlarını inceliyor olacağız.

devops

Kubernetes Cloud Native CI/CD: Tekton ile Yeni Bir Dönem

Yazılım dünyasında otomasyon denince akla Jenkins pipeline, GitLab’ın CI/CD (Continuous Integration/Continuous Deployment- Sürekli Entegrasyon/Sürekli Teslimat) ve arada kaybolan bash script'lerinin garip labirentleri gelirdi.

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis, son yaptığı güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre Versiyon 7.4'ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Hâlihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz...

Spring Framework

Son zamanlarda, yazılım geliştirme sektörü yavaş ama gerçek bir dönüşümden geçmektedir. Yazılımlar giderek her şeyin bir parçası haline gelirken yazılım geliştiriciler, artan bu taleple daha fazla otomasyon yoluyla başa çıkmaya çalışmaktadır...

CI/CD Süreç Yönetimi

Son zamanlarda, yazılım geliştirme sektörü yavaş ama gerçek bir dönüşümden geçmektedir. Yazılımlar giderek her şeyin bir parçası haline gelirken yazılım geliştiriciler, artan bu taleple daha fazla otomasyon yoluyla başa çıkmaya çalışmaktadır...

Devops Kültürü Nedir?

Devops, yazılım geliştirme (dev) ve bilişim teknolojileri operasyonlarını (ops) birleştiren iyi pratikler kümesidir. Yıllar boyunca olması gerektiği şekilde, yeni teknoloji ve keşfedilen iyi pratiklerle kendini güncelleyerek buralara gelmiştir. Agile Prensipleri etrafında, Agile prensiplerini uygulamaya dönüştürmek için ortaya çıkmıştır. Bir kuruluşun uygulamaları ve hizmetleri yüksek hızda...

dijital dönüşüm

Dijital Dönüşüm Yolculuğunun Navigasyonu: KOBİ'ler, Endüstri 4.0 ve Toplum 5.0

Teknolojinin ve ihtiyaçların hızlı bir şekilde evrim sürecinde bulunmasıyla, talepleri ve cevap verme şekilleri ile birlikte KOBİ’leri de kapsayan eşi görülmemiş bir değişim dönemi başladı. KOBİ’ler için ise bu dijital değişim Endüstri 4.0 ve Toplum 5.0 ile daha da odaklanılmış bir yolculuk haline geldi. Bu...

dokumantasyon

OpenAPI ve Spring Boot ile API Dokümantasyonu

Bu blog yazısında, OpenAPI ve Spring Boot kullanarak API dokümantasyonunun oluşturulması, bu dokümanın bağımsız olarak dışa aktarılması, sürüm kontrolü, doküman güvenliğinin sağlanması ve en iyi uygulama pratikleri ele alınacaktır.

drone

MacOS Apple Silicon Ortamında AirSim Kurulumu

AirSim (Ve daha doğrusu Unreal Engine’ın önceki sürümleri) Apple Silicon’un ARM ortamına uygun olmadığı için kurulum biraz daha zorlu hale gelmiştir. Bu yazıda amaç bu kurulum sürecini eksiksiz ve hatasız şekilde Türkçe olarak sunmaktır.

Drone Programlamaya Giriş Ve Simülasyon Teknolojilerine Genel Bakış

Havada insansız ve uçabilen tüm araçlara drone olarak adlandırabiliriz (İHA-UAV). Dronlar, uzaktan kumanda ile kontrol edilebilen (Yada tamamen otonom veya bir arayüz ile kontrol edilen), komut verilebilen, video ve görüntü kaydı yapabilen insansız hava araçlarıdır.

endüstri 4.0

Dijital Dönüşüm Yolculuğunun Navigasyonu: KOBİ'ler, Endüstri 4.0 ve Toplum 5.0

Teknolojinin ve ihtiyaçların hızlı bir şekilde evrim sürecinde bulunmasıyla, talepleri ve cevap verme şekilleri ile birlikte KOBİ’leri de kapsayan eşi görülmemiş bir değişim dönemi başladı. KOBİ’ler için ise bu dijital değişim Endüstri 4.0 ve Toplum 5.0 ile daha da odaklanılmış bir yolculuk haline geldi. Bu...

flowable

BPMN 2.0 Teknolojileri

Bu blog serisinde BPMN 2.0 standartını ve bu standartı kullanan bazı teknolojileri ele alacağız.

frontend

Mikro Önyüz Mimarisi

Dünyanın giderek dijitalleştiği, her şeyin sanal ortama aktarıldığı bir dönemde yaşıyoruz. Eskiden sadece bilgisayarlara programlar yükleyerek yapılabilen birçok işlem, artık farklı platformlar üzerinden onlarca değişik cihaz yardımı ile kolayca yapılır hale geldi...

garbage-colector

Java 17 ve Öncesi Garbage Collector (Çöp Toplayıcı)

Çöp Toplama (Garbage Collection), program çalışırken kullanılmayan bloklarını tespit edip serbest bırakarak heap (dinamik bellek) yönetimini kolaylaştıran bir mekanizmadır. Çöp toplama bazı dillerde manuel olarak yönetilirken bazılarında otomatiktir. Örneğin C++' da manuel olarak yönetilirken, Java'da böyle bir maliyet söz konusu değildir. Bu çalışmada çöp toplama...

iletisim

Mikroservis Mimarisi 3: Eş Zamansız İletişim Detaylı İnceleme

Blog serisinin 3. kısmında mikroservis mimarisinde eş zamansız iletişimin detaylı olarak örneklerle inceleyeceğiz.

Mikroservis Mimarisi 2: Eş Zamanlı İletişim Detaylı İnceleme

Blog serisinin 2. kısmında mikroservis mimarisinde eş zamanlı iletişimin detaylı olarak örneklerle inceleyeceğiz.

Mikroservis Mimarisi 1: İletişime Giriş

Bu blog serisinde, mikroservis mimarisinde iletişimin önemini ele alıyoruz. Eş zamanlı ve eş zamansız iletişim türlerini karşılaştırarak, hangi senaryolarda hangisinin daha uygun olduğunu tartışıyoruz. Ayrıca, gerçek hayatta karşılaşılan problemler ve bu problemlere uygulanabilecek çözümler de yer alıyor.

is analisti

Yazılım Projelerinde İş Analisti ve Ürün Sahibi Rolleri

Bir yazılım projesinde takım içerisinde farklı rollerde birçok kişi bulunmaktadır. Bu yazıda iş analisti ve ürün sahibinin rollerinden, ortak ve farklı olan özelliklerinden bahsedilecek olup iş analisti ve ürün sahibinin bir yazılım projesinin başarısına nasıl katkıda bulunacağı değerlendirilmektedir.

izleme

Micrometer ile Modern Uygulamalarda Metrik Yönetimi

Bu blog yazısında, uygulama performansı ve sağlığının izlenmesi için Spring Boot ve Micrometer kullanılarak oluşturulabilecek metrik toplama stratejileri, özelleştirilmiş metrik tanımlamaları, izleme araçlarıyla entegrasyon süreçleri, eşik değer ve uyarı yönetimi ile bu alandaki en iyi uygulamalar detaylı olarak ele alınacaktır.

java

Java 17 ve Öncesi Garbage Collector (Çöp Toplayıcı)

Çöp Toplama (Garbage Collection), program çalışırken kullanılmayan bloklarını tespit edip serbest bırakarak heap (dinamik bellek) yönetimini kolaylaştıran bir mekanizmadır. Çöp toplama bazı dillerde manuel olarak yönetilirken bazılarında otomatiktir. Örneğin C++' da manuel olarak yönetilirken, Java'da böyle bir maliyet söz konusu değildir. Bu çalışmada çöp toplama...

Java 21'de Gelen Yenilikler - Virtual Threads - Spring Framework'te Kullanımı

Bu yazıda Java 21 ile gelen yenilikleri inceleyeceğiz. Virtual threadlerin artılarından, eksilerinden bahsedip Spring Boot tabanlı uygulamalarda kullanımına değineceğiz.

Stream API

Stream API, Java 8 ile eklenmiş bir yeniliktir. Stream akıntı anlamına gelir ve çalışma mantığı olarak da bir akıntı üzerine gelen verileri sırayla ya da paralel işleyen metotlar olarak düşünülebilir. Stream sayesinde loop kullanan imperative metotlar, fonksiyonel programlamaya uygun şekilde değiştirilebilmektedir.

Java'da Fonksiyonel Programlama

Fonksiyonel programlama, fonksiyonlar kullanarak program tasarlama modelidir. Obje Tabanlı Programlama modeline göre güçlü ve zayıf olduğu yönler bulunur. Sektörde oldukça popüler ve aslında obje tabanlı olan Java programlama diline; Java 8 sürümüyle birlikte, fonksiyonel programlama konseptlerini uygulamamıza imkân tanıyan yenilikler eklenmiştir. Bu sayede hem obje...

Java 17: Text-Blocks & String Methods

Text-Blocks Javada çok satırlı Stringleri kullanmamıza yarar. Çoğu programlama dilinde olan bu özellik, java 13 sürümü ile javaya da eklenmiştir. Bir diğer yeni özellik ise satır içi çok satırlı stringleri daha okunabilir hale getirme özelliğidir.

Java 17: Switch Expression

Switch-case tanımı, if-else ile benzer bir şekilde bir variable’ın değerine göre farklı kod bloklarının çalışmasını sağlar. Java 7’ye kadar switch-case tanımlamalarında sadece integer değerde bir variable’ın koşulları kullanılabiliyorken, Java 8’de String ve Enum type’lar için de kullanılabilir hale geldi.

Java 17: Local-Variable Type Inference

Local-Variable Type Inference özelliği Java 10 ile birlikte gelmiştir. JavaScript dilindeki gibi variable tanımlaması yaparken local type inference için kullanılan ve variable’ı istediğiniz tipte tanımlamanızı sağlayan bir Java anahtar kelimesidir.

Java 17: Lambda Expression

Lambda Expressionları, fonksiyonel programlamayı kullanmamızı sağlar. Okunabilir ve kısa kodlar yazmamızı sağlar. Daha kolay ve kullanışlı APIlar ve kütüphaneler yazmamıza yardımcı olur. Pararel işleme için destek sunar.

Java 17: Collections

Java Collections, nesneleri tutmak ve manipüle etmek için tasarlanan bir frameworktür. Veri üzerinde arama, sıralama, ekleme, değiştirme, silme gibi işlemleri gerçekleştirir. Collections, birçok interface (Set, List, Queue, Deque), sınıflar (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet) ve algoritmalar içerir.

Java 17: Interfaces

Java 8 ile birlikte interfacelerde default ve statik metotlar tanımlanabilir. Daha önce interfaceleri implemente eden sınıfları değiştirmeden interface’e yeni bir metot eklemek mümkün değildi, artık interfacelerde metotlar implemente edilebilir hale...

Java 17: Güncel Java Kod Gözden Geçirme Kontrol Listesi

Java 8 sonrası eklenen özellikleri kapsayan, kodun daha okunabilir olmasını sağlayan maddeler listelenmiştir.

Java 17: Date and Time API

Java 8 öncesinde kadar zaman bilgisi için Date ve Time API kullanılıyordu fakat bu API içerik olarak çok fazla detaya sahipti. Java 8 ile birlikte Date ve Time API’larında radikal değişiklikler yapıldı. Bu değişikler ile geliştiricilerin sadece 6 farklı sınıfın detaylarını bilerek tarih bilgisini geliştirdikleri...

job

Spring Batch Mimarisi ve Veri İşleme Stratejileri

Spring Batch, büyük veri setleri üzerinde toplu işlemleri kolayca yönetmek için kullanılan Java tabanlı bir yazılım çerçevesidir. Bu yazımızda, Spring Batch'in mimarisi, çalışma prensibi ve kullanım alanlarını örnek kodlarıyla birlikte inceleyeceğiz.

kafka

Kafka Streams'e Giriş

Kafka Streams, Kafka platformunun üzerine inşa edilmiş bir akış işleme kütüphanesi olup, günümüzde birçok sistemin ihtiyaç duyduğu gerçek zamanlı veri işleme ve analiz gereksinimlerini karşılamak amacıyla geliştirilmiştir.

Kontrat Testi ve Spring Cloud Contract ile Kafka Kontrat Testleri

Bu yazıda kontrat testin ne olduğuna, neden ihtiyaç duyulduğuna ve genel yapısına değinilmiştir. Kafka'da üretici ve tüketici rolündeki iki mikroservis için bir senaryo üzerinden Kafka kontrat testlerini Spring Cloud Contract ile nasıl gerçekleştirebileceğimiz kod örnekleriyle anlatılmıştır.

Dapr'da Outbox Deseni ve Mesajlaşma Aracısını Değiştirme Uygulaması

Dapr, dağıtık uygulamaları geliştirmek ve yönetmek için tasarlanmış bir açık kaynaklı platformdur. Bu platform, modern uygulama geliştirme senaryolarına uyum sağlamak amacıyla geliştirilmiştir. Bu nedenle, farklı ortamlarda kullanılabilirlik sunar. Bunlar arasında bulut tabanlı altyapılar, kenar hesaplama (edge computing) cihazları ve yerel geliştirme makineleri gibi çeşitli seçenekler...

Spring ile Kafka: Mesaj alma ve Verme

Kafka, öğrenmesi ve ustalaşması çok zor olan bir mesaj kuyruğudur. Fakat spring, bize kafkanın karmaşıklığı ile uğraşmak için güzel yöntemler vermekte. Serimizin ilk yazısında, spring ile kafka temel ayarlarını yapmayı, ve mesaj alıp vermeyi göreceğiz.

kişisel gelişim

İmposter Sendromu

İmposter sendromu, ilk olarak 1978 yılında Clance ve Imes tarafından “kişinin bir alandaki tüm başarılarına rağmen o alanda insanların sandığı kadar yetkin olmadığını düşünmesi, dolayısıyla bir sahtekâr gibi hissetmesi” olarak tanımlanmıştır.

kogito

BPMN 2.0 Teknolojileri

Bu blog serisinde BPMN 2.0 standartını ve bu standartı kullanan bazı teknolojileri ele alacağız.

kubernetes

Cilium Genel Bakış & Cilium Envoy L7 Proxy & Cilium L7 Network Policy

Bu blog serisinde, `Cilium`'dan bahsedeceğim. Öncesinde, CNI nedir ve neden ihtiyaç duyarız, kısaca açıklayacağım. Teorik bilgiyle yetinmek istemeyenler için de pratik yapacağız; 🔗[Isovalent'in](https://isovalent.com/resource-library/labs/) hazırladığı lab'lar üzerinde Cilium'u deneyimleyeceğiz. Bu pratiklerde, `Cilium L7 network policy`, `L7 load-balancing` ve `Envoy` gibi konulara odaklanacağız.

PostgreSQL için Kubernetes Operatörü Seçimi

Kubernetes operatörleri, karmaşık uygulamaların yönetimini otomatikleştirmeye, iş yüklerinin dağıtımı, ölçeklendirilmesi ve bakımına yönelik bir çözüm olarak ortaya çıkmıştır. Bu kapsamlı kılavuzda, PostgreSQL dağıtımları için en uygun Kubernetes Operatörünü seçmeye yönelik hususları ve kriterleri ayrıntılı olarak ele alacağız.

licence

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis, son yaptığı güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre Versiyon 7.4'ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Hâlihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz...

liquibase

Liquibase ile Veri Tabanı Şema Değişiklik Yönetimi

Bu blog yazısında, Liquibase'in ne olduğundan, ne için kullanıldığından, veri tabanı şema değişikliklerini yönetmek için Liquibase'in Spring Boot uygulamasında nasıl kullanılabileceğinden, Liquibase komutlarının Gradle ile nasıl çalıştırılabileceğinden ve Liquibase kullanırken dikkat edilmesi gereken en iyi uygulamalardan bahsedilecektir.

metrik

Micrometer ile Modern Uygulamalarda Metrik Yönetimi

Bu blog yazısında, uygulama performansı ve sağlığının izlenmesi için Spring Boot ve Micrometer kullanılarak oluşturulabilecek metrik toplama stratejileri, özelleştirilmiş metrik tanımlamaları, izleme araçlarıyla entegrasyon süreçleri, eşik değer ve uyarı yönetimi ile bu alandaki en iyi uygulamalar detaylı olarak ele alınacaktır.

micrometer

Micrometer ile Modern Uygulamalarda Metrik Yönetimi

Bu blog yazısında, uygulama performansı ve sağlığının izlenmesi için Spring Boot ve Micrometer kullanılarak oluşturulabilecek metrik toplama stratejileri, özelleştirilmiş metrik tanımlamaları, izleme araçlarıyla entegrasyon süreçleri, eşik değer ve uyarı yönetimi ile bu alandaki en iyi uygulamalar detaylı olarak ele alınacaktır.

microservices

Dapr'da Outbox Deseni ve Mesajlaşma Aracısını Değiştirme Uygulaması

Dapr, dağıtık uygulamaları geliştirmek ve yönetmek için tasarlanmış bir açık kaynaklı platformdur. Bu platform, modern uygulama geliştirme senaryolarına uyum sağlamak amacıyla geliştirilmiştir. Bu nedenle, farklı ortamlarda kullanılabilirlik sunar. Bunlar arasında bulut tabanlı altyapılar, kenar hesaplama (edge computing) cihazları ve yerel geliştirme makineleri gibi çeşitli seçenekler...

mikroservis

Kontrat Testi ve Spring Cloud Contract ile Kafka Kontrat Testleri

Bu yazıda kontrat testin ne olduğuna, neden ihtiyaç duyulduğuna ve genel yapısına değinilmiştir. Kafka'da üretici ve tüketici rolündeki iki mikroservis için bir senaryo üzerinden Kafka kontrat testlerini Spring Cloud Contract ile nasıl gerçekleştirebileceğimiz kod örnekleriyle anlatılmıştır.

Mikroservis Mimarisi 3: Eş Zamansız İletişim Detaylı İnceleme

Blog serisinin 3. kısmında mikroservis mimarisinde eş zamansız iletişimin detaylı olarak örneklerle inceleyeceğiz.

Mikroservis Mimarisi 2: Eş Zamanlı İletişim Detaylı İnceleme

Blog serisinin 2. kısmında mikroservis mimarisinde eş zamanlı iletişimin detaylı olarak örneklerle inceleyeceğiz.

Mikroservis Mimarisi 1: İletişime Giriş

Bu blog serisinde, mikroservis mimarisinde iletişimin önemini ele alıyoruz. Eş zamanlı ve eş zamansız iletişim türlerini karşılaştırarak, hangi senaryolarda hangisinin daha uygun olduğunu tartışıyoruz. Ayrıca, gerçek hayatta karşılaşılan problemler ve bu problemlere uygulanabilecek çözümler de yer alıyor.

open-source

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis, son yaptığı güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre Versiyon 7.4'ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Hâlihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz...

openapi

OpenAPI ve Spring Boot ile API Dokümantasyonu

Bu blog yazısında, OpenAPI ve Spring Boot kullanarak API dokümantasyonunun oluşturulması, bu dokümanın bağımsız olarak dışa aktarılması, sürüm kontrolü, doküman güvenliğinin sağlanması ve en iyi uygulama pratikleri ele alınacaktır.

pipeline

Kubernetes Cloud Native CI/CD: Tekton ile Yeni Bir Dönem

Yazılım dünyasında otomasyon denince akla Jenkins pipeline, GitLab’ın CI/CD (Continuous Integration/Continuous Deployment- Sürekli Entegrasyon/Sürekli Teslimat) ve arada kaybolan bash script'lerinin garip labirentleri gelirdi.

psikoloji

İmposter Sendromu

İmposter sendromu, ilk olarak 1978 yılında Clance ve Imes tarafından “kişinin bir alandaki tüm başarılarına rağmen o alanda insanların sandığı kadar yetkin olmadığını düşünmesi, dolayısıyla bir sahtekâr gibi hissetmesi” olarak tanımlanmıştır.

pubsub

Dapr'da Outbox Deseni ve Mesajlaşma Aracısını Değiştirme Uygulaması

Dapr, dağıtık uygulamaları geliştirmek ve yönetmek için tasarlanmış bir açık kaynaklı platformdur. Bu platform, modern uygulama geliştirme senaryolarına uyum sağlamak amacıyla geliştirilmiştir. Bu nedenle, farklı ortamlarda kullanılabilirlik sunar. Bunlar arasında bulut tabanlı altyapılar, kenar hesaplama (edge computing) cihazları ve yerel geliştirme makineleri gibi çeşitli seçenekler...

redis

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis, son yaptığı güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre Versiyon 7.4'ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Hâlihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz...

Dapr'da Outbox Deseni ve Mesajlaşma Aracısını Değiştirme Uygulaması

Dapr, dağıtık uygulamaları geliştirmek ve yönetmek için tasarlanmış bir açık kaynaklı platformdur. Bu platform, modern uygulama geliştirme senaryolarına uyum sağlamak amacıyla geliştirilmiştir. Bu nedenle, farklı ortamlarda kullanılabilirlik sunar. Bunlar arasında bulut tabanlı altyapılar, kenar hesaplama (edge computing) cihazları ve yerel geliştirme makineleri gibi çeşitli seçenekler...

rsal

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis, son yaptığı güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre Versiyon 7.4'ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Hâlihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz...

ruby

Rapidrows: Postgres için Kolay API Server

RapidRows, PostgreSQL üzerinde sorgular çalıştırmak, scheduled job'lar gerçekleştirmek ve PostgreSQL bildirimlerini websocket'lara iletmek gibi kullanım durumlarına göre yapılandırılabilen açık kaynak kodlu tek dosya olarak çalışan bir API sunucusudur.

Jekyll ile Statik Web Sayfaları

Jekyll Ruby dilinde geliştirilmiş oldukça popüler ve kullanımı kolay statik web sayfaları oluşturmaya yarayan bir araçtır.

scrum

SCRUM Değerleri

Bu blog yazısında, SCRUM çerçevesinin, diğer yöntemler gibi her soruna spesifik bir çözüm sunmadığına, bunun yerine yazılımcılara rehberlik eden bir değerler bütünü sunduğuna odaklanılmaktadır. Bu değerler bütünü, yazılımcıların karşılaştıkları zorluklar karşısında karar almalarına ve uygun çözümler geliştirmelerine yol gösterici bir pusula niteliği taşır.

serverless

Dapr: State Management

State yönetimi, herhangi bir yeni, eski, monolith veya microservice uygulamasının en yaygın ihtiyaçlarından biridir. Farklı veritabanı kütüphaneleri ile uğraşmak ve bunları test etmek ve hataları handle etmek hem zor hem de zaman alıcı olabilir. Bir uygulamanın save, get ve delete statelerini yönetmek için key/value state...

Dapr: Service Invocation

Mikroservis tabanlı uygulamalarda, birden çok servisin birbiri ile haberleşmesine ihtiyaç vardır. Bu iletişim gereksinimi de beraberinde aşağıdaki sorunları getirmektedir.

Serverless Mikroservisler: AWS Uygulaması

Bu çalışmada kurum projelerinde halihazırda kullanmakta olduğumuz mikroservis mimarisinin avantajlarını keşfetmek, bu avantajları serverless anlayışı ile birleştirerek daha da bağımsız ve güvenilir bir yapı elde edebilmenin yöntemlerini aradık. Mikroservis mimarisi ile birlikte servislerin birbirinden bağımsızlığını sağlarken, serverless ile de iş mantığı ile altyapı arasındaki ilişkiyi...

simülasyon

MacOS Apple Silicon Ortamında AirSim Kurulumu

AirSim (Ve daha doğrusu Unreal Engine’ın önceki sürümleri) Apple Silicon’un ARM ortamına uygun olmadığı için kurulum biraz daha zorlu hale gelmiştir. Bu yazıda amaç bu kurulum sürecini eksiksiz ve hatasız şekilde Türkçe olarak sunmaktır.

Drone Programlamaya Giriş Ve Simülasyon Teknolojilerine Genel Bakış

Havada insansız ve uçabilen tüm araçlara drone olarak adlandırabiliriz (İHA-UAV). Dronlar, uzaktan kumanda ile kontrol edilebilen (Yada tamamen otonom veya bir arayüz ile kontrol edilen), komut verilebilen, video ve görüntü kaydı yapabilen insansız hava araçlarıdır.

spring

Java 21'de Gelen Yenilikler - Virtual Threads - Spring Framework'te Kullanımı

Bu yazıda Java 21 ile gelen yenilikleri inceleyeceğiz. Virtual threadlerin artılarından, eksilerinden bahsedip Spring Boot tabanlı uygulamalarda kullanımına değineceğiz.

Spring ile Kafka: Mesaj alma ve Verme

Kafka, öğrenmesi ve ustalaşması çok zor olan bir mesaj kuyruğudur. Fakat spring, bize kafkanın karmaşıklığı ile uğraşmak için güzel yöntemler vermekte. Serimizin ilk yazısında, spring ile kafka temel ayarlarını yapmayı, ve mesaj alıp vermeyi göreceğiz.

spring batch

Spring Batch Mimarisi ve Veri İşleme Stratejileri

Spring Batch, büyük veri setleri üzerinde toplu işlemleri kolayca yönetmek için kullanılan Java tabanlı bir yazılım çerçevesidir. Bu yazımızda, Spring Batch'in mimarisi, çalışma prensibi ve kullanım alanlarını örnek kodlarıyla birlikte inceleyeceğiz.

sspl

Redis Kritik Lisans Güncellemesi: Etkisi Nedir?

Redis, son yaptığı güncelleme ile lisanslama politikasını değiştirdi. Bu değişikliğe göre Versiyon 7.4'ten itibaren Redis RSALv2 ve SSPLv1 lisansları kapsamındadır. Peki bu değişiklik ne anlama geliyor? Hâlihazırda altyapısında Redis kullanan uygulamalar bu lisans değişikliğinden etkilenecek mi? Blog yazımızın amacı bu gibi sorulara çeşitli kaynaklardan derlediğimiz...

teknoloji

Teknoloji Birlikleri Sunumları

Teknoloji Birlikleri Günündeki Sunumlar

temiz kod

Birim Testleri Kılavuzu

Birim Testleri Kılavuzu, yazılım geliştirme süreçlerinde kaliteli ve güvenilir kod üretiminin temel taşlarından biri olan birim testlerini ele alır. Bu yazıda, birim testlerinin ne olduğunu, neden önemli olduklarını ve nasıl doğru bir şekilde uygulanması gerektiğini adım adım açıklıyoruz. Ayrıca, çeşitli test senaryoları ve örneklerle, birim...

Yazılım Geliştirme Sürecinde Verimli Birim Testi Yazımı

Birim testleri, yazılım geliştirme süreçlerinde kaliteli ve güvenilir kod üretiminin temel taşlarından biridir; bu yazıda, birim testlerinin ne olduğu, neden bu kadar önemli olduğu ve nasıl etkili bir şekilde uygulanacağı, test yapılandırma yöntemleri, iyi pratikler ve sektördeki birim test alışkanlıkları ele alınmaktadır.

Temiz ve Anlaşılır Kod Yazma Sanatı

Temiz kod geliştirme süreçlerini içeren blog serisinin ikinci kısmı.

Temiz ve Anlaşılır Kod Yazma Sanatına Giriş

Bu blog serisinde, Robert C. Martin'in yazmış olduğu Clean Code kitabını okuyarak bölüm çıktıları paylaşılacaktır.

test

Kontrat Testi ve Spring Cloud Contract ile Kafka Kontrat Testleri

Bu yazıda kontrat testin ne olduğuna, neden ihtiyaç duyulduğuna ve genel yapısına değinilmiştir. Kafka'da üretici ve tüketici rolündeki iki mikroservis için bir senaryo üzerinden Kafka kontrat testlerini Spring Cloud Contract ile nasıl gerçekleştirebileceğimiz kod örnekleriyle anlatılmıştır.

Birim Testleri Kılavuzu

Birim Testleri Kılavuzu, yazılım geliştirme süreçlerinde kaliteli ve güvenilir kod üretiminin temel taşlarından biri olan birim testlerini ele alır. Bu yazıda, birim testlerinin ne olduğunu, neden önemli olduklarını ve nasıl doğru bir şekilde uygulanması gerektiğini adım adım açıklıyoruz. Ayrıca, çeşitli test senaryoları ve örneklerle, birim...

Yazılım Geliştirme Sürecinde Verimli Birim Testi Yazımı

Birim testleri, yazılım geliştirme süreçlerinde kaliteli ve güvenilir kod üretiminin temel taşlarından biridir; bu yazıda, birim testlerinin ne olduğu, neden bu kadar önemli olduğu ve nasıl etkili bir şekilde uygulanacağı, test yapılandırma yöntemleri, iyi pratikler ve sektördeki birim test alışkanlıkları ele alınmaktadır.

Agile Test

Hataları veya açıkları bulmak, gereksinimlerin sağlandığına emin olmak gibi amaçların yerine; Ekibimizin başarıya ulaşmasına nasıl katkı sağlayabileceğimizi ya da ortaya çıkabilecek hataları ilk aşamada nasıl ortadan kaldırabileceğimizi düşünmeliyiz. Amacımızın sadece kodlamak ve hataları bulup düzeltmek olmadığını; Test edilebilir kod yazmanın veya oluşturulan yazılımın başarılı bir...

toplum 5.0

Dijital Dönüşüm Yolculuğunun Navigasyonu: KOBİ'ler, Endüstri 4.0 ve Toplum 5.0

Teknolojinin ve ihtiyaçların hızlı bir şekilde evrim sürecinde bulunmasıyla, talepleri ve cevap verme şekilleri ile birlikte KOBİ’leri de kapsayan eşi görülmemiş bir değişim dönemi başladı. KOBİ’ler için ise bu dijital değişim Endüstri 4.0 ve Toplum 5.0 ile daha da odaklanılmış bir yolculuk haline geldi. Bu...

veri tabanı

Liquibase ile Veri Tabanı Şema Değişiklik Yönetimi

Bu blog yazısında, Liquibase'in ne olduğundan, ne için kullanıldığından, veri tabanı şema değişikliklerini yönetmek için Liquibase'in Spring Boot uygulamasında nasıl kullanılabileceğinden, Liquibase komutlarının Gradle ile nasıl çalıştırılabileceğinden ve Liquibase kullanırken dikkat edilmesi gereken en iyi uygulamalardan bahsedilecektir.

PostgreSQL için Kubernetes Operatörü Seçimi

Kubernetes operatörleri, karmaşık uygulamaların yönetimini otomatikleştirmeye, iş yüklerinin dağıtımı, ölçeklendirilmesi ve bakımına yönelik bir çözüm olarak ortaya çıkmıştır. Bu kapsamlı kılavuzda, PostgreSQL dağıtımları için en uygun Kubernetes Operatörünü seçmeye yönelik hususları ve kriterleri ayrıntılı olarak ele alacağız.

CockroachDB: Modern Çağın Dağıtık Veri Tabanı Çözümü

CockroachDB modern uygulamaların ihtiyaçlarını karşılamak için tasarlanmış, yüksek erişilebilirlik ve ölçeklenebilirlik sağlayan, dağıtık mimarili bir veri tabanıdır. Bu yazımızda, CockroachDB’nin yapısı, özellikleri ve PostgreSQL’den CockroachDB’ye nasıl geçiş yapılabileceği gibi konuları ele alacağız.

yazılım

Kubernetes Cloud Native CI/CD: Tekton ile Yeni Bir Dönem

Yazılım dünyasında otomasyon denince akla Jenkins pipeline, GitLab’ın CI/CD (Continuous Integration/Continuous Deployment- Sürekli Entegrasyon/Sürekli Teslimat) ve arada kaybolan bash script'lerinin garip labirentleri gelirdi.

Kod Kalite Metrikleri

Kod kalitesi, yazılım geliştirme süreçlerinde başarıya götüren önemli etkenlerden biridir. Bu blog yazımızda, kod kalitesinin neden bu kadar kritik olduğunu ve projelerinizin başarısını artırmak için hangi kod kalite metriklerini kullanmanız gerektiğini tüm detaylarıyla ele alıyoruz.

Detekt ile Kod Kalitesini Artırma

Detekt kotlin tabanlı projelerde statik kod analizini gerçekleştiren araçlardan biridir. Kotlin için özel olarak yapılandırılmış olması, bu aracı özellikle Kotlin projelerinde vazgeçilmez kılar.Bu blog yazımızda Detek ve kullanım alanlarını inceliyor olacağız.

Micrometer ile Modern Uygulamalarda Metrik Yönetimi

Bu blog yazısında, uygulama performansı ve sağlığının izlenmesi için Spring Boot ve Micrometer kullanılarak oluşturulabilecek metrik toplama stratejileri, özelleştirilmiş metrik tanımlamaları, izleme araçlarıyla entegrasyon süreçleri, eşik değer ve uyarı yönetimi ile bu alandaki en iyi uygulamalar detaylı olarak ele alınacaktır.

Kafka Streams'e Giriş

Kafka Streams, Kafka platformunun üzerine inşa edilmiş bir akış işleme kütüphanesi olup, günümüzde birçok sistemin ihtiyaç duyduğu gerçek zamanlı veri işleme ve analiz gereksinimlerini karşılamak amacıyla geliştirilmiştir.

OpenAPI ve Spring Boot ile API Dokümantasyonu

Bu blog yazısında, OpenAPI ve Spring Boot kullanarak API dokümantasyonunun oluşturulması, bu dokümanın bağımsız olarak dışa aktarılması, sürüm kontrolü, doküman güvenliğinin sağlanması ve en iyi uygulama pratikleri ele alınacaktır.

Kontrat Testi ve Spring Cloud Contract ile Kafka Kontrat Testleri

Bu yazıda kontrat testin ne olduğuna, neden ihtiyaç duyulduğuna ve genel yapısına değinilmiştir. Kafka'da üretici ve tüketici rolündeki iki mikroservis için bir senaryo üzerinden Kafka kontrat testlerini Spring Cloud Contract ile nasıl gerçekleştirebileceğimiz kod örnekleriyle anlatılmıştır.

Liquibase ile Veri Tabanı Şema Değişiklik Yönetimi

Bu blog yazısında, Liquibase'in ne olduğundan, ne için kullanıldığından, veri tabanı şema değişikliklerini yönetmek için Liquibase'in Spring Boot uygulamasında nasıl kullanılabileceğinden, Liquibase komutlarının Gradle ile nasıl çalıştırılabileceğinden ve Liquibase kullanırken dikkat edilmesi gereken en iyi uygulamalardan bahsedilecektir.

Birim Testleri Kılavuzu

Birim Testleri Kılavuzu, yazılım geliştirme süreçlerinde kaliteli ve güvenilir kod üretiminin temel taşlarından biri olan birim testlerini ele alır. Bu yazıda, birim testlerinin ne olduğunu, neden önemli olduklarını ve nasıl doğru bir şekilde uygulanması gerektiğini adım adım açıklıyoruz. Ayrıca, çeşitli test senaryoları ve örneklerle, birim...

Yazılım Geliştirme Sürecinde Verimli Birim Testi Yazımı

Birim testleri, yazılım geliştirme süreçlerinde kaliteli ve güvenilir kod üretiminin temel taşlarından biridir; bu yazıda, birim testlerinin ne olduğu, neden bu kadar önemli olduğu ve nasıl etkili bir şekilde uygulanacağı, test yapılandırma yöntemleri, iyi pratikler ve sektördeki birim test alışkanlıkları ele alınmaktadır.

Java 17 ve Öncesi Garbage Collector (Çöp Toplayıcı)

Çöp Toplama (Garbage Collection), program çalışırken kullanılmayan bloklarını tespit edip serbest bırakarak heap (dinamik bellek) yönetimini kolaylaştıran bir mekanizmadır. Çöp toplama bazı dillerde manuel olarak yönetilirken bazılarında otomatiktir. Örneğin C++' da manuel olarak yönetilirken, Java'da böyle bir maliyet söz konusu değildir. Bu çalışmada çöp toplama...

Temiz ve Anlaşılır Kod Yazma Sanatı

Temiz kod geliştirme süreçlerini içeren blog serisinin ikinci kısmı.

Spring Batch Mimarisi ve Veri İşleme Stratejileri

Spring Batch, büyük veri setleri üzerinde toplu işlemleri kolayca yönetmek için kullanılan Java tabanlı bir yazılım çerçevesidir. Bu yazımızda, Spring Batch'in mimarisi, çalışma prensibi ve kullanım alanlarını örnek kodlarıyla birlikte inceleyeceğiz.

BPMN 2.0 Teknolojileri

Bu blog serisinde BPMN 2.0 standartını ve bu standartı kullanan bazı teknolojileri ele alacağız.

Artırılmış Gerçeklik (Augmented Reality)

Bu yazımızda sizi Artırılmış Gerçeklik (AR), Sanal Gerçeklik (VR) ve Karma Gerçeklik (MR) dünyasına etkileyici bir yolculuğa çıkarıyoruz. Bu son teknoloji çözümler, dijital ve fiziksel dünyalarla etkileşimde bulunma şeklimizi kökten değiştiriyor. Artırılmış Gerçeklik, çevremize dijital bilgileri sorunsuz bir şekilde entegre ederek gerçekliğimizi zenginleştirirken, Sanal Gerçeklik...

Mikroservis Mimarisi 3: Eş Zamansız İletişim Detaylı İnceleme

Blog serisinin 3. kısmında mikroservis mimarisinde eş zamansız iletişimin detaylı olarak örneklerle inceleyeceğiz.

ArchUnit

Temel Kavramları ile ArchUnit nedir?

CockroachDB: Modern Çağın Dağıtık Veri Tabanı Çözümü

CockroachDB modern uygulamaların ihtiyaçlarını karşılamak için tasarlanmış, yüksek erişilebilirlik ve ölçeklenebilirlik sağlayan, dağıtık mimarili bir veri tabanıdır. Bu yazımızda, CockroachDB’nin yapısı, özellikleri ve PostgreSQL’den CockroachDB’ye nasıl geçiş yapılabileceği gibi konuları ele alacağız.

Temiz ve Anlaşılır Kod Yazma Sanatına Giriş

Bu blog serisinde, Robert C. Martin'in yazmış olduğu Clean Code kitabını okuyarak bölüm çıktıları paylaşılacaktır.

Java 21'de Gelen Yenilikler - Virtual Threads - Spring Framework'te Kullanımı

Bu yazıda Java 21 ile gelen yenilikleri inceleyeceğiz. Virtual threadlerin artılarından, eksilerinden bahsedip Spring Boot tabanlı uygulamalarda kullanımına değineceğiz.

Mikroservis Mimarisi 2: Eş Zamanlı İletişim Detaylı İnceleme

Blog serisinin 2. kısmında mikroservis mimarisinde eş zamanlı iletişimin detaylı olarak örneklerle inceleyeceğiz.

Mikroservis Mimarisi 1: İletişime Giriş

Bu blog serisinde, mikroservis mimarisinde iletişimin önemini ele alıyoruz. Eş zamanlı ve eş zamansız iletişim türlerini karşılaştırarak, hangi senaryolarda hangisinin daha uygun olduğunu tartışıyoruz. Ayrıca, gerçek hayatta karşılaşılan problemler ve bu problemlere uygulanabilecek çözümler de yer alıyor.

Spring ile Kafka: Mesaj alma ve Verme

Kafka, öğrenmesi ve ustalaşması çok zor olan bir mesaj kuyruğudur. Fakat spring, bize kafkanın karmaşıklığı ile uğraşmak için güzel yöntemler vermekte. Serimizin ilk yazısında, spring ile kafka temel ayarlarını yapmayı, ve mesaj alıp vermeyi göreceğiz.

Balsamiq ve Axure Arayüz Tasarım Araçları İncelemesi

Balsamiq, kullanıcı arayüzü tasarlamak amacıyla wireframe (mockup veya düşük kaliteli prototipler olarak da bilinir) oluşturmaya yönelik bir tasarım aracıdır.

Çevik Projeler için Kurumsal Gereklilikler

Çevik projeler için kurumsal değişim ve organizasyon kültüründe ne gibi değişiklikliğe gidilmelidir?

Yapay Zeka İle Yeniden Şekillenen Yazılım Dünyası

Yapay zeka, yazılım geliştirme süreçlerimizi yeniden şekillendiriyor ve daha verimli hale getiriyor. Bu sunumda, AI araçlarının yazılım geliştirme alanındaki etkilerini ve katkılarını derinlemesine inceleyeceğiz. Çeşitli AI araçlarından - ChatGPT'den, CoPilot'a ve Bard'a - nasıl faydalanabileceğimizi ve bu araçların hangi sorunları çözdüğünü ve hangi fırsatları yarattığını...

GraphQL: Ne, Neden, Nasıl?

Graphql’in kısa tanımı şöyle: “Query language for your API”. GraphQL, sunucudan veri çekerken istemcilere tam olarak istediklerini vermeyi önceliklendiren bir sorgu dilidir. İstemciler, sunucuya bir şema üzerinden hangi alanları istediklerine göre bir sorgu oluşturur. Sunucu, bu sorguyu işler ve yalnızca istenilen verileri yanıt olarak gönderir....

Rest API ve gRPC Mimari Stillerinin Karşılaştırılması

gRPC ve REST API, modern uygulama geliştirme süreçlerinde yaygın olarak kullanılan iki farklı mimari stildir. Google tarafından geliştirilen gRPC, performans ve verimlilik odaklı bir yapı sunarken, REST API daha genel, kullanılabilirlik ve basitlik üzerine kurulmuştur.

Spring Framework

Son zamanlarda, yazılım geliştirme sektörü yavaş ama gerçek bir dönüşümden geçmektedir. Yazılımlar giderek her şeyin bir parçası haline gelirken yazılım geliştiriciler, artan bu taleple daha fazla otomasyon yoluyla başa çıkmaya çalışmaktadır...

Prometheus İzleme Aracı

Günümüzün karmaşık ve dinamik sistemlerinde, işletmelerin hızla büyüyen altyapılarını izlemek ve yönetmek hayati öneme sahiptir. Bu noktada, Prometheus monitoring gibi güçlü bir araç devreye giriyor. Prometheus, modern bir açık kaynak tabanlı izleme ve alarm sistemi olarak, karmaşık sistemlerin performansını, kaynak kullanımını ve hataları etkin bir...

Kimlik Doğrulama Altyapılarının Kullanımı

Bu çalışma kapsamında açık kaynak olmaları, kapsamları ve ihtiyaçlara göre genişletilebilirlikleri açısından öne çıkan web tabanlı uygulamalara güvenli tekil oturum açma (Single Sign On / SSO) hizmetine sahip Apereo CAS ve Keycloak teknolojileri incelenecektir...

Mikro Önyüz Mimarisi

Dünyanın giderek dijitalleştiği, her şeyin sanal ortama aktarıldığı bir dönemde yaşıyoruz. Eskiden sadece bilgisayarlara programlar yükleyerek yapılabilen birçok işlem, artık farklı platformlar üzerinden onlarca değişik cihaz yardımı ile kolayca yapılır hale geldi...

CI/CD Süreç Yönetimi

Son zamanlarda, yazılım geliştirme sektörü yavaş ama gerçek bir dönüşümden geçmektedir. Yazılımlar giderek her şeyin bir parçası haline gelirken yazılım geliştiriciler, artan bu taleple daha fazla otomasyon yoluyla başa çıkmaya çalışmaktadır...

Rapidrows: Postgres için Kolay API Server

RapidRows, PostgreSQL üzerinde sorgular çalıştırmak, scheduled job'lar gerçekleştirmek ve PostgreSQL bildirimlerini websocket'lara iletmek gibi kullanım durumlarına göre yapılandırılabilen açık kaynak kodlu tek dosya olarak çalışan bir API sunucusudur.

Jekyll ile Statik Web Sayfaları

Jekyll Ruby dilinde geliştirilmiş oldukça popüler ve kullanımı kolay statik web sayfaları oluşturmaya yarayan bir araçtır.

Stream API

Stream API, Java 8 ile eklenmiş bir yeniliktir. Stream akıntı anlamına gelir ve çalışma mantığı olarak da bir akıntı üzerine gelen verileri sırayla ya da paralel işleyen metotlar olarak düşünülebilir. Stream sayesinde loop kullanan imperative metotlar, fonksiyonel programlamaya uygun şekilde değiştirilebilmektedir.

Java'da Fonksiyonel Programlama

Fonksiyonel programlama, fonksiyonlar kullanarak program tasarlama modelidir. Obje Tabanlı Programlama modeline göre güçlü ve zayıf olduğu yönler bulunur. Sektörde oldukça popüler ve aslında obje tabanlı olan Java programlama diline; Java 8 sürümüyle birlikte, fonksiyonel programlama konseptlerini uygulamamıza imkân tanıyan yenilikler eklenmiştir. Bu sayede hem obje...

Teknoloji Birlikleri Sunumları

Teknoloji Birlikleri Günündeki Sunumlar

Java 17: Text-Blocks & String Methods

Text-Blocks Javada çok satırlı Stringleri kullanmamıza yarar. Çoğu programlama dilinde olan bu özellik, java 13 sürümü ile javaya da eklenmiştir. Bir diğer yeni özellik ise satır içi çok satırlı stringleri daha okunabilir hale getirme özelliğidir.

Java 17: Switch Expression

Switch-case tanımı, if-else ile benzer bir şekilde bir variable’ın değerine göre farklı kod bloklarının çalışmasını sağlar. Java 7’ye kadar switch-case tanımlamalarında sadece integer değerde bir variable’ın koşulları kullanılabiliyorken, Java 8’de String ve Enum type’lar için de kullanılabilir hale geldi.

Java 17: Local-Variable Type Inference

Local-Variable Type Inference özelliği Java 10 ile birlikte gelmiştir. JavaScript dilindeki gibi variable tanımlaması yaparken local type inference için kullanılan ve variable’ı istediğiniz tipte tanımlamanızı sağlayan bir Java anahtar kelimesidir.

Java 17: Lambda Expression

Lambda Expressionları, fonksiyonel programlamayı kullanmamızı sağlar. Okunabilir ve kısa kodlar yazmamızı sağlar. Daha kolay ve kullanışlı APIlar ve kütüphaneler yazmamıza yardımcı olur. Pararel işleme için destek sunar.

Java 17: Collections

Java Collections, nesneleri tutmak ve manipüle etmek için tasarlanan bir frameworktür. Veri üzerinde arama, sıralama, ekleme, değiştirme, silme gibi işlemleri gerçekleştirir. Collections, birçok interface (Set, List, Queue, Deque), sınıflar (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet) ve algoritmalar içerir.

Java 17: Interfaces

Java 8 ile birlikte interfacelerde default ve statik metotlar tanımlanabilir. Daha önce interfaceleri implemente eden sınıfları değiştirmeden interface’e yeni bir metot eklemek mümkün değildi, artık interfacelerde metotlar implemente edilebilir hale...

Java 17: Date and Time API

Java 8 öncesinde kadar zaman bilgisi için Date ve Time API kullanılıyordu fakat bu API içerik olarak çok fazla detaya sahipti. Java 8 ile birlikte Date ve Time API’larında radikal değişiklikler yapıldı. Bu değişikler ile geliştiricilerin sadece 6 farklı sınıfın detaylarını bilerek tarih bilgisini geliştirdikleri...

Çevik Yaklaşımlara Genel Bakış

Çevik yaklaşım, Çevik Manifestosu'nun birleştirdiği değerler ve ilkeler bütünü olarak o yıl başlayan bir harekettir; bununla birlikte "kalite" ve "tasarım odaklı düşünce" gibi daha erken tarihli pek çok öncülü bulunmaktadır.

Agile Test

Hataları veya açıkları bulmak, gereksinimlerin sağlandığına emin olmak gibi amaçların yerine; Ekibimizin başarıya ulaşmasına nasıl katkı sağlayabileceğimizi ya da ortaya çıkabilecek hataları ilk aşamada nasıl ortadan kaldırabileceğimizi düşünmeliyiz. Amacımızın sadece kodlamak ve hataları bulup düzeltmek olmadığını; Test edilebilir kod yazmanın veya oluşturulan yazılımın başarılı bir...

yazılım geliştirme

Scrum'da Uygulanan Kötü Pratikler

Günlük Scrum toplantılarının amacından sapması, sprintlerin belirsiz sürelerinin olması, planlama yaparken aşırı düşünme, sahip olunan scrum rolü en iyi nasıl uygulanır gibi bir çok noktaya değinilmiştir.

Çerçeve

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

Çevik

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

Çoklu Scrum

Nexus Çevik (Agile) Çerçevesi

Bu yazıda organizasyonel çeviklik için ölçeklendirme çerçevelerinden biri olan Nexus çerçevesi ele alınmakta, rolleri, aktiviteleri, çıktıları ve kullanım alanları incelenmektedir.

ürün

DÖNÜŞÜMÜN ANAHTARI: ÜRÜNLEŞTİRME İLE KURUMUNUZU ZİRVEYE TAŞIYIN

Bu yazıda ürünleştirmeye giriş yapılarak; ürün ve ürünleştirme kavramları, hangi alanlarda ürünleştirme yapılabilir, ürünleştirme yol haritası, avantaj ve dezavantajları gibi konu başlıklarına yer verilmektedir. Sadece yazılım ve teknoloji özelinde değil farklı sektörler de göz önünde bulundurularak genel hatlarıyla ürünleştirmeden bahsedilmektedir.

ürün sahibi

Yazılım Projelerinde İş Analisti ve Ürün Sahibi Rolleri

Bir yazılım projesinde takım içerisinde farklı rollerde birçok kişi bulunmaktadır. Bu yazıda iş analisti ve ürün sahibinin rollerinden, ortak ve farklı olan özelliklerinden bahsedilecek olup iş analisti ve ürün sahibinin bir yazılım projesinin başarısına nasıl katkıda bulunacağı değerlendirilmektedir.

ürünleştirme

DÖNÜŞÜMÜN ANAHTARI: ÜRÜNLEŞTİRME İLE KURUMUNUZU ZİRVEYE TAŞIYIN

Bu yazıda ürünleştirmeye giriş yapılarak; ürün ve ürünleştirme kavramları, hangi alanlarda ürünleştirme yapılabilir, ürünleştirme yol haritası, avantaj ve dezavantajları gibi konu başlıklarına yer verilmektedir. Sadece yazılım ve teknoloji özelinde değil farklı sektörler de göz önünde bulundurularak genel hatlarıyla ürünleştirmeden bahsedilmektedir.

İzleme

Prometheus ve Alertmanager ile Alarm Yönetimi

Bu blog yazısında, Prometheus ve Alertmanager kullanılarak sistemlerdeki kritik olayların etkin bir şekilde izlenmesi ve uyarıların ilgili ekiplere ulaştırılması süreci ele alınmaktadır.