Análisis del código desrollado en generadores de sitios estáticos

Fuentes: Analysis of unrolled code in static site generators

El artículo examina el patrón de 'código desrollado' (unrolled code) en el proyecto grubby, un generador de sitios estáticos minimalista escrito en Ruby. Este enfoque prioriza la legibilidad y la simplicidad sobre la optimización interna, utilizando herramientas estándar como FileUtils y gsub para manipular cadenas de texto. El texto contrasta esta estructura con el código generado internamente por plantilladores como ERB o Papercraft, que compilan las plantillas en código Ruby optimizado para emitir fragmentos de HTML en un buffer. Se destaca que, aunque el código de grubby es menos eficiente en rendimiento, mantiene una estructura clara y fácil de entender, similar a la que se vería si se descompilara el código de ERB o Papercraft.

Además, el análisis se extiende al proyecto Herb, un gem de Ruby que actúa como renderizador de plantillas por defecto en Rails 8.2. Se observa que el código de inicialización de Herb es extremadamente denso y extenso, con aproximadamente 20.000 líneas de código en Ruby y 37.000 en extensiones de C/Rust, superando a bases de código más grandes como ActiveRecord. El artículo detalla cómo el motor de plantillas de Herb utiliza un enfoque similar al de grubby, con métodos que actúan como enrutadores para convertir datos en llamadas a métodos, evidenciando la complejidad subyacente de los sistemas de plantillas optimizados frente a la claridad del código desrollado.