CÓDIGO LIMPIO

CÓDIGO LIMPIO

MANUAL DE ESTILO PARA EL DESARROLLO ÁGIL DE SOFTWARE

MARTIN, ROBERT C.

53,50 €
IVA incluido
✅ Disponible - Ver Ubicación
Editorial:
ANAYA MULTIMEDIA
Año de edición:
2012
Materia
Programación
Ubicación
⬆️INFORMÁTICA
ISBN:
978-84-415-3210-6
Páginas:
464
Encuadernación:
Otros
53,50 €
IVA incluido
✅ Disponible - Ver Ubicación
Recoger
Añadir a favoritos

Prólogo

Introducción
Sobre la imagen de cubierta

1. 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ía

2. 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ón

3. 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
SetupTeardownIncluder
Bibliografía

4. 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 TODO
Amplificació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 HTML
Información no local
Demasiada información
Conexiones no evidentes
Encabezados de función
Javadocs en código no público
Ejemplo
Bibliografía

5. 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
Ámbitos ficticios
Reglas de equipo
Reglas de formato de Uncle Bob

6. 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ía

7. 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 del invocador
Definir el flujo normal
No devolver Null
No pasar Null
Conclusión
Bibliografía

8. 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ía

9. Pruebas de unidad
Las tres leyes del DGP
Realizar 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ía

10. Clases
Organización de clases
Encapsulación
Las clases deben ser de tamaño reducido
El Principio de responsabilidad única
Cohesión
Mantener resultados consistentes en muchas clases de tamaño reducido
Organizar los cambios
Aislarnos de los cambios
Bibliografía

11. Sistemas
Cómo construir una ciudad
Separar la construcción de un sistema de su uso
Separar Main
Factorías
Inyectar dependencias
Evolucionar
Aspectos transversales
Proxies de Java
Estructuras AOP Java puras
Aspectos de AspectJ
Pruebas de unidad de la arquitectura del sistema
Optimizar la toma de decisiones
Usar estándares cuando añadan un valor demostrable
Los sistemas necesitan lenguajes específicos del dominio
Conclusión
Bibliografía

12. Emergencia
Limpieza a través de diseños emergentes
Primera regla del diseño sencillo: Ejecutar todas las pruebas
Reglas 2 a 4 del diseño sencillo: Refactorizar
Eliminar duplicados
Expresividad
Clases y métodos mínimos
Conclusión
Bibliografía

13. Concurrencia
¿Por qué concurrencia?
Mitos e imprecisiones
Desafíos
Principios de defensa de la concurrencia
Principio de responsabilidad única (SRP)
Corolario: Limitar el ámbito de los datos
Corolario: Usar copias de datos
Corolario: Los procesos deben ser independientes
Conocer las bibliotecas
Colecciones compatibles con procesos
Conocer los modelos de ejecución
Productor-Consumidor
Lectores-Escritores
La cena de los filosofos
Dependencias entre métodos sincronizados
Reducir el tamaño de las secciones sincronizadas
Crear código de cierre correcto es complicado
Probar código con procesos
Considerar los fallos como posibles problemas de los procesos
Conseguir que primero funcione el código sin procesos
El código con procesos se debe poder conectar a otros elementos
El código con procesos debe ser modificable
Ejecutar con más procesos que procesadores
Ejecutar en diferentes plataformas
Diseñar el código para probar y forzar fallos
Manual
Automática
Conclusión
Bibliografía

14. Refinamiento sucesivo
Implementación de Args
Cómo se ha realizado
Args: El primer borrador
Entonces me detuve
Sobre el incrementalismo
Argumentos de cadena
Conclusión

15. Aspectos internos de JUnit
La estructura JUnit
Conclusión

16. Refactorización de SerialDate
Primero, conseguir que funcione
Hacer que sea correcta
Conclusión
Bibliografía

17. Síntomas y heurística
Comentarios
C1: Información inapropiada
C2: Comentario obsoleto
C3: Comentario redundante
C4: Comentario mal escrito
C5: Código comentado
Entorno

Cada año, se invierten innumerables horas y se pierden numerosos recursos debido a código mal escrito, ralentizando el desarrollo, disminuyendo la productividad, generando graves fallos e incluso pudiendo acabar con la organización o empresa.

El reconocido experto de software Robert C. Martin, junto con sus colegas de Object Mentor, nos presentan sus óptimas técnicas y metodologías ágiles para limpiar el código sobre la marcha y crearlo de forma correcta, de este modo mejorará como programador.

Esta obra se divide en tres partes. La primera describe los principios, patrones y prácticas para crear código limpio. La segunda incluye varios casos de estudio cuya complejidad va aumentando. Cada ejemplo es un ejercicio de limpieza y transformación de código con problemas. La tercera parte del libro contiene una lista de heurística y síntomas de código erróneo (smells) confeccionada al crear los casos prácticos. El resultado es una base de conocimientos que describe 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 sistemas interesado en crear código de mejor calidad.

¡El libro que todo programador debe leer!

Robert C. Martin (Uncle Bob) es programador desde 1970. Es el fundador de Uncle Bob Consulting, LLC, y cofundador, junto a su hijo Micah Martin, de The Clean Coders, LLC. Martin ha publicado docenas de artículos y varias revistas profesionales y es orador habitual en conferencias y ferias internacionales. Ha escrito y editado muchos libros, entre ellos: 'Designing Object-Oriented C++ Applications Using the Booch Method', 'Pattern Languages of Program Design 3', 'More C++ Gems', 'Extreme Programming in Practice', 'Agile Software Development: Principles, Patterns, and Practices', 'UML para programadores Java', 'Código limpio', 'El limpiador de código', 'Arquitectura limpia', 'La artesanía del código limpio' y 'Desarrollo ágil esencial'.

Líder en la industria del desarrollo de software, Martin trabajó como editor jefe de C++ Report y fue el primer presidente de la Alianza Ágil.

Artículos relacionados

  • PROGRAMACIÓN EN PYTHON
    GARCÍA GARCÍA-DONCEL, JESÚS / GOMEZ DELGADO, JAVIER
    Con Programación en Python: Más allá del código no solo aprenderás a programar, sino que te convertirás en un desarrollador versátil, preparado para enfrentar los desafíos del mundo tecnológico actual y transformar ideas en soluciones innovadoras. Desde ...
    ✅ Disponible - Ver Ubicación

    30,00 €

  • GUÍA DE PROGRAMACIÓN EN C/C++
    LOPEZ, ELIEZER
    Medio siglo después, C y C++ son los lenguajes más eficientes de la historia y el fundamento de gran parte de la tecnología que utilizamos a diario. Creados por y para programadores, se siguen enseñando en miles de centros educativos y ofrecen multitud de ventajas a empresas relevantes en multitud de sectores.C y C++ están presentes en una amplia variedad de sectores gracias a ...
    ✅ Disponible - Ver Ubicación

    29,95 €

  • CURSO PRÁCTICO CON UNITY 3D
    CANTÓN NADALES, DAVID
    El primer libro en español que guía el desarrollo de videojuegos con Unity, desde los fundamentos hasta la creación de builds ejecutables.Dirigido a principiantes y desarrolladores con experiencia, este libro te acompaña paso a paso, desde el uso del Unity Editor hasta la creación de videojuegos completos y optimizados. Aprenderás a manipular GameObjects, programar en C# y Visu...
    ✅ Disponible - Ver Ubicación

    29,95 €

  • CURSO DE PROGRAMACION CON RUST
    LOPEZ, ELIEZER
    El lenguaje de programación Rust ha ganado popularidad en los últimos años debido a su enfoque en la seguridad y el rendimiento, y se ha convertido en una excelente opción para el desarrollo de aplicaciones críticas y sistemas de alto rendimiento. Con una comunidad en constante crecimiento y el respaldo de importantes empresas, Rust constituye una herramienta poderosa para desa...
    ✅ Disponible - Ver Ubicación

    30,95 €

  • HTML Y CSS. DISEÑO Y CONSTRUCCIÓN DE SITIOS WEB
    DUCKETT, JON
    1. Desarrollo web2. HTML (Lenguaje de marcado)3. CSS (Hojas de estilo en cascada)4. Diseño de sitios web5. Creación de contenido web6. Programación informática7. Aprendizaje de HTML y CSS8. Guía de programación visual9. Organización de páginas web10. Creación de sitios web desde cero ...
    ✅ Disponible - Ver Ubicación

    50,95 €

  • RETOS DE PROGRAMACIÓN CON JUEGOS. PYTHON Y JAVA
    NADAL, MARIONA
    1. Programación de computadoras2. Aprendizaje de Java3. Aprendizaje de Python4. Desarrollo de juegos5. Comparación de lenguajes de programación6. Refuerzo de conceptos de programación7. Programación autodidacta8. Ejemplos de programación para todas las edades9. Desarrollo de juegos educativos10. Conceptos avanzados de programación ...
    ✅ Disponible - Ver Ubicación

    30,95 €

Otros libros del autor

  • NOSOTROS, LOS PROGRAMADORES
    MARTIN, ROBERT C.
    La leyenda del software Robert C. Martin ("Uncle Bob") se sumerge en el mundo de la programación, explorando la vida de los pioneros revolucionarios que crearon los cimientos de la informática moderna. Desde Charles Babbage y Ada Lovelace a Alan Turing, Grace Hopper y Dennis Ritchie, Martin pone el foco sobre las figuras cuyo brillo y perseverancia cambiaron el mundo.Esta narra...
    ✅ Disponible - Ver Ubicación

    46,50 €

  • DISEÑO FUNCIONAL. PRINCIPIOS, PATRONES Y PRÁCTICAS
    MARTIN, ROBERT C.
    En Diseño funcional, el reputado ingeniero de software Robert C. Martin («Uncle Bob») explica cómo y por qué utilizar la programación funcional para crear sistemas mejores para clientes reales. Martin compara las estructuras de la programación convencional orientada a objetos en Java con las que permiten los lenguajes funcionales, identifica los mejores roles para cada una y mu...
    ✅ Disponible - Ver Ubicación

    38,95 €

  • ARQUITECTURA LIMPIA
    MARTIN, ROBERT C.
    Aplicando unas reglas universales de la arquitectura de software, podrá mejorar tremendamente la productividad en la implementación de cualquier programa. Ahora, continuando el éxito sus libros más vendidos, " Código Limpio " y " The Clean Coder " , el legendario experto en software Robert C. Martin revela estas reglas y le ayuda a implementarlas. Martin no se limita a pres...
    ✅ Disponible - Ver Ubicación

    42,95 €

  • LA ARTESANÍA DEL CÓDIGO LIMPIO
    MARTIN, ROBERT C.
    Cómo escribir código del que se sienta orgulloso... todos los días En La artesanía del código limpio el legendario Robert C. Martin ('Uncle Bob') ha escrito los principios que definen la profesión (y el arte) del desarrollo de software. Uncle Bob reúne las disciplinas, los estándares y la ética que necesita para entregar un software sólido y efectivo y para estar orgulloso de ...
    🚚 Llegada en 2/3 días

    39,95 €

  • DESARROLLO ÁGIL ESENCIAL
    MARTIN, ROBERT C.
    Casi veinte años después de la presentación del Manifiesto Ágil, el legendario Robert C. Martin Uncle Bob vuelve a presentar los principios y valores del desarrollo ágil a una nueva generación, tanto de programadores como de no programadores. En este libro elimina malos entendidos y distracciones que, a lo largo de los años, han hecho que utilizar el desarrollo ágil sea más dif...
    🚚 Llegada en 2/3 días

    33,95 €

  • EL LIMPIADOR DE CÓDIGO
    MARTIN, ROBERT C.
    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. Lo ven como una impecable y excelente obra. Son profesionales. En este libro, el legendario experto en software Robert C. Ma...
    🚚 LLegada en 24/48h

    33,95 €