Video description
Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering.
How can software engineers 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 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. This book covers Google’s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization.
You’ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code:
How time affects the sustainability of software and how to make your code resilient over time
How scale affects the viability of software practices within an engineering organization
What trade-offs a typical engineer needs to make when evaluating design and development decisions
Table of Contents
Title Page
Foreword
Preface
Part I. Thesis
Chapter 1. What Is Software Engineering?
Part II. Culture
Chapter 2. How to Work Well on Teams
Chapter 3. Knowledge Sharing
Chapter 4. Engineering for Equity
Chapter 5. How to Lead a Team
Chapter 6. Leading at Scale
Chapter 7. Measuring Engineering Productivity
Part III. Processes
Chapter 8. Style Guides and Rules
Chapter 9. Code Review
Chapter 10. Documentation
Chapter 11. Testing Overview
Chapter 12. Unit Testing
Chapter 13. Test Doubles
Chapter 14. Larger Testing
Chapter 15. Deprecation
Part IV. Tools
Chapter 16. Version Control and Branch Management
Chapter 17. Code Search
Chapter 18. Build Systems and Build Philosophy
Chapter 19. Critique: Google’s Code Review Tool
Chapter 20. Static Analysis
Chapter 21. Dependency Management
Chapter 22. Large-Scale Changes
Chapter 23. Continuous Integration
Chapter 24. Continuous Delivery
Chapter 25. Compute as a Service
Part V. Conclusion
Afterword
Copyright