Google 软件工程
600 页
Chinese
PDF
4.5

Google 软件工程

Google 软件工程

作者:

年份:

简介:

引言

《Software Engineering at Google: Lessons Learned from Programming Over Time》这本书(中文译名《Google 软件工程:多年编程经验总结》)并非单纯的技术食谱合集。它深入探讨了全球最成功的科技公司之一如何对待软件的开发、维护和规模化。由三位 Google 首席工程师——Titus Winters、Tom Manshreck 和 Hyrum Wright 合著,该书于 2020 年出版,并迅速成为众多架构师、技术主管和高级开发人员的案头必备。

尽管书中大量使用了 C++(Google 许多内部系统的主要语言),但其价值远远超出了单一语言的范畴。这里描述的原则适用于任何技术栈,包括 Python、Java、Go 等。对于教育网站 pythonlib.ru 来说,这本书堪称宝藏,因为它不仅教你编写代码,更教你如何像在庞大代码库环境中工作的工程师一样思考。

这本书是关于什么的?

本书分为三大部分,每一部分都揭示了 Google 软件工程的关键方面。

第一部分:什么是软件工程?

作者明确区分了编程(编写当前能运行的代码)和软件工程(创建能够长期存在并发展的代码)。他们引入了“代码卫生”的概念,并解释了为什么代码审查、测试和文档在 Google 如此重要。

第二部分:文化与流程

这部分探讨了社会和组织方面:如何组建团队,如何进行有效的代码审查,如何管理知识,以及为什么“心理安全感”比代码行数更重要。其中专门有一章讲述代码审查——这一流程在 Google 已被打磨至极致。

第三部分:工具与实践

这是最技术性的部分。它涵盖了构建系统(Bazel)、依赖管理、测试(从单元测试到集成测试)、重构、部署和监控。特别有趣的是关于“大规模变更”的章节——Google 如何在不破坏产品的情况下,对涉及数百万行代码进行修改。

这本书适合谁?

本书面向经验丰富的开发者(中级/高级)、技术主管、架构师,以及所有想了解代码库规模达数十亿行级别的开发工作是如何组织的人。不过,如果新手准备好进行严肃阅读,也能从中获益良多。

读者将学到什么?

  • 为什么编程 ≠ 软件工程——以及这种理解如何改变工作方式。
  • 如何正确进行代码审查——不仅仅是“看代码”,而是培养相互学习的文化。
  • 如何在大规模下进行测试——从简单的单元测试到复杂的集成场景。
  • 如何管理依赖——以及为什么“依赖地狱”不是玩笑。
  • 如何无惧地进行重构——利用自动化工具和实践。
  • 如何构建不拖慢开发的流程——在控制与速度之间取得平衡。
  • Bazel 构建系统如何工作——以及为什么它比 Make 或 CMake 更适合大型项目。
  • Google 如何维护统一的代码风格——以及为什么这对可读性很重要。

本书的突出优点

1. 实用价值。 这本书不仅仅是讲述理论——它描述了 Google 工程师面临的真实问题以及具体的解决方案。例如,关于“Hyrum 定律”的章节解释了为什么即使是内部 API 最终也会成为公共契约。

2.

推荐