• 编程与类型系统
  • 编程与类型系统
  • 编程与类型系统
21年品牌 40万+商家 超1.5亿件商品

编程与类型系统

9 九品

仅1件

北京大兴
认证卖家担保交易快速发货售后保障

作者弗拉德·里斯库迪亚(Vlad Riscutia) 著;赵利通 译

出版社机械工业出版社

出版时间2021-01

版次1

装帧平装

货号13

上书时间2024-09-23

未来书店

十四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 弗拉德·里斯库迪亚(Vlad Riscutia) 著;赵利通 译
  • 出版社 机械工业出版社
  • 出版时间 2021-01
  • 版次 1
  • ISBN 9787111670513
  • 定价 119.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 316页
【内容简介】
本书全面介绍类型系统的特性,从基本类型开始,一直介绍到函数类型和子类型、OOP、泛型编程和高阶类型(如函子和单子)。本书没有关注这些特性背后的理论,而是通过实际应用的方式来解释每种特性。本书说明了如何以及何时使用每种特性来改进代码。
【作者简介】
:
    弗拉德·里斯库迪亚(Vlad Riscutia),Microsoft的首席软件架构师,领导开发了几个大型软件项目,并指导了许多初级软件工程师。
【目录】


前言

致谢

关于本书

类型及可能的取值

常用算法

章 类型简介1

1.1 为什么存在类型2

1.1.1 0和12

1.1.2 类型和类型系统的定义3

1.2 类型系统的优点4

1.2.1 正确5

1.2.2 不可变6

1.2.3 封装8

1.2.4 可组合9

1.2.5 可读11

1.3 类型系统的类型12

1.3.1 动态类型和静态类型12

1.3.2 弱类型与强类型13

1.3.3 类型推断15

小结15

第2章 基本类型17

2.1 设计不返回值的函数17

2.1.1 空类型18

2.1.2 单元类型20

2.1.3 题21

2.2 布尔逻辑和短路21

2.2.1 布尔表达式22

2.2.2 短路计算22

2.2.3 题24

2.3 数值类型的常见陷阱24

2.3.1 整数类型和溢出25

2.3.2 浮点类型和圆整28

2.3.3 任意大数30

2.3.4 题31

2.4 编码文本31

2.4.1 拆分文本31

2.4.2 编码32

2.4.3 编码库34

2.4.4 题36

2.5 使用数组和引用构建数据结构36

2.5.1 固定大小数组36

2.5.2 引用37

2.5.3 高效列表38

2.5.4 二树40

2.5.5 关联数组43

2.5.6 实现时的权衡44

2.5.7 题44

小结44

题45

第3章 组合46

3.1 复合类型47

3.1.1 元组47

3.1.2 赋予意义49

3.1.3 维护不变量50

3.1.4 题53

3.2 使用类型表达多选一53

3.2.1 枚举53

3.2.2 可选类型55

3.2.3 结果或错误57

3.2.4 变体62

3.2.5 题65

3.3 访问者模式65

3.3.1 简单实现66

3.3.2 使用访问者模式67

3.3.3 访问变体69

3.3.4 题71

3.4 代数数据类型71

3.4.1 乘积类型71

3.4.2 和类型72

3.4.3 题72

小结73

题74

第4章 类型安全75

4.1 避基本类型偏执来止错误解释76

4.1.1 火星气候探测者号77

4.1.2 基本类型偏执反模式79

4.1.3 题79

4.2 实施约束80

4.2.1 使用构造函数实施约束80

4.2.2 使用工厂实施约束81

4.2.3 题82

4.3 添加类型信息82

4.3.1 类型转换82

4.3.2 在类型系统之外跟踪类型83

4.3.3 常见类型转换86

4.3.4 题89

4.4 隐藏和恢复类型信息89

4.4.1 异构集合90

4.4.2 序列化92

4.4.3 题95

小结96

题96

第5章 函数类型98

5.1 一个简单的策略模式99

5.1.1 函数式策略100

5.1.2 函数的类型101

5.1.3 策略实现102

5.1.4 一等函数102

5.1.5 题103

5.2 不使用switch语句的机103

5.2.1 类型编程小试牛刀104

5.2.2 机106

5.2.3 回顾机实现111

5.2.4 题112

5.3 使用延迟值避高开销的计算112

5.3.1 lambda113

5.3.2 题115

5.4 使用map、filter和reduce115

5.4.1 map()115

5.4.2 filter()117

5.4.3 reduce()119

5.4.4 库支持122

5.4.5 题123

5.5 函数式编程123

小结123

题124

第6章 函数类型的不错应用126

6.1 一个简单的装饰器模式126

6.1.1 函数装饰器128

6.1.2 装饰器实现130

6.1.3 闭包130

6.1.4 题131

6.2 实现一个器131

6.2.1 一个面向对象的器132

6.2.2 函数式器133

6.2.3 一个可恢复的器134

6.2.4 回顾器实现135

6.2.5 题135

6.3 异步执行运行时间长的作135

6.3.1 同步执行136

6.3.2 异步执行:回调136

6.3.3 异步执行模型137

6.3.4 回顾异步函数141

6.3.5 题141

6.4 简化异步代码142

6.4.1 promise143

6.4.2 创建promise144

6.4.3 关于promise的更多信息146

6.4.4 async/await150

6.4.5 回顾整洁的异步代码152

6.4.6 题152

小结153

题153

第7章 子类型155

7.1 在typescript中区分相似的类型156

7.1.1 结构和名义子类型的优缺点158

7.1.2 在typescript中模拟名义子类型159

7.1.3 题160

7.2 子类型的情况160

7.2.1 安全的反序列化160

7.2.2 错误情况的值164

7.2.3 回顾顶层和底层类型167

7.2.4 题168

7.3 允许的替换168

7.3.1 子类型与和类型169

7.3.2 子类型和集合171

7.3.3 子类型和函数的返回类型172

7.3.4 子类型和函数实参类型174

7.3.5 回顾可变178

7.3.6 题178

小结179

题179

第8章 面向对象编程的元素181

8.1 使用接定义契约182

8.2 继承数据和行为185

8.2.1 “是一个”经验准则185

8.2.2 建模层次186

8.2.3 参数化表达式的行为187

8.2.4 题188

8.3 组合数据和行为189

8.3.1 “有一个”经验准则189

8.3.2 复合类190

8.3.3 实现适配器模式192

8.3.4 题194

8.4 扩展数据和行为194

8.4.1 使用组合扩展行为195

8.4.2 使用混入扩展行为197

8.4.3 typescript中的混入198

8.4.4 题199

8.5 纯粹面向对象代码的替代方案199

8.5.1 和类型200

8.5.2 函数式编程202

8.5.3 泛型编程203

小结204

题204

第9章 泛型数据结构206

9.1 解耦关注点207

9.1.1 可重用的恒等函数208

9.1.2 可选类型210

9.1.3 泛型类型211

9.1.4 题211

9.2 泛型数据布局212

9.2.1 泛型数据结构212

9.2.2 什么是数据结构213

9.2.3 题214

9.3 遍历数据结构214

9.3.1 使用迭代器216

9.3.2 流线化迭代代码220

9.3.3 回顾迭代器225

9.3.4 题226

9.4 数据流226

9.4.1 处理管道227

9.4.2 题228

小结228

题229

0章 泛型算法和迭代器232

10.1 更好的map()、filter()和reduce()233

10.1.1 map()233

10.1.2 filter()234

10.1.3 reduce()234

10.1.4 filter()/reduce()管道235

10.1.5 题236

10.2 常用算法236

10.2.1 使用算法代替循环237

10.2.2 实现流畅管道237

10.2.3 题241

10.3 约束类型参数241

10.3.1 具有类型约束的泛型数据结构242

10.3.2 具有类型约束的泛型算法243

10.3.3 题245

10.4 高效reverse和其他使用迭代器的算法245

10.4.1 迭代器的基础模块247

10.4.2 有用的find()251

10.4.3 高效的reverse()254

10.4.4 高效地获取元素257

10.4.5 回顾迭代器259

10.4.6 题260

10.5 自适应算法260

小结262

题263

1章 高阶类型及其他266

11.1 更加通用的map267

11.1.1 处理结果或传播错误270

11.1.2 混搭函数的应用272

11.1.3 函子和高阶类型273

11.1.4 函数的函子276

11.1.5 题277

11.2 单子277

11.2.1 结果或错误277

11.2.2 map()与bind()的区别282

11.2.3 单子模式284

11.2.4 continuation单子285

11.2.5 列表单子286

11.2.6 其他单子288

11.2.7 题288

11.3 继续学289

11.3.1 函数式编程289

11.3.2 泛型编程289

11.3.3 高阶类型和范畴论289

11.3.4 从属类型290

11.3.5 线类型290

小结290

题291

附录a typescript的安装及本书的源代码293

附录b typescript速览表295

点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP