fabianoseller / selenium2

Teste exercicios
MIT License
0 stars 0 forks source link

Complexidade ciclomática, análise estática e refatoração #6

Open fabianoseller opened 6 years ago

fabianoseller commented 6 years ago

https://www.treinaweb.com.br/blog/complexidade-ciclomatica-analise-estatica-e-refatoracao/

complexidade ciclomatica

fabianoseller commented 6 years ago

image

fabianoseller commented 6 years ago

https://www.sonarsource.com/products/codeanalyzers/sonarjava.html

O SonarSource oferece o que é provavelmente o melhor analisador de código estático que você pode encontrar no mercado para Java. Com base em nosso próprio front-end de compilador Java, ele usa as técnicas mais avançadas (correspondência de padrões, análise de fluxo de dados) para analisar códigos e encontrar cheiros de código, bugs e vulnerabilidades de segurança. Quanto a qualquer produto que desenvolvemos na SonarSource, foi construído com base nos seguintes princípios: profundidade, precisão e velocidade.

A SonarJava tem uma grande cobertura de padrões de qualidade bem estabelecidos. O recurso SonarJava está disponível no Eclipse e no IntelliJ para desenvolvedores (SonarLint), bem como em toda a cadeia de desenvolvimento para revisão automática de código com o SonarQube auto-hospedado ou o SonarCloud on-line.

fabianoseller commented 6 years ago

Focar na qualidade do meu software ou na entrega? Ideologicamente falando, o processo de refatorar é contínuo. O software vai crescer, precisará ser “tocado” e a refatoração andará lado a lado a tudo isso. Não existe código perfeito, não existe código “à prova de bala”, mas é possível ter código coeso, fácil de ser lido e o principal: fácil de ser testado.

Aliar entrega (o resultado final, o que interessa para a empresa) com qualidade de software é uma questão ampla e complexa. Sabemos que, na maioria das vezes, a realidade é essa: pressão para que as entregas aconteçam o mais rápido possível. Quase nunca entra na análise de tempo e custo o que será gasto para cuidar da qualidade/análise do código. O foco é quase sempre nas entregas e, pensando no lado “corporativo”, elas são extremamente importantes para manter a competitividade da empresa e isso não pode ser ignorado, mas também tem o lado negativo, que é o débito de código (o custo e o tempo que será gasto no futuro para implementar algo novo ou corrigir uma implementação).

Não tem “receita de bolo”, não tem manual, a equipe precisa aprender a mensurar todas essas nuances e achar um “meio termo”. Não dá pra julgar essa guerra de interesses, todos têm seus motivos e suas justificativas.

Outro ponto interessante de reflexão: Não, ninguém usa todas as “melhores técnicas” de codificação (e isso é muito relativo). “Código impecável” e que usa as “melhores técnicas” etc, quase sempre é apenas case para palestrantes, professores e artigos (como este aqui). No entanto, isso não tira e nem invalida o fato de que, como desenvolvedores, podemos evoluir, podemos encontrar novas formas e novos conceitos de pensar no “todo” que envolve o desenvolvimento de software. E essa responsabilidade é nossa, não sendo possível delegá-la.

Concluindo

https://www.treinaweb.com.br/blog/complexidade-ciclomatica-analise-estatica-e-refatoracao/ Os temas aqui introduzidos são vastos. A ideia não foi a de esgotar os assuntos (e isso nem seria possível), o objetivo principal foi o de acender àquela “chama” que carregamos em nós: àquela que alimenta o nosso amor e interesse pelo desenvolvimento de software. Temos de mantê-la acesa, estudando coisas novas e buscando um conhecimento multimodal.