SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

End-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical ScaleEnd-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical ScaleErdem YILDIRIM
 
Test Automation for Manual Testers
Test Automation for Manual TestersTest Automation for Manual Testers
Test Automation for Manual TestersTricentis
 
Bridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineBridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineDevOps.com
 
Security and DevOps Overview
Security and DevOps OverviewSecurity and DevOps Overview
Security and DevOps OverviewAdrian Sanabria
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeEmre Dündar
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de softwareQualister
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategytharindakasun
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessLee Barnes
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For AgileNaresh Jain
 

What's hot (20)

End-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical ScaleEnd-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical Scale
 
SonarQube Presentation.pptx
SonarQube Presentation.pptxSonarQube Presentation.pptx
SonarQube Presentation.pptx
 
SonarQube
SonarQubeSonarQube
SonarQube
 
SonarQube Overview
SonarQube OverviewSonarQube Overview
SonarQube Overview
 
Test Automation for Manual Testers
Test Automation for Manual TestersTest Automation for Manual Testers
Test Automation for Manual Testers
 
Bridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD PipelineBridging the Security Testing Gap in Your CI/CD Pipeline
Bridging the Security Testing Gap in Your CI/CD Pipeline
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 
Test plan document
Test plan documentTest plan document
Test plan document
 
Security and DevOps Overview
Security and DevOps OverviewSecurity and DevOps Overview
Security and DevOps Overview
 
Continuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQubeContinuous Inspection of Code Quality: SonarQube
Continuous Inspection of Code Quality: SonarQube
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 
Test Automation in Agile
Test Automation in AgileTest Automation in Agile
Test Automation in Agile
 
Zap vs burp
Zap vs burpZap vs burp
Zap vs burp
 
Testing Services
Testing ServicesTesting Services
Testing Services
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategy
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for Success
 
Oscp - Journey
Oscp - JourneyOscp - Journey
Oscp - Journey
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Netcat - A Swiss Army Tool
Netcat - A Swiss Army ToolNetcat - A Swiss Army Tool
Netcat - A Swiss Army Tool
 

Viewers also liked

SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? Geeks Anonymes
 
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 SonarQubePatroklos Papapetrou (Pat)
 
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 SonarQubeDenis Santos
 
Sonar qube to impove code quality
Sonar qube   to impove code qualitySonar qube   to impove code quality
Sonar qube to impove code qualityMani Sarkar
 
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ódigoRicardo Terra
 
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 developmentsrfelden
 
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!cyrilpicat
 

Viewers also liked (10)

SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ? SonarQube - Should I Stay or Should I Go ?
SonarQube - Should I Stay or Should I Go ?
 
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
 
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
 

Similar to Sonarqube

SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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ódigoJosé Araújo
 
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 InsightsRenato Groff
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
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...Igor Abade
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareAragon Vieira
 
Desenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDesenvolvendo software com qualidade e agilidade
Desenvolvendo software com qualidade e agilidadeDiogo Augusto Pereira
 
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
 

Similar to 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
 

More from 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
 
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
 
Application Insights
Application Insights Application Insights
Application Insights CDS
 

More from 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