🥸U P I D
Untestability 🧪
Descripción: Código difícil de testear, usualmente debido a alto acoplamiento.
Solución: Usar inyección de dependencias para facilitar los tests.
Ejemplo:
// Difícil de probar debido al alto acoplamiento
public class ProcesadorDePagos
{
private RegistroDePagos registro = new RegistroDePagos();
public void ProcesarPago(Pago pago)
{
registro.Registrar(pago);
// Más lógica aquí...
}
}
Premature Optimization🏎️
Descripción: Optimizar el código antes de que sea necesario, lo que puede llevar a complejidad innecesaria.
Solución: Enfocarse en claridad y mantenibilidad primero. Optimizar cuando se requiera basado en pruebas de rendimiento.
Ejemplo:
// Ejemplo de optimización prematura public int CalcularSumaOptimizada(int[] numeros) { // Implementación compleja anticipando problemas de rendimiento return numeros.Sum(); }
Indiscreptive Naming 🏷️
Descripción: Usar nombres que no explican claramente el propósito de la variable, clase o función.
Solución: Elegir nombres significativos que describan su uso o propósito.
Ejemplo:
// Ejemplo de nombres poco descriptivos
public void Procesar(int d) { /*...*/ } // ¿Qué significa "d"?
Duplication 📋
Descripción: Tener bloques de código idénticos o muy similares en diferentes partes del proyecto.
Solución: Aplicar el principio DRY (Don't Repeat Yourself) para unificar el código duplicado.
Ejemplo:
// Duplicidad de código
public void EnviarCorreoCliente(string destinatario, string mensaje) { /*...*/ }
public void EnviarCorreoAdministrador(string destinatario, string mensaje) { /*...*/ }
Última actualización