出版社: 歐萊禮
副标题: 從程式設計經驗中吸取教訓
原作名: Software Engineering at Google
出版年: 2022-10-26
页数: 596
装帧: 平装
ISBN: 9786263242630
内容简介 · · · · · ·
「本書在談到權衡取捨的同時,還解釋了Google做軟體工程的方式,一個讓我最有生產力、最開心的方式。」
- Eric Haugh
Google軟體工程師
今日,軟體工程師不僅需要知道如何有效地進行程式設計,還需要知道如何開發適當的工程規範,以使他們的程式碼基底(codebase)能夠持續發展和維持健康。本書還強調了程式設計和軟體工程之間的區別。
軟體工程師如何管理一個發展中的程式碼基底,並在其生命週期內回應不斷變化的需求和要求?軟體工程師Titus Winters和Hyrum Wright以及技術作家Tom Manshreck根據他們在Google的經驗,坦率並深刻地說明了一些世界領先之從業者建構和維護軟體的方式。本書介紹了Google獨特的工程文化、流程和工具,以及這些方面提高工程組織效率的方式。
你將探索軟體組織在設計、建構、編寫和維護程式碼時應...
「本書在談到權衡取捨的同時,還解釋了Google做軟體工程的方式,一個讓我最有生產力、最開心的方式。」
- Eric Haugh
Google軟體工程師
今日,軟體工程師不僅需要知道如何有效地進行程式設計,還需要知道如何開發適當的工程規範,以使他們的程式碼基底(codebase)能夠持續發展和維持健康。本書還強調了程式設計和軟體工程之間的區別。
軟體工程師如何管理一個發展中的程式碼基底,並在其生命週期內回應不斷變化的需求和要求?軟體工程師Titus Winters和Hyrum Wright以及技術作家Tom Manshreck根據他們在Google的經驗,坦率並深刻地說明了一些世界領先之從業者建構和維護軟體的方式。本書介紹了Google獨特的工程文化、流程和工具,以及這些方面提高工程組織效率的方式。
你將探索軟體組織在設計、建構、編寫和維護程式碼時應牢記的三個基本原則:
‧時間如何影響軟體的可持續性,以及如何使你的程式碼隨著時間的推移而具有彈性
‧規模如何影響軟體規範在工程組織中的可行性
‧典型的工程師在評估設計和開發決策時需要做出哪些權衡
作者简介 · · · · · ·
Titus Winters 是Google高級軟體工程師。他是Google C++程式碼基底的程式庫負責人:每月有數千名不同的工程師編輯2.5億列的程式碼。
Tom Manshreck 是Google軟體工程部技術作家。他是C++程式庫團隊的成員,負責開發文件、開設培訓課程,以及記錄Google的開源C++程式碼Abseil。
Hyrum Wright 是Google軟體工程師,負責領導Google的auton自動變更工具組。Hyrum對Google之程式碼基底進行的個人編輯比公司歷史上任何其他工程師都多。
目录 · · · · · ·
第一章 何謂軟體工程?
第二部分 文化
第二章 如何做好團隊合作
第三章 知識共享
第四章 公平工程
第五章 如何領導團隊
第六章 領導力的發展
第七章 衡量工程效率
第三部分 過程
第八章 格式指南與規則
第九章 程式碼審查
第十章 文件
第十一章 測試概述
第十二章 單元測試
第十三章 測試替身
第十四章 較大型的測試
第十五章 棄用
第四部分 工具
第十六章 版本控制和分支管理
第十七章 程式碼搜尋
第十八章 建構系統與建構哲學
第十九章 Google 的程式碼審查工具
第二十章 靜態分析
第二十一章 依賴關係管理
第二十二章 大規模變更
第二十三章 持續整合
第二十四章 持續交付
第二十五章 運算即服務
第五部分 結語
後記
· · · · · · (收起)
原文摘录 · · · · · · ( 全部 )
-
我们在这本书中分享的一个关键见解是,软件工程可以被认为是“随着时间而不断集成的编程”。我们可以为我们的代码引入哪些实践,使其在整个生命周期内,从概念到上市、到维护、再到弃用,具有可持续性(能够对必要的变更做出反应)? 这本书强调了我们认为的软件组织在设计、架构和编写代码时应该牢记的三个基本原则: 时间与变化 代码在其生命周期内需要如何适应。中规模与增长 组织在发展过程中要如何适应。 权衡与成本 组织如何从时间、变化、规模和增长中所学到的经验来做出决策。 (查看原文) —— 引自章节:前言 3 -
权衡 谷歌在这一权衡中的选择是不在serverless解决方案上投入巨资。谷歌的持久化容 器解决方案Borg已经足够先进,可以提供大部分serverless的好处(如弹性伸缩、 针对不同类型应用程序的各种框架、部署工具、统一的日志记录和监视工具等)。 缺少的一点是更激进的伸缩(尤其是缩小到零的能力),但谷歌绝大多数的资源占 用来自高流量服务,因此过度提供小型服务的成本相对较低。同时,谷歌运行的多个应用程序在“真正的无状态”世界中无法工作,从GCE到BigQuery 或Spanner,到需要很长时间填充缓存的服务器,如前 面提到的长尾搜索服务作业。因此,为所有这些事情使用一个通用的统一体系结构的好处超过了为部分工作负载使用单独的serverless堆栈的潜在好处。 然而,谷歌的选择并不一定是每个组织的正确选择:其他组织已经成功地建立在混合容器/serverless架构上,或者完全基于利用第三方存储解决方案的serverless架构上。 然而,serverless的主要吸引力是对于较小的组织或团队,而不是大型组织的决策;在这种情况下,这种比较实质上是不公平的。serverless模型虽然限制性更强,但允许基础设施供应商在总体管理开销中承担更大的份额,从而降低用户的管理开销。 (查看原文) —— 引自章节:抽象层次:Serverless 561
> 全部原文摘录
Google 的軟體工程之道的书评 · · · · · · ( 全部 3 条 )

中国互联网也应该进入工业时代

大型互联网公司的长期主义
这篇书评可能有关键情节透露
之前阅读了英文版的部分章节,对《Software Engineering at Google》翻译版期待已久,听闻有公司同事在翻译此书,多次打听出版时间,3月底一上市便入手,也用团队代码质量奖的经费给伙伴们人手一本。深入阅读部分章节后,就断断续续直到最近才看完,本书很厚,足有570页,且内... (展开)> 更多书评 3篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部4 )
-
O'Reilly Media (2020)8.6分 130人读过
-
中国电力出版社 (2022)8.4分 86人读过
-
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有5人想读,手里有一本闲着?
订阅关于Google 的軟體工程之道的评论:
feed: rss 2.0
还没人写过短评呢