今年前三个月读完了三本书,涵盖编程实践、计算机科学和人文历史。 做个简单的记录和总结。
《代码整洁之道》—— Robert C. Martin
这本书是软件工程领域的经典之作。作者通过大量代码示例, 阐述了编写可读、可维护代码的原则和技巧。
核心收获:
- 有意义的命名——变量名、函数名应该是自解释的,好的命名可以减少注释的需求
- 函数应该短小——一个函数只做一件事,做好一件事
- 注释是失败的表达——优先用清晰的代码代替注释,注释应该是"为什么"而不是"做什么"
- DRY 原则——Don't Repeat Yourself,消除重复是提高代码质量的关键
- Boy Scout Rule——让代码比你来的时候更干净一点
"写代码和写文章一样,先让它能工作,再让它变好。"
《深入理解计算机系统》—— Bryant & O'Hallaron
CSAPP 是每个程序员都该读的书。它从程序员的角度讲解计算机系统, 涵盖数据表示、机器级编程、内存层次、链接、异常控制流等内容。
印象最深的几个点:
- 整数和浮点数的底层表示——理解了为什么
0.1 + 0.2 != 0.3 - 缓存的局部性原理——写代码时考虑空间局部性和时间局部性可以大幅提升性能
- 虚拟内存的机制——把物理内存抽象成连续的地址空间,是现代操作系统的基础
- 链接器的工作原理——静态链接和动态链接的区别,理解了编译的全过程
这本书很厚,一次读完不太现实。我把它当作参考书,遇到相关问题就翻对应的章节。 目前读完了前六章,计划今年内读完剩余部分。
《人类简史》—— 尤瓦尔·赫拉利
这本不是技术书,但给了我很多启发。赫拉利从认知革命、农业革命到科学革命, 梳理了人类历史的关键转折点。
几个有意思的观点:
- 虚构故事的力量——人类能大规模协作,靠的是共同相信的虚构故事(宗教、国家、货币、公司)
- 农业革命是史上最大的骗局——不是人类驯化了小麦,而是小麦驯化了人类
- 科学革命的核心是承认无知——愿意说"我不知道",才会去探索和发现
读这本书的时候,我经常联想到编程和软件工程——我们每天也在构建"想象的秩序"。 代码、架构、设计模式,本质上都是为了让一群人更好地协作而创造的共同"故事"。
三本书分别从工程实践、底层原理和宏观视角给了我不同的收获。 下一阶段准备读《设计模式》和《计算机网络:自顶向下方法》, 之后也会继续记录笔记。