Rust

Design Pattern trong Rust

Builder pattern, newtype, RAII, typestate, các pattern xử lý lỗi, các pattern interior mutability

20 câu hỏi phỏng vấn·
Senior
1

Lợi ích chính của Builder pattern trong Rust so với một constructor có nhiều tham số là gì?

Câu trả lời

Builder pattern cho phép xây dựng đối tượng dễ đọc và linh hoạt bằng cách chuỗi các phương thức fluent. Trong Rust, nó tránh các lỗi liên quan đến thứ tự tham số, cho phép giá trị mặc định và làm cho code tự ghi tài liệu. Khác với một constructor có nhiều tham số theo vị trí, Builder làm cho mỗi trường trở nên rõ ràng thông qua tên phương thức của nó.

2

Trong Newtype pattern, việc bọc một kiểu primitive trong một tuple struct giải quyết vấn đề gì?

Câu trả lời

Newtype pattern tạo ra một kiểu riêng biệt ở cấp độ type system, ngăn chặn sự nhầm lẫn giữa các giá trị khác nhau về mặt ngữ nghĩa nhưng có cùng kiểu cơ sở. Ví dụ, UserId(u64) và ProductId(u64) không tương thích tại compile-time, tránh các bug khi một ID sản phẩm được truyền vào nơi mong đợi một ID người dùng. Pattern này có chi phí runtime bằng không nhờ đảm bảo biểu diễn bộ nhớ giống hệt nhau.

3

Pattern RAII đảm bảo việc giải phóng tài nguyên trong Rust như thế nào?

Câu trả lời

RAII (Resource Acquisition Is Initialization) gắn vòng đời của một tài nguyên với scope của một biến. Trong Rust, trait Drop được gọi tự động khi một giá trị ra khỏi scope, đảm bảo việc giải phóng tài nguyên một cách xác định mà không cần garbage collector. Pattern này là nền tảng cho file, kết nối mạng, lock và bất kỳ tài nguyên nào cần dọn dẹp tường minh.

4

Nguyên lý của Typestate pattern để mã hóa các trạng thái của đối tượng trong type system là gì?

5

Pattern error handling nào được khuyến nghị để truyền lỗi kèm theo ngữ cảnh bổ sung?

+17 câu hỏi phỏng vấn

Nắm vững Rust cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí