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
Kendini dene
Bir terim çıkacak. Önce ne olduğunu kendin hatırlamaya çalış, sonra tanıma bak. Bilmemek de bir cevap.
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ı 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
- 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ı