La artesanía del código limpio : disciplinas, estándares y ética - Martin, Robert C. (Madrid : Anaya Multimedia, 2022)
Prólogo -- Prefacio -- 1. Artesanía -- Parte I. Las disciplinas -- Programación Extrema -- El círculo de la vida -- Desarrollo guiado por pruebas -- La refactorización -- Diseño simple -- Programación colaborativa -- Pruebas de aceptación -- 2. Desarrollo guiado por pruebas (TDD) -- Panorama general -- Software -- Las tres leyes del TDD -- La cuarta ley -- Conceptos básicos -- Ejemplos simples -- Stack -- Factores primos -- La partida de bolos -- Conclusión -- 3. TDD avanzado -- Ordenamiento 1 -- Ordenamiento 2 -- Atascarse -- Arrange, Act, Assert -- Llega el BDD -- Máquina de estados finitos -- Otra vez el BDD -- Dobles de pruebas -- Dummy -- Stub -- Spy -- Mock -- Fake -- El principio de incertidumbre del TDD -- Londres frente a Chicago -- El problema de la certeza -- Londres -- Chicago -- Síntesis -- Arquitectura -- Conclusión -- 4. Diseño de pruebas -- Probar bases de datos -- Probar GUI -- Entrada de GUI -- Patrones de pruebas -- Test-specific subclass -- Self-Shunt -- Humble Object -- Diseño de pruebas -- El problema de las pruebas frágiles -- La correspondencia uno a uno -- Romper la correspondencia -- El videoclub -- Especificidad frente a generalidad -- Premisa de prioridad de transformación -- {} Nulo -- Nulo Constante -- Constante Variable -- Incondicional Selección -- Valor Lista -- Sentencia Recursividad -- Selección Iteración -- Valor Valor mutado -- Ejemplo: Fibonacci -- La premisa de prioridad de transformación -- Conclusión -- 5. Refactorización -- ¿Qué es la refactorización -- El kit de herramientas básico -- Cambiar nombre -- Extraer método -- Extraer variable -- Extraer campo -- El cubo de Rubik -- Las disciplinas -- Pruebas -- Pruebas rápidas -- Romper todas las correspondencias uno a uno profundas -- Refactorice continuamente -- Refactorice sin piedad -- ¡Que sigan pasándose las pruebas! -- Déjese una salida -- Conclusión -- 6. Diseño simple -- YAGNI -- Cubierto por pruebas -- Cobertura -- Un objetivo asintótico -- ¿Diseño? -- Pero hay más -- Maximizar la expresión -- La abstracción subyacente -- Pruebas: la otra mitad del problema -- Minimizar la duplicación -- Duplicación accidental -- Minimizar el tamaño -- Diseño simple -- 7. Programación colaborativa -- 8. Pruebas de aceptación -- La disciplina -- La construcción continua -- Parte II. Los estándares -- Su nuevo director de tecnología -- 9. Productividad -- Nunca enviaremos ca -- Adaptabilidad barata -- Siempre estaremos listos -- Productividad estable -- 10. Calidad -- Mejora continua -- Competencia sin miedo -- Calidad extrema -- No le echamos el muerto a QA -- La enfermedad de QA -- QA no encontrará nada -- Automatización de pruebas -- Pruebas automatizadas e interfaces de usuario -- Probar la interfaz de usuario -- 11. Valor -- Nos cubrimos unos a otros -- Estimaciones honestas -- Debe decir "no" -- Aprendizaje agresivo continuo -- Enseñanza -- Parte III. La ética -- El primer programador -- Setenta y cinco años -- Empollones y salvadores -- Modelos a imitar y villanos -- Gobernamos el mundo -- Catástrofes -- El juramento -- 12. Daño -- Primero, no cause daño -- No causar daño a la sociedad -- No causar daño a la función -- No causar daño a la estructura -- Soft -- Pruebas -- El mejor trabajo -- Hacerlo bien -- ¿Qué es una buena estructura? -- La matriz de Eisenhower -- Programadores como partes interesadas -- Lo mejor -- Prueba repetible -- Dijkstra -- Demostrar la corrección -- Programación estructurada -- Descomposición funcional -- Desarrollo guiado por pruebas -- 13. Integridad -- Ciclos pequeños -- La historia del control del código fuente -- Git -- Ciclos cortos -- Integración continua -- Ramas frente a toggles -- Despliegue continuo -- Construcción continua -- Mejora incansable -- Cobertura de las pruebas -- Prueba de mutaciones -- Estabilidad semántica -- Limpieza -- Creaciones -- Mantener una productividad alta -- Viscosidad -- Gestionar las distracciones -- Gestión del tiempo -- 14. Trabajo en equipo -- Trabajar como un equipo -- Oficina abierta/virtual -- Estimar de forma honesta y justa -- Mentiras -- Honestidad, exactitud, precisión -- Historia 1: Vectores -- Historia 2: pCCU -- La lección -- Exactitud -- Precisión -- Agregación -- Honestidad -- Respeto -- Nunca deje de aprender -- Índice alfabético
Incluye índice.
Keywords: ASPECTOS PROFESIONALES DE LA INFORMÁTICA; ÉTICA PROFESIONAL; PROGRAMACIÓN