Kasper Timm propone medir la complejidad de los gems por líneas de código

Fuentes: Kasper Timm proposes measuring gem complexity by lines of code

Kasper Timm, desarrollador de Ruby, propone utilizar el conteo de líneas de código como una métrica práctica para evaluar la complejidad y el valor de las gemas (bibliotecas) de software. En un artículo publicado en su blog, Timm explica que, al revisar el README de una gema, los desarrolladores pueden estimar mentalmente la complejidad implícita y compararla con un conteo real generado por la herramienta cloc. Esta práctica permite identificar si la implementación es más simple de lo esperado, lo que sugiere oportunidades de aprendizaje, o si es más compleja de lo previsto, lo que podría indicar un problema de diseño o una abstracción excesiva.

Timm argumenta que la claridad conceptual es clave para limitar la complejidad. Su objetivo es crear gemas con "lecturas frescas", donde un desarrollador senior pueda comprender la lógica en menos de una hora. Para ello, utiliza límites de líneas de código como referencia: gemas menores a 100 líneas se consideran "pequeñas" y de alto impacto, mientras que las que superan los 1.000 líneas requieren una justificación sólida de su utilidad. Ejemplos de sus gemas, como ActiveRecord::AssociatedObject, demuestran cómo un alcance estrecho permite mantener el código en menos de 100 líneas, facilitando la auditoría y la mantenibilidad. Aunque reconoce que la métrica es imperfecta y varía según el lenguaje, Timm sostiene que ofrece insights valiosos para decidir si una gema es digna de ser dependida o mantenida.