Notas
- El arte de escribir código tolerante al cambio depende de tres habilidades POO, Refactoring y tests de alto valor
 - El diseño de software es un proceso de descubrimiento progresivo por medio de un feedback loop. Este debe ser oportuno e incremental
 - El diseño es el arte de ordenar código
 - El verdadero propósito del testing, al igual que el buen diseño, es reducir costes
 - Inyección de una dependencia real (usada en producción) vs un doble de tests
 - La POO combina datos y comportamiento en un solo sitio, en objetos. Los datos pasan a tener un control de acceso y los objetos invocan el comportamiento de otros mandando mensajes a otros.
 - La programación orientada a objetos trata sobre manejo o gestión de dependencias
 - Los beneficios del testing (1)
 - Para sacar valor sobre los tests, hay que escribir los necesarios y útiles solo una vez y en el lugar apropiado
 - Testear dobles de test (Fakes)