Bạn sẽ đạt được gì
Sau khóa học này, bạn sẽ có những năng lực cụ thể sau:
- Đọc hiểu và sửa được code Rust trong một codebase tài chính có sẵn, thay vì chỉ chép được ví dụ từ sách.
- Giải thích và áp dụng đúng ownership, borrowing và lifetimes khi dữ liệu là tiền, số dư, giao dịch, nơi một lỗi nhỏ cũng thành lỗi thật.
- Dùng traits và generics để trừu tượng hóa domain model tài chính mà không biến code thành mớ kiểu phức tạp không ai bảo trì nổi.
- Viết luồng tiền bằng
Resultthay vìpanic, và biết chỗ nào panic là chấp nhận được, chỗ nào là thảm họa. - Dùng async/await với Tokio và chia sẻ state an toàn giữa các request đồng thời.
- Tự dựng một service ngân hàng nhỏ: API, xử lý giao dịch, error handling và async an toàn.
- Đủ tự tin ứng tuyển vị trí lập trình viên Rust tại ngân hàng.
Khóa học này dành cho ai
Đây là khóa beginner, không yêu cầu biết Rust trước đó. Bạn cần đã lập trình ở một ngôn ngữ khác (Java, C#, Python, Go...) và quen với các khái niệm cơ bản: biến, hàm, kiểu dữ liệu, vòng lặp.
Bạn không cần biết gì về tài chính ngân hàng hay Rust. Nhưng bạn nên sẵn sàng cho kiểu học này: Rust sẽ không cho bạn viết code ẩu rồi sửa sau. Compiler là người review khó tính nhất bạn từng gặp, và đó chính là lý do các ngân hàng chọn nó.
Nếu bạn đang tìm cách học Rust nhanh để làm side project vui vẻ, khóa này hơi nặng. Nếu bạn muốn hiểu vì sao code tiền bạc phải viết khác code thường, thì đúng chỗ.
Lộ trình khóa học
Module 1: Rust core cho fintech
- 1.1 Ownership và borrowing khi xử lý tiền. Vì sao
Stringvà&strkhác nhau, khi nào move làm mất dữ liệu, và cách tránh clone vô tội vạ trong vòng lặp giao dịch. - 1.2 Lifetimes và domain model tài chính. Gắn lifetimes vào struct
Transaction,Accountđể compiler giúp bạn giữ tính nhất quán thay vì tự nhớ. - 1.3 Traits và generics để trừu tượng hóa. Viết trait cho các loại tài khoản, cổng thanh toán, và dùng generics để tái sử dụng logic mà không mất type safety.
- 1.4 Checkpoint: Rust core cho fintech. Bài kiểm tra củng cố toàn bộ nền tảng trước khi sang phần khó hơn.
Module 2: Error handling và concurrency an toàn
- 2.1 Result thay cho panic trong luồng tiền. Thiết kế error type cho nghiệp vụ ngân hàng, phân biệt lỗi hệ thống và lỗi nghiệp vụ, và vì sao
unwrap()trong handler chuyển tiền là cách nhanh nhất để mất việc. - 2.2 Async/await, Tokio và chia sẻ state an toàn. Chạy nhiều request đồng thời, dùng
Arc,Mutex,RwLockđúng chỗ, và hiểu vì sao giữ lock qua.awaitlà cạm bẫy kinh điển. - 2.3 Checkpoint: Error handling và concurrency. Kiểm tra lại trước khi bước vào capstone.
Module 3: Capstone service ngân hàng bằng Rust
- 3.1 Dựng API với axum và cấu trúc project. Từ
main.rstrống đến service có route, state và cấu trúc thư mục sống được lâu dài. - 3.2 Xử lý giao dịch: validation và tính nhất quán. Kiểm tra số tiền, số dư, idempotency, và giữ cho logic giao dịch không tự mâu thuẫn.
- 3.3 Kết nối database, test và quan sát lỗi. Nối tầng lưu trữ, viết test cho luồng tiền, và log lỗi đủ để debug lúc 2 giờ sáng.
- 3.4 Checkpoint: Capstone service ngân hàng. Chốt lại toàn bộ khóa học.
Khóa học vận hành thế nào
Khóa gồm 11 bài, tổng khoảng 290 phút. Đây là con số thời gian học, chưa tính lúc bạn ngồi gõ code và vật lộn với compiler. Thực tế bạn nên dự trù gấp đôi nếu muốn làm hết bài tập.
Mỗi bài thường có ba phần:
- Lý thuyết ngắn, đi thẳng vào cơ chế và cạm bẫy thực chiến, không lan man lịch sử ngôn ngữ.
- Thực hành, code theo hướng dẫn và tự sửa khi compiler phàn nàn.
- Checkpoint quiz ở cuối mỗi module, để bạn biết mình thật sự hiểu hay chỉ đọc lướt.
Cách học khuyến nghị: đi tuần tự. Các bài được thiết kế để bài sau dùng lại kiến thức bài trước, đặc biệt là ownership và error handling, hai thứ xuất hiện lại ở mọi module. Bạn có thể bỏ qua phần lý thuyết nếu đã quen, nhưng đừng bỏ qua phần thực hành và checkpoint. Đó là chỗ bạn phát hiện mình chưa hiểu.
Dự án xuyên suốt: Bank Service
Toàn khóa có một dự án duy nhất, chạy xuyên suốt từ Module 1 đến Module 3: một service ngân hàng nhỏ bằng Rust. Đây không phải các bài tập rời rạc, mà là cùng một codebase được lớn dần.
Bạn sẽ đi từ domain model (Account, Transaction) với ownership và lifetimes đúng chuẩn, qua error type cho nghiệp vụ, đến API bằng axum, xử lý giao dịch với validation và tính nhất quán, rồi nối database, viết test và quan sát lỗi.
Các bài nuôi dự án theo thứ tự:
- 1.1 đến 1.3 cho bạn domain model và trait trừu tượng hóa, phần xương sống của service.
- 2.1 định hình error handling cho luồng tiền.
- 2.2 đưa async và state chia sẻ vào, để service chịu được nhiều request cùng lúc.
- 3.1 đến 3.3 biến tất cả thành service chạy được: API, giao dịch, database, test.
Đến cuối khóa, bạn có một repo đủ để đưa vào CV và đủ để nói về nó trong buổi phỏng vấn. Đó là mục tiêu cuối cùng: không chỉ biết Rust, mà chứng minh được mình làm được việc với Rust trong môi trường tài chính.