Ir al contenido

Cada año, se invierten innumerables horas y se pierden numerososrecursos debido a código mal escrito, ralentizando el desarrollo, disminuyendo la productividad, generando graves fallos e inclusopudiendo acabar con la organización o empresa. El reconocido expertode software Robert C. Martin, junto con sus colegas de Object Mentor, nos presentan sus óptimas técnicas y metodologías ágiles para limpiarel código sobre la marcha y crearlo de forma correcta, de este modomejorará como programador. Esta obra se divide en tres partes. La primera describe losprincipios, patrones y prácticas para crear código limpio. La segundaincluye varios casos de estudio cuya complejidad va aumentando. Cadaejemplo es un ejercicio de limpieza y transformación de código conproblemas. La tercera parte del libro contiene una lista de heurística y síntomas de código erróneo (smells) confeccionada al crear loscasos prácticos. El resultado es una base de conocimientos quedescribe cómo pensamos cuando creamos, leemos y limpiamos código. Imprescindible para cualquier desarrollador, ingeniero de software, director de proyectos, jefe de equipo o analista de sistemasinteresado en crear código de mejor calidad.¡El libro que todo programador debe leer! Prólogo Introducción Sobre la imagen de cubierta1. Código limpio Hágase el código Código incorrecto El coste total de un desastre El gran cambio de diseño Actitud El enigma¿El arte del código limpio? Concepto de código limpio Escuelas de pensamiento Somos autores La regla del Boy Scout Precuela y principios Conclusión Bibliografía2. Nombres con sentido Introducción Usar nombres que revelen las intenciones Evitar la desinformación Realizar distinciones con sentido Usar nombres que se puedan pronunciar Usar nombres que se puedan buscar Evitar codificaciones Notación húngara Prefijos de miembros Interfaces e implementaciones Evitar asignaciones mentales Nombres de clases Nombres de métodos No se exceda con el atractivo Una palabra por concepto No haga juegos de palabras Usar nombres de dominios de soluciones Usar nombres de dominios de problemas Añadir contexto con sentido No añadir contextos innecesarios Conclusión3. Funciones Tamaño reducido Bloques y sangrado Hacer una cosa Secciones en funciones Un nivel de abstracción por función Leer código de arriba a abajo: la regla descendente Instrucciones Switch Usar nombres descriptivos Argumentos de funciones Formas monádicas habituales Argumentos de indicador Funciones diádicas Triadas Objeto de argumento Listas de argumentos Verbos y palabras clave Sin efectos secundarios Argumentos de salida Separación de consultas de comando Mejor excepciones que devolver códigos de error Extraer bloques Try/Catch El procesamiento de errores es una cosa El imán de dependencias Error. java No repetirse Programación estructurada Cómo crear este tipo de funciones Conclusión Setup Teardown Includer Bibliografía4. Comentarios Los comentarios no compensan el código incorrecto Explicarse en el código Comentarios de calidad Comentarios legales Comentarios informativos Explicar la intención Clarificación Advertir de las consecuencias Comentarios TODOAmplificación Javadoc en API públicas Comentarios incorrectos Balbucear Comentarios redundantes Comentarios confusos Comentarios obligatorios Comentarios periódicos Comentarios sobrantes Comentarios sobrantes espeluznantes No usar comentarios si se puede usar una función o una variable Marcadores de posición Comentarios de llave de cierre Asignaciones y menciones Código comentado Comentarios HTMLInformación no local Demasiada información Conexiones no evidentes Encabezados de función Javadocs en código no público Ejemplo Bibliografía5. Formato La función del formato Formato vertical La metáfora del periódico Apertura vertical entre conceptos Densidad vertical Distancia vertical Declaraciones de variables Variables de instancia Funciones dependientes Afinidad conceptual Orden vertical Formato horizontal Apertura y densidad horizontal Alineación horizontal Sangrado Romper el sangrado Ambitos ficticios Reglas de equipo Reglas de formato de Uncle Bob6. Objetos y estructuras de datos Abstracción de datos Antisimetría de datos y objetos La ley de Demeter Choque de trenes Híbridos Ocultar la estructura Objetos de transferencia de datos Registro activo Conclusión Bibliografía7. Procesar errores Usar excepciones en lugar de códigos devueltos Crear primero la instrucción try-catch-finally Usar excepciones sin comprobar Ofrecer contexto junto a las excepciones Definir clases de excepción de acuerdo a las necesidades delinvocador Definir el flujo normal No devolver Null No pasar Null Conclusión Bibliografía8. Límites Utilizar código de terceros Explorar y aprender límites Aprender log4j Las pruebas de aprendizaje son algo más que gratuitas Usar código que todavía no existe Límites limpios Bibliografía9. Pruebas de unidad Las tres leyes del DGPRealizar pruebas limpias Las pruebas propician posibilidades Pruebas limpias Lenguaje de pruebas específico del dominio Un estándar dual Una afirmación por prueba Un solo concepto por prueba F. I. R. S. T. Conclusión Bibliografía10. Clases Organización de clases Enca