← Últimos artículos
💻 computer science

The Influence of Code Smells in Efferent Neighbors on Class Stability

Este estudio investiga cómo la presencia de olores de código en las clases vecinas eferentes, así como sus interrelaciones e interacciones, influyen en la estabilidad de una clase, analizando un año de historial de commits de 100 proyectos destacados de GitHub.

Autores originales: Zushuai Zhang, Elliott Wen, Ewan Tempero

Publicado 2026-02-17
📖 4 min de lectura☕ Lectura para el café

Autores originales: Zushuai Zhang, Elliott Wen, Ewan Tempero

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

¡Claro que sí! Imagina que el código de un programa es como una gran ciudad llena de edificios. Cada edificio es una "clase" de código, y las calles que los conectan son las "dependencias" (cuando un edificio necesita usar recursos de otro).

Aquí tienes la explicación de este estudio, traducida a un lenguaje sencillo y con analogías divertidas:

🏙️ El Problema: ¿Por qué se caen los edificios?

En el mundo del software, los programadores quieren que los edificios (clases) sean estables. Esto significa que no deberían tener que estar constantemente reparándolos o ampliándolos. Si un edificio se reforma todo el tiempo, es caro, peligroso y molesto para los vecinos.

Antes, los expertos pensaban que los edificios se desestabilizaban porque ellos mismos tenían problemas de diseño (llamados "olores de código"). Imagina un edificio con una estructura torcida, demasiadas habitaciones inútiles o un ascensor que no funciona. Eso es un "olor".

Pero este estudio dice: "¡Espera! A veces, un edificio está perfectamente bien, pero sus vecinos son un desastre".

🤝 La Analogía de los Vecinos (Los "Vecinos Eferentes")

Imagina que vives en un apartamento limpio y ordenado (tu clase). Sin embargo, el vecino de al lado (un "vecino eferente", es decir, alguien a quien tú dependes) tiene una casa llena de trastos viejos, gatos salvajes y tuberías que gotean.

  • El efecto dominó: Si el vecino arregla su tubería rota, a ti te puede caer agua en el techo. Si el vecino cambia la fachada de su casa, quizás tengas que cambiar tu puerta para que encaje.
  • La conclusión del estudio: Aunque tu casa esté perfecta, la inestabilidad de tu vecino te obliga a hacer reparaciones constantes en tu propia casa.

El estudio quiere probar si los "olores" (problemas de diseño) en los vecinos hacen que tu edificio sea menos estable.

🔗 El "Efecto Contagio" (Interacción de Olores)

El estudio va un paso más allá. No solo importa que el vecino tenga problemas, sino cómo se conectan esos problemas con los tuyos.

  1. Relación Lejana (Acoplamiento): Tu vecino tiene un perro que ladra (un olor) y tú tienes un perro que ladra. No están conectados directamente, pero ambos ladran. Esto es malo, pero no es lo peor.
  2. Relación Directa (Interacción): Imagina que tu vecino tiene una tubería rota (olor) y esa tubería atraviesa directamente tu pared y se conecta con tu grifo (otro olor).
    • Si el vecino arregla su tubería, tú tienes que arreglar tu grifo inmediatamente.
    • El estudio sugiere que cuando los "olores" están conectados físicamente por una calle directa, el caos se propaga mucho más rápido y fuerte. Es como si el vecino y tú estuvieran atados por una cuerda; si él tropieza, te tira a ti.

🔍 ¿Qué hicieron los investigadores?

Para descubrir esto, los autores (Zhang, Wen y Tempero) hicieron lo siguiente:

  1. Eligen la ciudad: Seleccionaron las 100 ciudades más famosas (proyectos de código abierto más populares en GitHub).
  2. La cámara de seguridad: Miraron un año entero de historial de cambios (commits) en estas ciudades.
  3. Detectives de olores: Usaron herramientas automáticas para encontrar los "olores" (problemas de diseño) en los edificios y en sus vecinos.
  4. El cálculo: Compararon qué tan a menudo y cuánto cambiaban los edificios que tenían vecinos "sucios" frente a los que tenían vecinos "limpios".

📊 ¿Qué esperan encontrar?

Su teoría es que:

  • Si tus vecinos tienen "olores", tu edificio será menos estable (se cambiará más a menudo).
  • Si tus vecinos tienen "olores" y además están conectados directamente a tus propios problemas, la inestabilidad será aún mayor.

💡 ¿Por qué es importante esto?

Hasta ahora, los programadores solo miraban si su propio código estaba sucio para decidir si refactorizarlo (repararlo).

Este estudio les dice: "¡Mira también a tus vecinos!".

  • Si vas a trabajar en un proyecto, no solo revises tu código. Revisa de quién dependes.
  • Si dependes de una librería o un módulo que tiene muchos "olores", prepárate para tener que hacer muchos cambios en tu propio código, aunque el tuyo sea perfecto.
  • Ayuda a los equipos a decidir qué problemas arreglar primero: a veces, arreglar el "vecino" es más importante que arreglar tu propia casa.

En resumen

Imagina que eres un arquitecto. Antes pensabas que si tu edificio se tambaleaba, era porque tú habías puesto mal los ladrillos. Ahora sabes que, a veces, el edificio se tambalea porque el vecino de al lado está construyendo una casa de naipes y cada vez que él mueve una carta, a ti te tiembla el suelo.

Este estudio es la primera vez que se mide científicamente cuánto nos afecta el "desorden" de nuestros vecinos en el mundo del software.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →