Ingeniería de software en Google
600 páginas
Spanish
PDF
4.5

Ingeniería de software en Google

Ingeniería de software en Google

Autor:

Año:

Resumen:

Introducción

El libro «Software Engineering at Google: Lessons Learned from Programming Over Time» (en español — «Ingeniería de software en Google: lecciones aprendidas a lo largo de años de programación») no es solo una colección de recetas técnicas. Es una profunda investigación de cómo una de las empresas tecnológicas más exitosas del mundo aborda el desarrollo, el mantenimiento y el escalamiento del software. Escrito por tres ingenieros líderes de Google — Titus Winters, Tom Manshreck y Hyrum Wright — el libro se publicó en 2020 y se convirtió instantáneamente en una obra de referencia para muchos arquitectos, líderes de equipo y desarrolladores senior.

A pesar de que el libro utiliza activamente C++ (el lenguaje principal para muchos sistemas internos de Google), su valor va mucho más allá de un solo lenguaje. Los principios descritos aquí son aplicables a cualquier stack, incluyendo Python, Java, Go y otros. Para el sitio educativo pythonlib.ru, este libro es un verdadero hallazgo, ya que enseña no solo a escribir código, sino a pensar como un ingeniero que trabaja en condiciones de una base de código enorme.

¿De qué trata este libro?

El libro está dividido en tres grandes partes, cada una de las cuales revela aspectos clave de la ingeniería de software en Google.

Parte 1: ¿Qué es la ingeniería de software?

Los autores trazan una clara línea entre la programación (escribir código que funciona ahora) y la ingeniería de software (crear código que vivirá y evolucionará durante años). Introducen el concepto de «higiene del código» y explican por qué en Google son tan importantes las revisiones de código, las pruebas y la documentación.

Parte 2: Cultura y procesos

Aquí se abordan los aspectos sociales y organizativos: cómo construir equipos, cómo realizar revisiones de código efectivas, cómo gestionar el conocimiento y por qué la «seguridad psicológica» es más importante que la cantidad de líneas de código. Un capítulo aparte está dedicado a la revisión de código (Code Review) — un proceso que en Google se ha perfeccionado.

Parte 3: Herramientas y prácticas

La parte más técnica. Cubre sistemas de compilación (Bazel), gestión de dependencias, pruebas (desde pruebas unitarias hasta de integración), refactorización, despliegue y monitoreo. Especialmente interesante es el capítulo sobre «Cambios a Gran Escala (Large-Scale Changes)» — cómo en Google realizan cambios que afectan a millones de líneas de código sin romper el producto.

¿Para quién es este libro?

El libro está dirigido a desarrolladores experimentados (middle/senior), líderes de equipo, arquitectos y todos aquellos que quieran entender cómo funciona el desarrollo a un nivel donde la base de código cuenta con miles de millones de líneas. Sin embargo, los principiantes también encontrarán mucho de útil aquí, si están preparados para una lectura seria.

¿Qué aprenderá el lector?

  • Por qué programación ≠ ingeniería de software — y cómo esta comprensión cambia el enfoque del trabajo.
  • Cómo realizar correctamente una revisión de código — no solo «mirar el código», sino desarrollar una cultura de aprendizaje mutuo.
  • Cómo probar a escala — desde pruebas unitarias simples hasta complejos escenarios de integración.
  • Cómo gestionar las dependencias — y por qué el «infierno de las dependencias» no es una broma.
  • Cómo realizar refactorización sin miedo — utilizando herramientas automatizadas y prácticas.
  • Cómo construir procesos que no ralenticen el desarrollo — el equilibrio entre control y velocidad.
  • Cómo funciona el sistema de compilación Bazel — y por qué es mejor que Make o CMake para proyectos grandes.
  • Cómo mantiene Google un estilo de código unificado — y por qué esto es importante para la legibilidad.

Puntos fuertes del libro

1. Valor práctico. El libro no solo cuenta teorías — describe problemas reales a los que se enfrentan los ingenieros de Google y soluciones concretas. Por ejemplo, el capítulo sobre la «Ley de Hyrum» (Hyrum’s Law) explica por qué incluso las API internas se convierten con el tiempo en contratos públicos.

2.

Recommendations