O Code Complete é sobre o software craftsmanship; é um livro avançado de nível iniciante / intermediário, escrito para o programador de trabalho, mas ainda seria muito útil para alguém que está programando há pelo menos um ano.
Assim, os pontos-chave do Code Complete (2ª ed.) estão bem resumidos em seu Capítulo 34, Temas em Artesanato de Software. Como parafraseado das minhas anotações:
- Conquiste a Complexidade : reduza a carga cognitiva em sua mente por meio de disciplina, convenções e abstração.
- Escolha o seu processo : tenha consciência da qualidade desde o início (requisitos) até o final (implantação) e além (manutenção).
- Escrever programas para pessoas em primeiro lugar, computadores em segundo : legibilidade de código é imensamente importante para compreensão, capacidade de revisão, taxa de erro, correção de erros, modificabilidade e o consequente tempo e qualidade de desenvolvimento.
- Programa em seu idioma, não nele : pense no que? e porque? antes do How?
- Concentre sua atenção na ajuda das convenções : as convenções gerenciam a complexidade fornecendo estrutura onde ela é necessária, para que o recurso final - sua atenção - possa ser usado com eficiência.
- Programa em termos do domínio do problema : trabalhe no nível mais alto de abstração possível; código de nível superior deve descrever o problema que está sendo resolvido. Distinguir nível de SO, nível de linguagem de programação, estruturas de implementação de baixo nível, termos de domínio de problemas de baixo nível e, finalmente, termos de alto nível de domínio de problema que fariam sentido ao usuário (não-codificador).
- Cuidado com rochas cadentes : como a programação mescla arte e ciência, o bom senso é vital, incluindo a atenção aos sinais de alerta.
- Iterar, repetidamente, novamente e novamente : iterar requisitos, design, estimativas, código, ajuste de código.
- Tu Renderás Software e Religião Separada : seja eclético e disposto a experimentar. Não seja um fanático inflexível, impede a curiosidade e a aprendizagem. Vá além de ter apenas um martelo na sua caixa de ferramentas.
Mas o mais importante take-away está no Capítulo 33, Personagem Pessoal : uma vez que você busque conscientemente melhorar como codificador, você pode e quer. A maneira mais rápida de fazer isso é assumir as atitudes dos mestres codificadores (humildade, curiosidade, honestidade intelectual, disciplina, criatividade), enquanto também pratica seus hábitos (muitos bons hábitos são listados no livro, por exemplo, escolhendo bons nomes de variáveis / valores).
Além disso, o livro deixa claro que a lacuna entre média e excelente em software é imensa ; esse fato por si só deve levar o codificador consciencioso a melhorar a si mesmo.
Isso é o que falta; a versão longa está no livro. :) Também posso enviar-lhe as minhas notas não tão longas, não tão curtas, se quiser mais detalhes. Mas o livro é certamente dinheiro e tempo bem gasto, mesmo que o estilo de escrita seja cansativo às vezes.
Além do código completo, eu recomendo o The Pragmatic Programmer . É para programadores de nível intermediário, bem escrito e uma ótima combinação de conselhos de alto, médio e baixo nível.