📘 Exercícios — Capítulo 9#
Estilo#
← Voltar#
Exercícios sobre Planejamento e Design#
1. Escolha um problema cotidiano (como organizar uma estante de livros) e descreva todos os seus requisitos antes de pensar em qualquer código.
2. Aplique a técnica de brainstorming para listar três formas diferentes de resolver o problema de encontrar o maior número em uma lista, sem censurar ideias inicialmente.
3. Descreva quais seriam os “casos-limite” para um programa que deve ler a data de nascimento de um usuário e calcular sua idade.
4. Explique, com suas palavras, por que “o ótimo é inimigo do bom” no planejamento de um software.
5. Tente explicar o funcionamento do algoritmo de busca binária (visto no Capítulo 2) para um colega que não programa e anote quais partes foram mais difíceis de descrever.
Exercícios sobre Legibilidade e Estilo#
6. Renomeie as variáveis do seguinte trecho para nomes significativos: x = a * 0.15; y = a + x (Dica: pense em um cálculo de gorjeta).
7. Explique por que a frase de Martin Golding sobre “o programador que fará a manutenção ser um psicopata que sabe onde você mora” é uma metáfora importante para a escrita de código.
8. Pesquise como realizar a instalação do formatador de código yapf em seu computador utilizando o terminal.
9. Pegue um programa escrito por você nos capítulos anteriores e aplique a regra de não ultrapassar 80 caracteres por linha.
10. Identifique em qual situação o uso de uma variável global é aceitável, segundo as recomendações do livro.
Exercícios sobre Simplicidade e Manutenção#
11. Encontre uma função longa que você tenha escrito (com mais de 30 linhas) e tente dividi-la em duas ou mais funções menores.
12. Localize um comentário em seu código que apenas “explica o óbvio” e remova-o, melhorando o nome das variáveis para que o código seja autoexplicativo.
13. Explique a Lei de Eagleson sobre o estranhamento que sentimos ao olhar para um código próprio após alguns meses.
14. Pratique o “desapego”: identifique um trecho de código que está causando muitos erros e apague-o completamente para recomeçar do zero com uma nova lógica.
15. Discuta por que escrever um código “esperto” ou com macetes é considerado uma má prática para o trabalho em equipe.
Exercícios sobre Testes e Filosofia Python#
16. Crie uma pequena lista de verificações (checklist) de testes manuais para um programa que realiza a divisão de dois números.
17. Explique a vantagem de automatizar os testes de um software em vez de testar apenas o “caso mais simples” manualmente.
18. Acesse o interpretador Python e execute o comando import this. Escolha um dos aforismos e explique como ele se aplica a um dos seus programas.
19. Reflita sobre o aforismo “Erros nunca devem passar silenciosamente” e explique por que silenciar exceções sem tratá-las é perigoso.
20. Com base nas considerações de Frederick Brooks, descreva qual dos “prazeres de programar” você mais sentiu ao longo do estudo deste livro.