.NET Core • PHP • Java • Node.js

Mülakat Sorularında Donup Kalmaya Son!

Kod yazabiliyor ama teorik terminolojide zorlanıyor musun? Günlük hayat analojileri, nokta atışı mülakat cevapları ve topluluktan gelen gerçek mülakat sorularıyla kendini hazırla.

Tüm Teknolojiler Kavramları
9 Terim
.NET Core (C#) Orta Mimari & DI

Service Lifetimes: Transient, Scoped, Singleton

.NET IoC konteynerine bir nesneyi ne sıklıkla üretip ne zaman çöpe atacağını söyleme kuralı.

Günlük Hayat Analojisi:

Transient = Tek kullanımlık kağıt bardak (her su içişinde yeni bardak). Scoped = Masandaki servis tabağı (o restoranda oturduğun sürece tek tabak, kalktığında çöpe gider). Singleton = Restoran girişindeki duvar saati (herkes tek bir saate bakar).

Mülakatta Ne Demelisin? (Altın Yanıt):

Transient her enjeksiyonda yeni nesne üretir. Scoped gelen her HTTP request boyunca tek bir nesne üretir ve request bitince dispose eder (örn: DbContext). Singleton uygulama açılışında bir kez üretilir ve tüm kullanıcılar tarafından ortak kullanılır (örn: Cache, Memory Logger).

Tuzak: Singleton bir servisin içine Scoped bir servis (örn: DbContext) enjekt... Detay & Kod Örneği
.NET Core (C#) Orta Asenkron

Async / Await & Thread vs Task

Uzun süren veritabanı veya HTTP isteklerinde işlemci çekirdeğini (thread) kilitlemeden serbest bırakmaktır.

Günlük Hayat Analojisi:

Restoranda garsonun yemeğin fırında pişmesini beklerken fırının önünde dikilmeyip diğer masaların siparişini almasıdır. Fırından zil sesi gelince gidip yemeği masaya götürür.

Mülakatta Ne Demelisin? (Altın Yanıt):

Async/Await yeni bir thread açmak demek değildir; I/O bekleme süresinde thread'i serbest bırakarak ThreadPool'un tükenmesini (thread starvation) önlemektir. Asenkron metotların sonucunu .Result veya .Wait() ile senkrona çevirmek kilitlenmeye (Deadlock) sebep olur.

Tuzak: Asenkron metodu Task.Result ile çağırmak ASP.NET SynchronizationContex... Detay & Kod Örneği
.NET Core (C#) Orta Veritabanı & ORM

Entity Framework Core: AsNoTracking & Eager Loading

Sadece okuma yapacağın sorgularda EF Core'un hafıza takip mekanizmasını kapatıp performansı 3 katına çıkarmaktır.

Günlük Hayat Analojisi:

Müzedeki tarihi esere sadece gözünle bakmaktır. Eline kalem alıp üstünü çizmene gerek olmadığı için güvenlik görevlisinin seni adım adım takip etmesine gerek kalmaz.

Mülakatta Ne Demelisin? (Altın Yanıt):

AsNoTracking(), veritabanından sadece okuma yapılacak (güncelleme yapılmayacak) sorgularda Change Tracker yükünü ortadan kaldırarak RAM ve CPU tasarrufu sağlar. İlişkili verilerde ise Lazy Loading yerine .Include() kullanarak N+1 sorgu problemini engelleriz.

Tuzak: AsNoTracking() ile çekilen bir nesnenin property'sini değiştirip _cont... Detay & Kod Örneği
PHP (Laravel) Orta Mimari & DI

Laravel Service Container & Service Providers

Tüm sınıfların bağımlılıklarını tek merkezden yöneten ve otomatik enjekte eden sihirli kutudur.

Günlük Hayat Analojisi:

Bir oto tamir atölyesindeki alet panosudur. Tamirci "13 numara anahtar" istediğinde çırak (Container) panodan uygun anahtarı alır ve tamirciye uzatır.

Mülakatta Ne Demelisin? (Altın Yanıt):

Service Container, Laravel'de sınıfların bağımlılıklarını otomatik olarak çözümleyen (Dependency Injection) yapıdır. Service Provider'lar ise bu container'a servis bağlama (bind, singleton, scoped) ve boot etme işlemlerinin yapıldığı merkezi giriş kapılarıdır.

Tuzak: Sınıf içinde "new StripePaymentGateway()" yazarak bağımlılığı sıkı bağ... Detay & Kod Örneği
PHP (Laravel) Temel Veritabanı & ORM

Eloquent N+1 Sorgu Problemi & with() Eager Loading

Döngü içinde her satır için veritabanına ayrı ayrı koşup MySQL sunucusunu boğma hatasıdır.

Günlük Hayat Analojisi:

Markete gidip 20 paket makarna alacakken, her paket için tek tek eve gidip geri dönmektir. Eager loading hepsini tek alışveriş arabasına yüklemektir.

Mülakatta Ne Demelisin? (Altın Yanıt):

N+1 problemi, ilişkili model verilerinin döngü içinde her seferinde ekstra bir SQL sorgusu tetiklemesiyle oluşur. Laravel Eloquent'te with(['relation']) eager loading kullanılarak toplam sorgu sayısı 2'ye (ana tablo + WHERE IN) düşürülür.

Tuzak: Laravel Debugbar veya Telescope kullanmadan production'a çıkmak ve ark... Detay & Kod Örneği
Java (Spring Boot) Orta Mimari & DI

Spring IoC Container & Bean Yaşam Döngüsü

Java nesnelerinin (Bean) doğumundan ölümüne kadar tüm hayatını Spring'in yönetmesidir.

Günlük Hayat Analojisi:

Apartmanın merkezi yönetim sistemidir. Her daire sahibi kendi kalorifer kazanını kurmaz; apartman yöneticisi (Spring IoC) merkezi ısıtmayı herkese bağlar.

Mülakatta Ne Demelisin? (Altın Yanıt):

Spring IoC Container, uygulamanın nesnelerini (Bean) oluşturan, yapılandıran ve bağımlılıklarını (@Autowired ile) yöneten mekanizmadır. Varsayılan scope Singleton'dır. @PostConstruct ile başlatma, @PreDestroy ile kaynak temizleme adımları yönetilir.

Tuzak: Alan bazlı (@Autowired private UserRepository repo;) injection kullanm... Detay & Kod Örneği
Java (Spring Boot) İleri Veritabanı

Spring @Transactional Proxy Mekanizması & Rollback

Metot içindeki bir veritabanı işlemi patlarsa yapılan her şeyi sessizce geri sarmaktır.

Günlük Hayat Analojisi:

ATM'den para çekerken parayı vermeden önce sistemin elektriklerinin kesilmesi halinde hesabından düşen paranın anında hesaba iade edilmesidir.

Mülakatta Ne Demelisin? (Altın Yanıt):

@Transactional, veritabanı işlemlerini atomik bir birim haline getirir. Spring arka planda Dynamic Proxy oluşturarak metodu sarar. Aynı sınıf içindeki bir metodun diğerini çağırmasında (self-invocation) proxy atlandığı için @Transactional çalışmaz!

Tuzak: Checked exception (örn: IOException) fırlatıldığında varsayılan olarak... Detay & Kod Örneği
Node.js (NestJS / Express) İleri Asenkron & Çekirdek

Node.js Event Loop & Libuv Çalışma Evreleri

Tek bir iş parçacığının (Single Thread) binlerce isteği hiç tıkanmadan koordine etme sırrıdır.

Günlük Hayat Analojisi:

Döner kapıdan sürekli geçen insanları yönlendiren tek bir resepsiyon görevlisidir. Pasaport bekleyenleri bekleme odasına (Libuv Threadpool) yollar, hazır olanın evrakını anında teslim eder.

Mülakatta Ne Demelisin? (Altın Yanıt):

Node.js tek iş parçacıklı bir Event Loop modeli üzerine kuruludur. Non-blocking I/O operasyonlarını işletim sistemi kernel'ına veya Libuv iş parçacığı havuzuna devreder. Ağır CPU işlemleri (örneğin döngüde hash hesaplama) Event Loop'u bloke eder ve tüm istekleri dondurur.

Tuzak: CPU-intensive (ağır hesaplama/görüntü işleme) işlerini ana thread'de y... Detay & Kod Örneği
Node.js (NestJS / Express) İleri Performans & Paralellik

Cluster Module vs Worker Threads

Cluster: Fabrikanın aynısından yan yana 4 tane kurmak. Worker Threads: Tek fabrikanın içine 4 işçi almak.

Günlük Hayat Analojisi:

Cluster: Bilgisayardaki her CPU çekirdeği için bağımsız bir Node.js kopyası açmaktır (hafıza paylaşmazlar). Worker Thread: Tek bir Node.js kopyası içinde paylaşımlı hafıza (SharedArrayBuffer) ile çalışan işçilerdir.

Mülakatta Ne Demelisin? (Altın Yanıt):

Cluster modülü çok çekirdekli sunucularda HTTP isteklerini process düzeyinde yük dengelemek (Load Balancing) için kullanılır. Worker Threads ise tek bir process içinde CPU-yoğun matematiksel hesaplamaları Event Loop'u kilitlemeden paralel yürütmek için kullanılır.

Tuzak: Cluster kullandığınızda bellek (RAM) paylaşılmaz! Bir process'teki değ... Detay & Kod Örneği
Mülakat Akışı
Tümü →

Adayların dün girdikleri mülakatlarda karşılaştıkları gerçek sorular:

PHP (Laravel) 34 minutes ago
Laravel'de N+1 problemi canlıda nasıl anlaşılır ve with() dı...
E-Ticaret Pazaryeri • Mid-Level PHP & Laravel Geliştirici
28 Beğeni
Node.js (NestJS / Express) 34 minutes ago
process.nextTick() ile setImmediate() arasındaki fark nedir?
Yapay Zeka SaaS Şirketi • Node.js Fullstack
19 Beğeni
Kendi Mülakat Deneyimini Ekle