Codigo limpio y refactorización
En un mundo donde el software evoluciona rápidamente, escribir código limpio se ha convertido en una habilidad esencial para cualquier desarrollador. Este curso te enseñará cómo escribir código que no solo funcione, sino que sea fácil de entender, mantener y mejorar.
Aprenderás a identificar malos olores en el código y aplicarás principios sólidos para refactorizarlo de manera eficiente. Exploraremos las mejores prácticas de desarrollo, herramientas útiles y casos prácticos para que puedas llevar tus habilidades al siguiente nivel.
Temas:
Introducción
Mito: Si funciona, no lo toques
- Malos olores en el código. Code Smells
Nombre Significativos
Uso de constantes en lugar de valores mágicos
Evitar parámetros booleanos
Uso excesivo de variables globales
Código Duplicado
Código Muerto
Uso de `switch`
Haduoken en el Código
Funciones y Métodos Limpios
Clases Largas
Uso de la Herencia
Uso de convenciones de estilo
Condiciones de Error primero
Lanzar Excepciones
Muchos argumentos en funciones y métodos
Malos comentarios
Optimización vs Código Limpio
Encapsulación
Código Hecho para Ser Leído
Efectos Secundarios en el Código
Uso de métodos genericos vs específicos
Uso adecuado de estructuras de datos
Minimizar dependencias innecesarias
- La refactorización
Refactorización
- Principios de Código Limpio
Boy Scout
STUPID
STUPID Singleton Abusivo
STUPID Tight Coupling
STUPID Untestability
STUPID Premature Optimization
STUPID Indescriptive Naming
STUPID Duplication
DRY
Least Surprise
FIRST en Testing
Ley de Demeter
Hollywood
No Devuelvas Códigos de Error
KISS
YAGNI
Navaja de Occam
Pareto: Regla del 80/20
Composición sobre Herencia
Fail Fast
Regla del Tres
Inyección de dependencias
Bajo Acoplamiento y Alta Cohesión
- Estructurar código
No usar organización
Layered Architecture (N-Layer)
Screaming Architecture
Arquitectura Microservicios
Clean Architecture
Otras arquitecturas
- Principios SOLID
Principio de Responsabilidad Única (SRP)
Principio de Abierto/Cerrado (OCP)
Principio de Sustitución de Liskov (LSP)
Principio de Segregación de Interfaces (ISP)
Principio de Inversión de Dependencias (DIP)
- Patrones de Diseño
Patrones de Diseño
- Otros conceptos
Sobreingeniería
Importancia del teting
Heramientas para Escribir Código Limpio
Código Limpio en Equipo