Giao diện
Foundations Part 3 Idiomatic
Từ "viết được code" đến "viết code chuẩn Rust" (Idiomatic Rust)
💡 MỤC TIÊU PART 3
Ở Part 2, bạn đã học cách làm cho compiler vui lòng (Ownership). Ở Part 3, bạn sẽ học cách làm cho đồng nghiệp (và chính bạn trong tương lai) vui lòng bằng cách viết code mạnh mẽ, tái sử dụng tốt và clean.
Nội dung Module
1. Error Handling Architecture
Rust không dùng Exception. Rust dùng hệ thống type để ép bạn xử lý lỗi:
- Recoverable:
Result<T, E>và toán tử?. - Unrecoverable:
panic!cho bug nghiêm trọng. - Idiomatic: Khi nào nên
undo_wrap()? Khi nào nên propagate?
2. Generics & Traits
Không lặp lại code với Generics và định nghĩa behavior với Traits:
- Generics: Zero-cost abstractions.
- Traits: Giống Interface nhưng mạnh hơn.
- Trait Bounds:
T: Display + Clone.
3. Common Collections
Bộ công cụ tiêu chuẩn std::collections:
Vec<T>: Dynamic array trên heap.HashMap<K, V>: Key-value storage an toàn.- String Complexity: Tại sao
Stringtrong Rust phức tạp hơn C#/Java? (UTF-8).
4. Functional Features
Tư duy Functional Programming trong Rust:
- Closures: Functions capturing environment.
- Iterators:
map,filter,fold— nhanh hơn loop truyền thống.
Roadmap học tập
Tại sao Idiomatic Rust quan trọng?
Code C++ dịch sang Rust từng dòng (line-by-line translation) thường sẽ:
- Chậm hơn
- Khó đọc hơn
- "Đánh nhau" với borrow checker
Idiomatic Rust tận dụng Iterators, Pattern Matching và Error Handling để code ngắn gọn, an toàn và nhanh.