📘 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.