Rust程序设计 - [美]吉姆•布兰迪(Jim Blandy)

Rust程序设计

[美]吉姆•布兰迪(Jim Blandy)

出版时间

2020-09-11

ISBN

9787115546494

评分

★★★★★

标签

编程

书籍介绍

本书由两位经验丰富的系统程序员撰写,介绍了一种具有C和C++性能,同时安全且支持并发的新型系统编程语言Rust,解释了Rust如何在性能和安全性之间架起桥梁,以及我们如何用好这门语言。书中主要内容包括:Rust的基本数据类型,关于所有权、引用等概念,表达式、错误处理、包和模块、结构体、枚举与模式等基础知识,Rust语言的特型与泛型,闭包,迭代器,集合,等等。

AI导读
核心看点
  • 由资深系统程序员撰写,深入解析Rust所有权与并发机制
  • 兼顾C++性能与内存安全,详解泛型、闭包及错误处理
  • 通过曼德布洛特集合等实战案例,展示并发编程实现
适合谁读
  • 具备一定编程基础,希望深入理解Rust底层原理的开发者
  • 有C/C++经验,寻求高性能且安全系统编程语言的工程师
  • 不满足于浅显入门,渴望掌握Rust设计哲学的进阶读者
读前提醒
  • 本书非零基础入门教程,建议先了解Rust基本语法再读
  • 部分代码示例可能基于旧版Rust,阅读时需注意版本差异
  • 适合作为工具书查阅,或在学习后用于复习巩固核心概念
读者共识
  • 内容详实且逻辑清晰,比官方指南更具实践指导意义
  • 对核心原理阐述深入,适合反复阅读以深化理解
  • 部分读者认为翻译略显晦涩,但整体评价极高

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "You've heard that Rust lets you write safe, fase, concurrent programs. This is the chapter where we show you how it's done. We'll cover three ways to use Rust threads: 1. Fork-join parallelism 2. Channels 3. Shared muatble state"
  • "A panic is not a crash. It’s not undefined behavior. It’s more like a RuntimeException in Java or a std::logic_error in C++. The behavior is well-defined; it just shouldn’t be happening. Panic is safe. It doesn’t violate any of Rust’s safety rules; even if you manage to panic in the middle of a stan"
  • "Stack unwinding is the default panic behavior, but there are two circumstances in which Rust does not try to unwind the stack. If a .drop() method triggers a second panic while Rust is still trying to clean up after the first, this is considered fatal. Rust stops unwinding and aborts the whole proce"
  • "以上情况的共同点是他们都由(不客气地说)程序员的错误所导致。而行之有效的的一条经验法则是:“不要 panic”。"
  • "None of these compromises are acceptable for Rust:the programmer should havecontroovervalueslifetimes,and the language should be safe.But this is a prettywell-explored area of language design.You can't make major improvements withoutsome fundamental changes. Rust breaks the deadlock in a surprising "
  • "另一方面,元组只允许用常量作为索引,比如t.4。不能通过写成t.i或t[i]的形式来获取第1个元素。"
  • "你会看到用来声明固定大小缓冲区的语法:[0u8;1024],它是一个1KB的缓冲区,用0填充。Rust没有任何能定义未初始化数组的写法。(一般来说,Rust会确保代码永远无法访问任何种类的未初始化值。)"
  • "&mut str类型确实存在,但它没什么用,因为对UTF-8的几乎所有操作都会更改其字节总长度,但切片不能重新分配其引用目标的缓冲区。事实上,&mut str上唯一可用的操作是make_ascii_uppercase和make_ascii_lowercase,根据定义,它们会就地修改文本并且只影响单字节字符。"
作者简介
吉姆•布兰迪(Jim Blandy)Mozilla软件工程师,拥有近40年编程经验和30年自由软件开发经验,是Subversion版本控制系统最初的设计者之一。 贾森•奥伦多夫(Jason Orendorff)资深软件工程师,拥有20余年软件开发经验,目前在为Mozilla Firefox Web浏览器开发JavaScript引擎。
目录
第 1 章 为什么是Rust 1
第 2 章 Rust初体验 5
2.1 下载和安装Rust 5
2.2 一个简单的函数 7
2.3 编写和运行单元测试 9

显示全部
用户评论
有经验的程序员学一门新语言最痛苦的是什么?入门书籍太简单,读了浪费时间,不读还不踏实。本书恰好不是这种。
全且细,看了一个半月了。(翻译挺迷的
非常精彩,翻译顺畅,内容逻辑清晰
优点:全、精、深,当然这也有相反的面,就是块头太大。。
不止教授 Rust 开发过程,对核心原理也有深入阐述,更进一步的是有与其他语言在设计哲学上的对比,值得反复阅读
神书,起于rust,终于编程思想、操作系统、语法设计,aha time 很频繁。
写得挺详细的,比起the book更具有实践性。写过一些rust后带着问题读会有不少收获,比如这个解决了我trait object怎么加上new方法,mpsc怎么用多消费者之类的细节问题。我觉得以后遇到相关问题我也许会时不时翻一翻相关章节。
下载
收藏