Soy Ian Kilpatrick, líder de ingeniería del equipo de diseño de Blink, junto con Koji Ishii. Antes de trabajar en el equipo de Blink, era ingeniero de frontend (antes de que Google tuviera el puesto de "ingeniero de frontend") y compilaba funciones en Documentos de Google, Drive y Gmail. Después de alrededor de cinco años en ese puesto, aposté a cambiarme al equipo de Blink, aprender C++ de manera eficaz en el trabajo y tratar de adaptarme a la base de código de Blink, que es muy compleja. Incluso hoy, solo entiendo una parte relativamente pequeña. Gracias por tu tiempo durante este período. Me tranquilizó el hecho de que muchos “ingenieros de frontend en recuperación” hicieron la transición a “ingenieros de navegadores” antes que yo.
Mi experiencia previa me ha guiado personalmente mientras trabajaba en el equipo de Blink. Como ingeniero de frontend, me encontraba constantemente con inconsistencias en el navegador, problemas de rendimiento, errores de renderización y funciones faltantes. LayoutNG fue una oportunidad para ayudar a corregir de forma sistemática estos problemas dentro del sistema de diseño de Blink y representa la suma de los esfuerzos de muchos ingenieros a lo largo de los años.
En esta publicación, explicaré cómo un gran cambio de arquitectura como este puede reducir y mitigar varios tipos de errores y problemas de rendimiento.
Vista de 30,000 pies de las arquitecturas de motores de diseño
Anteriormente, el árbol de diseño de Blink era lo que llamaré un "árbol mutable".