
Rust Tasarım Desenleri
Builder pattern, newtype, RAII, typestate, hata yönetimi desenleri, interior mutability desenleri
1Çok sayıda parametreye sahip bir constructor'a kıyasla, Rust'taki Builder pattern'in temel avantajı nedir?
Çok sayıda parametreye sahip bir constructor'a kıyasla, Rust'taki Builder pattern'in temel avantajı nedir?
Cevap
Builder pattern, akıcı metodları zincirleyerek okunabilir ve esnek nesne oluşturmayı mümkün kılar. Rust'ta parametre sıralamasıyla ilgili hataları önler, varsayılan değerlere izin verir ve kodu kendini belgeleyen hale getirir. Çok sayıda konumsal argümana sahip bir constructor'ın aksine, Builder her alanı metot adı aracılığıyla açık hale getirir.
2Newtype pattern'inde, bir primitive tipi bir tuple struct içinde sarmalamak hangi sorunu çözer?
Newtype pattern'inde, bir primitive tipi bir tuple struct içinde sarmalamak hangi sorunu çözer?
Cevap
Newtype pattern, tip sistemi düzeyinde ayrı bir tip oluşturarak, aynı temel tipe sahip ancak anlamsal olarak farklı değerler arasındaki karışıklığı önler. Örneğin, UserId(u64) ve ProductId(u64) compile-time'da uyumsuzdur ve bir kullanıcı ID'sinin beklendiği yerde bir ürün ID'sinin geçirildiği hataları önler. Bu pattern, aynı bellek temsili garantisi sayesinde sıfır runtime maliyetine sahiptir.
3RAII pattern Rust'ta kaynakların serbest bırakılmasını nasıl garanti eder?
RAII pattern Rust'ta kaynakların serbest bırakılmasını nasıl garanti eder?
Cevap
RAII (Resource Acquisition Is Initialization), bir kaynağın yaşam döngüsünü bir değişkenin scope'una bağlar. Rust'ta bir değer scope dışına çıktığında Drop trait otomatik olarak çağrılır ve garbage collector olmadan deterministik kaynak serbest bırakmayı garanti eder. Bu pattern; dosyalar, ağ bağlantıları, lock'lar ve açık temizlik gerektiren her kaynak için temeldir.
Bir nesnenin durumlarını tip sisteminde kodlamak için Typestate pattern'inin ilkesi nedir?
Hataları ek bağlamla yaymak için hangi error handling deseni önerilir?
+17 mülakat soruları
Diğer Rust mülakat konuları
Rust Temelleri
Ownership & Borrowing
Structs & Enums
Hata Yönetimi
Koleksiyonlar
Modüller ve Paketler
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Makrolar
Serde ve Serileştirme
Unsafe Rust
Gelişmiş Trait'ler
İleri Düzey Lifetime
Type System
Tokio & Async I/O
Performans Optimizasyonu
Memory Management
Web Frameworks
Database Integration
Bir sonraki mülakatın için Rust'de uzmanlaş
Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.
Ücretsiz başla