Resumo do Livro: Código Completo

Apr 22 2023
por Steve McConnell
“Code Complete” é um guia abrangente para desenvolvedores de software que se concentra em melhorar a qualidade e a capacidade de manutenção do código. Este post fornece um resumo e elaboro alguns pontos com base na minha experiência.

“Code Complete” é um guia abrangente para desenvolvedores de software que se concentra em melhorar a qualidade e a capacidade de manutenção do código.

Este post fornece um resumo e elaboro alguns pontos com base na minha experiência.

Projeto e planejamento

O livro enfatiza a importância de um planejamento e design minuciosos antes de escrever o código. Isso inclui entender os requisitos, criar projetos detalhados e considerar possíveis problemas para minimizar os problemas durante a implementação.

Um desenvolvedor cria um documento de design detalhado para um novo recurso, descrevendo a arquitetura geral, classes e métodos, bem como definindo as interações entre os componentes.

Embora o design inicial seja essencial, mesmo em equipes ágeis, tome cuidado com a armadilha da Big Upfront Design and Analysis Paralysis .

Escrevendo código limpo e sustentável

McConnell defende a escrita de código limpo e autoexplicativo com nomes de variáveis ​​significativos, recuo adequado e formatação consistente, facilitando a compreensão e a manutenção por outras pessoas.

Por exemplo, em vez de usar nomes de variáveis ​​enigmáticas como aou x, os desenvolvedores escolhem nomes descritivos como userInpute totalAmountpara melhorar a legibilidade do código.

Comentários e documentação do código

O livro enfatiza a importância de fornecer comentários claros e concisos no código, bem como criar e manter uma documentação adequada para ajudar futuros desenvolvedores a entender o sistema e sua finalidade.

Um desenvolvedor adiciona comentários embutidos para explicar a lógica complexa e mantém a documentação atualizada que descreve a arquitetura geral do sistema e os módulos individuais.

Não abuse deste conselho. A autodocumentação é sempre melhor do que os comentários. Use comentários para o "porquê" e código autodocumentado para documentar o "como".

Modularização e encapsulamento

McConnell recomenda projetar código com módulos bem definidos e encapsular detalhes de implementação, permitindo manutenção, teste e reutilização mais fáceis.

Um desenvolvedor cria um módulo separado para lidar com operações de banco de dados, encapsulando detalhes específicos do banco de dados e fornecendo uma API clara para outras partes do aplicativo usarem, como um repositório . Dessa forma, você pode alterar as implementações do banco de dados e até mesmo usar uma implementação que simplesmente salve as linhas em um Array na memória para testes de unidade.

Refatoração de código

O livro enfatiza a importância de revisar e refatorar regularmente o código para melhorar sua estrutura, legibilidade e desempenho, resultando em software de maior qualidade.

Um desenvolvedor identifica uma seção de código com baixo desempenho e a refatora otimizando algoritmos e reduzindo cálculos desnecessários, resultando em maior eficiência.

Esteja ciente de que a refatoração está alterando a estrutura do código sem alterar seu comportamento. Se você alterar o comportamento do código enquanto altera a estrutura, isso NÃO é refatoração. Os testes são a melhor maneira de garantir que o comportamento não seja alterado, apenas a estrutura.

Tratamento de erros e programação defensiva

McConnell destaca o valor de antecipar possíveis erros e implementar o tratamento adequado de erros, bem como empregar técnicas de programação defensiva para criar um software mais robusto e confiável.

Um desenvolvedor valida a entrada do usuário para evitar comportamento inesperado, usa blocos try-catch para lidar com exceções e adiciona verificações de valores nulos ou inválidos em todo o código.

Teste e depuração

O livro abrange várias técnicas de teste, incluindo teste de unidade, teste de integração e teste de sistema, bem como estratégias de depuração eficazes para identificar e corrigir problemas.

Um desenvolvedor escreve testes de unidade abrangentes para modelos de domínio de negócios individuais, garantindo que funcionem corretamente e possam ser integrados com segurança ao restante do sistema.

Revisão de código e colaboração

McConnell enfatiza a importância das revisões de código e da colaboração entre os membros da equipe para compartilhar conhecimento, identificar possíveis problemas e melhorar a qualidade geral do software.

Uma equipe de desenvolvimento realiza revisões de código regulares, onde os membros fornecem feedback construtivo sobre o trabalho uns dos outros, levando a uma melhor qualidade de código e a uma equipe mais coesa.

No entanto, a revisão pode chegar tarde demais e um dos desenvolvedores pode ter criado o código com base na suposição de que está indo na direção errada. A programação em par da tarefa do começo ao fim em uma tela e uma tarefa permite que o feedback aconteça mais cedo e que ambos os desenvolvedores construam um modelo mental do problema para que possam ter um melhor desempenho ao longo do tempo.

Aplicando os princípios e as melhores práticas descritos em “Code Complete”, os desenvolvedores de software podem aprimorar suas habilidades de codificação, criar software mais fácil de manter e confiável e, por fim, fornecer produtos de alta qualidade.

Obrigado por ler. Se você tiver comentários, entre em contato comigo no Twitter , LinkedIn ou Github .