SlideShare uma empresa Scribd logo
1 de 25
Sonarqube
Melhorando a qualidade do seu código
Carlos dos Santos
TRILHA | DESENVOLVIMENTO MODERNO
@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 Mobilidade
 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
• Qualidade do código (o quê, por quê e quando)
• Os 7 eixos da qualidade e os Débitos Técnicos
• O que é o Sonarqube ?
• Como integrar ao seu ambiente ?
• Demo
Visão geral
O que é qualidade do código ?
• O 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
• Na criação de um código novo, precisamos de padrões
• Você não melhora se não consegue medir !!!
• Conhece a teoria das janelas quebradas ?
Por que medir ?
Teoria das Janelas Quebradas
• Continuamente, diariamente, semanalmente...
• A partir do primeiro dia do seu projeto
• Assim você terá um histórico completo da evolução
• Prevenção é sempre melhor
• Priorizar e planejar
Quando você deveria medir ?
• Não somente números abstratos...
• Quantas linhas, quantas tarefas, quantos bugs...
• Precisamos medir a qualidade, manutenibilidade!
• Crie seus indicadores, 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 (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
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
• Baseado em Java + Banco de Dados (SQL Server / MySql)
• VS Team Services e TFS 2015 U1+
• Como tarefas do Build
•TFS 2013, TFS 2015 RTM+
• 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
Configurando o ambiente
• Items dentro do processo de Build
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

Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Simplilearn
 

Mais procurados (20)

Track code quality with SonarQube
Track code quality with SonarQubeTrack code quality with SonarQube
Track code quality with SonarQube
 
SonarQube
SonarQubeSonarQube
SonarQube
 
SonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code QualitySonarQube - The leading platform for Continuous Code Quality
SonarQube - The leading platform for Continuous Code Quality
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
 
Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil Karade
 
The story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps EngineerThe story of SonarQube told to a DevOps Engineer
The story of SonarQube told to a DevOps Engineer
 
What is Software Testing | Edureka
What is Software Testing | EdurekaWhat is Software Testing | Edureka
What is Software Testing | Edureka
 
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng NghĩaTech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
Tech Talk #5 : Code Analysis SonarQube - Lương Trọng Nghĩa
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
Test Automation in Agile
Test Automation in AgileTest Automation in Agile
Test Automation in Agile
 
SonarQube: Continuous Code Inspection
SonarQube: Continuous Code InspectionSonarQube: Continuous Code Inspection
SonarQube: Continuous Code Inspection
 
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
 
Java Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQubeJava Source Code Analysis using SonarQube
Java Source Code Analysis using SonarQube
 
Tracking and improving software quality with SonarQube
Tracking and improving software quality with SonarQubeTracking and improving software quality with SonarQube
Tracking and improving software quality with SonarQube
 
Test automation
Test automationTest automation
Test automation
 
Jenkins with SonarQube
Jenkins with SonarQubeJenkins with SonarQube
Jenkins with SonarQube
 
Quality Built In @ Spotify
Quality Built In @ SpotifyQuality Built In @ Spotify
Quality Built In @ Spotify
 
Sonar Review
Sonar ReviewSonar Review
Sonar Review
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
What Is Accessibility Testing?
What Is Accessibility Testing?What Is Accessibility Testing?
What Is Accessibility Testing?
 

Destaque

Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developments
rfelden
 

Destaque (8)

Introdução, instalação e configuração do SonarQube
Introdução, instalação e configuração do SonarQubeIntrodução, instalação e configuração do SonarQube
Introdução, instalação e configuração do SonarQube
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code quality
 
Sonar Overview
Sonar OverviewSonar Overview
Sonar Overview
 
Análise Estática de Código
Análise Estática de CódigoAnálise Estática de Código
Análise Estática de Código
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Soft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developmentsSoft shake 2013 - make use of sonar on your mobile developments
Soft shake 2013 - make use of sonar on your mobile developments
 
Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!Make use of Sonar for your mobile developments - It's easy and useful!
Make use of Sonar for your mobile developments - It's easy and useful!
 
SONAR
SONAR SONAR
SONAR
 

Semelhante a Sonarqube

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
 
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Alvaro Brognoli
 

Semelhante a Sonarqube (20)

SonarQube
SonarQubeSonarQube
SonarQube
 
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
 
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
 
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?
 
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
 
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
 
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 ?
 
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
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
Gestão ágil de projetos de software com Scrum 2.0 e Team Foundation Server e ...
 
Delphi Conference 2012 - Qualidade no Código
Delphi Conference 2012 - Qualidade no CódigoDelphi Conference 2012 - Qualidade no Código
Delphi Conference 2012 - Qualidade no Código
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application Insights
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
BDD com Xamarin UI Test e Specflow
BDD com Xamarin UI Test e SpecflowBDD com Xamarin UI Test e Specflow
BDD com Xamarin UI Test e Specflow
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidade
 
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
 

Mais de CDS

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
 
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
 
Application Insights
Application Insights Application Insights
Application Insights
 

Sonarqube

  • 1. Sonarqube Melhorando a qualidade do seu código Carlos dos Santos TRILHA | DESENVOLVIMENTO MODERNO @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 Mobilidade  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. • Qualidade do código (o quê, por quê e quando) • Os 7 eixos da qualidade e os Débitos Técnicos • O que é o Sonarqube ? • Como integrar ao seu ambiente ? • Demo Visão geral
  • 4. O que é qualidade do código ?
  • 5. • O 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 • Na criação de um código novo, precisamos de padrões • Você não melhora se não consegue medir !!! • Conhece a teoria das janelas quebradas ? Por que medir ?
  • 6. Teoria das Janelas Quebradas
  • 7. • Continuamente, diariamente, semanalmente... • A partir do primeiro dia do seu projeto • Assim você terá um histórico completo da evolução • Prevenção é sempre melhor • Priorizar e planejar Quando você deveria medir ?
  • 8. • Não somente números abstratos... • Quantas linhas, quantas tarefas, quantos bugs... • Precisamos medir a qualidade, manutenibilidade! • Crie seus indicadores, 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 ?
  • 9. 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
  • 10. “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
  • 11. • 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 ?
  • 12. Este é o seu código fonte quando você não paga seu débito técnico
  • 13. • Analisa seu código (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 ?
  • 14. Análise Total do Projeto – Linha do Tempo
  • 15. Muitos, muitos plugins LANGUAGES DEV TOOLS http://docs.sonarqube.org/display/PLUG/Plugin+Library INTEGRATION AUTHENTIFICATION & AUTHORIZATION GOVERNANCE VIZUALIZATION & REPORTING ADDITIONAL METRICS
  • 17. • Sonarqube server • Pode ser instalado on-prem com opção de autenticação por AD ou não • Como uma VM no Azure • Baseado em Java + Banco de Dados (SQL Server / MySql) • VS Team Services e TFS 2015 U1+ • Como tarefas do Build •TFS 2013, TFS 2015 RTM+ • 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 Configurando o ambiente
  • 18. • Items dentro do processo de Build Como ele se integra - TFS
  • 19. Como ele se integra - TFS
  • 20. • Sonarqube Scanners • Você executa sob demanda (na linha de comando) Como ele se integra – Scanners
  • 21. • Integrado ao ambiente de desenvolvimento Como ele se Integra - Sonar Lint
  • 23. • 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
  • 25. Obrigado! Carlos dos Santos CDS Informática Ltda. www.cds-software.com.br www.carloscds.net @cdssoftware