Software Engineering at Google: Lessons Learned from Programming Over Time (Paperback)

Winters, Titus, Manshreck, Tom, Wright, Hyrum

  • 出版商: O'Reilly
  • 出版日期: 2020-04-07
  • 定價: $1,950
  • 售價: 9.0$1,755
  • 語言: 英文
  • 頁數: 583
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1492082791
  • ISBN-13: 9781492082798
  • 相關分類: 軟體工程
  • 相關翻譯: Google軟件工程 (簡中版)
  • 立即出貨 (庫存 < 4)



How do you manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum K. Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world's leading practitioners construct and maintain software.

At Google, software engineering represents roughly 80-90% of the work, while only 10-20% of the time involves original programming. Most teaching on this subject concentrates on programming, but little on software engineering. By emphasizing three fundamental principles that software organizations should keep in mind when designing, architecting, and writing code, this book explains:

  • Fundamental differences between software engineering and programming
  • The software engineering lifecycle from code development to testing to deprecation
  • How to effectively manage your codebase and efficiently respond to change
  • Why culture is important, and how processes, practices, and tools come into play
  • Tradeoffs: how an organization makes optimal software decisions by keeping time and scale in mind


Titus Winters is a Senior Staff Software Engineer at Google, where he has worked since 2010. Today, he is the chair of the global subcommittee for the design of the C++ standard library. At Google, he is the library lead for Google's C++ codebase: 250 million lines of code that will be edited by 12K distinct engineers in a month. For the last 7 years, Titus and his teams have been organizing, maintaining, and evolving the foundational components of Google's C++ codebase using modern automation and tooling. Along the way he has started several Google projects that believed to be in the top 10 largest refactorings in human history. As a direct result of helping to build out refactoring tooling and automation, Titus has encountered first-hand a huge swath of the shortcuts that engineers and programmers may take to "just get something working". That unique scale and perspective has informed all of his thinking on the care and feeding of software systems.

Tom Manshreck is a Staff Technical Writer within Software Engineering at Google since 2005, responsible for developing and maintaining many of Google's core programming guides in infrastructure and language. Since 2011, he has been a member of Google's C++ Library Team, developing Google's C++ documentation set, launching (with Titus Winters) Google's C++ training classes, and documenting Abseil, Google's open source C++ code. Tom holds a BS in Political Science and a BS in History from the Massachusetts Institute of Technology. Before Google, Tom worked as a Managing Editor at Pearson/Prentice Hall and various startups.

Hyrum K. Wright is a Staff Software Engineer at Google, where he has worked since 2012, mainly in the areas of large-scale maintenance of Google's C++ codebase. Hyrum has made more individual edits to Google's codebase than any other engineer in the history of the company. He is a member of the Apache Software and an occasional visiting faculty member at Carnegie Mellon University. Hyrum received a PhD in Software Engineering from the University of Texas at Austin, and also holds an MS from the University of Texas and a BS from Brigham Young University. He is an active speaker at conferences and contributor to the academic literature on software maintenance and evolution.