İçeriğe geç

Sözlük

Derslerde bir kelimeye takıldıysan, burada kısa tanımı ve onu anlatan dersler var. Bilmemek normal; buraya dönmek de.

515 terim

A

abstract class (diğer adları: soyut sınıf)

Doğrudan örneklenemeyen, alt sınıflara ortak durum, constructor ve kod sağlayabilen sınıf. Bir sınıf yalnızca bir abstract class'ı genişletebilir.

Geçtiği dersler: Interface ve Abstract Class

abstraction (diğer adları: soyutlama)

Bir şeyi kullanana yalnızca ne yaptığını gösterip nasıl yaptığını saklamak. Java'da çoğu zaman bir arayüz ya da abstract sınıf ile kurulur.

Geçtiği dersler: Soyutlama ve Dört Sütun

acceptance criteria (diğer adları: kabul kriterleri)

Bir işin ne zaman "bitti" sayılacağını söyleyen somut, doğrulanabilir koşullar. Çoğu zaman doğrudan teste çevrilebilir.

Geçtiği dersler: Bağlam ve Görev Tarifi

accessible name (diğer adları: erişilebilir ad, aria-label)

Bir kontrolün ekran okuyucuda okunan adı. label for, düğmenin yazısı, aria-label ya da aria-labelledby'dan gelir.

Geçtiği dersler: Erişilebilirlik Temelleri, Bileşen Testi

ACID (diğer adları: ACID transaction)

Transaction'ın dört garantisi: ya hepsi ya hiçbiri (atomicity), kurallar korunur (consistency), eşzamanlı işler birbirini bozmaz (isolation), onaylanan kalır (durability).

Geçtiği dersler: SQL mi, NoSQL mi?

action queue (diğer adları: ActionQueue, flush sırası)

Hibernate'in flush'ta çalıştıracağı işlemleri tuttuğu kuyruk. İşlemleri koddaki sırayla değil türüne göre çalıştırır: insert, update, koleksiyonlar, en son delete.

Geçtiği dersler: Flush ve SQL Sırası

adapter (diğer adları: adapter pattern, uyarlayıcı)

Bir sınıfın arayüzünü, kodunun beklediği başka bir arayüze çeviren ara nesne. Üçüncü parti bir SDK'yı kendi port'una uydurmak tipik örnek.

Geçtiği dersler: Yapısal Kalıplar

aggregate (diğer adları: aggregate root)

Birlikte tutarlı kalması gereken ve tek bir kök nesne üzerinden değiştirilen nesne kümesi. Dışarıdan yalnızca köke erişilir; başka aggregate'lara id ile referans verilir.

Geçtiği dersler: Zengin Domain Modeli, Domain Olayları

aktif-aktif (diğer adları: active-active, multi-master)

Birden çok bölgenin aynı anda istek ve yazma kabul ettiği kurulum. Aynı kayda iki yerden yazılırsa çakışma olur.

Geçtiği dersler: Çok Bölgeli Kurulum

aktif-pasif (diğer adları: active-passive, failover, devir)

Bir bölgenin çalıştığı, diğerinin veriyi kopyalayıp beklediği kurulum. Ana bölge kararınca bekleyen bölge devralır.

Geçtiği dersler: Çok Bölgeli Kurulum

alternate exchange (diğer adları: AE, unroutable)

Bir exchange'te hiçbir bağlantıya uymayan mesajların gönderildiği yedek exchange. Sessizce kaybolacak mesajları ayrı bir kuyrukta toplar.

Geçtiği dersler: RabbitMQ

amortized cost (diğer adları: amortize, amortized O(1))

Bir işlemin tek tek değil, uzun bir dizi boyunca ortalama maliyeti. ArrayList'e ekleme arada bir tüm diziyi kopyalar ama ortalamada sabit maliyetlidir.

Geçtiği dersler: Koleksiyonların İçi

ana emir (diğer adları: parent order, child order, çocuk emir)

Müşterinin verdiği büyük emir. Algoritma onu gün içine dağılmış küçük çocuk emirlere bölerek borsaya gönderir.

Geçtiği dersler: TWAP, VWAP, POV

anemik model (diğer adları: anemic domain model)

Yalnızca alan ve getter/setter taşıyan, kuralları başka bir sınıfa (genellikle bir Service) bırakan domain nesnesi. Veri bir yerde, onu koruyan kural başka yerdedir.

Geçtiği dersler: Zengin Domain Modeli

anına dönüş (diğer adları: PITR, point-in-time recovery, WAL arşivleme)

Temel bir yedeğin üstüne arşivlenmiş değişiklik kayıtlarını oynatarak veritabanını belirli bir ana geri getirmek.

Geçtiği dersler: Yedek ve Geri Dönüş

anlık doğrulama (diğer adları: inline validation)

Kullanıcı formu göndermeden alanı kontrol edip mesaj göstermek. Asıl soru ne zaman kontrol edileceğidir: her tuşta, alandan çıkınca ya da gönderince.

Geçtiği dersler: Form Doğrulama

anlık görüntü (diğer adları: snapshot, snapshot recovery)

Defterin belirli bir sıra numarasındaki tam hâli. Geç başlayan ya da boşluk yaşayan alıcı onu alıp o numaradan itibaren akışı uygular.

Geçtiği dersler: Piyasa Verisi

annotation (diğer adları: açıklama, @interface, anotasyon)

Sınıfa, metoda ya da alana @ ile eklenen bir not. Tek başına kod çalıştırmaz; derleyici ya da Spring gibi bir çerçeve onu okuyup bir şey yapar.

Geçtiği dersler: Annotation ve Reflection

anonim sınıf (diğer adları: anonymous class)

Adı olmayan, tek bir ifadenin içinde hem tanımlanıp hem kurulan sınıf. Tek metotlu arayüzler için yerini büyük ölçüde lambda'ya bıraktı.

Geçtiği dersler: İç İçe Sınıflar

anti-corruption layer (diğer adları: ACL, çeviri katmanı)

Yeni sistemle eski sistem arasında modelleri birbirine çeviren ince katman. Eski modelin kavramları yeni servisin içine sızmaz, eski istemciler de eski şekli görmeye devam eder.

Geçtiği dersler: Strangler Fig ve API Sürümleme

API gateway (diğer adları: gateway)

Dışarıdan gelen her isteğin girdiği tek kapı. Auth, rate limit, TLS sonlandırma ve yönlendirme gibi her servisi ilgilendiren işleri tek yerde toplar.

Geçtiği dersler: Mikroservis Katmanları, API Gateway ve Service Discovery

araç çağırma (diğer adları: tool calling, function calling)

Uygulamanın modele çağırabileceği fonksiyonların listesini vermesi. Model bir aracın adını ve argümanlarını yazar, uygulama onu çalıştırıp sonucu modele geri verir.

Geçtiği dersler: Modele Araç Vermek

arbitraj (diğer adları: arbitrage)

Aynı varlığın iki yerdeki fiyat farkından kazanmak: ucuz yerden alıp pahalı yere satmak. Kazanç küçüktür, iki bacağın birlikte dolması garanti değildir.

Geçtiği dersler: Arbitraj ve Bacak Riski

ARIA (diğer adları: WAI-ARIA, aria-describedby, role)

HTML'e rol, ad ve durum bilgisi ekleyen öznitelikler (aria-label, aria-invalid). Davranış eklemez; aynı işi yapan HTML öğesi varsa o tercih edilir.

Geçtiği dersler: Erişilebilirlik Temelleri, Form Doğrulama

at-least-once

Mesajın en az bir kez teslim edileceği garantisi; iki kez de gelebilir. Önce işle sonra commit et deseninin sonucudur ve tüketicinin idempotent olmasını gerektirir.

Geçtiği dersler: Outbox ve Idempotent Consumer

at-most-once

Mesajın en fazla bir kez teslim edileceği garantisi; hiç gelmeyebilir. Önce commit et sonra işle deseninin sonucudur — hata olursa mesaj sessizce kaybolur.

atomic (diğer adları: atomik)

Bölünemeyen işlem — ya tamamen olur ya hiç olmaz, arada başka thread araya giremez. `count++` atomik değildir; oku-artır-yaz üç adımdır.

Geçtiği dersler: Race Condition ve Görünürlük, ConcurrentHashMap

AttributeConverter (diğer adları: @Converter, converter)

Bir Java değerini sütuna nasıl yazılacağını ve geri nasıl okunacağını belirleyen JPA arayüzü. Enum'a sabit bir kod vermek için kullanılır.

Geçtiği dersler: Enum Eşleme

auto-configuration (diğer adları: auto-config, otomatik yapılandırma)

Spring Boot'un classpath'e, ayarlara ve mevcut bean'lere bakarak senin yerine bean tanımlaması. Her tanım bir @Conditional koşuluna bağlıdır.

Geçtiği dersler: Auto-configuration

autoboxing (diğer adları: boxing, unboxing, otomatik paketleme)

Java'nın bir ilkel sayıyı kendiliğinden wrapper nesnesine koyması (int → Integer). Tersine, kutudan çıkarmaya unboxing denir.

Geçtiği dersler: int ve Integer

B

bacak (diğer adları: leg, leg risk, bacak riski)

Birden çok emirden oluşan bir işlemin her bir emri. Arbitrajda alış bir bacak, satış bir bacaktır; biri dolup öteki dolmayabilir.

Geçtiği dersler: Arbitraj ve Bacak Riski

back off (diğer adları: geri çekilme, backs off)

Bir auto-configuration'ın, kullanıcı aynı işi gören bir bean tanımladığında kendi bean'ini oluşturmaktan vazgeçmesi. @ConditionalOnMissingBean ile sağlanır.

Geçtiği dersler: Auto-configuration

backfill (diğer adları: geriye dönük doldurma)

Yeni eklenen bir kolonu ya da tabloyu mevcut satırlar için geriye dönük doldurmak. Büyük tablolarda küçük parçalar hâlinde yapılır.

Geçtiği dersler: Kesintisiz Şema Değişikliği

backpressure (diğer adları: geri basınç)

Üretici tüketiciden hızlı olduğunda akışı yavaşlatma mekanizması. Kuyruk büyütmek backpressure değildir — sadece çöküşü erteler.

Geçtiği dersler: Backpressure ve Yük Atma, @Async ve Thread Havuzu

bağımlılık tersine çevirme (diğer adları: DIP, Dependency Inversion)

İş katmanının neye ihtiyaç duyduğunu kendi tanımlaması, altyapının ona uyması. Arayüzün varlığı değil, hangi katmana ait olduğu belirleyicidir.

Geçtiği dersler: Hexagonal Mimari

bağlantı sızıntısı (diğer adları: connection leak, leakDetectionThreshold)

Havuzdan alınan bir bağlantının iade edilmemesi. Her sızıntı havuzu bir bağlantı küçültür; sonunda bütün istekler bağlantı beklerken timeout alır.

Geçtiği dersler: Bağlantı Havuzu

bağlı alt sorgu (diğer adları: correlated subquery, ilişkili alt sorgu)

Dıştaki sorgunun her satırı için yeniden çalışan alt sorgu. Satır başına yeniden okuma yaptığı için büyüyen tablolarda pahalanır.

Geçtiği dersler: Pencere Fonksiyonları

bağlı parametre (diğer adları: bind parameter, prepared statement, ?)

Sorgu metninde yalnızca bir yer tutucu (?) bulunur, değer ayrıca gönderilir. Veritabanı değeri hiçbir zaman sorgunun parçası olarak okumaz.

Geçtiği dersler: Dinamik Sorgu

base62 (diğer adları: base 62)

Sayıları 0-9, a-z ve A-Z olmak üzere 62 karakterle yazmak. Kısa ve URL'de sorunsuz kodlar üretir; her ek karakter kod sayısını 62 katına çıkarır.

Geçtiği dersler: URL Kısaltıcı Tasarımı

batch fetching (diğer adları: @BatchSize, default_batch_fetch_size)

Tembel koleksiyon ya da ilişkileri tek tek değil, birkaçını bir IN sorgusuyla yükleme. default_batch_fetch_size ya da @BatchSize ile açılır; N+1'i küçültür.

Geçtiği dersler: join fetch ve Sayfalama

bean

Yaşam döngüsünü Spring konteynerinin yönettiği nesne. Sen `new` demezsin; konteyner kurar, bağımlılıklarını verir ve gerekirse yok eder.

Geçtiği dersler: IoC ve Dependency Injection, Bean Yaşam Döngüsü ve Scope'lar

Bean Validation (diğer adları: jakarta validation, @Valid)

Kısıtları alanlara anotasyonla yazma standardı (Jakarta Validation): @NotBlank, @Positive, @Email. Kısıtları kendisi çalıştırmaz; @Valid ya da bir validator tetikler.

Geçtiği dersler: Validation ve Hata Yönetimi

bellek sızıntısı (diğer adları: memory leak, sızıntı)

Artık kullanılmayan ama hâlâ bir kökten ulaşılabildiği için GC'nin toplayamadığı nesneler. Genellikle static bir koleksiyon, sınırsız bir cache ya da çıkarılmayan bir dinleyici.

Geçtiği dersler: Bellek Sızıntısı ve Referans Türleri

BFF (diğer adları: Backend for Frontend)

Backend for Frontend: tek bir istemci türüne (mobil, web, TV) hizmet eden, o istemcinin ekranlarına biçilmiş yanıt döndüren backend.

Geçtiği dersler: BFF

birim pay değeri (diğer adları: NAV, net asset value, fon fiyatı)

Bir fonun varlıklarının gün sonu değerinin pay sayısına bölünmesiyle bulunan fiyat (NAV). Gün sonunda hesaplanır.

Geçtiği dersler: Fon Fiyatı ve Kesim Saati

Bloom filter (diğer adları: Bloom filtresi)

Bir şeyin kümede olup olmadığını az bellekle cevaplayan bit dizisi. "Kesinlikle yok" ya da "belki var" der; eklenmiş bir şeyi hiç kaçırmaz.

Geçtiği dersler: Bloom Filter, LSM Ağacı

blue-green deployment (diğer adları: blue-green, mavi-yeşil)

Yeni sürüm için ikinci bir tam ortam kurup trafiği tek anahtarla çevirmek. Geri dönüş saniyelerdir; bedeli geçiş sırasında iki kat kapasitedir.

Geçtiği dersler: Yayın Stratejileri

blur (diğer adları: onBlur, focusout)

Kullanıcı bir alandan çıktığında, yani odak başka yere geçtiğinde tetiklenen olay. Alan bittiğinde ilk kontrolü yapmak için iyi bir andır.

Geçtiği dersler: Form Doğrulama

BOM (diğer adları: bill of materials, jackson-bom)

Bill of Materials: birbirine bağlı kütüphane ailesinin uyumlu sürümlerini tek bir POM'da toplayan liste. dependencyManagement içine import edilir.

Geçtiği dersler: Çok Modüllü Maven

bounded context (diğer adları: sınırlı bağlam)

Bir modelin ve kelimelerinin tek, tutarlı bir anlam taşıdığı sınır. "Ürün" katalog context'inde başka, stok context'inde başka bir modeldir.

Geçtiği dersler: Servis Sınırları

bölüm budama (diğer adları: partition pruning, budama)

Sorgudaki koşula bakarak işe yaramayacak parçaların hiç okunmaması. Sorgu bölümleme anahtarını kullanmıyorsa olmaz.

Geçtiği dersler: Tablo Bölümleme

bucket (diğer adları: kova)

HashMap'in içindeki dizi gözlerinden biri. Bir anahtar hangi göze düşeceğini hashCode'undan öğrenir.

Geçtiği dersler: HashMap, equals ve hashCode

builder (diğer adları: builder pattern, yapıcı)

Çok sayıda isteğe bağlı ayarı adıyla toplayıp nesneyi tek seferde, doğrulayarak kuran yardımcı. Geçersiz ya da yarım nesne hiç oluşmaz.

Geçtiği dersler: Yaratımsal Kalıplar

bulk update (diğer adları: toplu güncelleme, @Modifying, executeUpdate)

Satırları belleğe almadan tek bir UPDATE ya da DELETE ile değiştiren sorgu. Hızlıdır ama persistence context'i, @Version'ı ve entity callback'lerini atlar.

Geçtiği dersler: Toplu UPDATE

bulkhead (diğer adları: bölme)

Her bağımlılığa ayrı ve sınırlı bir kaynak havuzu vermek. Yavaşlayan bağımlılık kendi havuzunu doldurur, servisin geri kalanı çalışmaya devam eder.

Geçtiği dersler: Circuit Breaker, Bulkhead

bulut metadata servisi (diğer adları: IMDS, instance metadata, 169.254.169.254)

Bulut makinesinin içinden 169.254.169.254 adresinde çalışan, makine hakkında bilgi ve bazen geçici kimlik bilgisi veren servis.

Geçtiği dersler: SSRF

C

cache anahtarı (diğer adları: cache key)

Bir cache kaydının neye bağlı olduğunu söyleyen anahtar; genellikle bağımlılık dosyasının özeti. Dosya değişince anahtar da değişir ve eski cache kullanılmaz.

Geçtiği dersler: CI Pipeline

cache locality (diğer adları: locality, önbellek yerelliği)

Birlikte kullanılan verinin bellekte yan yana durması. CPU ardışık adresleri önbelleğe toplu çeker; dağınık düğümler her adımda yeni bir bellek erişimi ister.

Geçtiği dersler: Koleksiyonların İçi

cache stampede (diğer adları: thundering herd, dogpile)

Sık okunan bir cache girdisi silindiği anda çok sayıda isteğin aynı değeri aynı anda kaynaktan hesaplamaya çalışması. Veritabanına ani bir yük bindirir.

Geçtiği dersler: Cache Stratejileri, Spring Cache

cache-aside (diğer adları: lazy loading, look-aside)

Uygulamanın önce cache'e baktığı, bulamazsa veritabanından okuyup cache'e koyduğu düzen. Cache veritabanının yanında durur; düşerse uygulama veritabanından devam eder.

Geçtiği dersler: Cache Stratejileri, URL Kısaltıcı Tasarımı

Cache-Control (diğer adları: max-age, no-cache, no-store)

Sunucunun bir cevapla gönderdiği başlık: tarayıcının bu cevabı saklayıp saklamayacağını ve ne kadar süre sormadan kullanacağını söyler.

Geçtiği dersler: Tarayıcı Önbelleği, CDN ve Kenar Önbellek

call stack (diğer adları: çağrı yığını, stack)

Şu an çalışan fonksiyonların üst üste dizildiği yığın. JavaScript'te tektir; yığın boşalmadan hiçbir callback çalışmaz.

Geçtiği dersler: JavaScript Olay Döngüsü

canary release (diğer adları: canary, kanarya sürümü)

Yeni sürümü önce trafiğin küçük bir dilimine açıp hata oranını eski sürümle karşılaştırmak. Hatalı sürüm yalnızca o dilime dokunur.

Geçtiği dersler: Yayın Stratejileri, Özellik Bayrakları

CAP (diğer adları: CAP teoremi, PACELC)

Ağ bölündüğünde dağıtık bir sistemin ya tutarlılıktan ya erişilebilirlikten vazgeçmek zorunda olduğunu söyleyen teorem.

Geçtiği dersler: Tutarlılık Seviyeleri ve Quorum

cardinality (diğer adları: kardinalite, high cardinality)

Bir metriğin etiket değerlerinin kaç farklı kombinasyon ürettiği. Her kombinasyon ayrı bir zaman serisidir; userId gibi sınırsız bir etiket metrik sistemini çökertir.

Geçtiği dersler: Actuator ve Gözlemlenebilirlik

carrier thread (diğer adları: taşıyıcı thread)

Bir virtual thread'i o an çalıştıran gerçek OS thread'i. Virtual thread blokladığında taşıyıcı serbest kalır ve başka bir virtual thread'e geçer.

Geçtiği dersler: Virtual Threads vs Platform Threads, CompletableFuture ve Structured Concurrency

cascade (diğer adları: CascadeType.ALL, CascadeType.PERSIST)

Bir entity'ye yapılan işlemin (persist, merge, remove…) ilişkideki entity'lere de uygulanması. Yalnızca parçası olduğu bütünle birlikte yaşayan çocuklar için kullanılır.

Geçtiği dersler: Cascade ve İlişkinin Sahibi

CDN (diğer adları: content delivery network, kenar sunucu, edge)

İçerik dağıtım ağı: cevapların kopyasını kullanıcılara yakın kenar sunucularda tutar. Herkese açık sayfalar ana sunucuya gitmeden gelir.

Geçtiği dersler: CDN ve Kenar Önbellek

cevabı akıtmak (diğer adları: streaming, akış, stream)

Modelin ürettiği cevabı tamamlanmasını beklemeden, parça parça ekrana göndermek. Toplam süreyi değil, boş bekleyişi kısaltır.

Geçtiği dersler: Cevabı Akıtmak

cgroup (diğer adları: control group, cgroups)

Linux çekirdeğinin bir süreç grubuna bellek ve CPU sınırı koyduğu mekanizma. Docker ve Kubernetes konteyner sınırlarını bununla uygular.

Geçtiği dersler: JVM Konteynerde, JVM Konteynerde CPU

Chain of Responsibility (diğer adları: zincir, handler chain)

Bir isteği sıralı işleyicilerden geçirmek: her biri ya isteği karşılar ya da bir sonrakine iletir. Servlet filtreleri ve Spring Security filtre zinciri tipik örnek.

Geçtiği dersler: Davranışsal Kalıplar

changelog (diğer adları: changeset, Liquibase changelog)

Liquibase'in şema değişikliklerini sırayla tuttuğu dosya. Her değişiklik bir changeset'tir ve bir kez çalışır.

Geçtiği dersler: Liquibase

changelog kilidi (diğer adları: DATABASECHANGELOGLOCK, release-locks)

İki uygulamanın aynı anda migration yapmasını önleyen, DATABASECHANGELOGLOCK tablosundaki tek satır. Ölen bir deploy onu bırakmayabilir.

Geçtiği dersler: Liquibase

check-then-act (diğer adları: read-modify-write, oku-değiştir-yaz)

Önce bir durumu okuyup sonra ona göre yazmak: 'yoksa ekle', 'oku ve bir artır'. Okuma ile yazma arasında başka bir thread durumu değiştirebilir.

Geçtiği dersler: ConcurrentHashMap

checked exception (diğer adları: checked)

Derleyicinin yakalanmasını ya da imzada `throws` ile bildirilmesini zorunlu tuttuğu exception. `Exception`'dan türeyip `RuntimeException`'dan türemeyenler.

Geçtiği dersler: Exception Yönetimi

checksum (diğer adları: MD5SUM, sağlama toplamı)

Bir içerikten hesaplanan kısa özet. İçerik değişirse özet de değişir; Liquibase uygulanmış changeset'lerin değişip değişmediğini böyle anlar.

Geçtiği dersler: Liquibase

CI pipeline (diğer adları: continuous integration, sürekli entegrasyon)

Her commit'te kodu derleyip testleri otomatik koşan aşamalar dizisi. Asıl işi, değişikliğin sağlam olup olmadığını geliştiriciye hızlıca söylemektir.

Geçtiği dersler: CI Pipeline

circuit breaker (diğer adları: devre kesici)

Sağlıksız bir bağımlılığa giden çağrıları bir süre tamamen kesen durum makinesi. Çağrılan servisi değil, çağıranın kaynaklarını korur.

Geçtiği dersler: Circuit Breaker

class loader (diğer adları: classloader, sınıf yükleyici)

Bir sınıfın bytecode'unu bulup JVM'e yükleyen nesne. Sınıflar başlangıçta değil, ilk gerçek kullanımda yüklenir ve static başlatıcıları bir kez çalışır.

Geçtiği dersler: Sınıf Yükleme ve JIT

client-side load balancing (diğer adları: istemci tarafı yük dengeleme, lb://)

Çağıranın, bildiği instance listesinden hangisine gideceğini kendisinin seçmesi (ör. Spring Cloud LoadBalancer). Arada ayrı bir yük dengeleyici yoktur.

Geçtiği dersler: API Gateway ve Service Discovery

closure (diğer adları: stale closure, kapanış)

Bir fonksiyonun, tanımlandığı andaki değişkenleri yanında taşıması. Effect yeniden çalışmazsa eski değerleri taşımaya devam eder — bayat closure hatası budur.

Geçtiği dersler: useEffect

CLS (diğer adları: Cumulative Layout Shift, layout shift)

Cumulative Layout Shift: görünen içeriğin sayfa boyunca ne kadar kaydığı. 0,1 ya da altı iyi sayılır.

Geçtiği dersler: Core Web Vitals

code smell (diğer adları: smell, kod kokusu)

Kodda daha derin bir tasarım sorununa işaret edebilen, kendisi hata olmayan bir belirti: uzun metot, tekrar, anlamsız isim. Teşhis değil, bakılacak yeri gösteren bir ipucu.

Geçtiği dersler: Code Smell ve Refactoring

collation (diğer adları: karşılaştırma kuralı, CI, CS)

Metinlerin nasıl sıralanıp karşılaştırılacağını belirleyen kurallar: büyük/küçük harf ve aksan duyarlılığı. SQL Server'da çoğu kurulumun varsayılanı harfe duyarsızdır.

Geçtiği dersler: Aynı Sorgu, Üç Lehçe

Collator (diğer adları: java.text.Collator)

Metinleri bir dilin alfabe kurallarına göre karşılaştıran Java sınıfı. Türkçe için ç harfini c ile d arasına koyar.

Geçtiği dersler: Comparable ve Comparator

Command (diğer adları: command pattern, komut)

Bir isteği, çalıştırılacak bir nesne olarak paketlemek. Böylece kuyruğa koyulabilir, ertelenebilir, yeniden denenebilir, loglanabilir ya da geri alınabilir.

Geçtiği dersler: Davranışsal Kalıplar

commit (diğer adları: reconciliation)

React'in render sonucunu öncekiyle karşılaştırıp yalnızca değişen kısmı DOM'a yazdığı aşama. Render bir hesaplamadır; çoğu render commit'e hiç ulaşmaz.

Geçtiği dersler: React Render Modeli, Mutabakat

compact constructor (diğer adları: kompakt kurucu)

Java record'larında parametre listesi yazılmadan tanımlanan kurucu. Alanlar atanmadan önce çalışır; doğrulama ve normalleştirme için kullanılır.

Geçtiği dersler: Value Object ve Record

compositing (diğer adları: birleştirme, composite, katman)

Ayrı ayrı boyanmış katmanları üst üste koyup ekrana veren son adım. transform ve opacity değişiklikleri çoğu zaman yalnızca bu adımı çalıştırır.

Geçtiği dersler: Tarayıcı Nasıl Çizer

connection pool (diğer adları: bağlantı havuzu, HikariCP)

Açık veritabanı bağlantılarını tutan ve isteklere ödünç veren havuz. Bağlantı açmanın maliyetini bir kez öder; boyutu veritabanının kapasitesine göre seçilir.

Geçtiği dersler: Bağlantı Havuzu, Prod'da Teşhis

consistent hashing (diğer adları: tutarlı hashing, hash ring)

Anahtarları ve shard'ları bir halkaya dizen eşleme. Shard eklenince yalnızca yeni shard'ın payı taşınır, hash mod N'deki gibi çoğu değil.

Geçtiği dersler: Sharding ve Shard Anahtarı

constant folding (diğer adları: sabit katlama)

Girdisi hep aynı sabit olan bir hesabın derleme anında bir kez yapılıp sonucun koda gömülmesi. Ölçülen şey hesap değil, hazır bir sabit olur.

Geçtiği dersler: JMH ile Doğru Ölçüm

constructor (diğer adları: kurucu, yapıcı metot)

Bir nesne new ile oluşturulurken bir kez çalışan, sınıfla aynı adı taşıyan ve dönüş tipi olmayan özel metot. Alanları doldurur ve kuralı en baştan kontrol eder.

Geçtiği dersler: Constructor ve this

Content-Security-Policy (diğer adları: CSP, script-src)

Sunucunun gönderdiği bir başlık: tarayıcıya sayfada hangi kaynaktan gelen kodun çalışabileceğini söyler. Satır içi kodu engelleyerek XSS'e karşı ikinci bir kat olur.

Geçtiği dersler: XSS

context (diğer adları: React context, useContext)

React'te bir değeri props zinciri olmadan derindeki bileşenlere ulaştıran yol. Değer değişince onu okuyan her bileşen yeniden çizilir.

Geçtiği dersler: State Nerede Yaşamalı?

context cache (diğer adları: bağlam önbelleği)

Spring'in test bağlamlarını yapılandırmaya göre önbelleğe alması. Anahtar anotasyonlar, property'ler, profiller ve mock'lardır — bir `@MockBean` farkı yeni bir bağlam demektir.

Geçtiği dersler: Spring Test Dilimleri ve Context Cache, Testcontainers

context window (diğer adları: bağlam penceresi)

Bir dil modelinin tek seferde görebildiği metnin tamamı: senin mesajların, verdiğin dosyalar ve kendi cevapları. Pencerede olmayan bir şeyi model bilmez.

Geçtiği dersler: Dil Modeli Nasıl Cevap Üretir, Bağlam ve Görev Tarifi

CORS (diğer adları: Access-Control-Allow-Origin, cross-origin)

Cross-Origin Resource Sharing: sunucunun, başka bir origin'deki sayfaya cevabını okuma izni vermesi. Access-Control-* başlıklarıyla yapılır; kuralı tarayıcı uygular.

Geçtiği dersler: CORS

coverage (diğer adları: kapsama)

Testler sırasında çalıştırılan kod oranı. Kodun doğrulandığını değil, yalnızca çalıştırıldığını gösterir — assertion içermeyen bir test de coverage üretir.

Geçtiği dersler: TDD

covering index (diğer adları: kapsayıcı indeks)

Sorgunun ihtiyaç duyduğu tüm sütunları içeren indeks. Veritabanı tabloya hiç gitmeden cevabı indeksten okur — index-only scan.

Geçtiği dersler: SQL İndeksleme ve EXPLAIN

CPU request ve limit (diğer adları: requests.cpu, limits.cpu, request, limit)

Kubernetes'te request, pod'un yerleştirilirken garanti edilen CPU payıdır; limit ise aşılamayan tavandır.

Geçtiği dersler: JVM Konteynerde CPU

CPU throttling (diğer adları: throttling, throttle, CFS quota)

Konteynerin bir zaman dilimindeki CPU kotası bitince bütün thread'lerinin bir sonraki dilime kadar bekletilmesi.

Geçtiği dersler: JVM Konteynerde CPU

CQRS (diğer adları: komut-sorgu ayrımı)

Command Query Responsibility Segregation: değiştiren işler (komutlar) ile okuyan işlerin (sorgular) ayrı modellerle yapılması. Okuma tarafı yazmanın biraz gerisinden gelebilir.

Geçtiği dersler: CQRS ve Event Sourcing

CSRF

Tarayıcının isteğe otomatik eklediği kimlik bilgilerini başka bir sitenin sömürmesi. Token elle eklenen bir başlıktaysa bu saldırı yüzeyi yoktur; cookie'deyse vardır.

Geçtiği dersler: Spring Security Filter Chain, CORS, BFF'de Güvenlik ve Alternatifler

CSS grid (diğer adları: display: grid, grid, ızgara)

Satır ve sütunu birlikte kuran iki boyutlu CSS düzeni. Sütunlar bir kez tanımlanır, bütün öğeler aynı ızgaraya oturur.

Geçtiği dersler: Flexbox mı Grid mi

cursor (diğer adları: keyset pagination, cursor pagination)

"Şu kayıttan sonrakiler" diyerek sayfalama. Offset'in aksine sabit maliyetlidir ve araya kayıt girse bile atlama yapmaz; bedeli rastgele bir sayfaya atlayamamaktır.

Geçtiği dersler: REST Tasarımı ve Idempotency, Sayfalama

Ç

çıktı kodlama (diğer adları: output encoding, escaping, kaçış)

Kullanıcının yazdığı metni sayfaya metin olarak yazmak: < işareti ekranda < olarak görünür, etiket olmaz. React'te {değer} bunu kendiliğinden yapar.

Geçtiği dersler: XSS

çift zamanlı veri (diğer adları: bitemporal, valid time, transaction time)

Her kaydın iki tarihini tutan veri: bilginin geçerli olduğu tarih ve sisteme kaydedildiği tarih. Geçmişin hem doğrusunu hem o an bilineni gösterebilir.

Geçtiği dersler: Düzenleyici Raporlama

çok aşamalı build (diğer adları: multi-stage build)

Derlemeyi bir aşamada yapıp yalnızca sonucu son imaja kopyalamak. Java'da JDK derleme aşamasında kalır, çalışma imajına yalnızca JRE ve jar girer.

çok kiracılılık (diğer adları: multi-tenancy, tenant, kiracı)

Tek bir uygulamanın birden çok müşteri kurumuna (kiracıya) hizmet vermesi. Her kiracı yalnızca kendi verisini görmelidir.

Geçtiği dersler: Kiracı Ayrımı

D

dağıtık monolit (diğer adları: distributed monolith)

Servisleri ayırıp bağımsızlığı kazanamamış sistem: ortak veritabanı, koordineli deploy, senkron zincirler.

Geçtiği dersler: Monolit mi, mikroservis mi?, Servis Sınırları, BFF

daraltma (diğer adları: narrowing)

Derleyicinin, yazdığın kontrole bakarak bir değerin tipini daha dar bir tipe indirmesi. `if (!user) return;` sonrası `user` artık null olamaz.

Geçtiği dersler: TypeScript Tip Sistemi ve Daraltma

dark launch (diğer adları: karanlık yayın)

Kodu bayrak kapalıyken yayına almak: kod sunucudadır ama hiçbir kullanıcı o yola girmez. Açmak ayrı bir karar olarak bekler.

Geçtiği dersler: Özellik Bayrakları

database-per-service (diğer adları: servis başına veritabanı)

Her servisin kendi verisine sahip olması ve bu veriye diğer servislerin yalnızca onun API'si ya da olayları üzerinden ulaşması. Tablolar paylaşılmaz.

Geçtiği dersler: Servis Sınırları

dead code elimination (diğer adları: DCE, ölü kod silme)

Derleyicinin ya da JIT'in, sonucu hiçbir yerde kullanılmayan hesabı tamamen silmesi. Ölçümde boş bir döngünün süresini görmene yol açar.

Geçtiği dersler: JMH ile Doğru Ölçüm

dead letter topic (diğer adları: DLT, dead letter queue, DLQ)

İşlenemeyen mesajların, hata bilgisiyle birlikte yazıldığı ayrı topic. Mesaj kaybolmaz; incelenip düzeltildikten sonra yeniden gönderilebilir.

Geçtiği dersler: Spring Kafka Hata Yönetimi

deadlock (diğer adları: kilitlenme)

İki ya da daha fazla thread'in, her birinin diğerinin tuttuğu kilidi beklediği için sonsuza kadar durması. Exception yok, CPU boşta; istek sadece asılı kalır.

Geçtiği dersler: Concurrency Araçları

debounce (diğer adları: debounce, geciktirme)

Arka arkaya gelen olaylarda, olaylar bir süre durana kadar bekleyip yalnızca sonuncusu için işlem yapmak. Anında aramada istek sayısını azaltır.

Geçtiği dersler: Anında Arama

decorator (diğer adları: decorator pattern, sarmalayıcı)

Aynı arayüzü uygulayıp asıl nesneyi saran ve çağrının önüne ya da arkasına davranış ekleyen nesne. Birden fazlası üst üste dizilebilir; sıra, her katmanın ne gördüğünü belirler.

Geçtiği dersler: Yapısal Kalıplar

default method (diğer adları: default metot)

Java 8'den beri bir interface'in gövdesiyle birlikte tanımlayabildiği metot. Mevcut uygulamaları kırmadan sözleşmeyi genişletmeye yarar; örnek durumuna erişemez.

Geçtiği dersler: Interface ve Abstract Class

defensive copy (diğer adları: savunmacı kopya)

Dışarıdan alınan ya da dışarıya verilen değiştirilebilir bir nesnenin kopyasını kullanmak; böylece başkasının referansı iç durumu değiştiremez.

Geçtiği dersler: Sınıf, Nesne ve Kapsülleme, Değişmez Sınıf Tasarlamak

değerlendirme seti (diğer adları: eval, evaluation set)

Doğru cevabı bilinen örneklerden oluşan bir set. İstem ya da model her değiştiğinde modeli bu setten geçirip ne kadar doğru cevap verdiğini ölçersin.

Geçtiği dersler: Modelin Cevabını Uygulamada Kullanmak, İstemi Ölçmek

değişiklik akışı (diğer adları: incremental feed, ITCH, market by order)

Defterin kendisi yerine numaralı değişiklikleri (emir eklendi, silindi, işlem gördü) yayan piyasa verisi. ITCH buna bir örnektir.

Geçtiği dersler: Piyasa Verisi

değişmez kural (diğer adları: invariant)

Nesne var olduğu sürece doğru kalması gereken şey. Kapsüllemenin ölçütü kaç alanın private olduğu değil, hangi kuralın dışarıdan bozulamadığıdır.

Geçtiği dersler: Sınıf, Nesne ve Kapsülleme, Nesne Yönelimli Tasarım, Zengin Domain Modeli

delegation (diğer adları: yönlendirme, forwarding, delege etmek)

Bir nesnenin işi, içinde tuttuğu başka bir nesneye yönlendirmesi (forwarding). Kompozisyonun uygulanış biçimi.

Geçtiği dersler: Kalıtım ve Kompozisyon

denormalization (diğer adları: denormalizasyon, bilinçli kopya)

Okumayı hızlandırmak ya da o anın gerçeğini saklamak için bir bilgiyi bilerek kopyalamak. Asıl kaynak tek yerde kalır, kopya oradan güncellenir.

Geçtiği dersler: Normalizasyon

deoptimization (diğer adları: deopt, made not entrant, uncommon trap)

JIT'in bir varsayıma (ör. 'buraya hep Book gelir') dayanarak ürettiği kodun, varsayım bozulunca geçersiz sayılıp yorumlayıcıya dönülmesi.

Geçtiği dersler: Sınıf Yükleme ve JIT

detached entity (diğer adları: detached)

Persistence context'i kapanmış bir entity. Nesne hâlâ elinde, ama değişikliklerini kimse izlemez ve tembel ilişkileri artık yüklenemez.

Geçtiği dersler: Persistence Context

dış nesne (diğer adları: enclosing instance, Outer.this)

Bir inner sınıf nesnesini kuran ve ona bağlı olan dış sınıf nesnesi. İçeriden Dis.this ile erişilir.

Geçtiği dersler: İç İçe Sınıflar

diamond problem (diğer adları: elmas problemi)

Bir sınıfın, aynı imzalı default metodu sağlayan iki interface'i birden uygulaması. Java bunu belirsiz sayar ve sınıfın metodu açıkça override etmesini ister.

Geçtiği dersler: Interface ve Abstract Class

dilim puanı (diğer adları: slice, segment, kategori bazlı puan)

Değerlendirme sonucunu tek bir toplam yerine kategori kategori ayrı ölçmek. Ortalamada kaybolan bir bozulmayı görünür yapar.

Geçtiği dersler: İstemi Ölçmek

dinamik bağlama (diğer adları: dynamic dispatch, late binding, geç bağlama)

Çağrılacak metodun sürümünün derleme anında değil, çalışma anında nesnenin gerçek sınıfına bakılarak seçilmesi.

Geçtiği dersler: Polimorfizm ve Dinamik Bağlama

dinamik import (diğer adları: dynamic import, import())

Bir modülü dosyanın başında değil, çalışma anında await import('...') ile yüklemek. Nadir kullanılan ağır kod için idealdir.

Geçtiği dersler: Kod Bölme

dirty checking (diğer adları: kirli kontrol)

Hibernate'in managed entity'lerin yüklendikleri andaki anlık görüntüsünü saklayıp flush sırasında şimdiki hâlle karşılaştırması ve farkı UPDATE olarak yazması.

Geçtiği dersler: Toplu UPDATE, Persistence Context

discriminator (diğer adları: DTYPE, @DiscriminatorColumn, @DiscriminatorValue)

Tek tablodaki bir satırın hangi alt sınıfa ait olduğunu söyleyen kolon. Varsayılan değer entity adıdır; @DiscriminatorValue ile sabitlenir.

Geçtiği dersler: Kalıtım Stratejileri

DispatcherServlet (diğer adları: front controller)

Spring MVC uygulamasının tek giriş kapısı. Gelen her isteği handler mapping ile doğru controller metoduna yollar, dönen cevabı istemciye yazar ve hataları hata işleyicilere verir.

Geçtiği dersler: Spring MVC

distributed lock (diğer adları: dağıtık kilit, ShedLock)

Birden çok süreç arasında paylaşılan kilit; genellikle bir veritabanı satırı ya da Redis anahtarı. Aynı işin aynı anda yalnızca bir yerde çalışmasını sağlar.

Geçtiği dersler: Dağıtık Kilit ve Fencing Token, @Scheduled ve ShedLock

doğal sıra (diğer adları: natural ordering, Comparable)

Bir sınıfın Comparable ile kendi içine yazdığı varsayılan sıralama. Sayılarda küçükten büyüğe, tarihlerde eskiden yeniye.

Geçtiği dersler: Comparable ve Comparator

doğum günü paradoksu (diğer adları: birthday paradox, birthday problem)

Rastgele seçilen değerlerin, sanılandan çok daha erken çakışması. 23 kişilik bir grupta iki kişinin aynı günde doğmuş olma olasılığı yarıyı geçer.

Geçtiği dersler: URL Kısaltıcı Tasarımı

dolaylılık (diğer adları: indirection)

Bir şeye doğrudan değil, araya giren bir katman üzerinden ulaşmak. Esneklik verir, okurken bir adım daha attırır — bedava değildir.

Geçtiği dersler: SOLID, Tasarım Kalıpları

domain olayı (diğer adları: domain event, olay, event)

Domain'de olmuş bir şeyi geçmiş zamanla anlatan nesne: AccountOpened. Kimin dinleyeceğini bilmez.

Geçtiği dersler: Domain Olayları

double submit (diğer adları: çift gönderim, çift tıklama)

Tek bir gönderimin sunucuya iki istek olarak ulaşması: çift tıklama ya da kaybolan cevabın ardından tekrar deneme. Sunucu tarafında idempotency anahtarıyla durdurulur.

Geçtiği dersler: Form Gönderimi

DRY (diğer adları: don't repeat yourself, kendini tekrar etme)

"Don't repeat yourself": aynı sebeple değişen her bilginin sistemde tek bir sahibi olmalı. Kod satırlarıyla değil, bilgiyle ilgilidir.

Geçtiği dersler: DRY, KISS, YAGNI ve Demeter

dual write (diğer adları: çift yazma)

Aynı işlemde iki ayrı sisteme (ör. veritabanı ve mesaj kuyruğu) yazmak. Ortak bir transaction olmadığı için biri başarılı olup diğeri başarısız olabilir.

Geçtiği dersler: Outbox ve Idempotent Consumer, Strangler Fig ve API Sürümleme

duman testi (diğer adları: smoke test, deneme emri)

Yayından hemen sonra sistemin en temel işini yapabildiğini gösteren kısa deneme. Trading'de açılıştan önce bir deneme emri gönderip iptal etmek gibi.

Geçtiği dersler: Piyasa Saatleri ve Canlıya Alma

E

eager evaluation (diğer adları: istekli değerlendirme)

Bir ifadeyi ihtiyaç olup olmadığına bakmadan hemen hesaplamak. Java metot argümanlarını metot çağrılmadan önce hesaplar; orElse(x()) bu yüzden x()'i her zaman çalıştırır.

Geçtiği dersler: Optional'ı Doğru Kullanmak

effectively final (diğer adları: etkin olarak final)

final yazılmamış ama ilk atamadan sonra hiç değişmeyen yerel değişken. Lambda ve anonim sınıf yalnızca böyle değişkenleri yakalayabilir, çünkü değerin bir kopyasını alırlar.

Geçtiği dersler: Lambda ve Fonksiyonel Arayüzler

emir defteri (diğer adları: order book, derinlik)

Bir menkul kıymet için bekleyen alış ve satış emirlerinin fiyat sırasıyla tutulduğu iki liste. Ekrandaki fiyat, bu listelerin en üst satırıdır.

Geçtiği dersler: Emir Defteri

enum (diğer adları: enum, enumeration, numaralandırma)

Bir değerin alabileceği seçenekleri baştan sayan tip. Listede olmayan bir değer derlenmez.

Geçtiği dersler: Enum

equals sözleşmesi (diğer adları: equals contract)

equals metodunun uyması gereken kurallar: kendine eşit, simetrik, geçişli, tutarlı ve null'a eşit değil.

Geçtiği dersler: Object Sınıfı

erişim belirleyici (diğer adları: access modifier, görünürlük)

Bir sınıfın, alanın ya da metodun kimler tarafından kullanılabileceğini belirleyen kelime: private, protected, public ya da hiçbiri (paket içi).

Geçtiği dersler: Erişim Belirleyiciler

erken soyutlama (diğer adları: premature abstraction)

Henüz bilinmeyen bir gereksinime göre genelleştirme yapmak. Yanlış eksende açılmış bir soyutlama, hiç açılmamış olmasından pahalıdır.

Geçtiği dersler: Temiz Kod, Tasarım Kalıpları

error budget (diğer adları: hata bütçesi, burn rate)

SLO'nun dışında kalan, servisin bozuk olabileceği pay. Kaldıkça risk alınır; bitince yeni özellik yerine güvenilirlik öne geçer.

Geçtiği dersler: SLO ve Hata Bütçesi

eski cevap (diğer adları: stale response, out-of-order response)

Artık güncel olmayan bir isteğe gelen cevap. Yeni aramanın sonucunun üstüne yazılırsa ekran yanlış sonucu gösterir.

Geçtiği dersler: Anında Arama

ETag (diğer adları: entity tag, If-None-Match, 304 Not Modified)

Bir dosyanın sürümünü gösteren kısa etiket. Tarayıcı onu geri gönderip 'değişti mi?' diye sorar; değişmediyse sunucu gövdesiz bir 304 döner.

Geçtiği dersler: Tarayıcı Önbelleği

event loop (diğer adları: olay döngüsü, Netty event loop)

Az sayıda thread'in, beklemeden olaydan olaya geçerek çok sayıda bağlantıyı taşıdığı model. WebFlux'ta Reactor Netty çekirdek başına bir loop kullanır.

Geçtiği dersler: WebFlux ve Event Loop

event sourcing (diğer adları: event store, olay deposu)

Bir nesnenin son hâlini değil, başına gelen olayları saklamak. Durum, olaylar baştan sırayla uygulanarak kurulur; olaylar yalnızca sona eklenir.

Geçtiği dersler: CQRS ve Event Sourcing

eventual consistency (diğer adları: nihai tutarlılık)

Sistemin bir süre tutarsız kalıp sonunda tutarlı hâle gelmesi. Saga'nın verdiği garanti budur; arada geçilen ara durumu tasarımın kabul etmesi gerekir.

Geçtiği dersler: Servis Sınırları, Servisler Arası İletişim Desenleri, Tutarlılık Seviyeleri ve Quorum, Dağıtık Transaction

exception chaining (diğer adları: cause, caused by)

Bir exception'ı başka birine sararken asıl hatayı `cause` olarak geçirmek. Stack trace'teki "Caused by" satırları buradan gelir.

Geçtiği dersler: Exception Yönetimi

exchange (diğer adları: RabbitMQ exchange, direct, topic, fanout)

RabbitMQ'da yayıncının mesajı gönderdiği ayırma noktası. Türüne ve bağlantılara bakarak mesajın kopyalarını uygun kuyruklara koyar.

Geçtiği dersler: RabbitMQ

executor

Görevleri hangi thread'lerin çalıştıracağına karar veren bileşen. Belirtmezsen çoğu asenkron API ortak ForkJoinPool'u kullanır — ve o havuz tüm uygulamayla paylaşılır.

Geçtiği dersler: CompletableFuture ve Structured Concurrency

exponential backoff (diğer adları: jitter, backoff)

Başarısız her denemeden sonra bekleme süresini katlayarak artırmak. Süreye rastgele bir pay (jitter) eklenir ki istemciler aynı anda geri dönmesin.

Geçtiği dersler: Rate Limiting, Retry, Backoff ve Jitter

expression problem (diğer adları: ifade problemi)

Bir tasarımın ya yeni tip eklemeyi ya yeni işlem eklemeyi ucuzlatabilmesi, ikisini birden ucuzlatamaması.

Geçtiği dersler: Tasarım Kalıpları

extended reference (diğer adları: genişletilmiş referans)

Referansın yanına ilgili dokümanın sık okunan birkaç alanının kopyasını koymak (ör. müşteri id'si ve adı). Okumayı ucuzlatır, kopyaların güncelliğini yönetmeyi gerektirir.

Geçtiği dersler: Doküman Modelleme

F

facade (diğer adları: facade pattern, cephe)

Karmaşık bir alt sistemin önüne, en sık kullanılan işleri basit metotlarla sunan tek bir giriş noktası koymak. Alt sistemi gizlemez, kullanımını kolaylaştırır.

Geçtiği dersler: Yapısal Kalıplar

fail fast (diğer adları: hızlı başarısızlık)

Başarısız olacağı belli olan bir işlemi beklemeden reddetmek. Breaker açıkken çağrının ağa hiç çıkmaması budur — çağıranın thread'i timeout boyunca tutulmaz.

Geçtiği dersler: Feign Client

fail-fast iterator (diğer adları: fail-fast, ConcurrentModificationException)

Gezildiği sırada koleksiyon kendi dışından değiştirilirse bunu fark edip hemen ConcurrentModificationException fırlatan iterator. Tek thread'de de çalışır.

Geçtiği dersler: Koleksiyonların İçi

failover (diğer adları: yük devretme, promotion)

Primary çöktüğünde bir replikanın yeni primary olarak devralması. Asenkron replikasyonda replikaya ulaşmamış yazmalar bu sırada kaybolabilir.

Geçtiği dersler: Replikasyon ve Okuma Replikaları

fake (diğer adları: test double)

Gerçeğinin basitleştirilmiş ama çalışan bir uygulaması — bellek içi bir repository gibi. Stub hazır cevap döner, mock ayrıca çağrıldığını doğrular.

Geçtiği dersler: Test Piramidi, JUnit 5 ve Mockito

false positive (diğer adları: yanlış alarm, yanlış pozitif)

Olmayan bir şey için "var" ya da "belki var" denmesi; yanlış alarm. Bloom filter'da yalnızca bu yönde hata olur.

Geçtiği dersler: Bloom Filter

fat finger (diğer adları: şişman parmak hatası, klavye hatası)

Yanlış yazılmış emir: bir sıfır fazla, yanlış fiyat ya da yanlış yön. Tek emir sınırı gibi kontrollerle yakalanır.

Geçtiği dersler: İşlem Öncesi Risk ve Kill Switch

feature envy (diğer adları: özellik kıskançlığı)

Bir metodun kendi sınıfından çok başka bir sınıfın verisiyle uğraşması. Genelde o davranışın verinin durduğu sınıfa taşınması gerektiğini gösterir.

Geçtiği dersler: Code Smell ve Refactoring

feature flag (diğer adları: özellik bayrağı, feature toggle)

Kodun içinde, çalışırken değiştirilebilen bir ayara bakan 'açık mı?' kontrolü. Deploy'u release'ten ayırır; kapatmak bir deploy değil, bir ayardır.

Geçtiği dersler: Özellik Bayrakları

fencing token (diğer adları: fencing, çit numarası)

Kilit her verilişinde artan bir numara. Yazılan yer gördüğü en büyük numaradan küçüğünü reddeder ve eski kilit sahibinin geç yazmasını durdurur.

Geçtiği dersler: Dağıtık Kilit ve Fencing Token

fetch join (diğer adları: join fetch, JOIN FETCH, @EntityGraph)

JPQL'de join fetch: ilişkili entity ya da koleksiyonu aynı sorguda doldurur. Koleksiyonla birlikte sayfalanırsa LIMIT düşer ve sayfa bellekte kesilir.

Geçtiği dersler: join fetch ve Sayfalama

FIX (diğer adları: FIX protocol, Financial Information eXchange)

Financial Information eXchange: emir, gerçekleşme ve iptal mesajları için yaygın standart. Bir oturum katmanı ve iş mesajlarından oluşur.

Geçtiği dersler: FIX Oturumu ve Sıra Numarası

filter chain (diğer adları: filtre zinciri)

Spring Security'nin isteği sırayla geçirdiği servlet filtreleri. `DispatcherServlet`'ten önce çalışır — bu yüzden güvenlik hataları `@ControllerAdvice` ile yakalanamaz.

Geçtiği dersler: Spring Security Filter Chain

fiyat-zaman önceliği (diğer adları: price-time priority, FIFO)

Eşleşme kuralı: en iyi fiyattaki emir önce eşleşir; aynı fiyatta önce gelen emir önce.

Geçtiği dersler: Emir Defteri

flaky (diğer adları: kırılgan test)

Kod değişmediği hâlde bazen geçen bazen kalan test. Verdiği bilgiyi yok eder: artık "geçti" ne anlama geliyor bilmezsin.

Geçtiği dersler: Test Piramidi, JUnit 5 ve Mockito, Kararsız Testler

flexbox (diğer adları: display: flex, flex, esnek kutu)

Öğeleri tek yönde (satır ya da sütun) dizen CSS düzeni. Öğeler büyüyüp küçülebilir; ama varsayılan olarak içeriklerinden küçük olamazlar.

Geçtiği dersler: Flexbox mı Grid mi

flush (diğer adları: em.flush(), saveAndFlush)

Persistence context'teki bekleyen değişiklikleri SQL olarak veritabanına göndermek. Commit değildir: transaction açık kalır ve geri alınabilir.

Geçtiği dersler: Flush ve SQL Sırası

FlushMode (diğer adları: FlushModeType.AUTO, FlushModeType.COMMIT)

Flush'ın ne zaman otomatik yapılacağı. AUTO (varsayılan) commit'ten ve etkilenecek sorgulardan önce flush eder; COMMIT yalnızca commit'te.

Geçtiği dersler: Flush ve SQL Sırası

foreign key (diğer adları: yabancı anahtar, FK, references)

Bir tablodaki kolonun başka bir tablonun anahtarına işaret etmesi. Veritabanı, işaret edilen satırın gerçekten var olduğunu garanti eder.

Geçtiği dersler: Normalizasyon

fragile base class (diğer adları: kırılgan taban sınıf)

Taban sınıftaki masum görünen bir değişikliğin, onun iç ayrıntısına güvenen alt sınıfları sessizce bozması.

Geçtiği dersler: Kalıtım ve Kompozisyon

functional interface (diğer adları: fonksiyonel arayüz, @FunctionalInterface, SAM)

Tek bir soyut metodu olan arayüz. Lambda ve method reference yalnızca böyle bir arayüzün yerine geçebilir.

Geçtiği dersler: Lambda ve Fonksiyonel Arayüzler

G

GC kökü (diğer adları: GC root, kök)

GC'nin canlı nesneleri aramaya başladığı yer: çalışan thread'lerin yerel değişkenleri, static alanlar ve JNI referansları. Buradan ulaşılamayan nesne çöptür.

Geçtiği dersler: Bellek Sızıntısı ve Referans Türleri

geçişli bağımlılık (diğer adları: transitive dependency)

Senin eklemediğin, eklediğin bir kütüphanenin kendi bağımlılığı olarak gelen kütüphane. Sürümünü çoğu zaman sen seçmezsin.

Geçtiği dersler: Çok Modüllü Maven

genişlet-daralt (diğer adları: expand-contract, parallel change)

Uyumsuz bir şema değişikliğini, her biri önceki kodla da çalışan adımlara bölmek: yeni yapıyı ekle, veriyi taşı, kodu geçir, eski yapıyı kaldır.

Geçtiği dersler: Kesintisiz Şema Değişikliği

gerçekleşme raporu (diğer adları: execution report, ExecutionReport)

Borsanın bir emir için gönderdiği mesaj: kabul, kısmi ya da tam gerçekleşme, iptal, red. FIX'te ExecutionReport adını taşır.

Geçtiği dersler: Emrin Yaşam Döngüsü

gerileme (diğer adları: regression, regresyon)

Bir değişiklikten sonra daha önce doğru çalışan bir durumun bozulması. İstem değişikliklerinde de testlerdeki gibi yakalanmalı.

Geçtiği dersler: İstemi Ölçmek

geriye uyumluluk (diğer adları: backward compatibility, BACKWARD, geri uyumluluk)

Yeni şemanın eski şemayla yazılmış verileri okuyabilmesi. Varsayılanı olan alan eklemek uyumludur; ad ya da tür değiştirmek değildir.

Geçtiği dersler: Olay Şemasının Evrimi

gömme (diğer adları: embedding, embedded document, gömülü doküman)

Doküman modelinde ilişkili veriyi ayrı bir koleksiyon yerine ana dokümanın içine koymak. Birlikte okunan ve sınırlı veri için tek okuma ve atomik yazma sağlar.

Geçtiği dersler: RAG, Doküman Modelleme

graceful shutdown (diğer adları: zarif kapanış, server.shutdown=graceful)

Kapanırken yeni istek almayı kesip işlenenlerin bitmesini belirli bir süre beklemek. Spring Boot 3.4'ten beri varsayılan; süreyi timeout-per-shutdown-phase belirler.

Geçtiği dersler: Graceful Shutdown

gRPC (diğer adları: gRPC servisi)

HTTP/2 üzerinde çalışan, mesajları protobuf ile taşıyan uzak çağrı çerçevesi. Şemadan istemci ve sunucu kodu üretilir; akışları destekler.

Geçtiği dersler: gRPC ve REST

gRPC-Web (diğer adları: grpc-web)

Tarayıcıların gRPC servislerini çağırabilmesi için kullanılan uyarlama. Tarayıcı gRPC-Web konuşur, bir proxy onu gerçek gRPC'ye çevirir.

Geçtiği dersler: gRPC ve REST

guard clause (diğer adları: erken dönüş)

İstisnai durumu başta eleyip erken dönen koşul. `else` merdivenini siler; satır kazandırmaz ama iç içe geçmeyi kaldırır.

Geçtiği dersler: Temiz Kod

güçlü kapsülleme (diğer adları: strong encapsulation, JEP 403)

JDK 17 ile zorunlu olan kural: JDK'nın iç sınıflarına reflection ile erişilemez. Eski kütüphaneler InaccessibleObjectException alır.

Geçtiği dersler: JDK 8'den 21'e Geçiş

H

hak kullanım günü (diğer adları: ex-date, hak kullanım tarihi)

Hak kullanımının fiyatlara ve hesaplara yansıdığı gün. Bölünmede o sabah fiyat düşer ve adet artar.

Geçtiği dersler: Hak Kullanımı

hak kullanımı (diğer adları: corporate action, kurumsal işlem)

Şirketin bölünme, temettü, sermaye artırımı gibi kararlarının yatırımcı hesaplarını değiştirmesi. Saklama ve aracı kurum kayıtları buna göre düzeltilir.

Geçtiği dersler: Hak Kullanımı

hallucination (diğer adları: halüsinasyon, uydurma API)

Bir dil modelinin var olmayan bir API'yi, parametreyi ya da kaynağı kendinden emin bir dille üretmesi. Çıktı akıcı olduğu için fark etmek zordur.

Geçtiği dersler: Dil Modeli Nasıl Cevap Üretir, AI Kodunu Gözden Geçirmek, RAG, Modelin Cevabını Uygulamada Kullanmak

HandlerInterceptor (diğer adları: interceptor)

DispatcherServlet içinde, controller metodundan önce ve sonra çalışan kanca. Filter'dan farkı, hangi metodun çalışacağını bilmesidir.

Geçtiği dersler: Spring MVC

happens-before

Java Memory Model'in verdiği garanti: A işlemi B'den önce gerçekleşiyorsa, A'nın yazdığı her şeyi B görür. `synchronized` ve `volatile` bu ilişkiyi kurar.

Geçtiği dersler: Race Condition ve Görünürlük

hash collision (diğer adları: çakışma)

İki farklı anahtarın aynı bucket'a düşmesi. Hata değil, normaldir — HashMap bunu zincirleyerek çözer.

Geçtiği dersler: HashMap, equals ve hashCode

hashCode

Nesneyi bir tamsayıya indiren metot. Eşit nesneler aynı sayıyı vermek zorundadır; farklı nesnelerin aynı sayıyı vermesi serbesttir.

Geçtiği dersler: HashMap, equals ve hashCode

heap (diğer adları: öbek)

Tüm thread'lerin paylaştığı, `new` ile üretilen nesnelerin yaşadığı bellek alanı. Temizliğini garbage collector yapar.

Geçtiği dersler: Stack, Heap ve Pass-by-Value

heap dump (diğer adları: hprof, bellek dökümü)

JVM'in heap'indeki bütün nesnelerin bir dosyaya yazılmış anlık görüntüsü. Kimin kimi tuttuğunu gösterir; alınırken JVM durur.

Geçtiği dersler: Prod'da Teşhis

heap pollution (diğer adları: yığın kirliliği)

Generic tipli bir değişkenin, o tipe uymayan bir nesneyi göstermesi. Genelde raw type ya da unchecked cast yüzünden olur, hata çok sonra ClassCastException olarak çıkar.

Geçtiği dersler: Generics ve Type Erasure

hexagonal mimari (diğer adları: ports and adapters, hexagonal architecture)

İş kuralını merkeze koyup dış dünyayla (veritabanı, HTTP, mesaj kuyruğu) yalnızca arayüzler üzerinden konuşan mimari. Bağımlılıklar her zaman merkeze doğru bakar.

Geçtiği dersler: Hexagonal Mimari

Hibernate proxy (diğer adları: getReference, HibernateProxy)

Tembel yükleme için entity sınıfından türetilmiş yer tutucu. Alanları ilk erişime kadar boştur ve getClass() gerçek sınıfı değil proxy sınıfını döndürür.

Geçtiği dersler: Entity equals ve hashCode

HMAC imzası (diğer adları: HMAC, HMAC-SHA256, imza)

Gövde ve iki tarafın bildiği gizli bir anahtarla hesaplanan imza. Çağrının kimden geldiğini ve yolda değişmediğini kanıtlar.

Geçtiği dersler: Webhook Almak

HTML temizleyici (diğer adları: sanitizer, DOMPurify)

HTML'i bir izin listesine göre süzen araç: yalnızca izin verilen etiketleri bırakır, olay özellikleri gibi her şeyi siler. Örnek: DOMPurify.

Geçtiği dersler: XSS

HttpMessageConverter (diğer adları: message converter)

HTTP gövdesini Java nesnesine, Java nesnesini de gövdeye çeviren bileşen. @RequestBody ve @RestController dönüşleri bunu kullanır; JSON için varsayılanı Jackson'dır.

Geçtiği dersler: Spring MVC

I

ID token (diğer adları: OIDC, OpenID Connect)

OpenID Connect'in uygulamaya verdiği, kimin giriş yaptığını söyleyen imzalı token. API çağrıları için değil, uygulamanın kendisi içindir.

Geçtiği dersler: OAuth2 ve OIDC

IDENTITY (diğer adları: GenerationType.IDENTITY, auto increment)

ID'nin veritabanında INSERT sırasında üretildiği strateji (auto increment). Hibernate id'yi öğrenmek için INSERT'i hemen çalıştırır; bu yüzden batch yapamaz.

Geçtiği dersler: ID Üretimi ve Batch Insert

IDOR (diğer adları: broken object level authorization, BOLA)

Insecure Direct Object Reference: kullanıcının yalnızca bir kimliği değiştirerek (/orders/42 yerine /orders/43) başkasına ait veriye erişebilmesi. Eksik yetki kontrolünden doğar.

Geçtiği dersler: AI ile Test ve Güvenlik, Modele Araç Vermek

INP (diğer adları: Interaction to Next Paint)

Interaction to Next Paint: bir dokunuştan ekranın bir sonraki çizimine kadar geçen süre. 200 milisaniye ya da altı iyi sayılır.

Geçtiği dersler: Core Web Vitals

İ

içerik özeti (diğer adları: content hash, cache busting, fingerprinting)

Dosyanın içeriğinden hesaplanan kısa bir değer, dosya adına eklenir (app.3f9a.js). İçerik değişince ad da değişir.

Geçtiği dersler: Tarayıcı Önbelleği

idempotency (diğer adları: idempotent)

Aynı işlemin bir kez de on kez de çalışsa aynı sonucu vermesi. Dağıtık sistemde timeout aldığında işlemin yapılıp yapılmadığını bilemediğin için zorunludur.

Geçtiği dersler: REST Tasarımı ve Idempotency, Servisler Arası İletişim Desenleri, Form Gönderimi, Feign Client, İyimser Arayüz, Çevrimdışı Uygulama, Webhook Almak

idempotent consumer (diğer adları: idempotent tüketici, inbox)

Aynı mesajı birden fazla kez alsa da etkisini yalnızca bir kez uygulayan tüketici. Genelde işlenmiş olay kimliklerini benzersiz bir kısıtla kaydeder.

Geçtiği dersler: Outbox ve Idempotent Consumer

ileri fiyatlama (diğer adları: forward pricing)

Fon emirlerinin, emir anında henüz bilinmeyen bir sonraki birim pay değerinden işlem görmesi. Bilinen bilgiyle fon sahiplerinden kazanç taşınmasını önler.

Geçtiği dersler: Fon Fiyatı ve Kesim Saati

immutable (diğer adları: değişmez)

Oluşturulduktan sonra içi değişmeyen nesne. Anahtar olarak güvenlidir, çünkü hashCode'u hiç değişmez.

Geçtiği dersler: String, final ve static, HashMap, equals ve hashCode, Değişmez Sınıf Tasarlamak, BigDecimal

in-doubt transaction (diğer adları: belirsiz transaction, in-doubt)

Prepare'e 'evet' deyip koordinatörün kararını henüz almamış katılımcı. Tek başına commit de rollback de yapamaz; karar gelene kadar kilitlerini tutar.

Geçtiği dersler: Dağıtık Transaction

inner sınıf (diğer adları: inner class, iç sınıf)

Başka bir sınıfın içinde static olmadan yazılan sınıf. Her nesnesi onu kuran dış nesneye bağlı doğar ve onun alanlarını doğrudan kullanabilir.

Geçtiği dersler: İç İçe Sınıflar

insan onayı (diğer adları: human in the loop, onay adımı)

Geri alınamaz bir işlemin, bir insan tam parametreleri görüp onaylamadan çalışmaması. Modelin yanlış argümanını son anda yakalar.

Geçtiği dersler: Modele Araç Vermek

invariance (diğer adları: invariant)

Generic tiplerin alt tip ilişkisini taşımaması: Integer bir Number olsa da List<Integer> bir List<Number> değildir.

Geçtiği dersler: Generics ve Type Erasure

iptal reddi (diğer adları: cancel reject, OrderCancelReject, too late to cancel)

Borsanın iptal isteğine verdiği olumsuz cevap. Çoğu zaman emir zaten dolmuştur: iptal için çok geç.

Geçtiği dersler: Emrin Yaşam Döngüsü

istek iptali (diğer adları: cancellation, AbortController, abort)

Kullanıcı vazgeçince bunu tarayıcıdan sunucuya, oradan model çağrısına kadar taşıyıp işi durdurmak.

Geçtiği dersler: Cevabı Akıtmak

işlem öncesi risk kontrolü (diğer adları: pre-trade risk, risk gateway)

Bir emir borsaya gitmeden önce bağımsız bir katmanda yapılan kontroller: emir büyüklüğü, pozisyon, fiyat, emir hızı.

Geçtiği dersler: İşlem Öncesi Risk ve Kill Switch

iyimser arayüz (diğer adları: optimistic UI, optimistic update, useOptimistic)

Bir işlemi sunucu cevap vermeden gösterip, reddedilirse sakince geri alan arayüz. Geri alınabilen küçük işler içindir, para için değil.

Geçtiği dersler: İyimser Arayüz

izolasyon seviyesi (diğer adları: isolation level, READ COMMITTED, SERIALIZABLE)

Eşzamanlı transaction'ların birbirinin yarım kalmış işlerini ne kadar görebileceğine dair sözleşme: READ UNCOMMITTED'dan SERIALIZABLE'a.

Geçtiği dersler: İzolasyon Seviyeleri

J

Jakarta EE (diğer adları: Java EE, javax → jakarta)

Java EE'nin yeni adı. Paket adları javax.* yerine jakarta.* oldu; Tomcat 10, güncel WildFly ve Spring Boot 3 jakarta kullanır.

Geçtiği dersler: WAR ve Uygulama Sunucusu

JDBC batching (diğer adları: batch insert, hibernate.jdbc.batch_size)

Aynı SQL'i farklı parametrelerle birden çok kez tek gidiş dönüşte göndermek. Hibernate'te hibernate.jdbc.batch_size ile açılır; varsayılan olarak kapalıdır.

Geçtiği dersler: ID Üretimi ve Batch Insert

JIT derleyici (diğer adları: JIT, just-in-time, C1, C2, tiered compilation)

Çalışma sırasında sık çağrılan bytecode'u makine koduna çeviren derleyici. HotSpot'ta C1 hızlı derleyip profil toplar, C2 bu profile göre optimize eder.

Geçtiği dersler: Sınıf Yükleme ve JIT

jitter (diğer adları: full jitter, rastgele gecikme)

Tekrar deneme beklemesine eklenen rastgelelik. Aynı anda hata alan istemcilerin farklı anlarda dönmesini sağlar.

Geçtiği dersler: Retry, Backoff ve Jitter

JMS (diğer adları: Java Message Service, Jakarta Messaging)

Jakarta Messaging (eski adıyla Java Message Service): Java'da IBM MQ gibi mesaj kuyruklarıyla konuşmak için standart arayüz.

Geçtiği dersler: IBM MQ ve Sıralı Teslim

K

kalıtım (diğer adları: inheritance, extends)

Bir sınıfın başka bir sınıfı extends ile genişletip onun API'sini ve uygulamasını devralması. "B, bir A'dır" ilişkisini ifade eder.

Geçtiği dersler: Kalıtım ve Kompozisyon, Kalıtım Stratejileri, Soyutlama ve Dört Sütun

kalp atışı (diğer adları: heartbeat)

Liderin diğer düğümlere düzenli aralıklarla gönderdiği 'buradayım' mesajı. Gelmezse yeni bir seçim başlar.

Geçtiği dersler: Lider Seçimi ve Split-Brain

kapsama oranı (diğer adları: code coverage, coverage, JaCoCo)

Testler çalışırken kodun satırlarının ne kadarının en az bir kez çalıştığı. Satırların doğru sonuç verdiğini ölçmez.

Geçtiği dersler: Kapsama ve Mutasyon

kapsülleme (diğer adları: encapsulation)

Bir nesnenin iç durumunu yalnızca kendi metotlarından değiştirilebilir kılmak. Amaç alanları gizlemek değil, nesnenin kuralını (invariant) korumaktır.

Geçtiği dersler: Sınıf, Nesne ve Kapsülleme, Soyutlama ve Dört Sütun

karakterizasyon testi

Legacy kodun doğru olduğunu değil, şu an ne yaptığını kaydeden test. Yanlış davranışı da sabitler — amaç değişikliğin neyi bozduğunu görebilmektir.

Geçtiği dersler: Code Smell ve Refactoring

karşı taraf riski (diğer adları: counterparty risk, temerrüt riski)

Bir işlemin karşı tarafının, takas günü ya da sonrasında sözünü yerine getirememe riski. Önce veren taraf bu riski tamamen taşır.

Geçtiği dersler: Takas ve DvP

katman (diğer adları: layer)

Dockerfile'daki her talimatın ürettiği, yeniden kullanılabilen ara imaj. Bir katman değişince ondan sonraki tüm katmanlar yeniden kurulur.

Geçtiği dersler: Docker Katman Cache ve İmaj Boyutu

kayan nokta (diğer adları: floating point, double, IEEE 754)

Sayıları ikilik sistemde sınırlı sayıda haneyle, yaklaşık olarak tutan gösterim. Java'da float ve double böyledir.

Geçtiği dersler: BigDecimal

kayma (diğer adları: slippage)

Beklenen fiyat ile gerçekleşen ortalama fiyat arasındaki fark. Büyük bir piyasa emri defterde yukarı yürüdüğünde ortaya çıkar.

Geçtiği dersler: Emir Defteri

kesim saati (diğer adları: cut-off time, kesim)

Bir fonun emirleri bugünün fiyatına aldığı son an. Sonra gelen emir bir sonraki iş gününün fiyatından işlem görür.

Geçtiği dersler: Fon Fiyatı ve Kesim Saati

kesişen ilgi (diğer adları: cross-cutting concern)

Her servisi ilgilendiren ama hiçbirinin iş kuralı olmayan işler: auth, rate limit, log korelasyonu, TLS sonlandırma.

Geçtiği dersler: Mikroservis Katmanları

keyset sayfalama (diğer adları: seek method, keyset pagination)

Son görülen satırın anahtarından devam eden sayfalama (WHERE id < :son). Her derinlikte ucuzdur; belirli bir sayfaya doğrudan atlayamaz.

Geçtiği dersler: Sayfalama

kısmi gerçekleşme (diğer adları: partial fill, kısmen dolma)

Bir emrin yalnızca bir kısmının eşleşmesi. Kalan miktar defterde bekler, sonra dolabilir ya da iptal edilebilir.

Geçtiği dersler: Emir Defteri

kısmi indeks (diğer adları: partial index)

Yalnızca bir koşulu sağlayan satırları kapsayan indeks, örneğin WHERE deleted = false. Benzersizliği canlı satırlarla sınırlamak için kullanılır.

Geçtiği dersler: Soft Delete

kill switch (diğer adları: acil durdurma, kırmızı düğme)

Bir stratejiyi ya da bütün emir akışını tek hamlede durduran düğme. Kendiliğinden geri açılmaz; açmak bir insanın kararıdır.

Geçtiği dersler: İşlem Öncesi Risk ve Kill Switch

kod bölme (diğer adları: code splitting, chunk)

Uygulamanın JavaScript'ini parçalara ayırıp her parçayı gerektiğinde indirmek. İlk ekran yalnızca kendi ihtiyacını yükler.

Geçtiği dersler: Kod Bölme

kodlama ajanı (diğer adları: coding agent, ajan, agent)

Dosya okuyup düzenleyen, komut çalıştıran ve sonuca bakıp bir sonraki adıma karar veren bir AI döngüsü. Sohbetten farkı, araçlarla gerçek değişiklik yapabilmesidir.

Geçtiği dersler: Ajan Tabanlı Geliştirme

kompozisyon (diğer adları: composition, bileşim)

Bir nesnenin ihtiyacı olan davranışı devralmak yerine alan olarak tutması. Yalnızca kullandığın metotları alırsın, üst sınıfın tüm API'sini değil.

Geçtiği dersler: Nesne Yönelimli Tasarım

komut-sorgu ayrımı (diğer adları: CQS)

Bir metot ya durumu değiştirsin ya değer döndürsün, ikisini birden yapmasın. Yapınca isim yalan söylemeye başlar.

kök bulma (diğer adları: stemming, gövdeleme)

Bir kelimeyi eklerinden arındırıp köküne indirmek: 'kirası' ve 'kirasi' 'kira' olur. Ekli dillerde aramanın doğruluğu buna bağlıdır.

Geçtiği dersler: Tam Metin Arama

kuplaj (diğer adları: coupling, bağlılık)

İki parçanın birbirine ne kadar bağlı olduğu. Yüksek kuplajda birini değiştirmek diğerine dokunmayı gerektirir.

L

lag (diğer adları: consumer lag)

Üretilen ile tüketilen offset arasındaki fark. Artıyor ve hata yoksa sorun hız farkındadır — ve paralelliğin tavanı partition sayısıdır.

Geçtiği dersler: Kafka

Lamport sayacı (diğer adları: Lamport clock, Lamport timestamp, mantıksal saat)

Her olayda bir artan ve mesajla taşınan sayı. Alan, kendi sayacını gördüğünün bir fazlasına çıkarır; sebep hep sonuçtan küçük kalır.

Geçtiği dersler: Mantıksal Saatler

last-write-wins (diğer adları: LWW)

Çakışan iki yazmadan zaman damgası büyük olanın kalması. Basittir, ama düğümlerin saatleri kaymışsa gerçekte daha yeni olan yazma kaybolabilir.

Geçtiği dersler: Tutarlılık Seviyeleri ve Quorum

Law of Demeter (diğer adları: Demeter yasası, principle of least knowledge, en az bilgi ilkesi)

Bir metot yalnızca kendisiyle, alanlarıyla ve parametreleriyle konuşsun; onların döndürdüğü nesnelerin içine uzanmasın. a.getB().getC() zincirleri bunu çiğner.

Geçtiği dersler: DRY, KISS, YAGNI ve Demeter

layout (reflow) (diğer adları: reflow, yerleşim, layout)

Tarayıcının her öğenin yerini ve boyunu hesapladığı adım. left, width gibi geometri özellikleri onu yeniden çalıştırır; sonraki adımlar da peşinden gelir.

Geçtiği dersler: Tarayıcı Nasıl Çizer

layout thrashing (diğer adları: yerleşim çırpınması, forced reflow, forced synchronous layout)

Stil yazıp hemen boyut okumayı döngüde tekrarlamak. Her okuma yerleşimi o anda zorlar; önce hepsini okuyup sonra hepsini yazmak çözer.

Geçtiği dersler: Tarayıcı Nasıl Çizer

lazy evaluation (diğer adları: tembel değerlendirme)

İşi gerçekten ihtiyaç duyulana kadar ertelemek. Stream'de ara işlemler terminal işlem gelene kadar hiç çalışmaz.

Geçtiği dersler: Optional'ı Doğru Kullanmak, Stream API ve Tembellik

lazy loading (diğer adları: tembel yükleme)

İlişkiyi ilk erişimde yüklemek. Hibernate yerine bir proxy koyar ve ona dokunulduğunda sorgu atar — N+1'in hem sebebi hem ilacı buradadır.

LCP (diğer adları: Largest Contentful Paint)

Largest Contentful Paint: ekrandaki en büyük içeriğin ne zaman çizildiği. 2,5 saniye ya da altı iyi sayılır.

Geçtiği dersler: Core Web Vitals

lease (diğer adları: kilit süresi, kiralama)

Bir kilidin ya da hakkın belirli bir süre için verilmesi. Süre dolunca hak kendiliğinden düşer; sahibi çökse bile sistem takılmaz.

Geçtiği dersler: Dağıtık Kilit ve Fencing Token

least privilege (diğer adları: en az yetki)

Bir kullanıcıya, servise ya da ajana yalnızca işini yapmasına yetecek kadar izin vermek. Kandırılsa ya da yanılsa bile yapabileceği zararı sınırlar.

Geçtiği dersler: Erişim Belirleyiciler, Ajan Tabanlı Geliştirme, Servisler Arası Kimlik

least-connections (diğer adları: en az bağlantı)

Her yeni isteği o an en az açık isteği olan kopyaya veren dağıtım algoritması. Yavaşlayan kopyayı kendiliğinden daha az kullanır.

Geçtiği dersler: Yük Dengeleme

leftmost prefix (diğer adları: en soldaki önek)

Bileşik bir indeksin ancak baştan başlayarak kullanılabilmesi kuralı. `(a, b, c)` indeksi `a` ve `a, b` sorgularını hızlandırır; tek başına `b` sorgusunu hızlandırmaz.

lider seçimi (diğer adları: leader election)

Bir kümede yazmaları kabul edecek tek düğümün belirlenmesi. Güvenli olması için düğümlerin çoğunluğunun oyu gerekir.

Geçtiği dersler: Lider Seçimi ve Split-Brain

lifting state up (diğer adları: state'i yukarı taşımak)

İki kardeş bileşenin paylaştığı state'i ortak üst bileşenlerine taşımak. Üst bileşen değeri props ile ikisine de verir; ikisi hep aynı şeyi gösterir.

Geçtiği dersler: State Nerede Yaşamalı?

Liskov ikamesi (diğer adları: LSP, Liskov Substitution)

Alt tip, üst tipin kullanıldığı her yerde sorunsuz yerine geçebilmeli. Ölçüt "gerçek hayatta öyle mi" değil, "üst tipi kullanan kod alt tiple de doğru çalışır mı".

Geçtiği dersler: SOLID

Little yasası (diğer adları: Little's law, L = λW)

Kuyruktaki iş sayısı, geliş hızı ile ortalama bekleme süresinin çarpımıdır (L = λW). Kuyruk büyürse bekleme de aynı oranda büyür.

Geçtiği dersler: Backpressure ve Yük Atma

live set (diğer adları: canlı küme)

Toplama anında hâlâ erişilebilir olan nesnelerin toplamı. Genç toplamanın maliyeti çöple değil, live set ile orantılıdır.

Geçtiği dersler: Garbage Collection

livelock (diğer adları: canlı kilitlenme)

Thread'lerin bloklanmadığı, sürekli çalıştığı ama birbirine yol verirken hiç ilerleyemediği durum. Simetrik yeniden deneme bunun klasik sebebidir.

Geçtiği dersler: Concurrency Araçları

liveness probe (diğer adları: liveness, /actuator/health/liveness)

Kubernetes'in "bu süreç hâlâ çalışabilir durumda mı?" sorusu. Art arda düşerse pod yeniden başlatılır; bu yüzden yalnızca yeniden başlatmanın düzelteceği şeylere bakmalı.

Geçtiği dersler: Actuator ve Gözlemlenebilirlik

load balancer (diğer adları: yük dengeleyici, LB)

Bir servisin kopyalarının önünde durup gelen istekleri aralarında dağıtan bileşen. Sağlıksız kopyaya trafik göndermemek için onları düzenli olarak kontrol eder.

Geçtiği dersler: Yük Dengeleme

load shedding (diğer adları: yük atma, 429)

Kapasite aşıldığında fazla istekleri bilerek ve hızlıca reddetmek (örneğin 429). Kabul edilenlerin zamanında cevap almasını korur.

Geçtiği dersler: Backpressure ve Yük Atma

lock escalation (diğer adları: kilit yükseltme)

SQL Server'ın, tek bir işlemin tuttuğu çok sayıda satır ya da sayfa kilidini daha az sayıda tablo kilidine çevirmesi. Bellek kazandırır, eşzamanlılığı azaltır.

Geçtiği dersler: MVCC ve Kilitler, SQL Server'da Kilit Yükseltme

lockAtMostFor (diğer adları: lockAtLeastFor, @SchedulerLock)

ShedLock'ta kilidin, sahibi ölse bile en geç ne zaman düşeceği. En uzun normal çalıştırmadan uzun olmalı; kısa olursa iş iki yerde çalışır.

Geçtiği dersler: @Scheduled ve ShedLock

LSM ağacı (diğer adları: log-structured merge tree, LSM)

Yazmaları bellekte toplayıp dolunca diske sıralı, değişmeyen dosyalar olarak ekleyen depolama yapısı. Cassandra ve RocksDB bunu kullanır.

Geçtiği dersler: LSM Ağacı

M

macrotask (diğer adları: makro görev, task, task queue)

setTimeout, setInterval, tıklama ve ağ olayları gibi görevler. Mikro kuyruk boşken turda yalnızca bir tanesi çalışır.

Geçtiği dersler: JavaScript Olay Döngüsü

materialized view (diğer adları: materialized view, MATERIALIZED VIEW, saklanmış görünüm)

Bir sorgunun sonucunu tablo gibi saklayan, istendiğinde yenilenen görünüm. Okuması hızlıdır, son yenileme kadar günceldir.

Geçtiği dersler: Materialized View

Maven reactor (diğer adları: reactor, multi-module build)

Çok modüllü bir Maven projesinde modülleri bağımlılık sırasına dizip tek komutla kuran mekanizma. Önce kütüphaneler, sonra onları kullananlar kurulur.

Geçtiği dersler: Çok Modüllü Maven, JDK 8'den 21'e Geçiş

MDC (diğer adları: Mapped Diagnostic Context)

Mapped Diagnostic Context: SLF4J/Logback'in thread'e bağlı anahtar-değer tablosu. Log pattern'i buradan okur; Micrometer Tracing traceId ve spanId'yi oraya koyar.

Geçtiği dersler: Dağıtık Tracing, Yapılandırılmış Loglama

memo

Prop'ları değişmediyse bileşenin yeniden render edilmesini atlayan sarmalayıcı. Şartı referans eşitliğidir; inline prop geçiyorsan hiçbir şey yapmaz.

Geçtiği dersler: React Render Modeli

mesaj grubu (diğer adları: message group, JMSXGroupID, partition key)

Sırası önemli olan mesajları bir anahtarla (örneğin emir numarası) bir araya toplamak. Aynı gruptaki mesajlar tek tüketicide, sırayla işlenir.

Geçtiği dersler: IBM MQ ve Sıralı Teslim

metaspace (diğer adları: Metaspace, PermGen)

JVM'in yüklenen sınıfların bilgisini heap dışında tuttuğu bellek alanı. Varsayılan olarak tavanı yoktur; çok sınıf yükleyen uygulamada büyür.

Geçtiği dersler: JVM Konteynerde

method reference (diğer adları: metot referansı, ::)

Yalnızca var olan bir metodu çağıran lambdanın kısa yazımı: String::length, Integer::parseInt, ArrayList::new.

Geçtiği dersler: Lambda ve Fonksiyonel Arayüzler

mezar taşı (diğer adları: tombstone)

LSM'de silinen bir anahtar için eklenen işaret. Veri sıkıştırmaya kadar diskte kalır; çok sayıda mezar taşı okumayı yavaşlatır.

Geçtiği dersler: LSM Ağacı

microtask (diğer adları: mikro görev, queueMicrotask, job queue)

Promise.then, await sonrası ve queueMicrotask işleri. Yığın her boşaldığında bu kuyruk tamamen boşaltılır; makro görevlerden önce gelir.

Geçtiği dersler: JavaScript Olay Döngüsü

mikro ölçüm (diğer adları: microbenchmark, JMH)

Küçük bir kod parçasının, örneğin tek bir metodun, süresini ölçmek. JVM'de ısınma ve JIT yüzünden elle yapıldığında kolayca yanıltır.

Geçtiği dersler: JMH ile Doğru Ölçüm

modüler monolit

Tek deploy birimi, ama modüller birbirinin iç yapısına dokunamaz. Sınırlar yanlışsa `git mv` ile düzeltilir, servis silip yeniden yazarak değil.

Geçtiği dersler: Monolit mi, mikroservis mi?

mTLS (diğer adları: mutual TLS, karşılıklı TLS)

İki tarafın da sertifikasıyla kim olduğunu kanıtladığı TLS bağlantısı. Servisler arası çağrıda çağıranın kimliğini verir.

Geçtiği dersler: Servisler Arası Kimlik

mutasyon testi (diğer adları: mutation testing)

Kodu kasten bozup testlerin fark edip etmediğini ölçer. Coverage'ın cevaplayamadığı asıl soruyu sorar: bu testler gerçekten bir şey koruyor mu?

Geçtiği dersler: TDD, AI ile Test ve Güvenlik, Kapsama ve Mutasyon

MVCC (diğer adları: multi-version concurrency control, snapshot)

Multi-version concurrency control: yazma yeni bir satır sürümü üretir, okuyan commit edilmiş eski sürümü görür. Okuyan ile yazan birbirini beklemez.

Geçtiği dersler: İzolasyon Seviyeleri, Tablo Bölümleme

N

N+1

Bir sorgu listeyi getirir, sonra her eleman için bir sorgu daha atılır. Her biri hızlı olduğu için yavaş sorgu logunda görünmez; yavaşlayan şey toplam gidiş-dönüş sayısıdır.

Geçtiği dersler: JPA N+1 Problemi, join fetch ve Sayfalama

native SQL (diğer adları: native query, nativeQuery = true)

Hibernate'in değil, doğrudan senin yazdığın SQL. Varlığa konan filtreler ve bazı Hibernate özellikleri ona uygulanmaz.

Geçtiği dersler: Soft Delete

natural id (diğer adları: doğal anahtar, business key, @NaturalId)

Entity'yi iş dünyasında tanımlayan, değişmeyen anahtar: ISBN, sipariş numarası. Veritabanı id'sinden farklı olarak nesne oluşturulurken bellidir.

Geçtiği dersler: Entity equals ve hashCode

non-blocking I/O (diğer adları: bloklamayan G/Ç, reactive I/O)

Cevap beklenirken thread'i tutmayan G/Ç. Thread başka işe geçer, cevap gelince bir geri çağrı ya da sinyal işi sürdürür. WebClient ve R2DBC böyledir; JDBC değildir.

Geçtiği dersler: WebFlux ve Event Loop

normalizasyon (diğer adları: normalization, normal form, denormalizasyon)

Aynı bilginin veritabanında tek bir yerde durması için veriyi tablolara bölmek. Müşterinin adı her siparişte değil, müşteri tablosunda bir kez yazılır.

Geçtiği dersler: SQL mi, NoSQL mi?, Normalizasyon

O

OAuth2 (diğer adları: OAuth 2.0, authorization code)

Bir uygulamanın, kullanıcının şifresini görmeden onun adına erişim almasını sağlayan yetkilendirme çerçevesi. Şifre yalnızca kimlik sağlayıcıya girilir.

Geçtiği dersler: OAuth2 ve OIDC

Object (diğer adları: java.lang.Object)

Java'daki bütün sınıfların en üstteki atası. extends yazılmayan her sınıf kendiliğinden ondan türer.

Geçtiği dersler: Object Sınıfı

Observer (diğer adları: gözlemci kalıbı, publish-subscribe)

Bir olayı yayınlayanın, onu dinleyenleri tanımadan haber verdiği kalıp. Spring'de ApplicationEventPublisher ve @EventListener ile kurulur.

Geçtiği dersler: Spring'in İçindeki Kalıplar

OFFSET ile sayfalama (diğer adları: LIMIT OFFSET, offset pagination)

"Şu kadar satırı atla, sonrakileri ver" diye sayfalama. Kolaydır ama atlanan satırlar da okunur ve veri değişince sayfalar kayar.

Geçtiği dersler: Sayfalama

OMS (diğer adları: order management system, emir yönetim sistemi)

Order Management System: emirleri oluşturan, borsaya gönderen ve her emrin hâlini borsadan gelen raporlarla takip eden sistem.

Geçtiği dersler: Emrin Yaşam Döngüsü

OOM killer (diğer adları: OOMKilled, out-of-memory killer)

Bellek sınırı aşılınca Linux çekirdeğinin bir süreci SIGKILL ile anında sonlandırması. Süreç hiçbir şey yazamaz; çıkış kodu 137 olur.

Geçtiği dersler: JVM Konteynerde

open projection (diğer adları: açık projection, @Value SpEL)

Getter'ı @Value ile bir SpEL ifadesine bağlanan interface projection. İfade entity'nin kendisine eriştiği için Spring Data bütün entity'yi yükler.

Geçtiği dersler: JPA Projection ve DTO

optimistic locking (diğer adları: @Version, iyimser kilit)

Kilit almadan, yazarken "okuduğumdan beri değişmedi mi?" diye kontrol etmek. JPA'da @Version alanı UPDATE'e bir sürüm koşulu ekler.

Geçtiği dersler: Persistence Context

Optional (diğer adları: Optional<T>, Optional.empty)

Değer içeren ya da boş olan bir kutu. Bir metodun bazen sonuç döndürmeyebileceğini dönüş tipine yazar; çağıran boş durumu ele almadan değere ulaşamaz.

Geçtiği dersler: Optional'ı Doğru Kullanmak

ordinal (diğer adları: ordinal(), sıra numarası)

Bir enum sabitinin listedeki sıfırdan başlayan sırası. İlk sabitin ordinal değeri 0'dır.

Geçtiği dersler: Enum Eşleme, Enum

origin (diğer adları: same-origin policy, kaynak)

Bir adresin şema, alan adı ve port üçlüsü. Tarayıcı, başka bir origin'den gelen cevabı sunucu izin vermedikçe sayfaya vermez (same-origin policy).

Geçtiği dersler: CORS

orphanRemoval (diğer adları: yetim silme, orphan removal)

Koleksiyondan çıkarılan ya da ebeveyniyle bağı koparılan çocuğun veritabanından silinmesi. cascade REMOVE'dan farklıdır: o, ebeveyn silinince çalışır.

Geçtiği dersler: Cascade ve İlişkinin Sahibi

outbox

Olayı, iş verisiyle aynı yerel transaction içinde bir tabloya yazıp ayrı bir süreçle kuyruğa taşıma deseni. İki kaynağa yazma (dual write) problemini çözer.

Geçtiği dersler: Outbox ve Idempotent Consumer, Domain Olayları

over-fetching (diğer adları: fazla veri indirme)

İstemcinin ihtiyacından fazla veri indirmesi. Servis kendi modelini döndürdüğü, ekranın neye ihtiyacı olduğunu bilmediği için olur.

Geçtiği dersler: Mikroservis Katmanları

overloading (diğer adları: aşırı yükleme, overload)

Aynı adlı, farklı parametre listeli metotlar. Hangisinin çağrılacağına derleyici, argümanların bildirilen tiplerine bakarak karar verir.

Geçtiği dersler: Polimorfizm ve Dinamik Bağlama

owning side (diğer adları: sahip taraf, mappedBy, inverse side)

Çift yönlü bir ilişkide yabancı anahtarı yazan taraf; genellikle @ManyToOne. mappedBy ile işaretli taraf yalnızca bir aynadır; onu değiştirmek SQL üretmez.

Geçtiği dersler: Cascade ve İlişkinin Sahibi

Ö

ölçek (diğer adları: scale, ondalık hane sayısı)

Bir BigDecimal sayısının ondalık kısmında kaç hane olduğu. 2.50 sayısının ölçeği 2'dir.

Geçtiği dersler: BigDecimal

önbellek temizleme (diğer adları: purge, invalidation)

Kenar sunuculardaki bir sayfanın kopyasını süresi dolmadan silme isteği. Yayından sonra eski sürümün dağıtılmasını önler.

Geçtiği dersler: CDN ve Kenar Önbellek

P

paket içi (diğer adları: package-private, default access)

Hiçbir erişim belirleyici yazılmadığında geçerli olan erişim: yalnızca aynı paketteki sınıflar kullanabilir.

Geçtiği dersler: Erişim Belirleyiciler

parameter sniffing (diğer adları: parametre koklama)

SQL Server'ın bir sorgunun planını ilk çağrıdaki parametre değerine göre derleyip önbellekte tutması. Plan o değere uygunsa diğerlerinde kötü çalışabilir.

Geçtiği dersler: Sorgu Planı ve Join Algoritmaları

parola hash'i (diğer adları: password hashing, bcrypt, argon2, PasswordEncoder)

Parolanın geri çözülemeyen, kasıtlı yavaş ve tuzlu bir özetini saklamak. Girişte yazılan parola aynı yolla hash'lenip karşılaştırılır.

Geçtiği dersler: Parola Saklama

partition

Bir Kafka topic'inin, mesajların sırayla eklendiği ve ayrı ayrı tüketilebilen bölümlerinden biri.

Geçtiği dersler: Kafka

pass-by-value

Java metoda her zaman değerin kopyasını geçer. Nesnelerde kopyalanan şey nesne değil, referanstır — bu yüzden nesnenin içi değişir ama değişkenin gösterdiği yer değişmez.

Geçtiği dersler: Stack, Heap ve Pass-by-Value

pattern matching

Bir değerin şeklini sınayıp aynı anda parçalarına ayırmak. `instanceof` ve `switch` ile gelir; tip kontrolü ve cast'i tek adıma indirir.

Geçtiği dersler: Java 8'den 21'e

pencere fonksiyonu (diğer adları: window function, OVER, PARTITION BY)

Satırları gruplamadan, her satırın yanına bir pencere üzerinden hesap ekleyen SQL fonksiyonu: SUM() OVER, ROW_NUMBER() OVER gibi.

Geçtiği dersler: Pencere Fonksiyonları

persistence context

Hibernate'in yönettiği entity'leri tuttuğu birinci seviye önbellek. Transaction ile birlikte açılır ve kapanır; kapandıktan sonra lazy ilişkilere dokunmak hata verir.

Geçtiği dersler: JPA N+1 Problemi, Toplu UPDATE, Persistence Context

PgBouncer (diğer adları: pgbouncer, transaction pooling)

PostgreSQL önünde çalışan hafif bir bağlantı havuzu. Çok sayıda istemci bağlantısını az sayıda sunucu bağlantısına paylaştırır.

Geçtiği dersler: Bağlantı Havuzu

pinning (diğer adları: sabitlenme)

Virtual thread'in taşıyıcısını bırakamadan bloklanması. Olduğunda virtual thread'in tüm kazancı kaybolur — taşıyıcı OS thread'i orada beklemeye başlar.

Geçtiği dersler: Virtual Threads vs Platform Threads

PKCE (diğer adları: code_verifier, code_challenge)

Proof Key for Code Exchange: girişi başlatan uygulamanın ürettiği doğrulayıcı. Kodu token'a çevirmek için gerekir; çalınan kod tek başına işe yaramaz.

Geçtiği dersler: OAuth2 ve OIDC

platform thread

Klasik Java thread'i: bir OS thread'ine birebir bağlıdır ve bloklandığında onu tutar. Yığını sabit boyutludur, bu yüzden sayısı sınırlıdır.

Geçtiği dersler: Virtual Threads vs Platform Threads

poison pill (diğer adları: zehirli mesaj)

Kaç kez denenirse denensin işlenemeyecek bir mesaj: bozuk format, geçersiz veri. Yeniden denemek yalnızca arkasındaki mesajları bekletir.

Geçtiği dersler: Spring Kafka Hata Yönetimi, IBM MQ ve Sıralı Teslim

polimorfizm (diğer adları: polymorphism, çok biçimlilik)

Aynı çağrının, nesnenin gerçek tipine göre farklı davranış üretmesi. Java'da override edilmiş örnek metotlarıyla sağlanır.

Geçtiği dersler: Polimorfizm ve Dinamik Bağlama, Soyutlama ve Dört Sütun

polling (diğer adları: short polling, long polling)

Tarayıcının belli aralıklarla sunucuya "yeni bir şey var mı?" diye sorması. Kolaydır ama ya boş istek ya da gecikme üretir.

Geçtiği dersler: Canlı Veri

pooled optimizer (diğer adları: allocationSize, SEQUENCE)

Sequence'ten tek çağrıda allocationSize kadar id ayıran Hibernate stratejisi. JPA'da varsayılan allocationSize 50'dir; sequence'in artışı da buna eşit olmalıdır.

Geçtiği dersler: ID Üretimi ve Batch Insert

port ve adapter (diğer adları: port, adapter)

Port, iş kuralının dış dünyadan beklediğini tanımlayan arayüzdür ve iş kuralının paketinde durur. Adapter, onu belirli bir teknolojiyle (JPA, REST, Kafka) uygulayan sınıftır.

Geçtiği dersler: Hexagonal Mimari

POV (diğer adları: percentage of volume, participation)

Percentage of Volume: her dilimde gerçekleşen hacmin sabit bir yüzdesini alan algoritma. Payı tutar; emrin bitmesini garanti etmez.

Geçtiği dersler: TWAP, VWAP, POV

preflight (diğer adları: ön kontrol, OPTIONS)

Basit olmayan bir istekten önce tarayıcının gönderdiği OPTIONS isteği. Sunucu metot ve başlıklara izin vermezse asıl istek hiç gönderilmez.

Geçtiği dersler: CORS

preStop hook (diğer adları: preStop, lifecycle hook)

Kubernetes'in SIGTERM'den önce container içinde çalıştırdığı komut. Kısa bir sleep, load balancer'ın pod'u listeden çıkarmasına zaman tanır.

Geçtiği dersler: Graceful Shutdown

primitive obsession (diğer adları: ilkel tip takıntısı)

Anlamı ve kuralı olan bir değeri (para, e-posta, hesap numarası) çıplak bir ilkel tiple (long, String, BigDecimal) taşımak. Derleyici iki long'u birbirinden ayıramaz.

Geçtiği dersler: Value Object ve Record

ProblemDetail (diğer adları: problem details, application/problem+json, RFC 9457)

HTTP API hataları için RFC 9457 standardındaki gövde: type, title, status, detail, instance. Spring 6'da hazır bir sınıf olarak gelir.

Geçtiği dersler: Validation ve Hata Yönetimi

profile (diğer adları: Spring profile, spring.profiles.active)

Ortama göre değişen ayar ve bean kümesi. spring.profiles.active=prod, application-prod.yml dosyasını ve @Profile("prod") bean'lerini devreye alır.

Geçtiği dersler: Konfigürasyon ve Profiller

projection (diğer adları: DTO projection, interface projection)

Sorgudan entity yerine yalnızca gereken alanları taşıyan bir tip döndürmek: interface ya da record. Seçilen sütunlar azalır, persistence context'e hiçbir şey girmez.

Geçtiği dersler: JPA Projection ve DTO

prompt injection (diğer adları: istem enjeksiyonu)

Modelin okuduğu içeriğe (web sayfası, belge, depo dosyası) gizlenmiş talimatların, modelin davranışını değiştirmesi. İçerik veri olmalı, talimat değil.

Geçtiği dersler: Ajan Tabanlı Geliştirme

propagation (diğer adları: yayılım)

Açık bir transaction varken yeni bir `@Transactional` metodun ne yapacağını belirleyen ayar. Varsayılan `REQUIRED` var olana katılır, yeni açmaz.

Geçtiği dersler: Transaction Propagation ve Rollback Yayılımı

property source (diğer adları: PropertySource, externalized configuration)

Spring'in ayar okuduğu bir kaynak: application.yml, profil dosyası, ortam değişkenleri, komut satırı. Aynı anahtar birden çok kaynakta varsa önceliği yüksek olan kazanır.

Geçtiği dersler: Konfigürasyon ve Profiller

protobuf (diğer adları: Protocol Buffers, .proto)

Protocol Buffers: alanları adla değil numarayla taşıyan ikili mesaj biçimi. Küçüktür ve şemayla okunur; numara bir kez verilir, değişmez.

Geçtiği dersler: gRPC ve REST

proxy

Spring'in bean'in yerine koyduğu sarmalayıcı nesne. `@Transactional` gibi anotasyonlar burada çalışır — çağrı proxy'den geçmezse hiçbir şey olmaz.

Geçtiği dersler: IoC ve Dependency Injection, Bean Yaşam Döngüsü ve Scope'lar, Transaction Propagation ve Rollback Yayılımı, Spring'in İçindeki Kalıplar, AOP, Proxy ve Self-Invocation Tuzağı, Annotation ve Reflection

Q

query cache (diğer adları: sorgu cache'i, setCacheable)

Bir sorgunun sonucu olarak yalnızca id listesini saklayan cache. Sorgudaki tablolardan biri Hibernate üzerinden değişince geçersiz olur; entity'ler L2'de değilse N+1 üretir.

Geçtiği dersler: İkinci Seviye Cache

query planner (diğer adları: optimizer, cost-based optimizer, sorgu planlayıcı)

Bir SQL sorgusu için olası yürütme planlarının maliyetini tahmin edip en ucuz görüneni seçen bileşen. Maliyet tabloların istatistiklerine dayanır.

Geçtiği dersler: Sorgu Planı ve Join Algoritmaları

quorum (diğer adları: çoğunluk, QUORUM, majority)

Kopyaların çoğunluğu. N kopyada okuma R, yazma W kopyadan cevap bekliyorsa ve R + W > N ise okuma son yazmayı mutlaka görür.

Geçtiği dersler: Tutarlılık Seviyeleri ve Quorum

R

race condition (diğer adları: yarış durumu)

Sonucun thread'lerin hangi sırayla çalıştığına bağlı olması. Kod çoğu zaman doğru çalışır, sonra bir gün çalışmaz.

Geçtiği dersler: useEffect

Raft (diğer adları: consensus, uzlaşma, KRaft)

Bir uzlaşma algoritması: lider çoğunluk oyuyla seçilir, yazma çoğunluk saklayınca onaylanır. etcd ve Kafka KRaft bunu kullanır.

Geçtiği dersler: Lider Seçimi ve Split-Brain

RAG (diğer adları: retrieval-augmented generation, belgeye dayalı cevap)

Retrieval-augmented generation: soruyla ilgili belgeleri bulup modelin bağlamına koymak ve modelden onlara dayanarak cevap vermesini istemek.

Geçtiği dersler: RAG

rate limiting (diğer adları: hız sınırlama, 429)

Bir istemcinin belirli sürede yapabileceği istek sayısını sınırlamak. Aşan istek 429 Too Many Requests alır; birden çok gateway varsa sayaç paylaşılmalıdır.

Geçtiği dersler: Rate Limiting, API Gateway ve Service Discovery

read model (diğer adları: okuma modeli, projeksiyon)

CQRS'te yalnızca okumak için tutulan, ekranın sorusuna göre şekillenmiş veri. Yazma tarafındaki değişikliklerden beslenir; silinip yeniden kurulabilir.

Geçtiği dersler: CQRS ve Event Sourcing

read-your-writes (diğer adları: kendi yazdığını okuma, read-after-write)

Bir kullanıcının kendi yaptığı değişikliği sonraki okumalarında mutlaka görmesi garantisi. Replikalardan okurken kendiliğinden sağlanmaz.

Geçtiği dersler: Replikasyon ve Okuma Replikaları

readiness probe (diğer adları: readiness, /actuator/health/readiness)

Kubernetes'in "bu pod şu an trafik almaya hazır mı?" sorusu. Düşerse pod yeniden başlatılmaz, yalnızca load balancer'dan çıkarılır.

Geçtiği dersler: Yük Dengeleme, Yayın Stratejileri, Actuator ve Gözlemlenebilirlik

rebalance (diğer adları: yeniden dengeleme)

Consumer group'a üye girip çıktığında partition'ların yeniden dağıtılması. Klasik biçiminde tüm grup kısa süre durur — kapasite eklemenin görünmeyen bedeli budur.

Geçtiği dersler: Kafka

record (diğer adları: kayıt)

Bileşenleri değişmez olan, equals/hashCode/toString'i derleyicinin ürettiği veri taşıyıcısı sınıf.

Geçtiği dersler: Java 8'den 21'e

refactoring (diğer adları: refactor, yeniden yapılandırma)

Kodun dışarıdan görülen davranışını değiştirmeden iç yapısını küçük, güvenli adımlarla değiştirmek. Davranış değişiyorsa artık refactoring değildir.

Geçtiği dersler: Code Smell ve Refactoring

referans eşitliği (diğer adları: referential equality)

İki değerin aynı nesne olup olmadığı. React prop'ları böyle karşılaştırır — aynı içerikli iki nesne farklı referanslarsa React onları farklı sayar.

reference

Bir nesnenin heap'teki adresini tutan değer. Java'da değişkenler nesneyi değil, nesneye giden referansı tutar.

Geçtiği dersler: Stack, Heap ve Pass-by-Value

reflection (diğer adları: yansıma, java.lang.reflect)

Programın çalışırken kendi sınıflarını, metotlarını, alanlarını ve notlarını incelemesi; nesne kurup metot çağırabilmesi.

Geçtiği dersler: Annotation ve Reflection

REFRESH CONCURRENTLY (diğer adları: CONCURRENTLY, eşzamanlı yenileme)

Materialized view'ı, yenileme sırasında okuyucuları bekletmeden yenilemek. View üzerinde benzersiz bir indeks ister.

Geçtiği dersler: Materialized View

rejection policy (diğer adları: RejectedExecutionHandler, CallerRunsPolicy, AbortPolicy)

Havuzun thread'leri ve kuyruğu doluyken gelen işe ne olacağını seçen kural. AbortPolicy exception fırlatır; CallerRunsPolicy işi çağıranın thread'inde çalıştırır.

Geçtiği dersler: @Async ve Thread Havuzu

relaxed binding (diğer adları: gevşek bağlama)

Boot'un aynı property'yi farklı yazımlarla eşleştirmesi: payment.timeout ile PAYMENT_TIMEOUT aynı alana bağlanır. Eşleşmeyen ad sessizce yok sayılır.

Geçtiği dersler: Konfigürasyon ve Profiller

replication lag (diğer adları: replika gecikmesi, replay lag)

Bir replikanın primary'deki değişiklikleri ne kadar geriden uyguladığı. Bu süre boyunca replikadan yapılan okumalar eski veriyi gösterir.

Geçtiği dersler: Replikasyon ve Okuma Replikaları, Çok Bölgeli Kurulum

ResendRequest (diğer adları: tekrar gönderim isteği, resend)

FIX'te kaybolan mesajları belirli bir numaradan itibaren tekrar isteyen mesaj (MsgType 2). Tekrar gelenler PossDup işaretlidir.

Geçtiği dersler: FIX Oturumu ve Sıra Numarası

retained size (diğer adları: tutulan boyut, shallow size)

Bir nesne ortadan kalksaydı serbest kalacak toplam bellek: nesnenin kendisi ve yalnızca onun sayesinde canlı kalan her şey.

Geçtiği dersler: Prod'da Teşhis

Retry-After

Sunucunun istemciye ne zaman tekrar deneyebileceğini söylediği HTTP başlığı. Saniye sayısı ya da bir tarih olur; çoğunlukla 429 ve 503 ile gelir.

Geçtiği dersler: Rate Limiting

rollback-only

Transaction'a konan "bu artık commit edilemez" bayrağı. İç bir çağrıda istisna olduğunda konur; sen istisnayı yutsan bile dıştaki commit patlar.

Geçtiği dersler: Transaction Propagation ve Rollback Yayılımı

rolling deploy (diğer adları: rolling update, kademeli dağıtım)

Uygulama kopyalarını tek tek yeni sürüme geçiren dağıtım. Bir süre eski ve yeni kod aynı veritabanıyla birlikte çalışır.

Geçtiği dersler: Yayın Stratejileri, Kesintisiz Şema Değişikliği

routing key (diğer adları: yönlendirme anahtarı)

Mesajın üstüne yazılan, noktayla ayrılmış adres; örneğin odeme.tamamlandi.tr. Exchange bunu kuyrukların bağlantılarıyla karşılaştırır.

Geçtiği dersler: RabbitMQ

row-level security (diğer adları: RLS, satır düzeyinde güvenlik)

Veritabanının, sorgu ne olursa olsun yalnızca bir politikaya uyan satırları göstermesi. PostgreSQL'de CREATE POLICY ile tanımlanır.

Geçtiği dersler: Kiracı Ayrımı

RPO ve RTO (diğer adları: RPO, RTO, recovery point objective, recovery time objective)

RPO, bir felakette en fazla ne kadar süreye ait verinin kaybolabileceğidir; RTO, sistemin ne kadar sürede yeniden çalışacağıdır.

Geçtiği dersler: Yedek ve Geri Dönüş

S

saat kayması (diğer adları: clock skew, clock drift)

Farklı makinelerin saatleri arasındaki fark. NTP onu küçültür ama sıfırlamaz; yakın iki olay zaman damgasına göre ters sıralanabilir.

Geçtiği dersler: Mantıksal Saatler

saga

Birden fazla servise yayılan işi yerel transaction'lara bölüp, başarısızlıkta telafi işlemleriyle geri saran desen. Atomiklik vermez, eventual consistency verir.

Geçtiği dersler: Saga Pattern

saklama kuruluşu (diğer adları: custodian, saklamacı)

Menkul kıymetleri yatırımcılar adına tutan ve kaydını tutan kuruluş. Aracı kurumun kendi kaydıyla düzenli olarak karşılaştırılır.

Geçtiği dersler: Mutabakat

sampling (diğer adları: örnekleme, sampling probability)

Trace'lerin yalnızca bir kısmını dışarı göndermek. Karar ilk serviste verilir ve traceparent'taki bayrakla aşağıya taşınır; trace ya bütün ya hiç kaydedilir.

Geçtiği dersler: Dağıtık Tracing

SAST (diğer adları: statik güvenlik analizi)

Static Application Security Testing: kodu çalıştırmadan güvenlik açığı kalıplarını (SQL injection, sabit şifre) arayan analiz. Semgrep, SpotBugs FindSecBugs, CodeQL örnek.

Geçtiği dersler: AI Kodunu Gözden Geçirmek

satır sürümleme (diğer adları: READ_COMMITTED_SNAPSHOT, RCSI, row versioning)

SQL Server'da READ_COMMITTED_SNAPSHOT: okuyucu, yazanı beklemek yerine satırın onaylanmış son sürümünü okur. Yarım veriyi görmez.

Geçtiği dersler: SQL Server'da Kilit Yükseltme

satır tahmini (diğer adları: cardinality estimate, estimated rows, rows=)

Planner'ın bir plan adımından kaç satır çıkacağına dair tahmini. İstatistikler eskiyse tahmin yanlış olur ve maliyet hesabı onunla birlikte yanılır.

Geçtiği dersler: Sorgu Planı ve Join Algoritmaları

schema registry (diğer adları: Schema Registry, Confluent Schema Registry, Avro)

Olay şemalarının sürümlerini saklayan ve yeni bir şemayı eskileriyle karşılaştıran servis. Uyumsuz şemayı kaydetmez, böylece yayınlanamaz.

Geçtiği dersler: Olay Şemasının Evrimi

schema-on-read (diğer adları: şemasız, schemaless, esnek şema)

Verinin biçimini veritabanının değil, veriyi okuyan uygulamanın bilmesi. Şema ortadan kalkmaz; koda taşınır ve eski biçimler yenileriyle yan yana birikir.

Geçtiği dersler: SQL mi, NoSQL mi?

ScopedValue (diğer adları: scoped value, JEP 506)

Bir değeri yalnızca belirli bir kod bloğu çalışırken görünür kılan, değiştirilemez bağ. Blok bitince bağ da biter. Java 25'te kalıcı oldu.

Geçtiği dersler: ThreadLocal ve ScopedValue

screen reader (diğer adları: ekran okuyucu, NVDA, VoiceOver)

Sayfayı sesli okuyan ya da Braille ekrana aktaran yazılım (NVDA, VoiceOver). Görüntüye değil, HTML'deki rol, ad ve duruma bakar.

Geçtiği dersler: Erişilebilirlik Temelleri

sealed (diğer adları: mühürlü)

Hangi tiplerin kendisini genişletebileceğini açıkça sayan sınıf veya arayüz. Hiyerarşi kapalı olduğu için derleyici bütünlük denetimi yapabilir.

Geçtiği dersler: Java 8'den 21'e

seans (diğer adları: trading session, işlem seansı)

Borsa gününün bir parçası: açılış öncesi, açılış seansı, sürekli işlem, kapanış seansı. Her birinde emirler farklı kurallarla işler.

Geçtiği dersler: Piyasa Saatleri ve Canlıya Alma

second-level cache (diğer adları: L2 cache, ikinci seviye cache, @Cache)

Persistence context'ler arasında paylaşılan, entity durumunu id'ye göre tutan Hibernate cache'i. İsteğe bağlıdır; bir sağlayıcı (JCache, Infinispan) ve entity başına işaret ister.

Geçtiği dersler: İkinci Seviye Cache

seçicilik (diğer adları: selectivity)

Bir koşulun satırların ne kadarını elediği. Sadece birkaç farklı değer alan bir sütunda indeks çoğu zaman hiç kullanılmaz.

Geçtiği dersler: SQL İndeksleme ve EXPLAIN

self-invocation (diğer adları: kendi kendine çağrı)

Bir bean'in kendi metodunu `this` üzerinden çağırması. Proxy devre dışı kalır ve anotasyon sessizce uygulanmaz.

Geçtiği dersler: AOP, Proxy ve Self-Invocation Tuzağı

Server-Sent Events (diğer adları: SSE, EventSource)

Sunucunun açık tuttuğu tek bir HTTP cevabına olay yazdığı, tek yönlü akış. Tarayıcıda EventSource ile açılır ve kopunca kendisi yeniden bağlanır.

Geçtiği dersler: Cevabı Akıtmak, Canlı Veri

service discovery (diğer adları: discovery, servis keşfi)

Bir servisin o an çalışan instance'larının adreslerini çalışma anında bulmak. Kayıt servisi (Eureka, Consul) ya da platform (Kubernetes Service) bu listeyi güncel tutar.

Geçtiği dersler: API Gateway ve Service Discovery

service worker (diğer adları: service worker, sw)

Tarayıcıda sayfa ile ağ arasında duran betik. İstekleri yakalar; önbellekten mi ağdan mı cevap verileceğine karar verir.

Geçtiği dersler: Çevrimdışı Uygulama

servlet kapsayıcısı (diğer adları: servlet container, application server)

Yalnızca web katmanını (servlet) çalıştıran sunucu, örneğin Tomcat. JPA gibi kurumsal kütüphaneleri getirmez; tam uygulama sunucusu (WildFly) getirir.

Geçtiği dersler: WAR ve Uygulama Sunucusu

shard key (diğer adları: shard anahtarı, partition key)

Bir satırın hangi shard'a gideceğini belirleyen kolon. Sorgu onu içeriyorsa tek shard'a, içermiyorsa hepsine gider.

Geçtiği dersler: Sharding ve Shard Anahtarı

sharding (diğer adları: shard, yatay bölme)

Bir tablonun satırlarını birden çok veritabanına bölmek. Her shard verinin bir parçasını taşır; yazma ve depolama yükü bölünür.

Geçtiği dersler: Sharding ve Shard Anahtarı

short-circuit

Cevap belli olur olmaz durmak. `findFirst` ve `anyMatch` tüm veriyi gezmeden çıkar — sonsuz stream'leri çalışabilir kılan şey budur.

Geçtiği dersler: Stream API ve Tembellik

sıfır güven (diğer adları: zero trust, ZTA)

Ağdaki konuma değil, her isteğin kanıtlanmış kimliğine ve iznine güvenen güvenlik yaklaşımı.

Geçtiği dersler: Servisler Arası Kimlik

SIGTERM (diğer adları: SIGKILL, terminationGracePeriodSeconds)

Sürece 'kapan' diyen işletim sistemi sinyali. Süreç temizlik yapabilir; Kubernetes grace süresi dolunca yakalanamayan SIGKILL gönderir.

Geçtiği dersler: Graceful Shutdown

sıkıştırma (diğer adları: compaction)

LSM'de dosyaları arka planda birleştirip eski sürümleri ve mezar taşlarını atma işi. Ek yazma pahasına okumayı kısaltır.

Geçtiği dersler: LSM Ağacı

sınıf dosyası sürümü (diğer adları: class file version, major version)

Derlenmiş her .class dosyasında yazan sürüm numarası: Java 8 için 52, Java 21 için 65. Bir JVM kendinden yeni sürümü okumaz.

Geçtiği dersler: JDK 8'den 21'e Geçiş

sır deposu (diğer adları: secret store, Vault, Kubernetes secret)

Parola, anahtar ve token gibi sırları saklayan ve uygulamaya çalışırken veren sistem; örneğin Vault ya da Kubernetes sırları.

Geçtiği dersler: Sırlar

sır rotasyonu (diğer adları: secret rotation, anahtar değişimi)

Bir sırrı yenisiyle değiştirip eskisini geçersiz kılmak. Sızan bir sırrı güvenli hâle getirmenin tek yolu.

Geçtiği dersler: Sırlar

sıra numarası (diğer adları: MsgSeqNum, sequence number)

FIX oturumunda her mesaja verilen, birer artan numara (MsgSeqNum, tag 34). Boşluk kayıp, küçük numara tekrar demektir.

Geçtiği dersler: FIX Oturumu ve Sıra Numarası

sihirli sayı (diğer adları: magic number)

Koda doğrudan yazılmış, anlamı yalnızca yazanın kafasında olan sabit. Asıl maliyeti arama yapıldığında ortaya çıkar.

singleton scope (diğer adları: singleton)

Varsayılan bean kapsamı: konteyner başına tek örnek, tüm enjeksiyon noktaları aynı nesneyi paylaşır.

Geçtiği dersler: IoC ve Dependency Injection, Yaratımsal Kalıplar

SLI (diğer adları: service level indicator)

Service level indicator: servisin ölçülen güvenilirlik sayısı. Örneğin başarılı isteklerin toplam isteğe oranı ya da belli bir süreden hızlı dönenlerin oranı.

Geçtiği dersler: SLO ve Hata Bütçesi

SLO (diğer adları: service level objective, hizmet hedefi)

Service level objective: bir SLI'ya konan hedef, örneğin 30 günde yüzde 99.9 başarılı istek. Müşteriye verilen SLA'dan sıkı tutulur.

Geçtiği dersler: SLO ve Hata Bütçesi

snapshot testi (diğer adları: snapshot, toMatchSnapshot)

Bileşenin bütün çıktısını kayıtlı bir kopyayla karşılaştıran test. Her farkta kırmızı yanar; neyin önemli olduğunu söylemez.

Geçtiği dersler: Bileşen Testi

soft delete (diğer adları: mantıksal silme, @SQLDelete, @SQLRestriction)

Satırı silmek yerine deleted gibi bir alanla işaretleyip uygulamada gizlemek. Bilgi denetim için tabloda kalır.

Geçtiği dersler: Soft Delete

soyutlama seviyesi

Kodun ne kadar "ne yapılacak" ne kadar "nasıl yapılacak" anlattığı. Bir fonksiyonda ikisi karışırsa okuyucu iki düzeyi aynı anda takip etmek zorunda kalır.

Geçtiği dersler: Temiz Kod

sözleşme (diğer adları: contract)

Bir metodun çağırana verdiği söz: neyi kabul eder, ne döndürür, hangi hataları atar. İmzada görünmeyen kısmı da sözleşmenin parçasıdır.

Geçtiği dersler: SOLID, Nesne Yönelimli Tasarım

sözleşme testi (diğer adları: contract testing, Pact)

İki servisin birbirinden ne beklediğini otomatik olarak kontrol eden test. Karşı servisin değişikliği seni kırıyorsa, canlıya çıkmadan söyler.

Geçtiği dersler: Sözleşme Testleri

span (diğer adları: span id, spanId)

Bir trace'in tek bir adımı: bir gelen istek, bir giden çağrı ya da bir mesaj. Kendi spanId'si, süresi ve kendisini başlatan span'in id'si (parent) vardır.

Geçtiği dersler: Dağıtık Tracing

Specification (diğer adları: JpaSpecificationExecutor, Criteria API)

Spring Data JPA'da tek bir filtre koşulunu anlatan küçük bir parça. Dolu filtrelerin parçaları çalışırken birleştirilir; Criteria API değerleri parametre olarak gönderir.

Geçtiği dersler: Dinamik Sorgu

split-brain (diğer adları: bölünmüş beyin)

Ağ bölününce iki tarafın da kendi liderini seçip yazması. Birleşince iki farklı geçmiş olur ve biri silinmek zorundadır.

Geçtiği dersler: Lider Seçimi ve Split-Brain

SQL injection (diğer adları: SQL enjeksiyonu, injection)

Kullanıcının yazdığı metnin sorgu metnine karışıp sorgunun yapısını değiştirmesi. Değer bağlı parametre olarak gönderilince olamaz.

Geçtiği dersler: Dinamik Sorgu

SQL lehçesi (diğer adları: dialect, lehçe, T-SQL, PL/SQL)

Bir veritabanının standart SQL'e eklediği ya da ondan farklı uyguladığı sözdizimi ve davranışlar: T-SQL, PL/SQL, PL/pgSQL.

Geçtiği dersler: Aynı Sorgu, Üç Lehçe

SSRF (diğer adları: server-side request forgery, sunucu taraflı istek sahteciliği)

Saldırganın sunucuya kendi seçtiği bir adresi çağırtması. Sunucu, saldırganın ulaşamadığı iç servislere ulaşabildiği için tehlikelidir.

Geçtiği dersler: SSRF

stack (diğer adları: çağrı yığını)

Her thread'in kendine ait, metot çağrılarının üst üste yığıldığı bellek alanı. Metot bitince o kare otomatik silinir.

Geçtiği dersler: Stack, Heap ve Pass-by-Value

starter (diğer adları: spring-boot-starter)

Bir özellik için gereken bağımlılıkları tek paket hâlinde getiren boş bir modül. Kod içermez; asıl işi classpath'e düşen sınıflara bakan auto-configuration yapar.

Geçtiği dersler: Auto-configuration

State (diğer adları: state pattern, durum makinesi, state machine)

Davranış duruma göre değişiyorsa durumu açık bir tip olarak tutup her durumda izin verilen işlemleri tanımlamak. Geçersiz kombinasyonlar ifade edilemez olur.

Geçtiği dersler: Davranışsal Kalıplar

stateless (diğer adları: durumsuz)

Sunucunun istekler arasında istemciye özel durum saklamaması. Sınavı tek soru: rastgele bir pod'u öldürdüğünde kullanıcı bir şey kaybeder mi?

Geçtiği dersler: Oturum Yönetimi ve Stateless Ölçekleme

static alan (diğer adları: static field, sınıf değişkeni)

Nesneye değil sınıfa ait olan alan. Kaç nesne üretilirse üretilsin tek bir kopyası vardır ve hepsi onu paylaşır.

Geçtiği dersler: final ve static

static factory method (diğer adları: static factory, of, valueOf)

new yerine nesneyi döndüren adı olan bir static metot: List.of, Integer.valueOf, Money.of. Hazır bir örnek ya da bir alt tip dönebilir.

Geçtiği dersler: Yaratımsal Kalıplar

sticky session (diğer adları: yapışkan oturum)

Bir kullanıcının isteklerini hep aynı sunucuya yönlendirmek. Sorunu çözmez, erteler: o sunucu ölünce veya deploy olunca oturum kaybolur.

Geçtiği dersler: Oturum Yönetimi ve Stateless Ölçekleme

stop-the-world (diğer adları: STW)

Toplayıcının çalışabilmesi için tüm uygulama thread'lerinin durdurulduğu aralık. Gecikmeye duyarlı bir serviste p99'u bozan şey budur.

Geçtiği dersler: Garbage Collection

store buffer

CPU'nun yazmaları ana belleğe göndermeden önce beklettiği küçük kuyruk. İki çekirdeğin birbirinin yazmasını gecikmeli görmesinin donanım sebebi budur.

Geçtiği dersler: Java Memory Model ve Yeniden Sıralama

strangler fig (diğer adları: strangler fig pattern, strangler deseni, boğan incir)

Bir monoliti tek seferde yeniden yazmak yerine önüne bir yönlendirici koyup yetenekleri tek tek yeni servislere taşımak. Adını, konak ağacını yavaşça saran incir türünden alır.

Geçtiği dersler: Strangler Fig ve API Sürümleme

Strategy (diğer adları: strateji kalıbı)

Aynı işin farklı yapılış biçimlerini ayrı nesnelere taşıyan kalıp. Çağıran hangi stratejinin çalıştığını bilmez; yeni bir biçim yeni bir sınıftır.

Geçtiği dersler: Spring'in İçindeki Kalıplar

string pool (diğer adları: string havuzu, intern pool)

Koda doğrudan yazılan metinlerin tek kopya olarak tutulduğu ortak raf. Aynı sabit metni kullanan her yer aynı nesneyi paylaşır.

Geçtiği dersler: String

structured logging (diğer adları: yapılandırılmış log, JSON log, ECS)

Log satırlarını alanlardan oluşan kayıtlar (çoğunlukla JSON) olarak yazmak. Arama metin içinde değil, customerId gibi alanlarda yapılır.

Geçtiği dersler: Yapılandırılmış Loglama

subset pattern (diğer adları: alt küme kalıbı)

Sık okunan sınırlı bir parçayı (ör. son 10 yorum) ana dokümana gömüp tamamını ayrı koleksiyonda tutan doküman modelleme kalıbı.

Geçtiği dersler: Doküman Modelleme

sunucu state'i (diğer adları: server state, query cache, TanStack Query)

Asıl sahibi sunucu olan veri: bakiye, hareketler. Ekranda tutulan hâli bir önbellektir; başka bir yerde değişince bayatlar ve yeniden istenmelidir.

Geçtiği dersler: State Nerede Yaşamalı?

supply chain risk (diğer adları: tedarik zinciri riski, bağımlılık riski)

Projeye eklenen her bağımlılığın getirdiği risk: bakımsız kütüphane, lisans uyumsuzluğu, ele geçirilmiş paket. AI önerileri bağımlılık eklemeyi çok kolaylaştırır.

Geçtiği dersler: AI Kodunu Gözden Geçirmek

suppressed exception (diğer adları: suppressed)

try-with-resources'ta kaynak kapatılırken atılan ve asıl hatanın yerine geçmek yerine ona eklenen ikinci exception. `getSuppressed()` ile okunur.

Geçtiği dersler: Exception Yönetimi

Ş

şema göçü (diğer adları: schema migration, migration, Flyway)

Veritabanı yapısını ya da içindeki veriyi sürümlü bir betikle değiştirmek. Flyway ve Liquibase bunu her ortamda aynı sırayla çalıştırır.

Geçtiği dersler: Enum Eşleme

T

tablo bölümleme (diğer adları: partitioning, PARTITION BY RANGE, bölümleme)

Tek bir mantıksal tabloyu, örneğin aylara göre, aynı veritabanında ayrı parçalarda saklamak. Sorgular yine tek tabloya yazılır.

Geçtiği dersler: Tablo Bölümleme

takas (diğer adları: settlement, takas günü)

İşlemden sonra menkul kıymetin ve paranın el değiştirmesi. İşlem günü ile takas günü arasında kayıtlar geçici olarak farklı görünür.

Geçtiği dersler: Mutabakat, Takas ve DvP

TaskExecutor (diğer adları: ThreadPoolTaskExecutor, applicationTaskExecutor)

Spring'in iş çalıştırma soyutlaması. @Async metotları varsayılan olarak Boot'un otomatik kurduğu ThreadPoolTaskExecutor'da çalışır: core 8 thread ve sınırsız kuyruk.

Geçtiği dersler: @Async ve Thread Havuzu

telafi işlemi (diğer adları: compensating transaction)

Önceki adımın etkisini iş mantığı seviyesinde geri alan yeni bir işlem. Rollback değildir: ödeme silinmez, iade edilir — tarih korunur.

Geçtiği dersler: Saga Pattern

telescoping constructor (diğer adları: teleskop constructor)

Her isteğe bağlı parametre için bir öncekini çağıran yeni bir constructor eklemek. Çağrı noktası uzun, konumsal ve aynı tipteki argümanlar kolayca yer değiştirir.

Geçtiği dersler: Yaratımsal Kalıplar

tell, don't ask (diğer adları: sorma, söyle)

Bir nesneden veriyi isteyip kararı dışarıda vermek yerine, nesneye ne istediğini söylemek. Kural, koruduğu verinin yanında kalır.

Geçtiği dersler: DRY, KISS, YAGNI ve Demeter

temizlik (diğer adları: cleanup)

Effect'in döndürdüğü fonksiyon. Unmount'ta **ve** effect her yeniden çalışmadan önce koşar; ikincisi en çok atlanan kısımdır.

Geçtiği dersler: useEffect

temperature (diğer adları: sıcaklık)

Modelin bir sonraki parçayı ne kadar cesur seçeceğini belirleyen ayar. Sıfırda hep en olası parça seçilir; cevap tutarlı olur ama doğru olmak zorunda değildir.

Geçtiği dersler: Dil Modeli Nasıl Cevap Üretir

Template Method (diğer adları: şablon metot)

Bir işin değişmeyen iskeletini tek yerde tutup değişen adımları dışarıdan (alt sınıf ya da callback olarak) alan kalıp. Spring'de JdbcTemplate ve TransactionTemplate bunun örneği.

Geçtiği dersler: Spring'in İçindeki Kalıplar

terminal operation (diğer adları: terminal işlem)

Stream'i tüketip sonuç üreten işlem — `collect`, `forEach`, `count`. Pipeline ancak bu çağrıldığında çalışmaya başlar.

Geçtiği dersler: Stream API ve Tembellik

ters indeks (diğer adları: inverted index, GIN)

Her kelimeyi geçtiği satırların listesine bağlayan yapı. Tam metin araması tabloyu değil, yalnızca aranan kelimenin listesini okur.

Geçtiği dersler: Tam Metin Arama

teslim karşılığı ödeme (diğer adları: DvP, delivery versus payment)

Delivery versus Payment: takas sisteminin menkul kıymet ile parayı aynı anda hareket ettirmesi. Biri eksikse ikisi de yerinde kalır.

Geçtiği dersler: Takas ve DvP

test dilimi (diğer adları: slice)

Uygulama bağlamının yalnızca ilgili parçasını kuran test anotasyonu — `@WebMvcTest`, `@DataJpaTest` gibi. Kazancı hızdan çok odaktır.

Geçtiği dersler: Spring Test Dilimleri ve Context Cache

test oracle (diğer adları: test kahini, beklenen değer kaynağı)

Bir testin beklenen değeri nereden aldığı. Beklenen değer test edilen koddan çıkarılırsa, test o kodun hatasını da doğru kabul eder.

Geçtiği dersler: AI ile Test ve Güvenlik

test yalıtımı (diğer adları: test isolation, @BeforeEach)

Her testin kendi taze durumuyla başlaması; bir testin sonucu başka bir testin bıraktığı veriye ya da çalışma sırasına bağlı olmaz.

Geçtiği dersler: Kararsız Testler

Testcontainers (diğer adları: @Container, @Testcontainers, PostgreSQLContainer)

Test sırasında Docker'da gerçek bağımlılıklar (PostgreSQL, Kafka, Redis) başlatan kütüphane. Testler canlıdaki yazılımın aynısıyla koşar.

Geçtiği dersler: Testcontainers

Testing Library (diğer adları: React Testing Library, RTL, getByRole)

Bileşeni kullanıcı gibi test etmeye yarayan kütüphane: öğeleri rol, etiket ve metinle bulur, yazar, tıklar ve ekranda ne olduğuna bakar.

Geçtiği dersler: Bileşen Testi

thread dump (diğer adları: jstack, Thread.print)

O anda JVM'deki bütün thread'lerin adını, durumunu ve yığınını gösteren metin. Uygulamayı durdurmadan saniyeler içinde alınır.

Geçtiği dersler: Prod'da Teşhis

thread pool (diğer adları: iş parçacığı havuzu, havuz)

Görevleri sabit ya da sınırlı sayıda, yeniden kullanılan thread'e dağıtan yapı. Her görev için yeni thread açmanın bellek ve zamanlama maliyetini önler.

Geçtiği dersler: Bulkhead, Concurrency Araçları, ThreadLocal ve ScopedValue

ThreadLocal (diğer adları: thread-local, MDC)

Aynı değişken için her thread'e ayrı bir değer veren yapı. Değer remove() edilene ya da thread ölene kadar kalır; havuzdaki thread ise ölmez.

Geçtiği dersler: ThreadLocal ve ScopedValue

throughput (diğer adları: iş hacmi)

Birim zamanda yapılan iş miktarı. GC bağlamında: CPU'nun ne kadarı uygulamanın işini yapıyor, ne kadarı toplayıcıya gidiyor.

Geçtiği dersler: Garbage Collection

thundering herd (diğer adları: sürü etkisi, retry storm)

Çok sayıda istemcinin aynı anda aynı kaynağa yüklenmesi; örneğin bir kesintiden sonra herkesin aynı anda tekrar denemesi.

Geçtiği dersler: Retry, Backoff ve Jitter

timeout bütçesi

Bir zincirdeki timeout değerlerinin içten dışa artacak şekilde bölünmesi. Dıştaki içtekinden küçükse çağıran vazgeçer ama iş devam eder.

Geçtiği dersler: Servisler Arası İletişim Desenleri, BFF, Feign Client

tip koruyucusu (diğer adları: type guard)

`value is User` imzalı, true dönünce derleyiciye tipi daraltmasını söyleyen fonksiyon. Kontrolü sen yazarsın — gövde yanlışsa derleyici seni durduramaz.

Geçtiği dersler: TypeScript Tip Sistemi ve Daraltma

token (diğer adları: token (dil modeli), tokenization)

Dil modelinin metni okuyup yazdığı küçük parça: bir kelime, kelimenin bir kısmı ya da bir işaret. Bağlam penceresi de token sayısıyla ölçülür.

Geçtiği dersler: Dil Modeli Nasıl Cevap Üretir

token bucket (diğer adları: jeton kovası)

Kapasitesi kadar jeton tutan ve belli bir hızla dolan bir kova. Her istek bir jeton harcar; kova kısa patlamalara izin verir, uzun vadede hızı dolum hızında tutar.

Geçtiği dersler: Rate Limiting

token handler (diğer adları: token handler pattern, BFF güvenliği)

Tarayıcı uygulamasının OAuth token'larını BFF'in sunucu tarafında tutması; tarayıcıya yalnızca HttpOnly bir oturum cookie'si verilir ve BFF token'ı arka servislere kendisi ekler.

Geçtiği dersler: BFF'de Güvenlik ve Alternatifler

tolerant reader (diğer adları: hoşgörülü okuyucu)

Cevaptan yalnızca ihtiyaç duyduğu alanları okuyan, tanımadığı alanları görmezden gelen istemci. Sunucunun alan eklemesi onu kırmaz.

Geçtiği dersler: Strangler Fig ve API Sürümleme

traceparent (diğer adları: W3C Trace Context, trace context)

W3C Trace Context standardının HTTP (ve mesaj) başlığı. Sürüm, traceId, çağıranın spanId'si ve örnekleme bayrağını taşır; karşı servis aynı trace'e buradan katılır.

Geçtiği dersler: Dağıtık Tracing

TTL (diğer adları: time to live, expireAfterWrite)

Time to live: bir cache girdisinin ne kadar süre geçerli sayılacağı. Süre dolunca girdi silinir ve sonraki okuma kaynağa gider; o süre boyunca eski veri görülebilir.

Geçtiği dersler: Cache Stratejileri, Spring Cache

tuz (diğer adları: salt, tuzlama)

Her kullanıcı için rastgele üretilip parolaya eklenen değer. Aynı parolaların aynı hash'i üretmesini ve hazır tabloların işe yaramasını engeller.

Geçtiği dersler: Parola Saklama

tüketici odaklı sözleşme (diğer adları: consumer-driven contract, CDC)

Sözleşmeyi karşı servisi kullanan tarafın yazdığı yaklaşım: yalnızca okuduğu alanlar. Sağlayıcı her build'inde onu doğrular.

Geçtiği dersler: Sözleşme Testleri

TWAP (diğer adları: time-weighted average price)

Time-Weighted Average Price: emri zamana eşit bölen algoritma. Her dilimde aynı miktarı alır; hacmi hesaba katmaz.

Geçtiği dersler: TWAP, VWAP, POV

two-phase commit (diğer adları: 2PC, iki aşamalı commit)

Birden çok veritabanını tek transaction gibi bitiren protokol: koordinatör önce herkese 'hazır mısın?' diye sorar, hepsi evet derse COMMIT, biri hayır derse ABORT gönderir.

Geçtiği dersler: Dağıtık Transaction

type erasure (diğer adları: erasure, tip silme)

Derleyicinin generic tip argümanlarını kontrol ettikten sonra silmesi. Runtime'da List<String> ile List<Integer> aynı sınıftır.

Geçtiği dersler: Generics ve Type Erasure

U

undo (diğer adları: undo segment, undo tablespace, ORA-01555)

Oracle'ın, güncellenen satırların eski değerlerini tuttuğu alan. Geri alma ve tutarlı okuma buradan yapılır; süresi dolan undo yeniden kullanılır.

Geçtiği dersler: MVCC ve Kilitler

unknown

Her değeri kabul eden ama kullanmadan önce daraltmayı zorunlu kılan tip. `any` tüm kontrolü kapatır, `unknown` kapatmaz — bilinmeyen veri için doğru olan budur.

unmodifiable view (diğer adları: salt okunur görünüm)

Collections.unmodifiableList gibi, yazmayı reddeden ama altındaki koleksiyonun değişikliklerini yansıtan salt okunur bir görünüm. Kopya değildir.

Geçtiği dersler: Sınıf, Nesne ve Kapsülleme

upcasting (diğer adları: upcaster, olay sürümleme)

Depoda eski biçimde duran bir olayı, okunurken yeni biçime çevirmek. Olayın kendisi değişmez; yalnızca kod onu yeni sürüm gibi görür.

Geçtiği dersler: CQRS ve Event Sourcing

upsert (diğer adları: insert or update, MERGE, ON CONFLICT)

Kayıt varsa güncelleyip yoksa ekleyen tek işlem. PostgreSQL'de ON CONFLICT, SQL Server ve Oracle'da MERGE ile yazılır; eşzamanlılıkta davranışları farklıdır.

Geçtiği dersler: Aynı Sorgu, Üç Lehçe

UTC (diğer adları: Coordinated Universal Time, Z)

Dünyanın ortak saat referansı. Yaz saati yoktur; her saat dilimi UTC'ye göre bir ofsetle tanımlanır, örneğin İstanbul +03:00.

Geçtiği dersler: Zaman ve Saat Dilimleri

uygulama iskeleti (diğer adları: app shell)

Uygulamanın verisiz hâli: HTML, JS, CSS ve ikonlar. Herkes için aynıdır; çevrimdışı açılış için önbellekte tutulur.

Geçtiği dersler: Çevrimdışı Uygulama

uyum (diğer adları: cohesion, bütünlük)

Bir sınıfın içindeki şeylerin birbirine ne kadar ait olduğu. Aynı sebeple değişen şeyler birlikte durmalı.

V

VACUUM (diğer adları: autovacuum, bloat, şişme)

PostgreSQL'in, hiçbir sorgunun artık göremeyeceği eski satır sürümlerini temizleyip alanı yeniden kullanılabilir yapan işlemi. Çoğunlukla autovacuum yürütür.

Geçtiği dersler: MVCC ve Kilitler

value object (diğer adları: değer nesnesi)

Kimliği olmayan, değeriyle eşit sayılan ve değiştirilemeyen küçük nesne: Money, Email, Quantity. Kendi geçerlilik kuralını kurucusunda taşır.

Geçtiği dersler: Zengin Domain Modeli, Value Object ve Record

varsayılan kurucu (diğer adları: default constructor, no-arg constructor)

Sınıfta hiç kurucu yazılmadığında Java'nın kendiliğinden eklediği parametresiz, boş kurucu.

Geçtiği dersler: Constructor ve this

vektör saati (diğer adları: vector clock)

Her sunucu için ayrı bir sayaç tutan mantıksal saat. İki olayın birbirini görüp görmediğini, yani eşzamanlı olup olmadığını da söyler.

Geçtiği dersler: Mantıksal Saatler

visibility (diğer adları: görünürlük)

Bir thread'in yazdığı değeri başka bir thread'in görüp görememesi. Görünürlük sorunu bir sıralama sorunu değildir: değer hiç görünmeyebilir.

Geçtiği dersler: Race Condition ve Görünürlük

volatile

Alanın her okumasının gerçekten yapılmasını ve her yazmasının diğer thread'lere görünmesini garanti eden belirteç. Görünürlük sağlar, atomiklik sağlamaz.

Geçtiği dersler: Java Memory Model ve Yeniden Sıralama

VWAP (diğer adları: volume-weighted average price)

Volume-Weighted Average Price: hacimle ağırlıklandırılmış ortalama fiyat. VWAP algoritması beklenen hacim eğrisini izleyerek bu fiyata yaklaşmaya çalışır.

Geçtiği dersler: TWAP, VWAP, POV

W

WAL (diğer adları: write-ahead log, WAL, önceden yazma günlüğü)

Veritabanının her değişikliği tabloya yazmadan önce sırayla kaydettiği günlük. Çökmeden sonra toparlanmak, replika ve anına dönüş için kullanılır.

Geçtiği dersler: Yedek ve Geri Dönüş

weakly consistent iterator (diğer adları: weakly consistent, zayıf tutarlı iterator)

Gezinme sırasında koleksiyon değişirse exception fırlatmayan, ama değişikliği görmeyebilen iterator. Anlık bir görüntü değildir.

Geçtiği dersler: ConcurrentHashMap

webhook (diğer adları: webhook, callback URL)

Bir olay olunca karşı sistemin senin verdiğin adrese kendiliğinden HTTP isteği atması. Sen sormazsın, o haber verir.

Geçtiği dersler: Webhook Almak

WebSocket (diğer adları: ws, wss)

Tarayıcı ile sunucu arasında açık kalan, iki yönlü tek bağlantı. İki taraf da sık konuşuyorsa uygundur.

Geçtiği dersler: Canlı Veri

wildcard (diğer adları: joker tip, ?)

Generic tipte bilinmeyen bir tip argümanı: `?`, `? extends T` ya da `? super T`. Invariance'ı esnetmenin tek yolu.

Geçtiği dersler: Generics ve Type Erasure

wrapper sınıf (diğer adları: wrapper, Integer, Long)

Bir ilkel tipin nesne karşılığı: int için Integer, long için Long, boolean için Boolean. Koleksiyonlarda ve null gereken yerlerde kullanılır.

Geçtiği dersler: int ve Integer

write skew (diğer adları: yazma çarpıklığı)

İki transaction aynı veriyi okuyup farklı satırlara yazar; tek tek doğru olan kararlar birlikte bir kuralı bozar. Snapshot isolation bunu durdurmaz.

Geçtiği dersler: İzolasyon Seviyeleri

write-behind (diğer adları: write-back)

Yazmanın önce cache'e yapılıp veritabanına sonradan toplu aktarıldığı düzen. Yazma hızlanır; cache düşerse henüz aktarılmamış değişiklikler kaybolabilir.

Geçtiği dersler: Cache Stratejileri

X

XA (diğer adları: XA transaction, JTA)

Veritabanı ve mesaj kuyruğu gibi kaynakların two-phase commit'e katılması için standart arayüz. Java'da JTA ile kullanılır; kaynağın XA desteklemesi gerekir.

Geçtiği dersler: Dağıtık Transaction

XSS (diğer adları: cross-site scripting)

Cross-site scripting: saldırganın script'inin bir sayfada o sitenin kendi kodu gibi çalışması. Script'in erişebildiği her şeye, localStorage dahil, erişir.

Geçtiği dersler: BFF'de Güvenlik ve Alternatifler, XSS

Y

YAGNI

"You aren't gonna need it" — gelmeyen değişime bugünden hazırlanma. SOLID ile gerçek bir gerilimi vardır ve ikisi de haklıdır.

Geçtiği dersler: DRY, KISS, YAGNI ve Demeter

yapısal çıktı (diğer adları: structured output, JSON mode)

Modelden serbest metin yerine belirli alanları olan bir cevap, genelde JSON istemek. Biçimi kolaylaştırır ama doğrulamanın yerini tutmaz.

Geçtiği dersler: Modelin Cevabını Uygulamada Kullanmak

yaşayan mutant (diğer adları: surviving mutant, survived, mutant)

Kodda yapılan küçük bir değişikliğe rağmen hiçbir testin kırmızıya dönmemesi. O davranışı kontrol eden test eksiktir.

Geçtiği dersler: Kapsama ve Mutasyon

yatay ölçekleme (diğer adları: horizontal scaling, scale out)

Kapasiteyi, aynı servisin daha çok kopyasını çalıştırarak artırmak. Tek makineyi büyütmeye dikey ölçekleme denir.

Geçtiği dersler: Yük Dengeleme

yaz saati (diğer adları: DST, daylight saving time)

Bazı ülkelerin yılda iki kez saatleri bir saat oynatması. İlkbaharda bir saat hiç yaşanmaz, sonbaharda bir saat iki kez yaşanır.

Geçtiği dersler: Zaman ve Saat Dilimleri

yeniden sıralama (diğer adları: reordering)

Derleyicinin, JIT'in veya CPU'nun komutları yazdığın sıradan farklı çalıştırması. Tek thread'de sonucu değiştirmez; başka bir thread bunu görebilir.

Geçtiği dersler: Java Memory Model ve Yeniden Sıralama

yeniden üretilebilir rapor (diğer adları: reproducible report, as-of report)

Kaç kez üretilirse üretilsin aynı çıkan rapor. Verinin geçerli olduğu ve bilindiği tarihi, şablon sürümünü sabitler.

Geçtiği dersler: Düzenleyici Raporlama

yerel defter (diğer adları: local order book, book building)

Alıcının değişiklik akışını sırayla uygulayarak kendi belleğinde kurduğu emir defteri kopyası.

Geçtiği dersler: Piyasa Verisi

yumuşak referans (diğer adları: SoftReference, soft reference)

Bellek bolken nesneyi bırakan, sıkışınca temizlenen referans (SoftReference). OutOfMemoryError'dan önce bütün yumuşak referanslı nesneler temizlenir.

Geçtiği dersler: Bellek Sızıntısı ve Referans Türleri

Z

zayıf referans (diğer adları: WeakReference, weak reference)

Nesneyi tek başına canlı tutmayan referans (WeakReference). Nesneye başka güçlü referans yoksa ilk GC'de temizlenir ve get() null döner.

Geçtiği dersler: Bellek Sızıntısı ve Referans Türleri

ZoneId (diğer adları: saat dilimi, time zone)

Bir bölgenin saat kurallarının adı, örneğin Europe/Berlin. Hangi tarihte hangi ofsetin geçerli olduğunu bilir; sabit bir ofset değildir.

Geçtiği dersler: Zaman ve Saat Dilimleri

#

@MappedSuperclass (diğer adları: mapped superclass, MappedSuperclass)

Ortak alanları alt entity'lere kopyalayan, kendisi entity olmayan üst sınıf. Tablosu yoktur; ona ilişki kurulamaz ve üzerinden sorgu yazılamaz.

Geçtiği dersler: Kalıtım Stratejileri

@RestControllerAdvice (diğer adları: @ControllerAdvice, controller advice)

Bütün controller'lardan çıkan istisnaları tek yerde HTTP cevabına çeviren sınıf. İçindeki @ExceptionHandler metotları hangi istisnanın hangi koda eşleneceğini söyler.

Geçtiği dersler: Spring MVC, Validation ve Hata Yönetimi

@ServiceConnection (diğer adları: ServiceConnection)

Spring Boot 3.1 ile gelen işaret: bir konteyner bean'inin adresini ve kimlik bilgilerini bağlantı ayarlarına kendiliğinden yazar.

Geçtiği dersler: Testcontainers

@TransactionalEventListener (diğer adları: AFTER_COMMIT, TransactionalEventListener)

Bir olayı transaction'ın belli bir aşamasında, varsayılan olarak commit'ten sonra işleyen Spring dinleyicisi.

Geçtiği dersler: Domain Olayları