Middle+
¿Cómo te sientes acerca de clases muy largas que contienen entre 2 y 4 mil líneas de código?
sobes.tech AI
Respuesta de la IA
Negativo.
Las clases largas violan el principio de responsabilidad única (SRP) y el principio de menor conocimiento (Principle of Least Knowledge). Esto conduce a los siguientes problemas:
- Difícil de leer y entender: Un gran volumen de código dificulta la percepción de la lógica de la clase.
- Difícil de mantener y modificar: Cambiar una parte de la clase puede afectar inadvertidamente a otras, causando errores.
- Riesgo de duplicación de código: La funcionalidad puede repetirse en diferentes partes de la clase.
- Problemas con las pruebas: Las pruebas unitarias de una clase grande se vuelven complicadas y laboriosas.
- Reducción de la reutilización: Es difícil extraer y usar partes de funcionalidad en otros lugares.
Idealmente, las clases deben ser cortas y realizar una tarea específica. La funcionalidad debe descomponerse en clases o funciones más pequeñas y especializadas. La refactorización de estas clases "divinas" es una tarea prioritaria para mejorar la calidad de la base de código.
Para la descomposición, se pueden usar los siguientes enfoques:
- Separar la lógica relacionada en clases independientes: Por ejemplo, manejo de datos, lógica de interfaz de usuario, lógica de negocio.
- Aplicar patrones de diseño: MVC, MVP, MVVM, Repositorio, Factory, etc.
- Dividir en funciones/métodos más pequeños: cada método debe hacer una cosa.
- Usar extensiones en Kotlin: para agregar funcionalidad sin modificar la clase original.