O Programador Pragmático
-
Upload
tadeu-marinho -
Category
Technology
-
view
1.338 -
download
42
description
Transcript of O Programador Pragmático
![Page 2: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/2.jpg)
Agenda
O Livro; Introdução;Uma filosofia pragmática;Uma abordagem pragmática;As ferramentas básicas;Paranóia pragmática;Seja flexível;Enquanto você está codificando;Antes do projeto;Projetos pragmáticos.
![Page 3: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/3.jpg)
O Livro
ISBN: 8577807002; ISBN-13: 9788577807000; Idioma: Livro em português;Encadernação: Brochura; Idioma: Português;Ano de Lançamento: 2009;Número de páginas: 343.
![Page 4: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/4.jpg)
Definição
Pragmático:–Do latim: pragmaticus - “Habilidoso no trabalho”;–Do grego: “πραττειν” - “fazer”.
![Page 5: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/5.jpg)
Desenvolvedores
Ser único:–Pontos fortes e fracos;–Preferências e aversões.
![Page 6: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/6.jpg)
Programador Pragmático
Características:–Adoção antecipada / adaptação rápida;– Inquisitivo;–Pensador crítico;–Realista;–Pau para toda obra.
Executam o trabalho e o executam bem!
![Page 7: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/7.jpg)
Dica 1
Preocupe-se com seu trabalho.
![Page 8: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/8.jpg)
Dica 2
Reflita sobre seu trabalho.
![Page 9: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/9.jpg)
Kaizen
Projeto:–Fazer continuamente diversas pequenas melhorias;
Pessoas:–Empenhar-se continuamente em aprimorar as habilidades;–Adicionar novas ferramentas às que já usa.
![Page 10: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/10.jpg)
Uma Filosofia Pragmática
![Page 11: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/11.jpg)
Dica 3
Forneça opções, não dê desculpas esfarrapadas.
![Page 12: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/12.jpg)
Dica 4
Não tolere janelas quebradas.
![Page 13: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/13.jpg)
Dica 5
Seja um catalisador da mudança.
![Page 14: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/14.jpg)
Dica 6
Lembre-se do cenário em larga escala.
![Page 15: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/15.jpg)
Dica 7
Torne a qualidade parte dos requisitos.
![Page 16: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/16.jpg)
Dica 8
Invista regularmente em sua carteira de conhecimentos.
![Page 17: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/17.jpg)
Carteira de Investimentos
Investidores sérios investem regularmente, como um hábito;A diversidade é a chave para o sucesso a longo prazo; Investidores astutos têm uma carteira equilibrada com
investimentos conservadores e de alto risco e remuneração;Os investidores tentam comprar barato e vender caro para
obter o máximo de retorno;As carteiras devem ser reexaminadas e reestruturadas
periodicamente.
![Page 18: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/18.jpg)
Carteira de Conhecimentos
Invista regularmente;Diversifique;Gerencie o risco;Compre barato, venda caro;Reexamine e reestruture.
![Page 19: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/19.jpg)
Sugestões
Aprenda pelo menos uma nova linguagem todo ano;Leia um livro técnico a cada trimestre;Leia também livros não técnicos;Tenha aulas;Participe de grupos de usuários locais;Experimente ambientes diferentes;Mantenha-se informado;Mantenha-se conectado.
![Page 20: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/20.jpg)
Dica 9
Analise criticamente o que você lê e ouve.
![Page 21: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/21.jpg)
Pensamento Crítico
O cuidado e a consulta com especialistas:–Saiba o que quer perguntar;–Seja específico;–Formule sua pergunta cuidadosamente e polidamente;–Preciso de ajuda não é suficiente;–Tenha paciência ao esperar um retorno.
![Page 22: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/22.jpg)
Dica 10
É o que você diz e a maneira como diz.
![Page 23: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/23.jpg)
Comunique-se
Saiba o que você quer dizer;Conheça seu público-alvo;Escolha seu momento;Escolha um estilo;Dê uma boa aparência.Envolva seu público-alvo;Seja um ouvinte;Dê retorno às pessoas.
![Page 24: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/24.jpg)
Seja ASTUTO
O que você quer que eles Aprendam?
Qual é Seu interesse no que você tem a dizer?
Seu Trabalho tem que nível de sofisticação?
Que nível de detalhes eles Usam?
Quem você quer que Tenha a posse da informação?
Como você pode motivá-los a Ouví-lo?
![Page 25: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/25.jpg)
Releia;Verifique a ortografia;Mantenha um formato simples;Correspondência formatada;Crédito de citações;Verifique a lista de destinatários.
![Page 26: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/26.jpg)
Uma Abordagem Pragmática
![Page 27: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/27.jpg)
Dica 11
NSR - Não se repita.
![Page 28: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/28.jpg)
Os Males da Duplicação
Princípios NSR:–Cada bloco de informações deve ter uma representação oficial, exclusiva e sem ambigüidades dentro de um sistema.
![Page 29: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/29.jpg)
Como Surge a Duplicação
Duplicidade imposta:–Acham que não tem escolhas - o ambiente parece pedir.
Duplicação inadvertida:–Não percebem que estão duplicando informações.
Duplicação impaciente:–Preguiça e duplicam porque parece ser mais fácil.
Duplicidade entre desenvolvedores:–Várias pessoas duplicam por desconhecer o sistema como um todo.
![Page 30: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/30.jpg)
Duplicidade Imposta
Várias representações das informações;Documentação no código;Documentação e código;Problemas de linguagem;
![Page 31: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/31.jpg)
Duplicação Impaciente
Atalhos causam grandes atrasos;Fácil de detectar e manipular;Exige disciplina e disposição de se preocupar antes.
![Page 32: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/32.jpg)
Duplicação Entre Desenvolvedores
Mais difícil de detectar e manipular;Pode passar despercebida por anos;Encorajar comunicação ativa e freqüente entre
desenvolvedores.
![Page 33: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/33.jpg)
Dica 12
Facilite a reutilização.
![Page 34: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/34.jpg)
Ortogonalidade
Termo emprestado da geometria;Representa um tipo de independência ou desvinculação;Duas ou mais coisas são ortogonais quando alterações em uma
não afetam as outras;Vantagens:
–Maior produtividade;–Menor risco.
![Page 35: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/35.jpg)
Diagramas de Camadas
Interface de Usuário
Acesso ao Banco de Dados
Mecanismo de Relatório
Lógica de Negócio
Estrutura do AplicativoBiblioteca C Padrão
Sistema Operacional
![Page 36: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/36.jpg)
Dica 13
Elimine efeitos entre elementos não relacionados.
![Page 37: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/37.jpg)
Codificando
Mantenha seu código desvinculado;Evite dados globais;Evite funções semelhantes;
![Page 38: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/38.jpg)
Reversibilidade
“Nada é mais perigoso do que uma idéia quando ela é a única que você tem.”
Emil-Auguste Chartier, Propos sur la religion, 1983
![Page 39: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/39.jpg)
Dica 14
Não há decisões definitivas.
![Page 40: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/40.jpg)
Dica 15
Use projéteis luminosos para encontrar o alvo.
![Page 41: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/41.jpg)
Vantagens
Os usuários podem ver algo funcionando antes;Os desenvolvedores constroem uma estrutura na qual podem
trabalhar;Você terá uma plataforma de integração;Você terá algo para demonstrar;Você sentirá melhor o progresso;
![Page 42: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/42.jpg)
Dica 16
Crie protótipos para aprender.
![Page 43: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/43.jpg)
Dica 17
Programe em um nível próximo ao domínio do problema.
![Page 44: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/44.jpg)
Dica 18
Estime para evitar surpresas.
![Page 45: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/45.jpg)
Estimando
Entenda o que está sendo pedido;Construa um modelo do sistema;Divida o modelo em componentes;Dê a cada parâmetro um valor;Calcule respostas;Acompanhe sua habilidade em estimar.
![Page 46: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/46.jpg)
Dica 19
Reexamine o cronograma junto ao código.
![Page 47: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/47.jpg)
As Ferramentas Básicas
![Page 48: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/48.jpg)
Dica 20
Mantenha as informações em texto simples.
![Page 49: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/49.jpg)
Dica 21
Use o poder dos shells de comando.
![Page 50: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/50.jpg)
Dica 22
Use bem o seu editor.
![Page 51: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/51.jpg)
O Que Fazer?
Quem fez alterações nessa linha de código;Qual é a diferença entre a versão atual e da última semana?Quantas linhas de código alteramos nessa versão?Que arquivos foram alterados com mais freqüência?
![Page 52: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/52.jpg)
Dica 23
Use sempre o controle de código-fonte.
![Page 53: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/53.jpg)
Dica 24
Corrija o problema, esqueça o culpado.
![Page 54: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/54.jpg)
Dica 25
Não entre em pânico.
![Page 55: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/55.jpg)
Dica 26
“select”não está com defeito.
![Page 56: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/56.jpg)
Dica 27
Não suponha – teste.
![Page 57: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/57.jpg)
Dica 28
Aprenda uma linguagem de manipulação de texto.
![Page 58: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/58.jpg)
Dica 29
Escreva um código que crie códigos.
![Page 59: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/59.jpg)
Paranóia Pragmática
![Page 60: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/60.jpg)
Dica 30
Você não conseguirá criar um software perfeito.
![Page 61: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/61.jpg)
Dica 31
Projete com contratos.
![Page 62: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/62.jpg)
Dica 32
Encerre antecipadamente.
![Page 63: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/63.jpg)
Dica 33
Se não pode acontecer, use asserções para assegurar que não aconteça.
![Page 64: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/64.jpg)
Dica 34
Use exceções para problemas excepcionais.
![Page 65: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/65.jpg)
Dica 35
Acabe o que começou.
![Page 66: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/66.jpg)
Seja Flexível
![Page 67: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/67.jpg)
Dica 36
Reduza a vinculação entre módulos.
![Page 68: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/68.jpg)
Dica 37
Configure, não integre.
![Page 69: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/69.jpg)
Dica 38
Coloque as abstrações no código e os detalhes em metadados.
![Page 70: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/70.jpg)
Dica 39
Analise o fluxo de trabalho para melhorar a concorrência.
![Page 71: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/71.jpg)
Caipirinha
Passos:–Descasque os limões;–Corte em quatro partes cada limão;–Tire os caroços e o filete branco do meio dos limões;–Esprema alguns limões diretamente no copo com açúcar;–Pique gelo;–Acrescente o gelo picado e a cachaça ao copo;–Agite bem;–Sirva.
![Page 72: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/72.jpg)
Concorrência
Descascar limões
Cortar limões
Remover caroços e filetes brancos
Picar gelo
Espremer limões
Colocar cachaça em um copo
Colocar açúcar em um copo
Colocar gelo picado em um copo
Agitar bem
Sirva
![Page 73: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/73.jpg)
Dica 40
Projete usando serviços.
![Page 74: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/74.jpg)
Dica 41
Projete sempre pensando na concorrência.
![Page 75: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/75.jpg)
Dica 42
Separe as visualizações dos modelos.
![Page 76: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/76.jpg)
Dica 43
Use quadros-negros para coordenar o fluxo de trabalho.
![Page 77: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/77.jpg)
Enquanto Você Está Codificando
![Page 78: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/78.jpg)
Dica 44
Não programe por coincidência.
![Page 79: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/79.jpg)
Programando Deliberadamente
Esteja sempre consciente do que está fazendo;Não codifique às cegas;Aja de acordo com um plano;Confie apenas em coisas confiáveis;Documente suas suposições;Não teste apenas seu código;Priorize seu esforço;Não seja escravo da história.
![Page 80: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/80.jpg)
Dica 45
Estime a ordem de seus algoritmos.
![Page 81: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/81.jpg)
Dica 46
Teste suas estimativas.
![Page 82: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/82.jpg)
Dica 47
Refatore cedo, refatore sempre.
![Page 83: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/83.jpg)
Quando Refatorar
Duplicação;Projeto não ortogonal;Conhecimento desatualizado;Desempenho.
![Page 84: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/84.jpg)
Dica 48
Projete para testar.
![Page 85: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/85.jpg)
Dica 49
Teste seu software ou seus usuários testarão.
![Page 86: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/86.jpg)
Dica 50
Não use o código de assistente que você não entender.
![Page 87: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/87.jpg)
Antes de Começar
![Page 88: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/88.jpg)
Dica 51
Não colete requisitos, cave-os.
![Page 89: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/89.jpg)
Dica 52
Trabalhe com um usuário para pensar como um usuário.
![Page 90: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/90.jpg)
Dica 53
Abstrações tem vida mais longa do que detalhes.
![Page 91: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/91.jpg)
Dica 54
Use um glossário do projeto.
![Page 92: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/92.jpg)
Dica 55
Não pense fora da caixa - encontre a caixa.
![Page 93: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/93.jpg)
Desafio 1
Conectar todos os pontos do quebra-cabeça a seguir e voltar ao ponto inicial com apenas três linhas retas – sem tirar sua caneta do papel ou executar duas vezes a mesma etapa.
![Page 94: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/94.jpg)
Resposta
![Page 95: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/95.jpg)
Desafio 2
Você tem 10 soldados. Forme 5 filas com 4 soldados em cada uma.
![Page 96: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/96.jpg)
Resposta
![Page 97: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/97.jpg)
Dica 56
Só comece quando estiver pronto.
![Page 98: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/98.jpg)
Dica 57
Algumas coisas são fáceis de fazer, mas não de descrever.
![Page 99: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/99.jpg)
Dica 58
Não seja escravo dos métodos formais.
![Page 100: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/100.jpg)
Dica 59
Ferramentas caras não produzem software melhores.
![Page 101: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/101.jpg)
Projetos Pragmáticos
![Page 102: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/102.jpg)
Dica 60
Organize as equipes com base na funcionalidade.
![Page 103: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/103.jpg)
Dica 61
Não use procedimentos manuais.
![Page 104: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/104.jpg)
Dica 62
Teste cedo. Teste sempre. Teste automaticamente.
![Page 105: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/105.jpg)
Dica 63
A codificação só estará concluída após todos os testes serem executados.
![Page 106: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/106.jpg)
Dica 64
Use sabotadores para testar seus testes.
![Page 107: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/107.jpg)
Dica 65
Teste a cobertura de estados e não a cobertura de código.
![Page 108: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/108.jpg)
Dica 66
Encontre os erros apenas uma vez.
![Page 109: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/109.jpg)
Dica 67
Trate o português simplesmente como outra linguagem de programação.
![Page 110: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/110.jpg)
Dica 68
Construa a documentação no código, não acrescente como complemento.
![Page 111: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/111.jpg)
Dica 69
Exceda gentilmente as expectativas de seus usuários.
![Page 112: O Programador Pragmático](https://reader030.fdocumentos.com/reader030/viewer/2022012403/55939e401a28abe97f8b467b/html5/thumbnails/112.jpg)
Dica 70
Assine seu trabalho.