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

SonarQube

  • 1.
    Sonarqube Melhorando a qualidadedo 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.
  • 6.
    • Não somentenú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 eixosda 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ébitocresce 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 deQualidade 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 é oseu código fonte quando você não paga seu débito técnico
  • 11.
    • Analisa seucó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 doProjeto – Linha do Tempo
  • 13.
    Muitos, muitos plugins LANGUAGES DEVTOOLS http://docs.sonarqube.org/display/PLUG/Plugin+Library INTEGRATION AUTHENTIFICATION & AUTHORIZATION GOVERNANCE VIZUALIZATION & REPORTING ADDITIONAL METRICS
  • 14.
    CodeCracker – analyzersno 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
  • 15.
  • 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 integradoao TFS/VSTS Como ele se integra - TFS
  • 18.
    Como ele seintegra - TFS
  • 19.
    • Sonarqube Scanners •Você executa sob demanda (na linha de comando) Como ele se integra – Scanners
  • 20.
    • Integrado aoambiente de desenvolvimento Como ele se Integra - Sonar Lint
  • 21.
  • 22.
    • Identifique ereduza 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
  • 23.
  • 24.
    Obrigado! Carlos dosSantos CDS Informática Ltda. www.cds-software.com.br www.carloscds.net @cdssoftware