title | description | duration |
---|---|---|
Module 0.1 - Introduction to Rust |
Introduction to Rust |
30 minutes |
Notes:
Hi everyone, welcome to this openrust course by OpenGuild Chào và giới thiệu bản thân, giới thiệu course, giới thiệu openguild
- High-level language features without performance penalties
- Program behaviors can be enforced at compile time
- Enhanced program reliability
- Built-in dependency management, similar to npm
- Quickly growing ecosystem of libraries
- Friendly & welcoming developer community
Notes: một số lý do để sử dụng ngôn ngữ lập trình Rust, nhấn mạnh những ưu điểm của nó. Các tính năng của ngôn ngữ cấp cao mà không bị giảm hiệu suất:
Rust cung cấp các tính năng thường thấy ở các ngôn ngữ lập trình cấp cao, như cú pháp dễ hiểu và các trừu tượng hiện đại, mà không phải hy sinh hiệu suất. Điều này có nghĩa là các nhà phát triển có thể viết mã hiệu quả và sạch sẽ hơn mà không phải lo lắng về chi phí hiệu năng khi chạy. Hành vi của chương trình có thể được kiểm tra ở thời điểm biên dịch:
Trình biên dịch của Rust thực hiện các kiểm tra an toàn và đúng đắn khác nhau trong quá trình biên dịch. Điều này giúp phát hiện lỗi sớm, giảm thiểu các lỗi trong chương trình cuối cùng. Nâng cao độ tin cậy của chương trình:
Nhờ các kiểm tra ở thời điểm biên dịch, Rust đảm bảo an toàn bộ nhớ và tính đồng thời mà không có các xung đột dữ liệu. Điều này nâng cao độ tin cậy của các chương trình bằng cách ngăn chặn các lỗi lập trình thông thường. Quản lý phụ thuộc tích hợp, tương tự npm:
Rust đi kèm với Cargo, một hệ thống quản lý gói và xây dựng tích hợp. Cargo giúp đơn giản hóa việc quản lý các phụ thuộc, xây dựng dự án và thậm chí chạy các bài kiểm tra, tương tự như cách npm hoạt động cho JavaScript. Hệ sinh thái thư viện phát triển nhanh chóng:
Cộng đồng Rust đang tích cực phát triển một hệ sinh thái phong phú các thư viện (crates) có thể dễ dàng tích hợp vào các dự án, giúp phát triển nhanh chóng và tái sử dụng mã. Cộng đồng phát triển thân thiện và chào đón:
Cộng đồng Rust được biết đến là hỗ trợ và hòa đồng, rất hữu ích cho người mới học cũng như các nhà phát triển có kinh nghiệm, tạo ra một môi trường tích cực để hợp tác và phát triển.
- First-class multithreading
- Compiler error to improperly access shared data
- Type system:
- Can uncover bugs at compile time
- Makes refactoring simple
- Reduces the number of tests needed
- Module system makes code separation simple
- Adding a dependency is 1 line in a config file
- Tooling:
- Generate docs, lint code, auto format
Notes:
rust là một lựa chọn hấp dẫn cho lập trình viên Multithreading hạng nhất:
Rust hỗ trợ đa luồng (multithreading) một cách mạnh mẽ và an toàn. Trình biên dịch của Rust sẽ tạo ra lỗi nếu bạn cố gắng truy cập không đúng cách vào dữ liệu chia sẻ giữa các luồng, giúp ngăn chặn các lỗi đồng bộ hóa. Hệ thống kiểu dữ liệu:
Có thể phát hiện lỗi khi biên dịch: Hệ thống kiểu của Rust giúp phát hiện lỗi ở thời điểm biên dịch, giảm thiểu lỗi runtime. Làm cho việc tái cấu trúc đơn giản: Việc thay đổi mã (refactoring) trở nên dễ dàng hơn vì hệ thống kiểu giúp đảm bảo tính đúng đắn của mã sau khi thay đổi. Giảm số lượng bài kiểm tra cần thiết: Bởi vì nhiều lỗi được phát hiện sớm, số lượng kiểm tra cần thiết để đảm bảo mã hoạt động đúng cũng giảm đi. Hệ thống module làm cho việc phân tách mã trở nên đơn giản:
Rust có hệ thống module mạnh mẽ giúp phân chia mã nguồn thành các phần nhỏ hơn, dễ quản lý hơn. Thêm một phụ thuộc chỉ là một dòng trong file cấu hình:
Việc thêm các thư viện phụ thuộc (dependencies) trong Rust rất đơn giản, chỉ cần thêm một dòng vào file cấu hình (Cargo.toml). Công cụ hỗ trợ (Tooling):
Tạo tài liệu, kiểm tra mã, tự động định dạng: Rust cung cấp các công cụ để tạo tài liệu tự động, kiểm tra mã (linting), và định dạng mã (auto-formatting), giúp cải thiện chất lượng và duy trì mã dễ dàng hơn.
- rustup
- Manages Rust installation
- Visual Studio Code
- Coding environment
- MSVC C++ Build Tools
- Needed to build on Windows
- Mac
- brew install rustup-init
- brew install --cask visual-studio-code
- Linux
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- OR use package manager
- After package manager install:
- rustup toolchain install stable
- Official language guide https://doc.rust-lang.org/book/
- Official documentation portal https://www.rust-lang.org/learn
- Online documentation of all crates.io crates https://docs.rs/
- Official crates repository https://crates.io
- Search for crates by category and trends https://lib.rs
- Concise & comprehensive explanation of the Rust language, tooling, and coding guide https://cheats.rs
- Rust regular expression tester https://rustexp.lpil.uk/
- Test code snippets in your browser https://play.rust-lang.org/
- Detailed information on writing macros https://danielkeep.github.io/tlborm/book/README.html
- Checklist & guidelines when releasing your library for public use https://rust-lang.github.io/api-guidelines/about.html List of applications & tools written in Rust https://awesome-rust.com