|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/rust-os-system/
课程评论:没有评论
**Rust编程入门(最高峰·最难解语言)课程总结** 本课程深入探讨了被誉为“最高峰·最难解”的Rust编程语言。Rust已连续八年被Stack Overflow开发者调查评为“最受欢迎”的编程语言。尽管Rust因其深度和复杂性而闻名,尤其在日本,即使是经验丰富的工程师也难以完全掌握,但课程强调,即使部分理解Rust也能显著提升技术竞争力。 Rust融合了C/C++级别的自由度和高速处理能力,同时提供了强大的内存安全保障。该语言由Mozilla开发,现已由Rust Foundation(包括Google、Microsoft、Facebook、AWS等巨头)接管,预示着其未来在编程界的关键地位。 Rust的应用领域广泛,可作为Web应用程序的Golang替代品,嵌入式设备上的C/C++替代品,以及WebAssembly(WASM)的开发语言。作为一门系统编程语言,Rust甚至能够用于操作系统开发。Google已宣布在Android OS开发中采用Rust,而Microsoft已开始在Windows 10中使用Rust重写部分操作系统功能。此外,Rust与AWS Lambda的结合尤为高效,能够通过其极短的执行时间和优化的内存使用,实现AWS Lambda的成本效益最大化。 **课程重点学习内容包括:** * 系统内存结构与指针 * 不可变性(Immutable)与可变性(Mutable) * 变量遮蔽(Shadowing) * 栈(Stack)与堆(Heap) * 字符串切片(String Slices)与 String 类型 * 所有权(Ownership)与双重释放(Double Free)错误 * 栈溢出(Stack Overflow) * Vector 类型与 Box 指针类型 * 所有权、引用(References)与借用(Borrowing) * 生命周期(Lifetimes)(包含Non-Lexical Lifetime) * 悬垂指针(Dangling Pointers) * RAII(Resource Acquisition Is Initialization) * 泛型(Generics) * 泛型生命周期注解(Generic Lifetime Annotations) * 结构体(Structs)与枚举(Enums) * 匹配(Matching)模式 * 特性(Traits)与特性约束(Trait Bounds) * 单元测试(Unit Tests) * 外部库与自定义库
本コースでは、コンピュータ言語の最高峰・最難関言語であるRustの言語仕様について学習します。開発者が最も好きな(Most loved)プログラミング言語 8年連続1位 *Stack Overflow Developer Survey***Rustは近年のプログラミング言語で最も難解な言語であり、特に日本国内においては第一線で活躍するエンジニアやベテランエンジニアでもRustを完全に理解している人はほとんどいない為、部分的にでも理解できるとかなりのスキルの差別化になると思います。***Rustは、C/C++レベルの自由度/高速処理性能を備えつつ強力なメモリ安全性を保証してくれる素晴らしい言語です。Mozilla社によって開発されてきましたが、2021年2月にRust Foundationが設立され(メンバー: Google, Microsoft, Facebook, Mozilla, AWSなど)各社がRust言語が将来に渡り非常に重要な言語であると位置付けていることが分かります。具体的な使用例としては、Webアプリケーションでは Golangの代替、組み込み機器におけるC/C++の代替、Web Assembly(WASM) 、またRustはシステムプログラミング言語でありOSを開発することも可能です。GoogleもAndroid OS開発にRustを採用することを2021年4月に発表し、Microsoftは既にWindows 10から一部のOSの機能をRustで置き換えています。AWS Lambdaとの相性も非常に良いです、AWS Lambdaは実行処理時間と割り当てメモリに応じて課金されるため、実行処理時間が短くメモリが最適化されたRustにより最小コストでAWS Lambdaを運用出来ます。**学習のポイント**システムのメモリ構造とポインタイミュータブルとミュータブルシャドーウィングスタックとヒープ文字列スライスとString型所有権と二重解放エラーStack overflowVector型とBoxポインタ型所有権・参照・借用ライフタイム (Non-Lexical Lifetime)ダングリングポインタRAII (Resource Acquisition Is Initialization)GenericsGeneric lifetime annotation構造体と列挙型マッチングパターントレイトとトレイト境界ユニットテスト外部ライブラリとカスタムライブラリ