Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJudite Tânia Alves Fernandes Alterado mais de 7 anos atrás
1
Programação Extrema e outras práticas para elaboração de software Hugo Corbucci AgilCoop DCC - IME - USP www.agilcoop.org.br
2
2 Copyleft Agilcoop 2008 O que é Programação Extrema? Conjunto de práticas a serem adotadas no cotidiano da equipe. As práticas: – são adaptáveis a diferentes contextos – se suportam e complementam – permitem adoção em pequenos passos – apoiam os valores essenciais por trás da metodologia
3
3 Copyleft Agilcoop 2008 Os Valores de XP Comunicação Feedback Coragem Simplicidade Respeito
4
4 Copyleft Agilcoop 2008 A equipe e seu ambiente Sentar juntos Time completo Cliente presente
5
5 Copyleft Agilcoop 2008 A equipe e seu ambiente Papéis – Coach: Lembra a todos as práticas e ajuda com dificuldades na equipe – Tracker: Mantem informações sobre o projeto e elabora gráficos que mostrem as mais importantes à equipe – Cliente: Determina o que é mais importante, responde dúvidas dos programadores e toma decisões sobre funcionalidades.
6
6 Copyleft Agilcoop 2008 Área de trabalho informativa
7
7 Copyleft Agilcoop 2008 Jogo do planejamento Clientes escrevem e priorizam histórias Desenvolvedores estimam as mais prioritárias Suporte do coach e do tracker para evitar otimismo ou pessimismo excessivo
8
8 Copyleft Agilcoop 2008 Localizando em XP
9
9 Copyleft Agilcoop 2008 Sem exagerar Trabalho energizado: Balancear a intensidade do trabalho para não desgastar a equipe. Folga: Não planeje até o último minuto. Deixe uma folga para imprevistos porque eles sempre surgem.
10
10 Copyleft Agilcoop 2008 Build de 10 minutos Fonte: http://xkcd.com/303/
11
11 Copyleft Agilcoop 2008 Melhorando sempre Análise de causa inicial Retrospectiva: Nada é perfeito. Tudo sempre pode melhorar e, para isso, precisa entender o que deu certo e errado.
12
12 Copyleft Agilcoop 2008 Localizando em XP
13
13 Copyleft Agilcoop 2008 Trabalhando em equipe Código compartilhado: Eu fiz, você arruma, nós nos ajudamos Padronização do estilo de código: Seu código e meu código devem ser quase idênticos e indistinguíveis
14
14 Copyleft Agilcoop 2008 Código unificado Repositório único Integração contínua SEM COM
15
15 Copyleft Agilcoop 2008 Redundância Programação pareada: Distribuindo conhecimento na equipe
16
16 Copyleft Agilcoop 2008 Localizando em XP
17
17 Copyleft Agilcoop 2008 Previnindo defeitos Auto-inspeção (mistake proof) Testes são a especificação!
18
18 Copyleft Agilcoop 2008 Testes Manuais? Geralmente são: 1) Escolher alguns valores 2) Executar o programa 3) Visualizar o resultado Implementação muda Difícil repetir os testes Executado poucas vezes Ninguém quer testar Problemas: ● Demorado ● Cansativo ● Poucos casos ● Casos simples
19
19 Copyleft Agilcoop 2008 Testes Automatizados! Código que testa outro código e verifica o resultado Um teste que pode ser executado facilmente várias vezes Testar não é depurar – Testar é buscar erros – Depurar é seguir o fluxo para identificar um erro conhecido “Testes podem mostrar a presença de erros, não a sua ausência” (Dijkstra)
20
20 Copyleft Agilcoop 2008 Porque testar? Ajuda a encontrar erros mais cedo Novas funcionalidades podem quebrar as funcionalidades antigas Dá suporte para mudanças de configuração no ambiente Melhora a qualidade do código, diminuindo o número de erros
21
21 Copyleft Agilcoop 2008 Como e o quê? Tipos de testes: Unidade Integração Aceitação Interface A execução deve ser ágil e rápida – Com ferramentas, scripts ou suite de testes – Resultado deve ser simples OK ou Lista de Erros ● Desempenho ● Estresse ● Segurança ● …
22
22 Copyleft Agilcoop 2008 TDD - Desenvolvimento Dirigido por Testes Ciclo em passos pequenos: 1. Escreva um teste que falha 2. Faça o teste passar rapidamente 3. Refatore
23
23 Copyleft Agilcoop 2008 Localizando em XP
24
24 Copyleft Agilcoop 2008 Design Incremental Simples YAGNI: You Aint Gonna Need It “Você não vai precisar disso” Refatoração DRY: Dont Repeat Yourself “Não se repita”
25
25 Copyleft Agilcoop 2008 Constante manutenção Evitando débito técnico: – Refatoração e Design Simples Complexidade é o inimigo invisível!
26
26 Copyleft Agilcoop 2008 Refatoração Uma [pequena] modificação no sistema que não altera o seu comportamento funcional, mas que torna o código mais fácil de ser entendido e menos custoso de ser alterado: – simplicidade – flexibilidade – clareza O desempenho pode piorar, otimizar não é o objetivo da refatoração
27
27 Copyleft Agilcoop 2008 O espírito da Refatoração Antes
28
28 Copyleft Agilcoop 2008 O espírito da Refatoração (refatoração) Antes
29
29 Copyleft Agilcoop 2008 O espírito da Refatoração (refatoração) Antes Depois
30
30 Copyleft Agilcoop 2008 Exemplos de refatoração Alterar nomes de variáveis, métodos e objetos para melhorar legibilidade do código – String calc_imp_rnd_str(int a, Txs tx, int inc) -> String calculaImpostoDeRenda(int ano, Imposto taxas, int rendimento) Mudar parâmetros de métodos para que fiquem mais claros Melhorar o design da arquitetura Eliminar duplicação de código Flexibilizar métodos para novos usos
31
31 Copyleft Agilcoop 2008 Refatoração sempre existiu... Melhorar o código sempre foi uma prática implícita Com sua popularização (e aceitação acadêmica) surge um vocabulário de refatorações comuns e um catálogo compartilhado Assim podemos utilizá-las mais sistematicamente. Podemos aprender novas técnicas, ensinar uns aos outros. Visível na comunidade Smalltalk nos anos 80/90 Ralph Johnson (academia) Kent Beck (indústria)
32
32 Copyleft Agilcoop 2008 Sintomas para refatorar Quando você encontra código antigo que não entende de primeira facilmente Ao ler código feito por outros programadores, e perceber que ele não está claro (durante revisões por exemplo) Quando precisa consertar uma falha, ou adicionar funcionalidade Regra dos 3: Once and Only Once
33
33 Copyleft Agilcoop 2008 Em cada refatoração Antes de começar a refatoração, verifique se você tem um conjunto sólido de testes para verificar a funcionalidade do código a ser refatorado. Refatorações podem adicionar erros. – porém, como são feitas em pequenos passos, é fácil recuperar-se de uma falha Os testes vão ajudá-lo a detectar erros se eles forem criados.
34
34 Copyleft Agilcoop 2008 Como fazer? Em geral, um passo de refatoração é tão simples que parece que ele não vai ajudar muito. – Cada passo é trivial. – Demora alguns segundos ou alguns poucos minutos para ser realizado. – É uma operação sistemática e óbvia. Mas quando se juntam 50 passos, bem escolhidos, em seqüência, o código melhora radicalmente.
35
35 Copyleft Agilcoop 2008 Voltando para XP
36
36 Copyleft Agilcoop 2008 Um dia de XP Escolhe uma história do cliente. Procura um par livre e um computador. Seleciona um “cartão de história”. Discute modificações recentes no sistema Discute história do cliente Entra no ciclo: Teste s Integraçã o Implementaçã o Projeto (design)
37
37 Copyleft Agilcoop 2008 Dúvidas? agilcoop@agilcoop.org.br ? www.agilcoop.org.br (artigos + agilcast)
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.