跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • rust 的模块化太繁琐
未分類
20 2 月 2021

rust 的模块化太繁琐

rust 的模块化太繁琐

資深大佬 : syaka 3

rust 的模块化是在太繁琐:

  1. 学习了 npm 的糟粕,每个文件当作一个模块。尤其是 xxx/mod.rs 简直了。
  2. crate 内的模块还需要在 lib.rs 声明才能使用。

这两点导致 crate 里导出充斥着无意义的 mod.rs ,而 mod.rs 的内容全是无意义的 pub mod xxx 。

跟 Go 的模块化比起来,rust 的模块化设计真的是糟粕。

大佬有話說 (18)

  • 資深大佬 : Thetruechar

    很喜欢这样的引战帖

  • 資深大佬 : Leviathann

    反正我觉得官方书的模块化那章写的很烂
    最后一节忽然说文件夹也是 path 的一部分
    也没提 lib 和 binary 怎么交互
    试了下才知道把 lib 当成外部 package 一样用 cargo 文件夹名才能导进来

  • 資深大佬 : GTim

    nnd. 所有权和所有权转让、指针、智能指针、装箱等等才是大头啊,这几个你中有我,我中有你,不来回个 50 遍根本理解不了

  • 資深大佬 : HeapOverflow

    一看就是没被 c++虐过

  • 資深大佬 : CatCode

    传送门:
    https://doc.rust-lang.org/edition-guide/rust-2018/module-system/path-clarity.html#no-more-modrs

  • 資深大佬 : hunk

    花了几天时间看 rust 和 go,准备先从 go 学起。
    有个需要大并发的需求.

  • 資深大佬 : palfortime

    2018 可以不用 mod.rs 。写 mod xxx,有什么不好,这样更明确清晰。

  • 資深大佬 : fakeshadow

    那如果让你知道了 pub(self/super/crate) 是不是会更抓狂?

  • 主 資深大佬 : syaka

    @palfortime 没发现一个文件作为一个 mod 有什么优点,现在的模块化语法太繁琐了。

  • 主 資深大佬 : syaka

    @Thetruechar 非引战,实际项目中实在繁琐的不行,更理解不了为什么一个文件作为一个 mod 有什么收益。

  • 主 資深大佬 : syaka

    @GTim 所有权是精髓,但是现在的模块化方案真的是糟粕

  • 主 資深大佬 : syaka

    @HeapOverflow 还真是,人生苦短,我用 Golang

  • 主 資深大佬 : syaka

    @CatCode 我已经明白了模块化是怎么回事,只是实在不理解如此繁琐的设计有什么必要

  • 資深大佬 : maxat20xx

    @GTim 不能同意更多…

  • 資深大佬 : CatCode

    @syaka 可能是早期的设计吧。而即使到了 2018 edition 也不便于改太狠,毕竟兼容性还是要考虑的。
    有的东西,在早期可能是当时很好的设计。但是随着技术发展,更好的设计可能会出现,然后在对比原来的设计,就发现原来的设计不是那么美好。

  • 資深大佬 : Jirajine

    我到觉得两者没太大优劣之分。
    rust 的单文件模块,一个模块代码很多的时候文件就会太长,不得不分模块。而 go 就可以用多个文件写同一个模块。
    而 go 用目录分模块,模块很多一个模块代码很少的时候也会很麻烦,并且文件名不体现模块名。

    但是 rust 整个的包管理 crate 系统要更好,lib 的归 lib,bin 的归 bin,比 go 都混到一起更清晰。

  • 資深大佬 : plko345

    喜欢 rust,但这点也同意主的观点

  • 主 資深大佬 : syaka

    @Jirajine go 用一个目录作为一个模块(和 Java 一样),一般是目录名体现模块名。
    cargo 是包管理工具,这一点确实比 go modules 好。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具