¿Cuáles son los puntos clave de Code Complete? [cerrado]

72

He escuchado a mucha gente mencionar Code Complete como un libro que vale la pena leer. Desafortunadamente, estoy tan ocupado que no tengo tiempo para leerlo, así que ¿alguien puede decirme cuáles son los puntos clave del libro?

Casebash
fuente
49
¡El punto clave de la página 824 de Code Complete 2 es que en realidad debería leer libros de programación!
azheglov
@azheglov: ¿Es este 2 como en la 2da edición o 2 como en Code Complete 2 que debe leerse después de Code Complete?
Chris
@Chris, casi 4 años después: son 2 como en la 2da edición, revisados ​​y actualizados. Y espero que lo hayan leído mientras tanto :-)
streppel

Respuestas:

83

Code Complete trata sobre la artesanía del software; es un libro de principiante avanzado / nivel intermedio, escrito para el programador que trabaja, pero aún sería muy útil para alguien que ha estado programando durante al menos un año.

Por lo tanto, los puntos clave de Code Complete (2ª ed.) Están muy bien resumidos en su Capítulo 34, Temas en Software Craftsmanship. Como parafraseado de mis notas:

  1. Conquista la complejidad : reduce la carga cognitiva en tu mente a través de la disciplina, las convenciones y la abstracción.
  2. Elija su proceso : sea consciente de la calidad desde el inicio (requisitos) hasta el final (implementación) y más allá (mantenimiento).
  3. Escribir programas para personas primero, computadoras en segundo lugar : la legibilidad del código es muy importante para la comprensión, la capacidad de revisión, la tasa de error, la corrección de errores, la modificabilidad y el consiguiente tiempo y calidad de desarrollo.
  4. Programa en tu idioma, no en él : piensa en el ¿Qué? ¿y por qué? antes del cómo?
  5. Concentre su atención con la ayuda de las convenciones : las convenciones gestionan la complejidad al proporcionar la estructura donde se necesita, de modo que el recurso final, su atención, se pueda utilizar de manera efectiva.
  6. Programa en términos del dominio del problema : trabaje al más alto nivel de abstracción posible; El código de nivel superior debe describir el problema que se está resolviendo. Distinga el nivel del sistema operativo, el nivel del lenguaje de programación, las estructuras de implementación de bajo nivel, los términos de dominio de problemas de bajo nivel y, por último, los términos de dominio de problemas de alto nivel que tendrían sentido total para el usuario (no codificador).
  7. Esté atento a Falling Rocks : a medida que la programación fusiona arte y ciencia, el buen juicio es vital, incluidas las señales de advertencia.
  8. Iterar, repetidamente, una y otra vez : iterar requisitos, diseño, estimaciones, código, ajuste de código.
  9. Renunciarás al software y a la religión : sé ecléctico y dispuesto a experimentar. No seas un fanático inflexible, excluye la curiosidad y el aprendizaje. Vaya más allá de tener solo un martillo en su caja de herramientas.

Pero las conclusiones más importantes se encuentran en el Capítulo 33, Carácter personal : una vez que busca conscientemente mejorar como codificador, puede y lo hará. La forma más rápida de hacerlo es asumir las actitudes de los maestros codificadores (humildad, curiosidad, honestidad intelectual, disciplina, creatividad), mientras también practica sus hábitos (en el libro se enumeran muchos buenos hábitos, por ejemplo, elegir una buena variable / valor nombres).

Además, el libro deja en claro que la brecha entre promedio y excelente en software es inmensa ; solo ese hecho debería conducir al codificador concienzudo a superarse a sí mismo.

Eso es todo; La versión larga está en el libro. :) También puedo enviarte mis notas no tan largas ni tan cortas si quieres más detalles. Pero el libro es ciertamente dinero y tiempo bien gastados, incluso si el estilo de escritura es agotador a veces.

Más allá de Code Complete, recomiendo encarecidamente The Pragmatic Programmer . Es para programadores de nivel intermedio, bien redactados y una excelente combinación de consejos de alto, medio y bajo nivel.

limist
fuente
¿Estás seguro de que este es un libro de nivel intermedio? Parece bastante básico, con consejos como "recuerde eliminar los nombres de variables no utilizados", ideal para alguien en el primer o segundo año de la universidad, pero no en el nivel intermedio (IMO).
Colen
1
@Colen: gracias por tu comentario, debería haber especificado que es para codificadores avanzados principiantes / intermedios.
limist
10
@Colen: aunque Code Complete trata algunos temas simples mezclados con los complejos, definitivamente no es para principiantes. Casi cualquier desarrollador en cualquier nivel puede beneficiarse al leerlo; se sorprendería de lo poco que algunos desarrolladores "senior" realmente saben sobre los conceptos básicos, especialmente si solo han programado en un idioma o han trabajado para una compañía durante toda su carrera.
Steve Hill
1
El código IMO completo es innecesariamente detallado, ¡así que tenga cuidado con el comprador!
BKSpurgeon
Este es un buen resumen de los temas del libro. ¿Puedes por favor compartir tus notas no tan largas y no tan cortas?
Akshay Khot
18

Es un libro intermedio, un popurrí de mejores prácticas de desarrollo de software.

Si eres un programador principiante, no entenderás mucho del material, y si tienes experiencia, el libro solo confirmará lo que ya sabes. En consecuencia, el libro podría ser de mayor valor para los programadores intermedios, que ya tienen un poco de conocimiento de programación, pero necesitan un libro de mejores prácticas para vincularlo todo.

Se gastan varias páginas sobre cómo formatear bloques de código y los méritos relativos de cada enfoque. Personalmente, creo que el gran debate sobre dónde poner sus llaves se terminó. (¿O es eso?)

Robert Harvey
fuente
44
Tu paréntesis te ganó un voto positivo. : p
Nathan Taylor
¿Dónde debo poner llaves?
Petah