2. Hola, soy Manuel.
Desarrollador y arquitecto de software.
Co-organizador de Xamarin Cali.
Blogger y YouTuber.
Educador por pasión.
Website: https://manuelzapata.co
Módulo más malinterpretado.
Un módulo debería tener una, y solo una, razón para cambiar.
NO significa que debería hacer una sola cosa.
Más difícil reusar.
Dificultad de mantenimiento.
Un artefacto software debería estar abierto para ser extendido, pero cerrado para ser modificado.
Es un elemento crucial detrás de la arquitectura de muchos sistemas.
El objetivo es hacer el sistema fácil de extender sin que los cambios sean de alto impacto.
Esta extensión no solo se hace a través de herencia, sino que también se puede lograr mediante patrones de diseño.
Va mucho más allá de la herencia.
Existencia herencia no significa que el principio se cumpla.
También aplica a otras cosas que no son herencia. Servicios REST mismas firmas de métodos.
No necesariamente hablamos de interfaces. También hablamos de clases base, protocolos o incluso firmas de métodos.
Por ejemplo, métodos con muchos parámetros.
Deberían depender de abstracciones.
Primer mal olor: rigidez
La aplicación es difícil de cambiar, incluso para cosas muy pequeñas.
El diseño es dificil de cambiar.
Segundo mal olor: fragilidad
La tendencia de un programa de dañarse en múltiples sitios, cuando un único cambio se hace.
El diseño se daña muy fácil.
Tercer mal olor: inmovilidad
Es muy difícil separar el sistema en componentes que puedan ser reusados en otros sistemas.
El diseño es difícil de reusar.
Cuarto mal olor: viscosidad
Los cambios que preservan el diseño son más difíciles de hacer que los machetes.
Hacer las cosas mal es más fácil que hacer las cosas bien.
Quinto olor: complejidad innecesaria
El diseño es más complejo de lo necesario.
Hay un exceso de diseño
Sexto olor: repetición innecesaria
Hay estructuras que se repiten.
En mi último video hablé bastante sobre copiar y pegar.
Séptimo olor: opacidad
Código escrito de manera clara y expresiva
VS
Código escrito de manera extraña y confusa.