《Go Web编程》学习地图

按Manning官方十章重建从HTTP、ChitChat、请求处理到测试、并发与部署的证据路线。

从十个主题页的错位开始

先预测:只学习HTTP、路由、中间件、数据库、JSON、认证和Docker,能否等价覆盖原书?不能。原书用ChitChat先给完整应用,再依次拆开请求接收、请求处理、内容展示、存储、Web服务、测试、并发和部署。禁止把后来的框架主题冒充原书章节。

书籍身份与版本边界

本站对应Sau Sheong Chang的Manning 2016年版,ISBN 9781617292569,共312页。固定了复刻对象。Heroku、App Engine、Docker和第三方测试库按原书语境解释;现代Go差异会单独标注,但不改写原书路线。

Go Web Programming -> Manning -> July 2016 -> ISBN 9781617292569

第1至2章:协议与完整应用

第1章建立请求、响应、URI、HTTP/2、handler与template engine;第2章用ChitChat连接mux、静态文件、Cookie、模板和PostgreSQL。先有全景,后续章节才不会变成API清单。

第3至5章:接收、处理与展示

第3章解释net/http、server、handler和multiplexer;第4章进入Request、表单、ResponseWriter、Cookie与Flash消息;第5章用text/template和html/template完成action、pipeline、function、context awareness与layout。让协议错误和模板错误可以分开定位。

第6至8章:存储、服务与测试

第6章比较内存、CSV、gob、SQL和关系映射;第7章比较SOAP与REST,并用XML、JSON实现服务;第8章用testing、httptest、test double与dependency injection建立证据。使失败路径可以主动复现。

第9至10章:并发与部署

第9章区分并发和并行,用goroutine与channel缩短独立Web任务关键路径;第10章比较独立服务器、Heroku、App Engine和Docker。要求上线物与验证物一致。

go test ./...
go test -race ./...
go build -trimpath ./cmd/web

掌握门禁

不要以“能启动服务器”作为完成。真正掌握是给出一个失败请求,能判断它属于HTTP消息、mux、form、template、storage、codec、test double、goroutine还是部署物;再用最小实验复现并修复。

symptom -> owning chapter -> injected failure -> observable evidence -> fix

本章回顾

全书路线是协议与全景、请求与展示、数据与验证、并发与部署。每章都以输入、边界、输出和不变量组织,最终形成可复现的Web应用,而不是十个互不相连的功能演示。

术语表

讨论

评论区加载中…