Lo que ocurre es que a veces estamos tan convencidos de sus capacidades y sus resultados que pasamos por alto las trampas que nos hace y los errores que nos lleva a cometer.
Conocerlas y comprenderlas es fundamental para tomar mejores decisiones.
El sistema 1 de pensamiento es implícito, es el encargado de dar respuestas rápidas.
Lo hace de manera rápida y frecuente.
Lo hace de manera emocional, estereotipada y hasta subconsciente.
Es útil en tareas automatizadas como andar o pestañear y puede hacerlas a la vez.
El sistema 2 de pensamiento es explícito, es más lento y lo hace de manera racional.
En cierta medida es perezoso porque es más costoso y por eso menos frecuente.
Es lógico, calculador y va acompañado de la consciencia.
El cerebro es vago y siempre prioriza el sistema uno.
¿Por qué tenemos estos dos sistemas?
Se estima que tenemos alrededor de 60.000 pensamientos diarios, por lo tanto el cerebro necesita atajos para resolver rápidamente y con el menor gasto energético posible
La evolución nos ha diseñado para utilizar el sistema 1 frecuentemente
A nuestros antepasados les fue muy útil el sistema 1 para sobrevivir.
Es por esto que cuando paseas tranquilamente por el campo y oyes un ruido entre la maleza, te alertas como si un depredador te fuera a atacar.
Cuando la probabilidad de que sea así es escasa.
Cuando desarrollamos también podemos hacerlo utilizado el sistema 1 o el sistema 2.
¿Alguna vez cuando estabas desarrollando escuchando música y para entender un algoritmo complejo has tenido que parar la música?
Tu cerebro necesitaba pasar al sistema 2, no puede hacer las dos.
Como en el caso del depredador, el sistema 1 nos puede llevar a cometer errores.
Por eso es importante utilizar técnicas que te fuercen a utilizar el sistema 2.
Una técnica muy útil es #TDD, te mantiene en el sistema 2 consiguiendo así un código más simple y más optimo.
Las buenas ideas, patrones y principios que se usan en el desarrollo de software, ¿de dónde salen?
[ H I L O ] ⇩
A finales de 1980 @unclebobmartin comenzó a recopilar distintos principios de diseño de software.
Algunos de los principios habían sido formulados por otros colegas, por ejemplo el Principio de Sustitución de Liskov fue enunciado por Barbara Liskov y Jeannette Wing.
@unclebobmartin El Tío Bob por aquella época debatía sobre estos principios con otros colegas en USENET (una especie temprana de Facebook).
A lo largo de los años, los principios fueron cambiado.
Equipo de desarrollo de stack tecnológico .Net Core
Tienen desarrollado API Rest
Tienen problemas de errores, velocidad de desarrollo y mantenimiento de la aplicación. Me piden ayuda
Te cuento más ⬇️
A groso modo me suelo encontrar estas características:
- Capa de controladores usando MediatR para usar el patrón CQRS
- Base de datos -> Sql Server
- ORM - Entity Framework
- Pocos tests unitarios, alguno de integración y end to end
- Entidades anémicas con getters y setters sin comportamiento
- Entidades creadas siguiendo convenciones EF code first
- Handlers usando directamente el contexto de EF