Rust

Design Pattern Rust

Builder pattern, newtype, RAII, typestate, pola penanganan error, pola interior mutability

20 pertanyaan wawancaraยท
Senior
1

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.

2

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.

3

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.

4

Apa prinsip dari Typestate pattern untuk mengkodekan state objek dalam type system?

5

Pola error handling mana yang direkomendasikan untuk mempropagasi error dengan konteks tambahan?

+17 pertanyaan wawancara

Kuasai Rust untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis