在最初学习 Rust 的那几年,我觉得 Rust 有rustfmt
和Clippy
这样的静态检查工具,就没有必要搞什么编码规范了。
也许大部分人也是这么想的,所以整个 Rust 社区现在都非常依赖这两个工具。
但我通过对 Rust 社区里各种开源项目观察,虽然大家都在用这两个工具,但却对这两个工具依赖的规则都不是非常了解。
比如,有的项目将 rustfmt
里的规则全部写到 rustfmt.toml
文件中,也不管里面有多少规则其实是默认的;有的项目则严格依赖 clippy
的警告去修改代码,而不去思考是否适合当前场景。
Rust 语言优秀的地方就在于,让开发者在编写代码的过程中就去思考代码的安全性和健壮性。Rust 项目每天都在不断增多,社区在不断涌入新人。rustfmt
和 clippy
这种工具也只能在他们编写完代码之后,才能进行检测,无法在编写代码的过程中给予其规范和指导。并且 rustfmt
和 clippy
只记录了一些可以静态检查的规则,实际 Rust 编程中还有一些原则性的问题是无法检测的。所以,社区需要《Rust 编码规范》。
《Rust 编码规范》有以下四个好处:
rustfmt
和 clippy
这样的工具的规则,可以更好地做出决策。rustfmt
和 clippy
进化。《Rust 编码规范》中文版项目仓库地址:https://github.com/Rust-Coding-Guidelines/rust-coding-guidelines-zh[1]
《Rust 编码规范》在线渲染版地址:https://rust-coding-guidelines.github.io/rust-coding-guidelines-zh/index.html[2]
目前《Rust 编码规范》包括以下六大部分:
rustfmt
、 clippy
等静态分析工具,以及其他一些安全类工具。目前发布的是 《Rust 安全编码规范》 初稿。
rustfmt
和 clippy
配置模板。
1
2
3
4
目前发布的初稿还比较粗糙,需要大家一起贡献完善。
欢迎各大使用 Rust 开发产品的公司和开源项目团队试用和反馈。
如果愿意长期一起维护和完善该规范的朋友,可以申请加入 Rust编码规范 SIG 小组。
sig
目前已经得到了以下公司中团队成员和开源项目作者的支持:
也欢迎各大 Rust 开发者和爱好者们,一起参与讨论和贡献。在 Rust 编码规范的 GitHub 项目下的 Discussions[3] 里发帖交流。
关于具体如何贡献,我后面也会写一篇贡献者参考文档。
本规范未来计划大概分个阶段:
1.0
的状态。希望能借助开源的力量,在 2022 年完成以上三个阶段的目标。
[1]
https://github.com/Rust-Coding-Guidelines/rust-coding-guidelines-zh: https://github.com/Rust-Coding-Guidelines/rust-coding-guidelines-zh
[2]
https://rust-coding-guidelines.github.io/rust-coding-guidelines-zh/index.html: https://rust-coding-guidelines.github.io/rust-coding-guidelines-zh/index.html
[3]
Discussions: https://github.com/Rust-Coding-Guidelines/rust-coding-guidelines-zh/discussions