# Artesanía Limpia

*Disciplinas, Estándares y Ética*

2022-07-11 | `clean-code` `tdd` `refactoring` `testing` `xp`

> Disciplinas, estándares y ética del desarrollo de software profesional.

---



El libro tiene tres partes: disciplinas, estándares y ética.

La primera es la más técnica. Te guía con ejemplos de TDD y muestra cómo el testing te ayuda a diseñar tu código.

La segunda trata sobre productividad, calidad y coraje.

La tercera explica cómo hemos llegado hasta aquí como profesionales del software y nuestra responsabilidad ética: no hacer daño, integridad y trabajo en equipo.

---

Una de mis partes favoritas del libro:

> Nuestra industria es dinámica y cambia constantemente. Hay que aprender de forma continua y agresiva.
>
> ¿Cómo y cuándo aprendes? Si tu empresa te da tiempo para ello, aprovéchalo al máximo. Si no, tendrás que hacerlo por tu cuenta.
>
> Prepárate para dedicar varias horas al mes. Reserva ese tiempo.
>
> Sí, ya sé: familia, facturas, viajes, la vida. Pero también tienes una profesión. Y las profesiones requieren cuidado y mantenimiento. Aprendamos de forma continua y agresiva.
>
> `Capítulo 11. Coraje - Aprendizaje Agresivo Continuo`

---

## Índice

### Parte I: Las Disciplinas

#### Capítulo 1. Artesanía
- Extreme Programming
- Test-Driven Development
- Refactoring
- Diseño Simple
- Programación Colaborativa
- Tests de Aceptación

#### Capítulo 2. Test-Driven Development
- Visión General
- Lo Básico

#### Capítulo 3. TDD Avanzado
- Quedarse Atascado
- Arrange, Act, Assert
- Test Doubles
- Arquitectura

#### Capítulo 4. Diseño de Tests
- Testeando Bases de Datos
- Testeando GUIs
- Patrones de Test
- Subclase Específica de Test
- Humble Object
- Diseño de Tests
- Rompiendo la Correspondencia

#### Capítulo 5. Refactoring
- ¿Qué es Refactoring?
- El Kit Básico de Herramientas
- Extract Method
- Las Disciplinas

#### Capítulo 6. Diseño Simple
- YAGNI
- Cubierto por Tests
- Cobertura
- ¿Diseño?
- Maximizar Expresión
- La Abstracción Subyacente
- Minimizar Duplicación
- Minimizar Tamaño

#### Capítulo 7. Programación Colaborativa

#### Capítulo 8. Tests de Aceptación
- La Disciplina
- El Build Continuo

### Parte II: Los Estándares

#### Capítulo 9. Productividad
- Nunca Enviaremos M***da
- Adaptabilidad Económica
- Siempre Estaremos Listos
- Productividad Estable

#### Capítulo 10. Calidad
- Mejora Continua
- Competencia Sin Miedo
- Calidad Extrema
- No Volcaremos en QA
- QA No Encontrará Nada
- Automatización de Tests
- Testing Automatizado e Interfaces de Usuario
- Testeando la Interfaz de Usuario

#### Capítulo 11. Coraje
- Nos Cubrimos Mutuamente
- Estimaciones Honestas
- Debes Decir NO
- Aprendizaje Agresivo Continuo
- Mentoría

### Parte III: La Ética

- El Primer Programador
- Setenta y Cinco Años
- Nerds y Salvadores
- Modelos a Seguir y Villanos
- Gobernamos el Mundo
- Catástrofes
- El Juramento

#### Capítulo 12. Daño
- Primero, No Hacer Daño
- Mejor Trabajo
- Prueba Repetible

#### Capítulo 13. Integridad
- Ciclos Pequeños
- Mejora Implacable
- Mantener Alta Productividad

#### Capítulo 14. Trabajo en Equipo
- Trabajar como Equipo
- Estimar Honesta y Justamente
- Respeto
- Nunca Dejes de Aprender

---

Charla de Uncle Bob donde cubre la mayoría de los temas del libro.

{{ youtube(id="sPXk11hrWTM") }}
```
Escucha sobre:
* Cita e Intro - [00:00:00]
* Trayectoria Profesional - [00:07:29]
* Clean Craftsmanship - [00:10:53]
* Programador como Profesión - [00:15:31]
* Artesanía - [00:18:45]
* Disciplinas - [00:22:45]
* Disciplinas: Test-Driven Development - [00:28:49]
* Disciplinas: Refactoring - [00:34:31]
* Cobertura de Código - [00:39:02]
* Estándar: Nunca Enviar M***da - [00:42:35]
* Estándar: Siempre Estar Listo - [00:47:15]
* Ética: No Hacer Daño - [00:50:00]
* Ética: Estimar Honestamente - [00:53:56]
* 2 Sabiduría de Tech Lead - [00:57:50]
```
