
El limpiador de código
Autor/a : Robert C. Martin
La esperada continuación del aclamado 'Código Limpio' de 'Uncle Bob'. Los programadores que resisten y triunfan en medio de la turbulenta incertidumbre y la presión continua tienen un rasgo en común: les importa mucho el proceso de creación de software.
Índice
Agradecimientos Sobre el autor Prólogo Prefacio Sobre este libro Sobre la cubierta Bibliografía Requisito previo. Introducción 1. Profesionalidad Tenga cuidado con lo que desea Responsabilizarse Lo primero es no hacer daño - No hacer daño a la función - No hacer daño a la estructura Ética laboral - Conozca su campo - Aprendizaje continuo - Práctica - Colaboración - Orientación - Conozca su esfera - Identifíquese con su jefe/cliente - Humildad Bibliografía 2. Decir "no" Papeles antagonistas - ¿Qué pasa con el "por qué"? Apostar fuerte Saber "trabajar en equipo" - Intentarlo - Agresión pasiva El precio de decir que sí Código imposible 3. Decir "sí" Un lenguaje de compromiso - Reconocer la falta de compromiso - ¿Cómo suena el compromiso? - Resumen Aprender a decir "sí" - La otra cara de "intentarlo" - Comprometerse con disciplina Conclusión 4. Diseño de código Preparación - El código de las tres de la mañana - Código de preocupación La zona del flujo - Música - Interrupciones Bloqueo creativo - Aportación creativa Depuración - Tiempo de depuración Modere su ritmo - Saber cuándo alejarse - Conducir hasta casa - La ducha Retrasos - Esperanza - Apresurarse - Horas extra - Entrega en falso - Definir "acabado" Ayuda - Ayudar a otros - Recibir ayuda - Orientación Bibliografía 5. Desarrollo guiado por pruebas La hora de la verdad Las tres leyes del TDD - Letanía de beneficios - La opción profesional Lo que no es el TDD Bibliografía 6. Practicar Un poco de contexto sobre la práctica - Veintidós ceros - Tiempo de respuesta El dojo de código - Kata117 - Wasa118 - Randori Ampliar la experiencia - Código abierto - Ética respecto a la práctica Conclusión Bibliografía 7. Pruebas de aceptación Comunicar requisitos - Precisión prematura - Ambigüedad tardía Pruebas de aceptación - La definición de "acabado" - Comunicación - Automatización - Trabajo extra - ¿Quién escribe las pruebas de aceptación y cuándo? - El papel del desarrollador - Negociación de las pruebas y comportamiento pasivo-agresivo - Pruebas de aceptación y pruebas unitarias - Interfaces gráficas de usuario y otras complicaciones - Integración continua Conclusión 8. Estrategias de pruebas El aseguramiento de la calidad no debería encontrar nada - El aseguramiento de la calidad es parte del equipo La pirámide de automatización de pruebas - Pruebas unitarias - Pruebas de componentes - Pruebas de integración - Pruebas de sistema - Pruebas exploratorias manuales Conclusión Bibliografía 9. Gestión del tiempo Reuniones - Declinar - Marcharse - Tenga un orden del día y un objetivo - Reuniones de pie - Reuniones de planificación de la iteración - Retrospectiva de la iteración y demo - Discusiones/desacuerdos Concentración-Maná - Sueño - Cafeína - Recargar - Concentración muscular - Recepción contra producción Time Boxing y tomates Evitación - Inversión de prioridades Callejones sin salida Pantanos, lodazales y ciénagas y otros líos Conclusión 10. Estimaciones ¿Qué es una estimación? - Un compromiso - Una estimación - Compromisos tácitos PERT Estimación de tareas - Método Delfos Ley de los grandes números Conclusión Bibliografía 11. Presión Evitar la presión - Compromisos - Mantener la limpieza - Disciplina de crisis Manejar la presión - Que no cunda el pánico - Comuníquese - Confíe en sus disciplinas - Busque ayuda Conclusión 12. Colaboración Programadores contra gente - Programadores contra empresas - Programadores contra programadores Cerebelos Conclusión 13. Equipos y proyectos ¿Se mezcla bien? - El equipo cuajado - Pero ¿cómo se consigue eso? - El dilema del propietario del proyecto Conclusión Bibliografía 14. Orientación, aprendizaje y maestría Grados de fracaso Orientación - Digi-Comp I, mi primer ordenador - El ECP-18 en el instituto - Orientación poco convencional - Malos tragos Aprendizaje - Aprendizaje de software - La realidad Maestría - Convencer a la gente Conclusión Apéndice A. Herramientas Herramientas Control del código fuente - Sistema de control del código fuente "para empresa" - Bloqueo pesimista contra bloqueo optimista - CVS / SVN Entorno de desarrollo integrado/Editor - Vi215 - Emacs - Eclipse/IntelliJ - TextMate Seguimiento de incidentes - Recuentos de errores Construcción continua Herramientas para pruebas unitarias Herramientas para pruebas de componentes - La definición de "acabado" - FitNesse - Otras herramientas Herramientas para pruebas de integración UML / MDA - Los detalles - Sin esperanza, sin cambio Conclusión Índice alfabético