Cấu Trúc Khóa Học

Trang này là dành cho người hướng dẫn khóa học.

Rust Căn Bản

Ở bốn ngày học đầu tiên, ta sẽ nhanh chóng khái quát rất nhiều khía cạnh căn bản của Rust!

Thời khóa biểu:

  • Ngày 1 Buổi Sáng (2 tiếng và 5 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Lời Chào Mừng5 minutes
Hello, World15 minutes
Kiểu Dữ Liệu Và Giá Trị40 minutes
Control flow (Điểu khiển luồng) căn bản40 minutes
  • Ngày 1 Buổi Chiều (2 tiếng và 35 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Bộ (Tuples) và mảng (Arrays)35 minutes
Tham chiếu (References)55 minutes
Kiểu do người dùng định nghĩa50 minutes
  • Ngày 2 Buổi Sáng (2 tiếng và 55 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Lời Chào Mừng3 minutes
Khớp mẫu (Pattern Matching)1 hour
Phương thức (Methods) và đặc điểm (Traits)50 minutes
  • Ngày 2 Buổi Chiều (3 tiếng và 10 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Tổng quát (Generics)40 minutes
Các kiểu trong thư viện chuẩn (Standard Library Types)1 hour and 20 minutes
Các đặc điểm trong thư viện chuẩn (Standard Library Traits)1 hour and 40 minutes
  • Ngày 3 Buổi Sáng (2 tiếng và 20 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Lời Chào Mừng3 minutes
Quản lý bộ nhớ1 hour
Con trỏ thông minh (Smart Pointers)55 minutes
  • Ngày 3 Buổi Chiều (1 tiếng và 50 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Mượn (Borrowing)55 minutes
Vòng đời (Lifetimes)50 minutes
  • Ngày 4 Buổi Sáng (2 tiếng và 40 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Lời Chào Mừng3 minutes
Trình lặp (Iterators)45 minutes
Modules40 minutes
Kiểm thử45 minutes
  • Ngày 4 Buổi Chiều (2 tiếng và 10 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Xử lý lỗi55 minutes
Rust “không an toàn” (Unsafe Rust)1 hour and 5 minutes

Chuyên Sâu

Ngoài lớp học “4 ngày” về Rust căn bản ra, chúng tôi còn cung cấp thêm một số chủ đề chuyên sâu sau:

Rust trong Android

Chủ đề chuyên sâu Rust trong Android là khóa học nửa ngày hướng dẫn sử dụng Rust cho phát triển trên nền tảng Android, bao gồm tính tương tác với C, C++ và Java.

Bạn sẽ cần cài sẵn AOSP checkout, rồi tạo một checkout cho repository của khóa học và di chuyển thư mục src/android/ tới thư mục root của AOSP checkout trên. Việc này sẽ đảm bảo hệ thống build của Android tìm được file Android.bp trong thư mục src/android/.

Hãy chắc chắn rằng lệnh adb sync hoạt động được với trình giả lập hoặc thiết bị thực của bạn, và pre-build tất cả ví dụ Android bằng src/android/build_all.sh. Bạn có thể đọc script để xem các lệnh mà nó chạy và xác nhận rằng mọi thứ đều hoạt động khi bạn kích hoạt bằng tay.

Rust trong Chromium

Chủ đề chuyên sâu Rust trong Chromium là khóa học nửa ngày hướng dẫn sử dụng Rust như là một phần của trình duyệt nhân Chromium, bao gồm hệ thống build gn, đưa vào thư viện bên thứ ba (“crates”) và tính tương tác với C++.

Bạn sẽ cần có khả năng build được Chromium — chúng tôi đề xuất build bằng công cụ xây dựng thành phần, debug bởi tốc độ ấn tượng của nó. Dù sao thì bất kỳ cách build nào cũng đều hoạt động được, chỉ cần bạn đảm bảo rằng mình sẽ chạy được trình duyệt Chromium vừa build xong.

Bare-Metal Rust

Chủ đề chuyên sâu Bare-Metal Rust là khóa học một ngày hướng dẫn sử dụng Rust cho phát triển nhúng (bare-metal). Nội dung về vi điều khiển và bộ xử lý ứng dụng sẽ được bao quát trong phần này.

Về phần vi điều khiển, bạn sẽ cần mua trước bo mạch BBC micro:bit v2. Mỗi người sẽ cần cài đặt một số packages dựa theo miêu tả ở trang chào mừng.

Tính đồng thời trong Rust

Chủ đề chuyên sâu Tính đồng thời trong Rust là khóa học một ngày hướng dẫn về khái niệm đồng thời async/await điển hình.

Bạn sẽ cần thiết lập một crate mới và tải xuống các gói phụ thuộc cần thiết để sẵn sàng chạy. Rồi bạn có thể copy/paste các ví dụ vào src/main.rs để thử nghiệm:

cargo init concurrency
cd concurrency
cargo add tokio --features full
cargo run

Thời khóa biểu:

  • Ngày 3 Buổi Sáng (2 tiếng và 20 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Threads30 minutes
Channels20 minutes
Send and Sync15 minutes
Shared State30 minutes
Bài tập1 hour and 10 minutes
  • Buổi Chiều (3 tiếng và 20 phút, bao gồm thời gian nghỉ)
SegmentThời lượng
Async Basics30 minutes
Channels and Control Flow20 minutes
Pitfalls55 minutes
Bài tập1 hour and 10 minutes

Quy Chuẩn

Khóa học này hướng tới tính tương tác cao nên chúng tôi khuyến khích để các câu hỏi dẫn bạn đi khám phá nhiều thứ thú vị của Rust!