P.CAR.01 应该尽量把项目划分为合理的 crate 组合
【描述】
将整个项目按一定逻辑划分为合理的 crate,在工程方面有利于组件化。并且 crate 是 Rust 的编译单元,也有助于提升编译速度。
但需要注意,crate 之间的依赖关系应该是单向的,避免相互依赖的情况。
但 Rust 中编译时间、性能、编译大小之间,在考虑优化的时候也是需要权衡的。
内联是优化的关键,当编译单元越大,内联优化效果就越好。所以需要权衡 crate 划分的粒度。
【描述】
将整个项目按一定逻辑划分为合理的 crate,在工程方面有利于组件化。并且 crate 是 Rust 的编译单元,也有助于提升编译速度。
但需要注意,crate 之间的依赖关系应该是单向的,避免相互依赖的情况。
但 Rust 中编译时间、性能、编译大小之间,在考虑优化的时候也是需要权衡的。
内联是优化的关键,当编译单元越大,内联优化效果就越好。所以需要权衡 crate 划分的粒度。