• Nenhum resultado encontrado

Ambiente de integração con1nua

N/A
N/A
Protected

Academic year: 2021

Share "Ambiente de integração con1nua"

Copied!
22
0
0

Texto

(1)

Ambiente  de  integração  con1nua  

Ferramentas  e  soluções  para  

diminuir  a  complexidade  do  

desenvolvimento    

Helder  da  Rocha  (helder@argonavis.com.br)  

(2)

Helder  da  Rocha  

• 

Java,  since  1995  

• 

Objec)ve-­‐C  &  iPhone  since  2008  

• 

HTML,  JavaScript,  Web  

• 

www.argonavis.com.br  

(3)

ObjeSvos  

• 

Como  lidar  com  a  complexidade  crescente  do  

processo  de  desenvolvimento  

• 

Que  ferramentas  e  soluções  existem  para  

(4)

Lei  da  preservação  da  complexidade  

• 

A  complexidade  não  desaparece!    

• 

Ela  se  muda  para  outro  lugar  e  se  esconde  

(5)

Para  onde  foi  a  complexidade?  

• 

Com  orientação  a  objetos,  ferramentas,  

frameworks,  etc.  programar  ficou  mais  simples  

• 

Mas  a  complexidade  aumentou  nos  processos  e  

configuração  dos  ambientes  

–  Manter  repositórios,  versões,  dependências  

–  Configuração,  metadados,  mapeamentos,  ligações   –  Integração,  protocolos,  adaptadores,  filtros,  

proteções  

(6)

Como  diminuir  a  complexidade?  

• 

Nos  processos:  

mais  feedback  

–  Metodologias  de  desenvolvimento  ágeis  

–  Ferramentas  para  organizar  e  simplificar  o  processo   –  Ferramentas  para  coletar  e  organizar  informações  

automaScamente:  métricas,  qualidade,  prazos,  etc.  

• 

Na  configuração:  

menos  duplicação  de  esforços  

–  Automa)zar  processos  como  build,  deploy,  

versionamento,  etc.  

–  Integrar  ambientes  e  ferramentas  

(7)

Ferramentas  

• 

Build  

–  Ant  /  Ivy  /  Maven  

• 

Qualidade  e  métricas  

–  PMD  /  Checkstyle  /  Findbugs   –  Sonar  

–  JUnit  /  Cobertura  

• 

Documentação  

–  Javadoc  via  Ant  e  Maven,  Graphviz  

• 

Geração  de  código,  configuração  

(8)

Maven  (maven.apache.org)  

(9)

Ant  +  Ivy  (ant.apache.org)  

• 

Gerencia  builds  (Ant)  e  repositórios  

– 

AlternaSva  ao  Maven  

(10)

Hudson  (hlps://hudson.dev.java.net/)  

(11)

Integração  con1nua  

Repositório            CVS       cvs  commit   diff   cvs  checkout   Usuário   prog   prog   sendmail   logNNNN.xml   <xml>   <xml>   <xml>   <xml>     Pagina  Web   GET   Hudson   prog   1.  Usuário  envia          alteração   2.  CC  compara          sua  cópia  com          repositório  

3.  Se  diferente          faz  checkout  

4.  Monta  aplicação  e  roda  testes   5.  Se  sucesso,  incrementa  contador   6.  Gera  relatório,  envia  emails  

(12)

Hudson:  dashboard  

Tempo  desde  úlSma  falha   Tempo  desde  úlSmo  sucesso   Estado  dos  builds  

(quanto  a  violações,   testes,  sucesso,  etc.)   ÚlSmo  build  obteve  sucesso  

ÚlSmo  build  falhou   Usuarios  CVS  

que  fazem   commit  ou   montam  o   projeto  

(13)

PMD  +  Checkstyle  +  Findbugs  

•  Ferramentas  de  análise  estáSca   •  Verificam  qualidade  do  código  

•  Geralmente  são  incluídas  no  ambiente  de   desenvolvimento  (Eclipse,  Netbeans)  

–  Mas  também  podem  ser  executadas  via  Ant,  

Maven  e  incluídas  na  integração  con1nua  

•  Sonar  e  Hudson  são  óSmos  para  apresentar  

resultados  de  PMD,  Checkstyle  e  Findbugs   •  Onde  encontrar  

–  hlp://pmd.sourceforge.net/  

–  hlp://checkstyle.sourceforge.net  

(14)

Gráficos  de  tendências:  Hudson  

Clique  no  gráfico  para   detalhamento  (descrição   do  problema  e  link  para   arquivo  e  a  linha  do   código  onde  foi   verificado)  

(15)

Relatórios  de  violações    

e  falhas  de  testes  

Detalhes  de  uma   violação  de  esSlo  

(16)

JUnit  e  Cobertura  

• 

Seu  código  deve  ter  testes  unitários  

• 

Cobertura  idenSfica  o  nível  de  cobertura  

desses  testes  (métricas  via  Sonar)  

(17)

Sonar  (www.sonarsource.org)  

•  Instale  no  servidor  Web;  Gere  os  dados  via  plug-­‐in  do  

Maven  (mesmo  em  projetos  Ant)   –  mvn  sonar:sonar  

(18)

Geração  de  javadoc  

• 

UML  Graph  +  Javadoc  (a  cada  build)  

–  hlp://www.umlgraph.org   –  hlp://www.graphviz.org  

(19)

Graphviz  (www.graphviz.org)  

• 

Linguagem  declaraSva  para  gerar  gráficos  

• 

Exemplo  com  UML  

 Animal  [label  =  "{Animal|+  name  :  string\l+  age  :  int\l|+  die()  :  void\l}”]    

     

 edge  [arrowhead  =  "empty”  ]    Dog  -­‐>  Animal  

(20)

Graphviz  

• 

Graphviz  faz  bem  mais  que  UML  

–  Use  para  gerar  documentação  gráfica  complexa  

–  Escreva  “dot  language”  (ou  gere  a  parSr  de  XML  com   XSLT/XPath)    

(21)

XSLT  e  XPath  (www.w3.org)  

•  Pode  ser  usado  via  Java,  tarefa  do  Ant,  plug-­‐in  do   Maven  ou  linha  de  comando  

•  Use  XSLT/XPath  para  extrair  dados  de  arquivos  de   configuração  XML  para    

–  Gerar  outros  arquivos  (de  qualquer  Spo)  

–  Gerar  PDF  

–  Gerar  documentação  com  tabelas  HTML  

–  Gerar  documentação  gráfica  com  Graphviz  

XML   Template   XSLT   Processador  XSL   (Java,  Ant,   Maven)   Resultado  

(22)

Conclusão  

• 

Vale  a  pena  invesSr  em  tornar  seu  ambiente  de  

desenvolvimento  mais  automaSzado  

–  Menos  tempo  perdido  com  tarefas  burocrá)cas   –  Informações  atualizadas  e  precisas  sobre  o  estado  

atual  do  desenvolvimento  e  qualidade  do  código   –  Subsídios  para  tomadas  de  decisões  em  ambientes  

que  adotam  metodologias  ágeis  

• 

Há  várias  ferramentas  open-­‐source  que  podem  

ajudar  nessa  tarefa,  como  

–  Sonar,  Hudson,  Maven,  Ant+Ivy   –  XSLT/Framemarker,  Graphviz  

Referências

Documentos relacionados

O Pacto Pela Saúde (2006), representado pelo o Ministério da Saúde, refere- se que, “ao longo do tempo foram construídas representações sociais em torno da velhice, que estão

Incidem claramente no(s) resultado(s) a atingir, nas mudanças que se pretendem observar no público-alvo. Podem ser definidos no máximo 3 resultados de mudança por objetivo específico

Ao longo dos últimos anos, muitos estudos, nos quais foi utilizado o gesso como matriz para a produção de compósitos reforçados com partículas e fibras

Anker e Pereira (2013) apontam como a primeira grande vantagem de se utilizar PPPs na saúde a questão da governança do contrato. O argumento é de que em contratos de PPPs

CONSIDERANDO que a Política Nacional do Meio Ambiente prevê como um de seus principais instrumentos o licenciamento ambiental, procedimento obrigatório para a

Mão Camada mais profunda Vista palmar Interósseo palmar Interósseo dorsal Interósseo palmar Interósseo dorsal T flexor superficial dos dedos Oponente do Dedo mínimo Oponente do

inicial menciona a matéria como um dos modos legítimos de ser um subjacente, e assumindo que a forma é de fato predicada dela, subjacência traz uma séria ameaça à substancialidade

Por se tratar de uma espécie que vive a maior parte da vida em ambiente aquático, as populações foram definidas a priori a partir das bacias hidrográficas onde os