架构决策记录:Rust 编程语言
决策编号:AR-001
决策标题:采用 Rust 编程语言
日期:2021 年 12 月 1 日
状态:已接受
问题陈述
随着阿拉继续开发软件应用,阿拉发现缓解潜在个安全漏洞、防止运行时错误越来越有挑战。用 C 搭 C++ 迭类现成个编程语言,阿拉仍旧碰着缓冲区溢出、内存泄漏,还有导致应用崩溃个未定义行为迭类问题。阿拉需要一种提供内存安全保证、又足够高效、可以支持性能关键应用个编程语言。
考虑事项
有好几种编程语言是为了解决现有个问题而设计个。其中,Rust 编程语言因为独特个设计特点,得到开发者社区个高度关注。考虑事项包括;
内存安全搭安全性
性能搭效率
社区支持搭采用情况
学习曲线
工具搭生态
搭现成软件系统个兼容性。
限制
采用一种新个编程语言,需要重新培训开发者,要花辰光搭资源。拿语言集成进现成个开发工作流可能是个挑战。阿拉必须确保搭现成系统兼容,并且避免破坏性个更改,来维持连续性。
实施
阿拉个开发团队会接受培训,学习并且熟悉 Rust 编程语言。
阿拉会用 Rust 试用性地创建一个新项目,来评估伊对阿拉开发目的个兼容性搭适合性。
阿拉会逐步拿用 C 搭 C++ 写个现成系统迁移到 Rust。
阿拉会搭 Rust 社区合作,探索可以改进阿拉开发工作流个现成工具搭库。
阿拉会监控 Rust 个性能,并且定期搭现成编程语言个性能比较。
阿拉会采取长期个办法,平衡培训、集成个成本搭使用 Rust 个潜在好处。
理据
阿拉采用 Rust,是因为伊独特个功能设计成提供内存安全搭安全保证,同时保持性能搭效率。Rust 稳固个类型系统、借用检查器搭内存安全概念,让伊非常适合开发性能关键搭安全关键个应用。而且,Rust 有庞大个开发者社区,让阿拉可以用到支持阿拉开发工作流个各种工具、库搭生态。虽然 Rust 有学习曲线,勿过阿拉相信采用 Rust 个好处超过成本,并且为持续增长搭创新提供了出色个机会。
后果
采用 Rust 需要投入大量辰光搭资源来培训开发者,并且拿语言集成进现成个开发工作流。
采用 Rust 可能搭现成系统造成一定程度个兼容性问题,需要重构搭修改。
采用 Rust 可能吸引想参与令人兴奋个项目个 Rust 开发者,从而增加可以为阿拉项目做贡献个开发者数量。
搭现成个语言比起来,采用 Rust 可能带来更加好个性能、效率搭安全性。
最后,采用 Rust 有减少阿拉应用里安全漏洞个潜在好处。