Rust 安全性
-
Rust 的思想和优点
- 思想:明确/(零成本)抽象/赋能
- 优点:兼具高性能/安全性/表达力
-
代码缺陷的纠正
- 语法缺陷 -> RLS/Rust Analyser
- 类型安全缺陷 -> 类型系统
- 内存和资源安全缺陷 -> 所有权/借用检查/生命周期
- 并发安全缺陷 -> 所有权/借用检查/生命周期 + 类型系统
- 错误处理缺陷 -> 编译器告警
- 逻辑缺陷 -> 单元测试
- 功能缺陷 -> 集成测试
- 用户体验缺陷 -> 端到端测试/手工测试
-
代码缺陷的代价
- 不引入任何缺陷 -> 不可能
- 在输入代码时发现 -> 毫秒
- 下次构建/测试时检测到缺陷 -> 秒/分钟
- 提交 PR 后 CI 发现 -> 分钟/小时
- Code Review 时发现 -> 小时
- 集成到 master 时发现 -> 小时/天
- 部署时发现 -> 天/周
- 在用户使用时发现 -> 周/月/年
Rust 目前的生态
大量高质量的顶级开源项目,一线公司纷纷采用。应用场景广泛,从嵌入式到 Web 应用。
- 数据库
- Sled
- TiKV
- 游戏引擎
- Bevy
- Amethyst
- 数据处理
- Arrow
- Ballista
- 图形界面
- Tauri
- Druid
- Iced
- 区块链
- 高性能网络及 I/O 开发
- Tokio
- smaltcp
- Warp
- Tonic
- Tungstenite
- Quiche
- 运行时
- Deno
- Wasmer
- 编程语言
- Rhai
- mun-lang
- 硬件相关场景(OS、Hypervisor、Device Driver...)
- Firecracker
- RedoxOS
- Fuchsia
- Linux*
- Android*
Rust 的现在和未来
-
国内外主要 Rust 职位方向
- 后端高性能网络服务开发
- 数据库/存储
- 跨平台基础类库/SDK
- 可信计算/数据与网络安全/隐私
- 边缘计算
- 区块链
-
大厂使用情况及未来潜力
- 字节:飞书
- PingCap:TiKV
- Dropbox/Figma:文件同步引擎
- Cloudflare:边缘计算
- Facebook:区块链、SCM工具
- Amazon:AWS(e.g. firecracker VMM)
- Discord:状态服务
使用 Rust 的感受
- 大部分应用场景,Rust 已经足够成熟
- Rust 让重构代码变得轻松
- Rust 体现了软件开发的诸多实践,学习 Rust 能让你成为更好的程序员
- Rust 可以帮助你提升其他语言的能力
- 思维转换,接纳所有权和生命周期
- 抓住现象后面的本质
- 在实践中学习