
Design Pattern Rust
Builder pattern, newtype, RAII, typestate, pola penanganan error, pola interior mutability
1Apa keuntungan utama dari Builder pattern di Rust dibandingkan dengan konstruktor dengan banyak parameter?
Apa keuntungan utama dari Builder pattern di Rust dibandingkan dengan konstruktor dengan banyak parameter?
Jawaban
Builder pattern memungkinkan konstruksi objek yang mudah dibaca dan fleksibel dengan merangkai metode yang fluent. Di Rust, pola ini menghindari error terkait urutan parameter, mengizinkan nilai default, dan membuat kode mendokumentasikan dirinya sendiri. Tidak seperti konstruktor dengan banyak argumen posisional, Builder membuat setiap field eksplisit melalui nama metodenya.
2Dalam Newtype pattern, masalah apa yang diselesaikan dengan membungkus tipe primitif dalam tuple struct?
Dalam Newtype pattern, masalah apa yang diselesaikan dengan membungkus tipe primitif dalam tuple struct?
Jawaban
Newtype pattern membuat tipe yang berbeda pada level type system, mencegah kebingungan antara nilai yang berbeda secara semantik namun memiliki tipe dasar yang sama. Misalnya, UserId(u64) dan ProductId(u64) tidak kompatibel pada compile-time, menghindari bug di mana ID produk akan diteruskan di tempat yang mengharapkan ID pengguna. Pattern ini memiliki biaya runtime nol berkat jaminan representasi memori yang identik.
3Bagaimana RAII pattern menjamin pelepasan resource di Rust?
Bagaimana RAII pattern menjamin pelepasan resource di Rust?
Jawaban
RAII (Resource Acquisition Is Initialization) mengikat siklus hidup sebuah resource ke scope sebuah variabel. Di Rust, trait Drop dipanggil secara otomatis ketika sebuah nilai keluar dari scope, menjamin pelepasan resource yang deterministik tanpa garbage collector. Pattern ini fundamental untuk file, koneksi jaringan, lock, dan resource apa pun yang memerlukan cleanup eksplisit.
Apa prinsip dari Typestate pattern untuk mengkodekan state objek dalam type system?
Pola error handling mana yang direkomendasikan untuk mempropagasi error dengan konteks tambahan?
+17 pertanyaan wawancara
Topik wawancara Rust lainnya
Dasar-Dasar Rust
Ownership & Borrowing
Structs & Enums
Penanganan Error
Collections
Module & Package
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde & Serialisasi
Unsafe Rust
Trait Lanjutan
Lifetime Lanjutan
Type System
Tokio & Async I/O
Optimasi Performa
Memory Management
Web Frameworks
Database Integration
Kuasai Rust untuk wawancara berikutnya
Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.
Mulai gratis