首页 > 编程语言 >编程与类型系统读后总结与感想

编程与类型系统读后总结与感想

时间:2023-01-25 20:45:51浏览次数:42  
标签:章节 TypeScript 示例 C# 编程 感想 类型 读后

1. 基本信息

编程与类型系统 Programming With Types:Examples in TypeScript

[美] 弗拉德·里斯库迪亚(Vlad Riscutia) 著,赵利通 译

机械工业出版社,2021年1月出版

1.1. 读薄率

书籍【真实】字数17.5万字,笔记总字数19299字。

读薄率19299÷175000≈11.03%

较之C#代码整洁之道高出不少,主要原因有两方面:

  1. 统计口径差异,版权页上没有书籍总字数,采用的是真实字数,这个数值较低。分母变小。
  2. 笔记数量翻倍,这是实打实地,从另一个侧面也说明了这本书内容更扎实。分子变大。

结果,读薄率陡增。

1.2. 读厚方向

  1. 函数式编程思维

  2. Java 8函数式编程

  3. Functional C#

  4. Functional Programming in C#

  5. Learning Java Functional Programming

1.3. 笔记--章节对应关系

笔记和章节一一对应,没有合并同类项,也没有章节调序,仅仅是每个章节内部进行了部分调序,就不一一列举了。

2. 亮点

2.1. 开拓视野

  1. 提供了观察其他语言的视角,尤其是TypeScript语言。

  2. 引入了抽象代数、柯里–霍华德(Curry-Howard)对应、范畴论、函子、单子等数学概念。

  3. 对混入Mixin和可变性做了较详细的介绍。

2.2. 丰富、细致的类型介绍

不论类型是否常见,讲其然,也讲其所以然。

个人觉得比较重要的类型如下:

  1. 空类型

  2. 单元类型

  3. 可选类型

  4. 和类型

  5. Either类型

  6. 变体类型

2.3. unicode构成

  1. 字符(character)

  2. 字形(glyph)

  3. 书写位(grapheme)

3. 感想

3.1. 经典永流传

好的计算机书籍是可以超脱语言和版本升级的影响而历久弥新的。

3.2. 让子弹飞一会也不是太好

做完读书笔记,不会立刻写总结和感想,而是让子弹飞一会,沉淀一周左右才总结,此时留下的才是自己觉得重要的。

在《C#代码整洁之道》和《编程与类型系统》之间还没有什么问题,也没有冲突。

但是在《编程与类型系统》和《函数式编程思维》,也就是扩展阅读的书籍之间,强关联了,原来觉得重要的点,也就被冲淡了。

原来亮点的地方,现在看来也就是函数式编程的基本知识点了。

3.3. 作者选择TypeScript作为示例语言是有考量的

高级章节中无法示例的代码,Haskell可以,但是如果选择Haskell作为示例语言,受众受限。

Java、C#用户众多,但是类型系统没有TypeScript丰富,而且TypeScript作为JavaScript的升级,用户也可以说是众多。

选择TypeScript除了高级类型无法示例外,大部分都能示例,而且语法层面上也是能接受的。

3.4. 读好书、好读书、读好多书

以一本书为原点,朝着一个方向去选择、读取经典书籍,收获颇丰。

有些书,讲得云里雾里的东西,能够豁然开朗,敞亮了。

3.5. 如何读原文

  1. 如果为了学习TypeScript语言,这本书不算太好。

  2. 如果是为了了解类型系统(不仅仅是TypeScript语言的),则推荐阅读。

大部分编程语言的语法书都是简要的介绍数据类型,知其然,不知其所以然;告诉你怎么用,不告诉你为什么这样用,而这本书恰恰解答了为什么。

标签:章节,TypeScript,示例,C#,编程,感想,类型,读后
From: https://www.cnblogs.com/lying7/p/17067256.html

相关文章

  • UEFI EDKII 编程学习
    环境搭建部分第一步:下载EDK2​​https://sourceforge.net/projects/edk2/files/latest/download?source=files​​ 第二步:将下载的UDK2015.Complete.MyWorkSpace中的BaseTo......
  • 节约内存的编程方式
    以图形用户界面(GUI,GraphicalUserInterface)为基础的Windows,可以说是一个巨大的操作系统。Windows的前身是MS-DOS操作系统,最初版本可以在128KB左右的内存上运行,而想要W......
  • 学习ASP.NET Core Blazor编程系列二十二——登录(1)
    学习ASP.NETCoreBlazor编程系列文章之目录学习ASP.NETCoreBlazor编程系列一——综述学习ASP.NETCoreBlazor编程系列二——第一个Blazor应用程序(上)学习A......
  • Day14 - 网络编程
    1.IP地址IP地址的概念IP地址就是标识网络中设备的一个地址,好比现实生活中的家庭地址。网络中的设备效果图:IP地址的表现形式说明:IP地址分为两类:IPv4......
  • Day13 - 多任务编程【线程】
    1.线程介绍线程也是实现多任务的一种方式一个程序在执行时会对应一个主进程,主进程中会有一个主线程通过主线程手动产生的线程称为子线程进程是最小资源分配单位线程......
  • Day12 - 多任务编程【进程】
    0.多任务的概念多任务是指在同一时间内执行多个任务,例如:现在电脑安装的操作系统都是多任务操作系统,可以同时运行着多个软件。1.多任务介绍多任务为提高程序的执行效......
  • 适合编程初学者的开源云笔记系统(Python版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......
  • 适合编程初学者的开源云笔记系统(PHP版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......
  • 适合编程初学者的开源云笔记系统(NodeJS版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......
  • 适合编程初学者的开源云笔记系统(Go语言版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......