Rust 的面向对象编程————系列介绍

5 minute read Published: 2019-05-22

本文翻译自博文 Rust for OOP - Series Introduction

所有权利归原作者所有。


学习一门编程语言是一个长期而有挑战的过程。开始都是学习基本的语法和概念。有了这些只是之后,就能够开始写简单的项目,通常项目只包含一个源文件。但是某些时候,代码变得太大,心智无法处理这么一大块代码。我倾向于将之视为下一个挑战。它没有一开始看到的那么简单。你不仅需要将文件在物理上做分割,即使它也不总是那么简单。你需要用逻辑上的组件来组织代码。更重要的是,你想要能够以一种标准的方式来使用代码,任何时候它都能够和期望的一样运行。正是这最后一点才能让你的项目扩展变大。按常规或者「惯用法」操作的代码更容易学习,集成起来更舒服,也更不容易失败。你将从你使用的代码中学到期望的东西。在 Rust 的世界里,我已经看到大量关于「Rust 惯用法」的讨论。这比你看到的其它语言要多得多。我认为这有 3 个原因:

  1. 大多数 Rust 开发者已经在其它语言上很有经验了。他们更意识到「惯用代码」的价值。

  2. 「惯用代码」 是实现安全代码的一个事实上的方式,而它和 Rust 的主题非常吻合。

  3. Rust 编译器是无情的。「惯例代码」能让你轻松实现想要的功能而不会让编译不通过。

让我的 Rust 项目扩展更大是我的下一个目标。在写我的简单的聊天程序的时候,我已经意识到精通 Rust 的某些方面很有可能能让我的代码更加符合惯例。这些方面都会写成一系列博客。我离精通 Rust 的这些方面还差得很远,但我还是要分享我已经学会的东西。另外也会介绍我如和在我的聊天项目中如何使用它们。

这个系列的主题有:

  1. 项目结构————基础

  2. 模式匹配 & 枚举

  3. 组合子

  4. Result 类型

  5. Option 类型

  6. Trait

下面一些主题也有可能会在这个系列里面:

  1. 迭代器 & 基本函数式编程

  2. 闭包

  3. 生命周期

  4. 共享指针

  5. 并发(可能某天会写成一个单独的系列)

我对该系列的目标是针对具有与我相似背景的开发人员,也就是在掌握了一种高度强调面向对象编程的编程语言(例如,Java,C++,Python 等等)之后学习 Rust 的开发人员。你可能没有任何 Rust 的知识也可以。你必须了解所有权。你可以在这里阅读我写得关于所有权 的系列文章。最后,我不打算介绍语言的一些基本语法和概念(例如结构,基本控制流程),我认为很容易理解这些。