Table Of Content46799
© CasadoCódigo
Todos os direitos reservados e protegidos pela Lei nº9.610, de
10/02/1998.
Nenhumapartedestelivropoderáserreproduzida,nemtransmitida,sem
autorização prévia por escrito da editora, sejam quais forem os meios:
fotográficos,eletrônicos,mecânicos,gravaçãoouquaisqueroutros.
CasadoCódigo
Livrosparaoprogramador
RuaVergueiro,3185-8ºandar
04101-300–VilaMariana–SãoPaulo–SP–Brasil
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
CasadoCódigo
Agradecimentos
Aos que não leram outras versões desse livro, Mauricio escreveu o livro
original- mente em Java e C# e Hugo ajudou na “tradução” para Ruby. Os
agradecimentosestãodivididospoisforamescritosemmomentosdiferentes.
AgradecimentosdoMaurício
Essa talvez seja a seção mais difícil de se escrever, pois a quantidade de
pessoasqueparticiparamdiretaouindiretamentedolivroémuitogrande.
Voucomeçaragradecendoameupai,mãeeirmão,queatodomomento
meapoiaramnadecisãodefazerummestrado,entendercomociênciadeve
ser feita, e que sofreram junto comigo nos momentos de grande stress (que
todomestradoproporciona!).
Agradeçotambémaomeuorientadordemestradoedoutorado,prof.Dr.
MarcoAurelioGerosa,quemeensinoucomoascoisasfuncionam“doladode
lá”. Semele,achoqueesselivroseriamuitodiferente;seriamaisapaixonado,
porémmenosverdadeiro.SemeutextoolhaTDDdemaneirafriaeimparcial,
aculpaédele.
Os srs. Paulo Silveira e Adriano Almeida também merecem uma lem-
brança.MesmonaépocaemqueaCasadoCódigonãoexistiadefato,elesjá
haviamaceitadoaideiadolivrodeTDD.Obrigadopelaconfiança.
Todasaspessoasdasúltimasempresasemqueatueitambémmeajudaram
muito com as incontáveis conversas de corredor sobre o assunto. Isso com
certezaenriqueceumuitootexto.
AgradeçotambémaosamigosJoséDonizetti,GuilhermeMoreiraeRafael
Ferreira, que gastaram tempo lendo o livro e me dando sugestões de como
melhorar.
Porfim,obrigadoavocêqueestálendoesselivro.Esperoqueeleajude.
i
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
CasadoCódigo
AgradecimentosdoAndre
BemcomodisseoMaurício,agradecimentossãorealmenteinjustosmas
voutentarjápedindodesculpasaosquenãoforammencionadosequeten-
hamacertezadequedealgumaformacontribuíramparameucrescimento
comoprofissional.
Agradeçoprimeiramenteaosmeusfamiliaresmaispróximos,minhamãe
Helena,minhatiaMarlieminhaesposaFabiane,mulheresestasquemeori-
entaramaprocurarsemprepeloqueécorretoecorreratrásdemeusobjetivos
commuitadedicação.
Emseguida,gostariadeagradeceraalgunsdosmeusprofessoresqueme
fizeram ter muita sede de conhecimento e consequentemente levar isso por
todaminhavidaatéagoraeadiante.ProfessoraSorayaBakri,quemeaturou
por muitos anos no colegial mas me ensinou a ser comportado; professora
Branca,quemeensinouagostardasaulasdelínguaportuguesaqueatéen-
tãosempreachavachatasdemais;professorFernando,quemuitomeensinou
sobre redes em meu curso técnico; professor Cleycom, que me despertou o
interesseparaoPHP;professorAntônioMargaridi,quesempremeapoioue
orientou com meus trabalhos e, é claro, muitos outros que contribuíram de
diversasformas.
Agradeço aos amigos que fiz em vários trabalhos que tive mesmo de
antes de me tornar programador. Em ordem cronológica, cito em especial
Eder, EltoneRafael, parceirosdealtasaventurasdesdecriançaatéquenos-
sos compromissos da vida adulta nos afastaram um pouco; o Sr. Valfrido,
quemuitomeorientouemdiversosassuntosdavida;RicardodaRosa,par-
ceirasso;RobertoTeixeira,umexcelenteprofissionalquemuitomeensinou;
KleberMoraes,quealémdosestudosporumcurtotempofoimeucolegade
trabalhoepudemosevoluirmuitojuntos.TambémumagradecimentoaJosé
Matiaspormuitomasmuitomesmomeensinarsobreomundowebemgeral.
AoFábio,quemuitocontribuiparameuaprendizadonodiaadia.
PorúltimomasnãomenosimportanteagradeçoaoMauríciopeloconvite
em“traduzir”seulivrodeJavaparaPHPeaoPauloJr.querevisouoscódigos
destelivroeantesmesmodolançamentojáodivulgouemumeventodenível
nacional,obrigado.
ii
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
CasadoCódigo
Quem somos nós?
MaurícioAniche
MeunomeéMauricioAniche,etrabalhocomdesenvolvimentodesoft-
wareháporvoltade10anos.Emboapartedessetempo,atueicomoconsultor
paradiferentesempresasdomercadobrasileiroeinternacional.Comcerteza,
aslinguagensmaisutilizadaspormimaolongodaminhacarreiraforamJava,
C#eC.
Como sempre pulei de projeto em projeto (e, por consequência, de tec-
nologiaemtecnologia),nuncafuiafundoemnenhumadelas.Pelocontrário,
semprefoqueiementenderprincípiosquepudessemserlevadosdeumapara
outra,paraquenofim,ocódigosaíssecomqualidade,independentedatec-
nologia.
Emmeuúltimoanodagraduação,2007,comeceialermaissobreaideia
detestesautomatizadoseTDD.Acheimuitointeressanteeútilaideiadese
escreverumprogramaparatestarseuprograma,edecidipraticarTDD,por
contaprópria,paraentendermelhorcomoelafuncionava.
Gostei muito do que vi. De 2007 em diante, resolvi praticar, pesquisar
e divulgar melhor minhas ideias sobre o assunto. Comecei devagar, apenas
blogando o que estava na minha cabeça e sobre o que gostaria de feedback
deoutrosdesenvolvedores. Masparafazerissodemaneiramaisdecente,re-
solviingressarnoprogramadeMestradodaUniversidadedeSãoPaulo. Lá,
pesquiseisobreosefeitosdapráticadeTDDnodesigndeclasses.
Aolongodessetempoparticipeidagrandemaioriadoseventosrelaciona-
dos ao assunto. Palestrei nos principais eventos de métodos ágeis do país
(comoAgileBrazil,EncontroÁgil),dedesenvolvimentodesoftware(QCON
SP e DNAD), entre outros menores. Cheguei a participar de eventos inter-
iii
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
CasadoCódigo
nacionaistambém;fuioúnicopalestrantebrasileironoPrimeiroWorkshop
InternacionalsobreTDD,em2010,nacidadedeParis. Issomostratambém
que tenho participado dos eventos acadêmicos. Em 2011, apresentei um es-
tudosobreTDDnoWBMA(WorkshopBrasileirodeMétodosÁgeis),eem
2012,nomaiorsimpósiobrasileirosobreengenhariadesoftware,oSBES.
AtualmentetrabalhopelaCaelum,comoconsultoreinstrutor. Também
sou aluno de doutorado pela Universidade de São Paulo, onde continuo a
pesquisarsobrearelaçãodostestesdeunidadeequalidadedocódigo.
Portanto,esseémeurelacionamentocomTDD.Nosúltimosanostenho
olhado-odetodosospontosdevistapossíveis: depraticante,deacadêmico,
de pesquisador, de apaixonado, de frio. Esse livro é o relato de tudo que
aprendinessesúltimosanos.
AndreCardoso
MeunomeéAndreCardosoeminhaexperiênciacomodesenvolvimento
de software ainda é pouca, pelo menos assim considero. Desde de meus
primeiroscontatoscomumcomputadormefoidespertadaacuriosidadede
sabercomoascoisasfuncionavam.Issoobviamentemecausoumuitoserros,
muitasperdasdearquivosimportantíssimosmasmeproporcionoutambém
muitas coisas boas que carrego comigo até os dias de hoje. Uma delas com
todacertezaéasededeconhecimento.
Comomencioneianteriormente,tenhopoucaexperiêncianodesenvolvi-
mento de software, cerca de 5 anos apenas. No entanto, por iniciar tardia-
mente,tivedecorrerdeatrásdotempoperdidocommuitagarra. Nãocon-
sidero um fator importantíssimo para minha carreira o fato de ter pouco
tempodecasamassimaintensidadecomquebusqueimeencontrarnaárea.
Meusprimeirospassosnoqueseriaumchamarizàprogramaçãofoipor
volta de 2006, “fuçando” nas entranhas do Linux, alterando diversas fun-
cionalidades,masnadademuitoavançadoainda.Estacuriosidademefezes-
tudaralgorelacionado.Encontreipróximoàminhacasa,logoquememudei
praCuritibaem2009,umcursotécnicoeminformática.Diferentedostradi-
cionais, seufocoeraodesenvolvimentodesistemas, nãopenseiduasvezes,
iniciei o mais rápido possível. Em 2010, estava eu de fato iniciando a pro-
gramar.Meuprimeirocontatocomumalinguagemdeprogramaçãoquenão
didáticaapenasfoioJava,eemseguidafuiapresentadoaoPHP,aoqualme
iv
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
CasadoCódigo
dedicoatéhoje.Namesmaépocaemquedeimeusprimeirospassosnapro-
gramação,comeceiatrabalharemumaempresaquemedeuapossibilidade
deexpandirmeusconhecimentosemváriosaspectos,eestandolápasseipor
Delphi,Java,C#,ShellScriptediversosbancosdedados.Participeidevários
projetosdaempresa, desdeapartedesoftwareatéapartedehardware, que
eraofocodaempresae,nela,tambémtiveaoportunidadedemeaprofundar
emPHP.
Aofinalde2011,fuiapresentadoaoTDDedesdeentãovenhoestudando
muitomasmuitomesmo, ministrandopalestraseoficinas, alémde, éclaro,
aprimorarousoemprojetoscomerciais. AtualmentepraticoTDDemtudo
queposso,nãoapenasemPHP.
Um certo dia de 2014, estava eu organizando uma palestra e uma ofic-
inasobreTDDparaapresentaremumeventodeSoftwareLivre(FLISOL)e
utilizei o livro do Maurício como fonte, além de seus inúmeros artigos em
seublogpessoal.Nestaépoca,acheiumaatitudemuitojustapedirapermis-
sãodoMaurícioemutilizá-locomoreferência.Meupedidofoiprontamente
atendido.Logoveioasurpresa,fuiconvidadoa“traduzir”olivrodeJavapara
PHP, um convite irrecusável, não acha? Pois bem, naturalmente entendi a
responsabilidadesobreissoebusqueiomeumelhor,prepareitodososexem-
plosdestelivrocommuitadedicaçãoecomoquealinguagemPHPoferece
demelhoratualmente, vistoquesuaevoluçãoestáocorrendodeformafan-
tástica.
ProcurosempredivulgarapráticadeTDDcomaorganizaçãodeoficinas,
encontrosdedesenvolvedoresepalestrasemeventoscomoSoftwareFreedom
DayeFLISOL,tambémdivulgomuitoapráticaemmeublogpessoal,blogs
deterceirosecomunidadesdedesenvolvedores,alémdemeudiaadiacomo
profissional.
v
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com
E-book gerado especialmente para Erikson Reppetto - erikson.souza@gmail.com