< 返回版块

w 发表于 2021-05-16 14:26

楼主一直做的是Java开发,java里很多类库往往包含很多功能。比如lang3,guava这些工具类库。但在rust中很少见到这种crate,很多crate还会把一些功能拆分到不同的crate里,比如actix。更多的都是仅包含单一功能的,比如log,cache。在开发时候往往需要引入多个crate而不是像java里一样可能一个类库就够了。这种现象是我的错觉还是rust社区的一种特点或习惯(做小而精的crate)。

评论区

写评论
Aya0wind 2021-05-16 17:37

粒度分的细就是方便你自己按情况选用的,不需要的功能就不要编译加进来,如果你想要合集,可以把几个crate放一起,在一个新的crate里全部导出,并不是什么难事,而且还可以使用feature flag来让用户自定义启用哪些模块。 如果像Java那样用全家桶式的框架,不好自定义不说,由于Rust默认静态编译,如果直接一把梭,不仅大大增加编译时间,最后生成的文件还会很大,实在没有必要。
还有,开发本来就是要分子模块的,分的多自然也方便复用,而且由于语言层面保证的crate之间的独立性,各crate可以单独开发单独测试。

苦瓜小仔 2021-05-16 16:12

这有什么疑惑的,没那么多人来开发这种大型 crate 啊。

又要是 Rust 专家,又要在一个领域中有很强的开发经验。你觉得这样的人很多吗?

每个人都是从熟悉 的领域慢慢使用 Rust 的。

Rust 1.0 才 6 周年刚过,Java 发展了多少年。。。

chirsz-ever 2021-05-16 16:10

可能是因为 Rust 的标准库设计得很优秀吧,Java 和 C++ 开发过程中很多时候需要自己造代替标准库的轮子,比如容器和字符串。

1 共 3 条评论, 1 页