SlideShare uma empresa Scribd logo
1 de 24
Sonarqube
Melhorando a qualidade do seu código
Carlos dos Santos
TRILHA | MELHORIA CONTÍNUA
@cdssoftware
www.carloscds.net
Quem sou eu ?
 Mais de 25 anos de experiência no desenvolvimento de software
 Trabalha com tecnologia Microsoft desde 2003
 Fez diversos projetos para Client, Web e Dispositivos Móveis
 Responsável por Pesquisa e Desenvolvimento na CDS Informática
 Microsoft MVP C# desde 2008
 MCPD, MCTS, MCT
 Professional Scrum Developer, Professional Scrum Master
 Advisory Council Member Top Award 2012
 Palestrante em diversos eventos pelo Brasil
 Empresa ganhadora do prêmio MPE Brasil Nacional
 Fundador do projeto open source CodeCracker: www.github.com/code-cracker
 Mantenedor do projeto open source BoletoNet: www.github.com/boletonet
O que é qualidade do código ?
• Código fonte é o coração do sistema, precisa ser cuidado!
• Na maior parte do tempo os desenvolvedores estão fazendo
manutenção em algum código, e muito provavelmente feito por
outra pessoa
• Um sistema (quase) nunca está “terminado”
• Você não melhora se não consegue medir !!!
• Conhece a teoria das janelas quebradas ?
Por que medir ?
Teoria das Janelas Quebradas
• Não somente números abstratos...
• Quantas linhas, quantas tarefas, quantos bugs...
• Crie seus indicadores (KPI), seu SLA (meta) do desenvolvimento
• Vamos medir a evolução do código através do tempo
• Vamos medir a eficiência, a padronização !
O que você deveria medir ?
Os 7 eixos da qualidade
Arquitetura &
Design
Comentários
Bugs potenciais
Testes Unitários
Códigos duplicados
Regras de codificação
Complexidade
Débito
Técnico
“Se o débito cresce o bastante, eventualmente a
empresa gastará mais consertando estes débitos do
que investindo em incrementar o valor dos seus
outros ativos”
Steve McConnell
(autor de Code Complete)
O débito técnico
• Plataforma de Qualidade do Código
• Gerenciamento de débito técnico
• Ferramenta Free & Open Source
• Alguns plug-ins são pagos
• Gerencia indicadores de qualidade do código
• Monitora e ajuda a melhorar os 7 eixos da qualidade
• Promove a Inspeção contínua...
• Cria um repositório de débitos técnicos
• Centraliza os problemas a serem resolvidos!
O que é o Sonarqube ?
Este é o seu código fonte
quando você não paga
seu débito técnico
• Analisa seu código fonte (análise estática)
• Por demanda ou integrado ao seu Build
• Calcula centenas de métricas, em várias linguagens
• Organiza e classifica os dados analisados, criando indicadores
• Mostra os resultados em dashboards web
Como ele funciona ?
Análise Total do Projeto – Linha do Tempo
Muitos, muitos plugins
LANGUAGES
DEV TOOLS
http://docs.sonarqube.org/display/PLUG/Plugin+Library
INTEGRATION
AUTHENTIFICATION &
AUTHORIZATION
GOVERNANCE
VIZUALIZATION &
REPORTING
ADDITIONAL
METRICS
CodeCracker – analyzers no SonarQube
https://github.com/SonarSource-VisualStudio/sonarqube-roslyn-sdk
• Crie seu analyzer com Roslyn e use no SonarQube
• Gera o plugin para SonarQube baseado no Nuget
Regras totalmente configuráveis
• Sonarqube server
• Pode ser instalado on-prem com opção de autenticação por AD ou não
• Como uma VM no Azure
• Windows ou Linux
• Baseado em Java + Banco de Dados (SQL Server / MySql / Postgree)
• Pode ser instalado em Docker  (https://hub.docker.com/_/sonarqube)
• VS Team Services
• Como tarefas do Build
• TFS OnPremisse
• Como tarefas do Build
• Com script pre-build e post-test, com build Xaml, ou linha de commando (TFS 2015)
• O agente precisa do Java, VS IDE e MSBuild.SonarQube.Runner instalados
• Scanner Manual
• Sonar Scanner acionado manualmente
Configurando o ambiente
• Totalmente integrado ao TFS/VSTS
Como ele se integra - TFS
Como ele se integra - TFS
• Sonarqube Scanners
• Você executa sob demanda (na linha de comando)
Como ele se integra – Scanners
• Integrado ao ambiente de desenvolvimento
Como ele se Integra - Sonar Lint
Vamos a prática!
Demonstração
• Identifique e reduza seus débitos técnicos
• (limpe a cozinha todos os dias)
• Comprometa os desenvolvedores já no início do projeto
• Compromisso com a qualidade do código
• Fique alerta quando os débitos técnicos estiverem além do limite
• (estabeleça seu limite)
Resumindo
•Download Sonarqube:
http://www.sonarqube.org/downloads
•Download Plugins:
http://docs.sonarqube.org/display/PLUG/Plugin+Library
•Download Lint
http://www.sonarlint.org
Links úteis
Obrigado! Carlos dos Santos
CDS Informática Ltda.
www.cds-software.com.br
www.carloscds.net
@cdssoftware

Mais conteúdo relacionado

Mais procurados

Integração continua sem traumas
Integração continua sem traumasIntegração continua sem traumas
Integração continua sem traumassabrinajn
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisElias Nogueira
 
A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste ContinuoElias Nogueira
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Edlaine Zamora
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidademinastestingconference
 
Teste de software e suas áeras de pesquisa
Teste de software e suas áeras de pesquisaTeste de software e suas áeras de pesquisa
Teste de software e suas áeras de pesquisaLucas Gomes
 
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)Mayara Fernandes
 
Testando performance da sua aplicação e escalando com docker swarm
Testando performance da sua aplicação e escalando com docker swarmTestando performance da sua aplicação e escalando com docker swarm
Testando performance da sua aplicação e escalando com docker swarmRafael Chiavegatto
 
apresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdfapresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdfRaphael Mantilha
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileElias Nogueira
 
Automação no Processo de Teste
Automação no Processo de TesteAutomação no Processo de Teste
Automação no Processo de TesteElias Nogueira
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34Mayara Fernandes
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilElias Nogueira
 
Processo de Teste de Software
Processo de Teste de SoftwareProcesso de Teste de Software
Processo de Teste de Softwarewtmrio
 
Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareConviso Application Security
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville minastestingconference
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais característicasalinebiath
 
A importância de utilizar testes automatizados
A  importância   de utilizar  testes automatizadosA  importância   de utilizar  testes automatizados
A importância de utilizar testes automatizadosDiego Allan Oliveira
 

Mais procurados (20)

Integração continua sem traumas
Integração continua sem traumasIntegração continua sem traumas
Integração continua sem traumas
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
A Importância do Teste Continuo
A Importância do Teste ContinuoA Importância do Teste Continuo
A Importância do Teste Continuo
 
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
Como testar a performance de ap is utilizando uma ferramenta simples e gratuita?
 
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a QualidadeJanaína Horácio - Terceirização - O desafio de garantir a Qualidade
Janaína Horácio - Terceirização - O desafio de garantir a Qualidade
 
Teste de software e suas áeras de pesquisa
Teste de software e suas áeras de pesquisaTeste de software e suas áeras de pesquisa
Teste de software e suas áeras de pesquisa
 
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
QAOps - O QA com pézinho em DevOps (Ministry of Testing Floripa 2019)
 
Testando performance da sua aplicação e escalando com docker swarm
Testando performance da sua aplicação e escalando com docker swarmTestando performance da sua aplicação e escalando com docker swarm
Testando performance da sua aplicação e escalando com docker swarm
 
apresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdfapresentacao_TDC_POA_Raphael_Mantilha.pdf
apresentacao_TDC_POA_Raphael_Mantilha.pdf
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
Automação no Processo de Teste
Automação no Processo de TesteAutomação no Processo de Teste
Automação no Processo de Teste
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Processo de Teste de Software
Processo de Teste de SoftwareProcesso de Teste de Software
Processo de Teste de Software
 
Integrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de softwareIntegrando testes de segurança ao processo de desenvolvimento de software
Integrando testes de segurança ao processo de desenvolvimento de software
 
Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville Implantação de um Processo de Teste de Software - Randerson Melville
Implantação de um Processo de Teste de Software - Randerson Melville
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais características
 
O Testador Técnico
O Testador TécnicoO Testador Técnico
O Testador Técnico
 
A importância de utilizar testes automatizados
A  importância   de utilizar  testes automatizadosA  importância   de utilizar  testes automatizados
A importância de utilizar testes automatizados
 

Semelhante a SonarQube

Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
DevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidadeDevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidadeKamilla Queiroz Xavier
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?Kamilla Queiroz Xavier
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsQaladies
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsJaqueline Ramos
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Adriano Bertucci
 

Semelhante a SonarQube (20)

Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
DevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidadeDevQA | Da zona de conforto ao comprometimento com a qualidade
DevQA | Da zona de conforto ao comprometimento com a qualidade
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
DevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps ProjectsDevOps na nuvem: Azure DevOps Projects
DevOps na nuvem: Azure DevOps Projects
 
QA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps ProjectsQA Ladies 2018 - Azure DevOps Projects
QA Ladies 2018 - Azure DevOps Projects
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
SAPO Session: Continuous Integration
SAPO Session: Continuous IntegrationSAPO Session: Continuous Integration
SAPO Session: Continuous Integration
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012Qualidade de Software com Visual Studio 2012
Qualidade de Software com Visual Studio 2012
 

Mais de CDS

Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de MemóriaCDS
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps PipelineCDS
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions SpanishCDS
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaCDS
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio CodeCDS
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas PráticasCDS
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSCDS
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraCDS
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#CDS
 
C# 7
C# 7C# 7
C# 7CDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão GeralCDS
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PICDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015CDS
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure OverviewCDS
 
C# 6
C# 6C# 6
C# 6CDS
 

Mais de CDS (20)

Web App Container
Web App ContainerWeb App Container
Web App Container
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps Pipeline
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de Memória
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio Code
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas Práticas
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMS
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#
 
C# 7
C# 7C# 7
C# 7
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão Geral
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PI
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure Overview
 
C# 6
C# 6C# 6
C# 6
 

SonarQube

  • 1. Sonarqube Melhorando a qualidade do seu código Carlos dos Santos TRILHA | MELHORIA CONTÍNUA @cdssoftware www.carloscds.net
  • 2. Quem sou eu ?  Mais de 25 anos de experiência no desenvolvimento de software  Trabalha com tecnologia Microsoft desde 2003  Fez diversos projetos para Client, Web e Dispositivos Móveis  Responsável por Pesquisa e Desenvolvimento na CDS Informática  Microsoft MVP C# desde 2008  MCPD, MCTS, MCT  Professional Scrum Developer, Professional Scrum Master  Advisory Council Member Top Award 2012  Palestrante em diversos eventos pelo Brasil  Empresa ganhadora do prêmio MPE Brasil Nacional  Fundador do projeto open source CodeCracker: www.github.com/code-cracker  Mantenedor do projeto open source BoletoNet: www.github.com/boletonet
  • 3. O que é qualidade do código ?
  • 4. • Código fonte é o coração do sistema, precisa ser cuidado! • Na maior parte do tempo os desenvolvedores estão fazendo manutenção em algum código, e muito provavelmente feito por outra pessoa • Um sistema (quase) nunca está “terminado” • Você não melhora se não consegue medir !!! • Conhece a teoria das janelas quebradas ? Por que medir ?
  • 5. Teoria das Janelas Quebradas
  • 6. • Não somente números abstratos... • Quantas linhas, quantas tarefas, quantos bugs... • Crie seus indicadores (KPI), seu SLA (meta) do desenvolvimento • Vamos medir a evolução do código através do tempo • Vamos medir a eficiência, a padronização ! O que você deveria medir ?
  • 7. Os 7 eixos da qualidade Arquitetura & Design Comentários Bugs potenciais Testes Unitários Códigos duplicados Regras de codificação Complexidade Débito Técnico
  • 8. “Se o débito cresce o bastante, eventualmente a empresa gastará mais consertando estes débitos do que investindo em incrementar o valor dos seus outros ativos” Steve McConnell (autor de Code Complete) O débito técnico
  • 9. • Plataforma de Qualidade do Código • Gerenciamento de débito técnico • Ferramenta Free & Open Source • Alguns plug-ins são pagos • Gerencia indicadores de qualidade do código • Monitora e ajuda a melhorar os 7 eixos da qualidade • Promove a Inspeção contínua... • Cria um repositório de débitos técnicos • Centraliza os problemas a serem resolvidos! O que é o Sonarqube ?
  • 10. Este é o seu código fonte quando você não paga seu débito técnico
  • 11. • Analisa seu código fonte (análise estática) • Por demanda ou integrado ao seu Build • Calcula centenas de métricas, em várias linguagens • Organiza e classifica os dados analisados, criando indicadores • Mostra os resultados em dashboards web Como ele funciona ?
  • 12. Análise Total do Projeto – Linha do Tempo
  • 13. Muitos, muitos plugins LANGUAGES DEV TOOLS http://docs.sonarqube.org/display/PLUG/Plugin+Library INTEGRATION AUTHENTIFICATION & AUTHORIZATION GOVERNANCE VIZUALIZATION & REPORTING ADDITIONAL METRICS
  • 14. CodeCracker – analyzers no SonarQube https://github.com/SonarSource-VisualStudio/sonarqube-roslyn-sdk • Crie seu analyzer com Roslyn e use no SonarQube • Gera o plugin para SonarQube baseado no Nuget
  • 16. • Sonarqube server • Pode ser instalado on-prem com opção de autenticação por AD ou não • Como uma VM no Azure • Windows ou Linux • Baseado em Java + Banco de Dados (SQL Server / MySql / Postgree) • Pode ser instalado em Docker  (https://hub.docker.com/_/sonarqube) • VS Team Services • Como tarefas do Build • TFS OnPremisse • Como tarefas do Build • Com script pre-build e post-test, com build Xaml, ou linha de commando (TFS 2015) • O agente precisa do Java, VS IDE e MSBuild.SonarQube.Runner instalados • Scanner Manual • Sonar Scanner acionado manualmente Configurando o ambiente
  • 17. • Totalmente integrado ao TFS/VSTS Como ele se integra - TFS
  • 18. Como ele se integra - TFS
  • 19. • Sonarqube Scanners • Você executa sob demanda (na linha de comando) Como ele se integra – Scanners
  • 20. • Integrado ao ambiente de desenvolvimento Como ele se Integra - Sonar Lint
  • 22. • Identifique e reduza seus débitos técnicos • (limpe a cozinha todos os dias) • Comprometa os desenvolvedores já no início do projeto • Compromisso com a qualidade do código • Fique alerta quando os débitos técnicos estiverem além do limite • (estabeleça seu limite) Resumindo
  • 24. Obrigado! Carlos dos Santos CDS Informática Ltda. www.cds-software.com.br www.carloscds.net @cdssoftware