来源书籍

Go语言编程入门

编程语言类

本书是《Go Web编程》(郑兆雄)+《Go语言程序设计》(Mark Summerfield)两册合集。 两册都包含相当数量的"为什么这样设计"内容——例如 Go 语言不支持继承、转而使用组合+嵌入+ 接口鸭子类型的设计取舍(第40节抽样已验证)、HTTP 协议请求/响应模型和状态码语义、 MVC 模式的历史与适用边界、goroutine/channel 并发模型的设计动机等,信息浓度不低。 但全书同时包含大量绑定具体时代工具链的操作步骤——PostgreSQL 分平台安装、Heroku/Google App Engine/Docker 部署教程、Sqlx/Gorm 等第三方库的版本相关用法、Go 1.6 时代 HTTP/2 支持细节——这些内容会随工具演进过时,稳定性打折扣,因此整体归为"高浓度+低稳定性"的 工程实践档,而非最高档的经典原理。

类别清单覆盖

9/9

已覆盖 8 补充生成 1 未覆盖 0

全书概览

Go语言编程入门(第1辑)(套装共2册)

Skill 版本:v4

v4 重跑说明

本目录已按 book-notes v4 规则做强制重跑迁移:保留原有卡片取材,补齐证据链字段、统一章节进度字段,并按命中类别执行清单核对。

类别

编程语言类

四象限评级:工程实践(第二级别)

理由:本书是《Go Web编程》(郑兆雄)+《Go语言程序设计》(Mark Summerfield)两册合集。 两册都包含相当数量的”为什么这样设计”内容——例如 Go 语言不支持继承、转而使用组合+嵌入+ 接口鸭子类型的设计取舍(第40节抽样已验证)、HTTP 协议请求/响应模型和状态码语义、 MVC 模式的历史与适用边界、goroutine/channel 并发模型的设计动机等,信息浓度不低。 但全书同时包含大量绑定具体时代工具链的操作步骤——PostgreSQL 分平台安装、Heroku/Google App Engine/Docker 部署教程、Sqlx/Gorm 等第三方库的版本相关用法、Go 1.6 时代 HTTP/2 支持细节——这些内容会随工具演进过时,稳定性打折扣,因此整体归为”高浓度+低稳定性”的 工程实践档,而非最高档的经典原理。

章节进度追踪表

说明:本书为两册合集,spine 顺序即为下表顺序;前后大量版权页/译者说明/广告页无正文内容, 一律标记略读、状态直接为 done。

第一册《Go Web编程》
章节号 章节标题 精读/略读 状态(pending/done) 卡片数
text00002 书名分页 略读 done 0
text00003 版权信息 略读 done 0
text00004 版权声明 略读 done 0
text00005 内容提要 略读 done 0
text00006 译者记事 略读 done 0
text00007 译者简介 略读 done 0
text00008 前言 略读 done 0
text00009 致谢 略读 done 0
text00010 关于本书 略读 done 0
text00011 关于封面插图 略读 done 0
text00012 第一部分标题页 略读 done 0
text00013 第1章 Go与Web应用 精读 done 8
text00014 第2章 ChitChat论坛 精读 done 5
text00015 第二部分标题页 略读 done 0
text00016 第3章 接收请求 精读 done 6
text00017 第4章 处理请求 精读 done 5
text00018 第5章 内容展示 精读 done 4
text00019 第6章 存储数据 精读 done 5
text00020 第三部分标题页 略读 done 0
text00021 第7章 Go Web服务 精读 done 4
text00022 第8章 应用测试 精读 done 3
text00023 第9章 发挥Go的并发优势 精读 done 7
text00024 第10章 Go的部署 精读 done 3
text00025 附录 安装和设置Go 略读 done 0
text00026 欢迎来到异步社区 略读 done 0
text00027 分隔页 略读 done 0
第二册《Go语言程序设计》
章节号 章节标题 精读/略读 状态(pending/done) 卡片数
text00028 书名页 略读 done 0
text00029 版权信息 略读 done 0
text00030 内容提要 略读 done 0
text00031 版权声明 略读 done 0
text00032 译者序 略读 done 0
text00033 致谢 略读 done 0
text00034 引言 精读 done 4
text00035 第1章 5个例子 精读 done 6
text00036 第2章 布尔与数值类型 略读 done 0
text00037 第3章 字符串 略读 done 0
text00038 第4章 集合类型 精读 done 5
text00039 第5章 过程式编程 精读 done 3
text00040 第6章 面向对象编程 精读 done 10
text00041 第7章 并发编程 精读 done 4
text00042 第8章 文件处理 略读 done 0
text00043 第9章 包 精读 done 4
text00044 附录A 后记 精读 done 1
text00045 附录B 软件专利的危害 精读 done 2
text00046 附录C 精选书目 略读 done 0
text00047 欢迎来到异步社区 略读 done 0
text00048 看完了 略读 done 0

待关联术语

术语名 出现章节 一句话语境

引用文献

标题 类型(书/论文/框架/源码项目) 出现章节 一句话语境

实践卡进度

序号 实践标题 实践方式 状态 关联章节 产出
1 用真实XSS注入验证html-template的上下文转义 真实任务 done 模板相关章节 转义/绕过两种响应源码对比
2 实现扇形散开聚拢模式处理一批真实计算任务 真实任务 done 并发相关章节 fan-out/fan-in代码与多次运行结果记录

类别清单核对(编程语言类)

维度 覆盖状态(已覆盖/补充生成/未覆盖) 关联卡片标题或未覆盖理由
类型系统 已覆盖 类型转换与类型断言的本质区别、Go不支持泛型的设计取舍、Go内置类型与自定义类型的区别对待
内存管理模型 已覆盖 Go指针不支持指针运算、数组值语义与切片引用语义的取舍、切片共享底层数组的别名陷阱、new与取地址复合字面量的等价性、零值保证消除未初始化数据
并发/并行模型 已覆盖 并发与并行的本质区别、goroutine是线程的多路复用、Go并发模型基于CSP、单向通道类型作为编译期契约、用通道串联goroutine形成管道、通道传递指针的并发安全责任、通道关闭的惯例
错误处理机制 已覆盖 panic与error的责任分工
编译/执行模型 已覆盖 Go快速编译的依赖缓存机制
模块/包与命名空间设计 已覆盖 Go包系统的组织方式、用域名路径隔离包命名空间、文件名后缀实现平台条件编译
语言设计哲学与取舍 已覆盖 接口的隐式满足、独立小接口优于分层嵌套接口、继承语言混合代码与数据而Go强制分离,及引言章节多张卡片
元编程/反射/宏能力 补充生成 反射用类型信息换取泛型能力(原精读范围未覆盖,定向检索第9章9.4.9节反射包后补充)
性能特性与其代价 已覆盖 数组值语义与切片引用语义的取舍、goroutine的启动开销权衡、Go内置类型与自定义类型的区别对待

章节与卡片

13 Go与Web应用

  1. Web应用与Web服务的边界 普通读书笔记卡
  2. 可扩展性的两个维度 普通读书笔记卡
  3. HTTP协议的核心定义 普通读书笔记卡
  4. 安全方法与幂等方法 普通读书笔记卡
  5. 处理器与模板引擎的职责划分 普通读书笔记卡
  6. 静态模板与动态模板 普通读书笔记卡
  7. HTTP/2的核心改进 普通读书笔记卡
  8. 微服务架构的组织逻辑 普通读书笔记卡

14 ChitChat论坛

  1. Go包系统的组织方式 普通读书笔记卡
  2. 空接口作为类型无关容器 普通读书笔记卡
  3. 方法与接收者 普通读书笔记卡
  4. 可变参数函数 普通读书笔记卡
  5. 多路复用器的请求路由角色 普通读书笔记卡

16 接收请求

  1. 货物崇拜编程 普通读书笔记卡
  2. 处理器的精确定义 普通读书笔记卡
  3. 处理器函数的适配器实现 普通读书笔记卡
  4. 横切关注点与处理器串联 普通读书笔记卡
  5. URL前缀匹配与最小惊讶原则 普通读书笔记卡
  6. SSL与TLS与HTTPS的关系 普通读书笔记卡

17 处理请求

  1. 表单编码方式的选择权衡 普通读书笔记卡
  2. cookie为无状态协议模拟持久化 普通读书笔记卡
  3. 闪现消息的实现原理 普通读书笔记卡
  4. 接口值里藏着的指针语义 普通读书笔记卡
  5. 会话cookie与持久cookie 普通读书笔记卡

18 内容展示

  1. 无逻辑与嵌入逻辑模板引擎的取舍 普通读书笔记卡
  2. 上下文感知转义防御XSS 普通读书笔记卡
  3. 可复用布局依赖显式命名模板 普通读书笔记卡
  4. 模板管道的组合设计 普通读书笔记卡

19 存储数据

  1. 连接池句柄而非单一连接 普通读书笔记卡
  2. 预处理语句与一次性查询的选择 普通读书笔记卡
  3. 关系数据库的四种关联类型 普通读书笔记卡
  4. ActiveRecord模式与数据映射器模式 普通读书笔记卡
  5. 数据库驱动的隐式注册机制 普通读书笔记卡

21 Go Web服务

  1. SOAP与REST的设计哲学对比 普通读书笔记卡
  2. REST如何为动作建模 普通读书笔记卡
  3. POST与PUT的幂等性差异 普通读书笔记卡
  4. 流式解码与一次性解封的取舍 普通读书笔记卡

22 应用测试

  1. 单元测试的单元判定标准 普通读书笔记卡
  2. 依赖注入解耦测试 普通读书笔记卡
  3. TDD与BDD的本质区别 普通读书笔记卡

23 发挥Go的并发优势

  1. 并发与并行的本质区别 普通读书笔记卡
  2. goroutine是线程的多路复用 普通读书笔记卡
  3. goroutine的启动开销权衡 普通读书笔记卡
  4. 无缓冲通道与有缓冲通道 普通读书笔记卡
  5. select语句的先到先服务语义 普通读书笔记卡
  6. 竞争条件与互斥锁 普通读书笔记卡
  7. 扇形散开与扇形聚拢模式 普通读书笔记卡

24 Go的部署

  1. IaaS与PaaS与SaaS的分层 普通读书笔记卡
  2. 容器与虚拟机的本质区别 普通读书笔记卡
  3. Docker镜像与容器的模板实例关系 普通读书笔记卡

34 为什么是Go

  1. Go快速编译的依赖缓存机制 普通读书笔记卡
  2. Go并发模型基于CSP 普通读书笔记卡
  3. Go不支持泛型的设计取舍 普通读书笔记卡
  4. Go内置类型与自定义类型的区别对待 普通读书笔记卡

35 5个例子

  1. defer的延迟执行语义 普通读书笔记卡
  2. panic与error的责任分工 普通读书笔记卡
  3. 具名返回值的变量遮蔽陷阱 普通读书笔记卡
  4. Reader与Writer接口的组合式鸭子类型 普通读书笔记卡
  5. 零值保证消除未初始化数据 普通读书笔记卡
  6. 值接收者与指针接收者的选择依据 普通读书笔记卡

38 集合类型

  1. Go指针不支持指针运算 普通读书笔记卡
  2. 数组值语义与切片引用语义的取舍 普通读书笔记卡
  3. 切片共享底层数组的别名陷阱 普通读书笔记卡
  4. 多返回值优先于输出参数指针 普通读书笔记卡
  5. new与取地址复合字面量的等价性 普通读书笔记卡

39 过程式编程

  1. 类型转换与类型断言的本质区别 普通读书笔记卡
  2. switch默认不贯穿的设计 普通读书笔记卡
  3. 类型开关作为显式的运行时多态 普通读书笔记卡

40 面向对象编程

  1. 方法集因接收者类型而不同 普通读书笔记卡
  2. 未导出字段配合构造函数实现校验 普通读书笔记卡
  3. 接口的隐式满足 普通读书笔记卡
  4. 方法表达式将方法变为普通函数 普通读书笔记卡
  5. 接口嵌入实现接口组合 普通读书笔记卡
  6. 嵌入类型方法的提升与覆盖 普通读书笔记卡
  7. 具名聚合与匿名嵌入的字段提升差异 普通读书笔记卡
  8. 具体接口切片优于空接口切片 普通读书笔记卡
  9. 独立小接口优于分层嵌套接口 普通读书笔记卡
  10. 工厂函数按运行时条件返回接口 普通读书笔记卡

41 并发编程

  1. 单向通道类型作为编译期契约 普通读书笔记卡
  2. 用通道串联goroutine形成管道 普通读书笔记卡
  3. 通道传递指针的并发安全责任 普通读书笔记卡
  4. 通道关闭的惯例 普通读书笔记卡

43 包

  1. 用域名路径隔离包命名空间 普通读书笔记卡
  2. 文件名后缀实现平台条件编译 普通读书笔记卡
  3. 测试包命名决定黑盒白盒测试 普通读书笔记卡
  4. 反射用类型信息换取泛型能力 普通读书笔记卡

44 后记

  1. 继承语言混合代码与数据而Go强制分离 普通读书笔记卡

45 软件专利的危害

  1. 专利投机者的敲诈式商业模式 普通读书笔记卡
  2. 软件本质是数学不应被专利化的论点 普通读书笔记卡

相关主题

暂无公开主题。