0%

本文是「从 C++ 到 Go」系列的第七篇,也是整个系列的收官之作。上一篇讨论了 IO 接口与标准库,本篇把前面所有知识串联起来,用纯标准库(不依赖任何第三方包)实现一个完整的 TODO REST API 服务。项目不大,但覆盖了包组织、接口、泛型、JSON、HTTP、并发安全、错误处理和测试——每个部分都对应着前面某一课的内容。

阅读全文 »

本文是「从 C++ 到 Go」系列的第六篇,承接上一篇对泛型的讨论,进入 Go 标准库中最核心的一块领域——IO 与数据序列化。C++ 程序员对 iostream 的复杂继承体系和 nlohmann/json 的手动映射不会陌生;Go 用两个极简接口和声明式的 struct tag 取代了这一切。本篇覆盖 io.Reader/io.Writer 接口、文件读写、JSON 序列化,以及用标准库写 HTTP 服务。

阅读全文 »

本文是「从 C++ 到 Go」系列的第五篇,承接上一篇对包管理与测试的讨论,进入 Go 1.18 引入的泛型系统。对于 C++ 程序员来说,模板是最强大也最复杂的语言特性之一;Go 的泛型是一个有趣的对照——它花了十多年才加入语言,设计上刻意做了大量简化。理解这些取舍,比学会语法本身更有价值。

阅读全文 »

本文是「从 C++ 到 Go」系列的第四篇,承接上一篇对并发模型与错误处理的讨论,进入 Go 项目的工程化领域——包管理与测试。对于 C++ 程序员来说,这两部分的体验差异可能是整个系列中最令人愉悦的:C++ 的构建系统和测试框架需要大量外部工具的配合,而 Go 把这一切内置了。

阅读全文 »

本文是「从 C++ 到 Go」系列的第三篇,承接上一篇对集合、结构体与接口的讨论,进入 Go 最有特色的两个领域——并发模型与错误处理。对于 C++ 程序员来说,这两部分恰好是思维转换最大的地方:并发从「手动管理线程和锁」变成「goroutine + channel」,错误处理从「异常冒泡」变成「错误即返回值」。

阅读全文 »