本文是「从 C++ 到 Go」系列的第四篇,承接上一篇对并发模型与错误处理的讨论,进入 Go 项目的工程化领域——包管理与测试。对于 C++ 程序员来说,这两部分的体验差异可能是整个系列中最令人愉悦的:C++ 的构建系统和测试框架需要大量外部工具的配合,而 Go 把这一切内置了。
从 C++ 到 Go(三):并发模型与错误处理
从 C++ 到 Go(二):集合、结构体与接口
从 C++ 到 Go(一):基础语法、类型系统与函数
对于有 C++ 经验的程序员来说,学习 Go 是一次有趣的体验。Go 在许多设计上与 C++ 有着相似的底层思路,但又在语法和哲学上做出了截然不同的取舍。本文是我学习 Go 的实践笔记,以代码为主线,穿插与 C++ 的对比,力求在「知其然」的同时也「知其所以然」。
光与影的魔术②:微距摄影的景深·一个反直觉的结论
摄影,说到底,是在处理光与空间的关系;不过,一旦进入微距,这件事会变得有点「反直觉」。