Date post: | 06-Jan-2016 |
Category: |
Documents |
Upload: | siderevsnvncivs |
View: | 98 times |
Download: | 6 times |
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 1/51
Edgard Davidson
@edgarddavidson
a mestre
De aprendiz
O programador Pragmático
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 2/51
Referências
Andrew Hunt
David Thomas
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 3/51
!"#$
&'(()(*+",
!"# #%&'#( )(*+*,-*./0 #1 21
3(04#)05 60.)(*)*(#7 0% *2)0(#%
/#%)# ,7'(08 "# .90 60.%#:27(5
3(062(*(#7 6*./7/*)0% ;2# ,#(*1
#%)* 0+(*8<
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 4/51
Este livro contempla:
combater a deterioração de software
não duplicar informações
escrever código flexível, dinâmico e adaptável
evitar a programação baseada no acaso
blindar seu código com contratos, asserções e exceções
capturar requisitos reais
testar de modo incansável e eficaz
agradar seus usuários
montar equipes de programadores pragmáticos
aumentar a precisão de seus desenvolvimentos com automação.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 5/51
Preocupe-se com seu trabalhoPor que passar sua vida desenvolvendo software
se não estiver interessado em fazê-lo bem?
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 6/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 7/51
Forneça opções, não dê
desculpasesfarrapadas
Em vez de desculpas, forneça
opções. Não diga que não
pode ser feito; explique o quepode ser feito.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 8/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 9/51
!"#$ &' ($)$*+,$-./ -" '&-$01$,
Você não pode impor mudanças às pessoas.Em vez disso, mostre a elas como o futuro pode ser e
ajude-as a participar de sua criação
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 10/51
Lembre-se do cenário em larga escalaNão fique tão absorvido pelos detalhes a ponto de não ver o que
está acontecendo ao seu redor
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 11/51
Tome a qualidade parte dos requisitos
Envolva seus usuários na determinação dos requisitos de qualidade
do projeto.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 12/51
"#$% # &'(%)*+,&*# -$ ./0+1#
2)3+41& 5%6-7&($%)1% %$ 4-& 8&(1%+(& *%
8#).%8+$%)1#
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 13/51
Analise criticamente o que você lê e ouveNão se deixe levar por fornecedores, pela mídia ou por dogmas. Analise as
informações em relação a si mesmo e ao seu projeto
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 14/51
É o que você diz e a maneira como diz
ã é ã
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 15/51
2!3 4 25. !" 3"6+)$!"#" %&'(' #) *+,'-."/0)1 #)2) 3)- 4." -)5-)1)+3"/6' '7(*"&8
)9(&41*2" ) 1). ".%*:4*#"#) #)+3-' #) 4. 1*13).";
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 16/51
Facili te a reutilização
!" $%& $'()* &"+,*)-.&/ 0"&' &"+,*)-.1%2 3&)" +4 .45)"67" 8+"
.9:)" . &"+,*)-.;<%
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 17/51
Elimine efeitos entreelementos nãorelacionados
Projete
componentes
que
sejam
auto-
suficientes, independentes e com uma
finalidade exclusiva bem definida.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 18/51
Não há decisões definitivasNenhuma decisão é irrevogável: planeje-se para a mudança.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 19/51
Crie protótipos para aprenderA criação de protótipos é uma experiência de aprendizado. Seu valor não
está no código produzido, mas nas lições aprendidas.
ó
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 20/51
Programe em um nível próximo aodomínio do problema
Projete e codifique na linguagem do seu usuário.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 21/51
!"#$%& ()*) &+$#)* ",*(*&")"!"#$%& )-#&" .& /0%&1)*2 30/4 $.&-#$5$/)*6 (0""7+&$" (*089&%)"
90:0 .& $-7/$02
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 22/51
! se con " ole de vers#o
O versionamen $ % a m &quina de 'mpo de seu " abalho ( ele o)ermi ' voltar.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 23/51
Corrija o problema,
esqueça o culpado
Não importa se você ou outra
pessoa foi o culpado pelo bug –ele precisará de correção de
qualquer forma.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 24/51
Não suponha – teste
çõ
çõ
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 25/51
Escreva um código que escreva códigos
Os geradores de códigos aumentam aprodutividade e ajudam a evitar a
duplicação
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 26/51
Programe por contratos
Use contratos paradocumentar e provar que
o código não faz mais nemmenos do que ele propõe
fazer.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 27/51
çõ
<1 )9()/0)1 5'#). 1',-)- #) 3'#'1 '1 5-'%&)."1 #)
&):*%*&*#"#) ) ."+43)+/6' #'1 )."-"+="#'1 #) (>#*:'1
(&?11*('1; @4"-#)A"1 5"-" "('+3)(*.)+3'1 )9()5(*'+"*1;
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 28/51
Reduza a vinculação entre módulos
Evite a vinculação escrevendo códigos
“cautelosos” e aplicando a lei de Deméter
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 29/51
=0,4" . %&1"4 1" (%49*">)1.1" ?@6A 1" 0"+0 .*B%&)74%0
C"6D. +4. )1E). 1" 8+.67% % 9&%("00% 1"F" 1"4%&.& .67"0 1" "0(&"F"& % (:1)B%
Fonte: Nívio Ziviani
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 30/51
Tenha suas estimativas
A análise matemática de algoritmos não diz tudo. Tente
cronometrar seu código em seu ambiente de destino.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 31/51
Refatore cedo, refatore sempre
Da mesma forma que você pode capinar e reorganizar um jardim,reescreva, reorganize e reconstrua o código quanto necessário.
Ataque a raiz do problema.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 32/51
Projete para testar
ó
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 33/51
Teste seu código ou seus usuáriostestarão
Teste incansavelmente. Não deixe que seus
usuários encontre erros para você
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 34/51
Não use código de wizard que você não entende
ó ê
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 35/51
Trabalhe com usuários para pensar como um usuário
É a melhor maneira de entender como osistema será usado de verdade
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 36/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 37/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 38/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 39/51
Não seja escravo de métodos
formais
!"o ado# cegamen # qualquer t $ cnica sem
% az & -la para o con #x ' de suas pr () cas e
* apacidades de desenvolvimen '
+ t " d j ' lh
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 40/51
+ erramentas caras n "o produzem proje's melhore,
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 41/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 42/51
Teste cedo. Teste Sempre. Teste automaticamente
çã ã
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 43/51
A codificação só estará concluída
após todos os testes seremexecutados
Nada mais a declamar.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 44/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 45/51
C"07" . (%5"&7+&. 1" ",)$-., " 6<% . (%5"&7+&. 1% (7-+8.
G1"6,H8+" " )",)" ",)$-., ,+80+9($:;., 1% 9&%B&.4.2
C"07.& $6"0$, *)6D.0 1" (7-+8. 05. < ,&9(+"0)"2
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 46/51
Encontre os erros apenas uma vez Quanto um testador humano encontrar umerro, essa deve ser a última vez que um
testador humano o encontrará. Testesautomatizados devem procurá-lo desse
momento em diante.
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 47/51
Construa a documentação no código, não a acrescente comocomplemento
Narrative:
In order to calculate BMI with ease
As a doctor
I want to have BMI Calculator application
Scenario: Simple BMI calculator validation
Given a body mass index calculator
When a patient's is with mass 77 kg and height 1.75 m
Then patient's body mass index is 25.14285659790039
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 48/51
Exceda gentilmente as expectativas de seus usuários
Tente estender as expectativas de seus usuários e entãoentregue apenas um pouco mais
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 49/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 50/51
7/17/2019 O Programador Pragmatico
http://slidepdf.com/reader/full/o-programador-pragmatico-568ca5193e691 51/51
Obrigado!