2. Visão Geral (2019
40 Engenheiros de Software
30 Repositórios
22 Pull Requests / dia
146 Pipelines Executados / dia
141k Linhas de Código
Coverage médio de 76%
3. Luiz Guilherme Bauer Fraga Moreira, 32 anos, Arquiteto e Engenheiro de
Software na
● Cientista da Computação, formado pela Universidade do Sul de Santa Catarina;
● Trabalho com .NET a mais de 10 anos;
● 15 anos de experiência no mercado de desenvolvimento de softwares;
4. Desafios
1
Uniformidade na arquitetura e API’s
2
Qualidade do código (Orientação a objetos,
Boas Praticas, SOLID, etc)
3
Validação se a arquitetura está sendo
respeitada
4
Garantia que os testes estão passando e
cobertura real do código
9. Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.
Alan Perlis, American Scientist and first recipient of the Turing Award
10. Cyclomatic Complexity
A complexidade é inferida medindo o número de
caminhos linearmente independentes através do
programa. Quanto maior o número, mais complexo
o código.
C#: If/else, loops (for, while, etc).
22. Micro Arquitetura
Você consegue detectar/prevenir/quantificar arquivos de fonte gigantescos? Classes
gigantescas/complexas? Métodos gigantescos/complexos?
Você consegue detectar/prevenir/quantificar métodos com muitos ifs aninhados?
Se você terceirizar... Como que você garante que não vais receber um “macarrão”?
(acoplamento & coesão oks?)
23.
24.
25.
26.
27.
28. Macro Arquitetura
Você consegue garantir que a arquitetura está sendo respeitada?
Você consegue quantificar o tamanho dos seus sistemas e sub-sistemas?
Você consegue identificar novos sub-sistemas?
37. O SonarQube é uma plataforma de código aberto
desenvolvida pela SonarSource para inspeção
contínua da qualidade do código para realizar
revisões automáticas com análise estática de
código para detectar bugs, códigos cheirosos e
vulnerabilidades de segurança em mais de 20
idiomas de programação. O SonarQube oferece
relatórios sobre código duplicado, padrões de
codificação, testes de unidade, cobertura de
código, complexidade de código, comentários,
bugs e vulnerabilidades de segurança.
Open Source
https://www.sonarqube.org/
38. Understand fornece informações pertinentes
sobre o seu código. Veja rapidamente todas as
informações sobre funções, classes, variáveis, etc.,
como elas são usadas, chamadas, modificadas e
interligadas. Veja facilmente as árvores de
chamada, métricas e referências.
995$ Ano
https://scitools.com/
39. Srccheck
Utilitários de linha de comando para checar as
métricas do código-fonte gerado (via SciTools
Understand) e/ou publicar histogramas, kiviats e
gráficos de dispersão dessas métricas.
Open Source
https://github.com/sglebs/srccheck
40. Structure101 é um ambiente de desenvolvimento
de arquitetura ágil (ADE) que permite que a equipe
de desenvolvimento de software organize uma
base de código.
Construindo seu modelo direto do código, o
Structure101 capacita os arquitetos a trabalharem
com a equipe para manter regras de arquitetura,
diagramas e listas de ações que organizam uma
base de código em uma hierarquia modular com
baixo e controlado acoplamento.
2.500$ Ano
https://structure101.com/
41. Considerações
Se você não domina a ferramenta, não adianta
Se você não entende a métrica, não adianta
Se você não se preocupa em melhorar as métricas, não adianta
Por si só a ferramenta não vai melhorar nada. Pessoas capacitadas, sim!