Rust

Rust Tasarım Desenleri

Builder pattern, newtype, RAII, typestate, hata yönetimi desenleri, interior mutability desenleri

20 mülakat soruları·
Senior
1

Ç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.

2

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.

3

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.

4

Bir nesnenin durumlarını tip sisteminde kodlamak için Typestate pattern'inin ilkesi nedir?

5

Hataları ek bağlamla yaymak için hangi error handling deseni önerilir?

+17 mülakat soruları

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