引言“代码更像是‘指导原则’,而不是实际规则。”——赫克托·巴博萨ScottMeyers的原版《EffectiveC++》一书取得了巨大的成功,因为它引入了一种新的编程书籍风格,专注于从实际创建C++软件的经验中学习到的指南。值得注意的是,这些指南都是在解释为什么它们是必要的原
“代码更像是‘指导原则’,而不是实际规则。” —— 赫克托·巴博萨
Scott Meyers 的原版《Effective C++》一书取得了巨大的成功,因为它引入了一种新的编程书籍风格,专注于从实际创建 C++ 软件的经验中学习到的指南。值得注意的是,这些指南都是在解释为什么它们是必要的原因背景下进行讲解的 —— 允许读者自行决定他们特定的场景是否需要违反规则。
《Effective C++》的第一版于1992年出版,那时尽管 C++ 还很年轻,但它已经是一个包含了众多隐患的复杂语言;拥有一本指导其不同特性交互的指南是至关重要的。
Rust 也是一种年轻的语言,但与 C++ 相比,它几乎没有隐患。其类型系统的强大和一致性意味着如果一个 Rust 程序能够编译,那么它已经有一个不错的机会可以正常工作 —— 这种现象之前只在更学术、更不易接近的语言如 Haskell 中观察到。
然而,这种安全性 —— 包括类型安全和内存安全 —— 是有代价的。Rust 因为其陡峭的学习曲线而出名,新来者必须经历与借用检查器的斗争、重新设计数据结构以及被生命周期搞得晕头转向的入门仪式。一个能够编译的 Rust 程序可能有很大的机会正常工作,但是为了使其编译而进行的斗争是真实存在的 —— 即使 Rust 编译器的错误诊断非常有助于解决问题。
因此,这本书的目标层次与其他《Effective <语言>》书籍略有不同;有更多的条目涵盖了 Rust 的新概念,尽管官方文档已经包括了这些主题的很好介绍。这些条目的标题类似于“理解…”和“熟悉…”。
Rust 的安全性也导致完全没有标题为“绝不…”的条目。如果你真的不应该做某件事,编译器通常会阻止你这样做。
尽管如此,文本仍然假设读者对语言的基础有所了解。它还假设使用的是2018版的 Rust,使用稳定工具链。
用于代码片段和错误信息的具体 rustc
版本是 1.60
。Rust 现在已经足够稳定(并且有足够的向后兼容性保证),代码片段不太可能需要为后续版本进行更改,但错误信息可能会因你使用的编译器版本而有所不同。
文本还多次引用并与 C++ 进行了比较,因为这可能是最接近等价的语言(特别是 C++11 的移动语义),也是 Rust 新手最可能遇到的前一种语言。
组成这本书的条目分为六个部分:
尽管“概念”部分可以说是比“类型”部分更基础,但它故意放在第二位,以便从开始到结束阅读的读者可以先建立一些信心。
我的感谢送给:
原文点这里查看
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!