SlideShare uma empresa Scribd logo
Melhorando a Qualidade do
Código com Métricas e Auditorias


José Araújo
Quem?


•   José Araújo
•   7 anos na área de desenvolvimento
•   Delphi Developer Certification
•   Delphi Conference 2011 (CI)
•   Active Delphi
•   Engenharia de Software
•   Fortes Informática (Fortes Report)
Introdução
Introdução


•   Prazos, cronogramas apertados;
•   Código fonte estruturado;
•   Degradação da evolução;
•   Ferramentas;
•   Métricas;
Código Fonte
como Design
Código-Fonte como Design


• Subvalorização;
• Movimento ágil;
• Martin Fowler, Kent Beck;
• Diagramas (UML);
• Representação mais fiel do
  comportamento real;
• Estratégia de alteração;
Um bom design
Um bom design


• Definição abstrata;
    •   Cliente;
    •   Programador;
•   Intuição humana;
•   Potenciais problemas;
•   Medições;
•   Constante monitoramento;
Quais métricas utilizar?
Quais métricas utilizar?


•   Existem várias;
•   Todas me atende?
•   “Incômodos”;
•   Maus cheiros;
•   Princípios de OO;
•   O que você não quer
    ter no código;
Problemas comuns
Código duplicado


•   “Cheiro mais forte”;
•   Prioridade total;
•   Impacto nos testes;
•   Manutenção;
•   Número de linhas duplicadas;
Métodos longos & Complexidade


 •   Métodos Megazord - EGH;
 •   Leitura;
 •   Incentiva duplicidade;
 •   Só faz uma tarefa;
 •   if, elses, for, while, case...;
Classes grandes


• Coesão;
• Princípio da responsabilidade
  única (SRP);
• Open Close Principle – OCP;
• Muitos métodos;
• Muitos atributos;
QA Metrics &
 QA Audits
QA Metrics & QA Audits


•   Ferramenta visual;
•   Varias Métricas e Auditórias prontas;
•   Gráfico de Kiviat;
•   Apartir do Delphi 2006;
Bate-papo final


•   Estratégia;
•   Agir de forma sistêmica;
•   Desenvolvedores Capacitados;
•   Prevenção;
•   Analisar dados coletados;
•   Habilidade dos desenvolvedores;
Perguntas?

•   Portal de Treinamentos e Vagas – http://www.edobrasil.net/treinamentos
•   Embarcadero Developer Network - http://edn.embarcadero.com
•   Diretório de MVP’s - http://www.embarcadero.com.br/mvp-directory
•   Documentação dos Produtos - http://docs.embarcadero.com
•   CodeRage 7 - http://www.embarcadero.com/coderage
•   YouTube - http://youtube.com/user/embarcaderodobrasil
•   Twitter - https://twitter.com/EmbarcaderoBR http://twitter.com/EmbarcaderoTech
•   Blogs: http://blogs.embarcadero.com
•   Facebook:
    https://www.facebook.com/pages/Embarcadero-Delphi-Brasil/399151510134179



• atendimento@embarcadero.com.br
• (11) 5643-1333
Obrigado!


José Araújo

joseafilho@gmail.com
http://centraldaengenharia.wordpress.com/
http://facebook.com/josearaujo
http://twitter.com/cengenharia

             “Tudo é uma questão de Engenharia!”
            “Everything is a matter of Engineering!”

Mais conteúdo relacionado

Mais procurados

Segurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHPSegurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHP
Gedvan Dias
 
PHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHPPHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHP
Daniel Archer Marques Cramer
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
Augusto Pascutti
 
PHP Além da universidade
PHP Além da universidadePHP Além da universidade
PHP Além da universidade
Daniel Archer Marques Cramer
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
Mario Guedes
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Vinicius Warto Campos
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosLucas Vegi
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
Daniel Archer Marques Cramer
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHP
Douglas V. Pasqua
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
Rogerio Fontes
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Rogério Moraes de Carvalho
 
Resolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dadosResolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dados
Andreano Lanusse
 
Testando sua API com HTTParty e RSpec
Testando sua API com HTTParty e RSpecTestando sua API com HTTParty e RSpec
Testando sua API com HTTParty e RSpec
Deyvirson Mendonça
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
Rogério Moraes de Carvalho
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Rogério Moraes de Carvalho
 
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
iMasters
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
Rogério Moraes de Carvalho
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
Michael Cardoso
 

Mais procurados (18)

Segurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHPSegurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHP
 
PHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHPPHP 7 - A Maioridade do PHP
PHP 7 - A Maioridade do PHP
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
PHP Além da universidade
PHP Além da universidadePHP Além da universidade
PHP Além da universidade
 
Delphi Parallel Programming Library
Delphi Parallel Programming LibraryDelphi Parallel Programming Library
Delphi Parallel Programming Library
 
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP SnifferSeguindo padrões: Codificando profissionalmente com PHP Sniffer
Seguindo padrões: Codificando profissionalmente com PHP Sniffer
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetos
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
 
Dicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHPDicas para sua carreira de Desenvolvedor PHP
Dicas para sua carreira de Desenvolvedor PHP
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuroVisual Studio Summit 2016: C# 7 - Olhando para o futuro
Visual Studio Summit 2016: C# 7 - Olhando para o futuro
 
Resolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dadosResolvendo problemas de performance em aplicações Delphi e bancos de dados
Resolvendo problemas de performance em aplicações Delphi e bancos de dados
 
Testando sua API com HTTParty e RSpec
Testando sua API com HTTParty e RSpecTestando sua API com HTTParty e RSpec
Testando sua API com HTTParty e RSpec
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
 
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
Plataforma de compiladores .NET (“Roslyn”), C# 6 e Visual Studio “14”
 
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
PHP Experience 2016 - [Palestra] Vagrant, LXC, Docker, etc: Entenda as difere...
 
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
TDC 2012 Goiânia: Trilha .NET - Novidades do .NET Framework 4.5
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 

Destaque

Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Mario Guedes
 
Fortes Papo Developer
Fortes Papo DeveloperFortes Papo Developer
Fortes Papo Developer
José Araújo
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Mario Guedes
 
Delphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração ContínuaDelphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração Contínua
José Araújo
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de Dados
José Araújo
 
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
José Araújo
 
Delphi XE7 - O que há de novo?
Delphi XE7 - O que há de novo?Delphi XE7 - O que há de novo?
Delphi XE7 - O que há de novo?
Vinicius Scandelai Sanchez
 
Git & Delphi
Git & DelphiGit & Delphi
Git & Delphi
Warlley Rezende
 
Gnostice Suporte completo a PDF e Office - Embarcadero Conference 2015
Gnostice Suporte completo a PDF e Office �- Embarcadero Conference 2015Gnostice Suporte completo a PDF e Office �- Embarcadero Conference 2015
Gnostice Suporte completo a PDF e Office - Embarcadero Conference 2015
Vic Fernandes
 
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesDelphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Mario Guedes
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Ryan Padilha
 
Linguagem Delphi-Introdução
Linguagem Delphi-IntroduçãoLinguagem Delphi-Introdução
Linguagem Delphi-Introdução
Carlos Eduardo Melo
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Ryan Padilha
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelRyan Padilha
 
Programação orientada a objetos em delphi
Programação orientada a objetos em delphiProgramação orientada a objetos em delphi
Programação orientada a objetos em delphi
Helder Lopes
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Ryan Padilha
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhi
MikeNandes
 

Destaque (19)

Delphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTIDelphi Conference 2012 - Programação Baseado em Regras com RTTI
Delphi Conference 2012 - Programação Baseado em Regras com RTTI
 
Fortes Papo Developer
Fortes Papo DeveloperFortes Papo Developer
Fortes Papo Developer
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
 
Delphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração ContínuaDelphi Conference 2011 - Integração Contínua
Delphi Conference 2011 - Integração Contínua
 
Curso de Delphi - Banco de Dados
Curso de Delphi - Banco de DadosCurso de Delphi - Banco de Dados
Curso de Delphi - Banco de Dados
 
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
9º FireBird Developer Day - Automatizar Manutenção do Banco de Dados
 
Delphi XE7 - O que há de novo?
Delphi XE7 - O que há de novo?Delphi XE7 - O que há de novo?
Delphi XE7 - O que há de novo?
 
Git & Delphi
Git & DelphiGit & Delphi
Git & Delphi
 
Mvc delphi
Mvc delphiMvc delphi
Mvc delphi
 
Gnostice Suporte completo a PDF e Office - Embarcadero Conference 2015
Gnostice Suporte completo a PDF e Office �- Embarcadero Conference 2015Gnostice Suporte completo a PDF e Office �- Embarcadero Conference 2015
Gnostice Suporte completo a PDF e Office - Embarcadero Conference 2015
 
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões RegularesDelphi Conference 2011 - Desmistificando as Expressões Regulares
Delphi Conference 2011 - Desmistificando as Expressões Regulares
 
Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)Orientação a Objetos no Delphi - Controle de Estoque (III)
Orientação a Objetos no Delphi - Controle de Estoque (III)
 
Linguagem Delphi-Introdução
Linguagem Delphi-IntroduçãoLinguagem Delphi-Introdução
Linguagem Delphi-Introdução
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
 
Oo delphi
Oo delphiOo delphi
Oo delphi
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Programação orientada a objetos em delphi
Programação orientada a objetos em delphiProgramação orientada a objetos em delphi
Programação orientada a objetos em delphi
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhi
 

Semelhante a Delphi Conference 2012 - Qualidade no Código

XPCE - Qualidade no Código
XPCE - Qualidade no CódigoXPCE - Qualidade no Código
XPCE - Qualidade no Código
José Araújo
 
Sonarqube
SonarqubeSonarqube
Sonarqube
CDS
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoAchiles Camilo
 
Apresentação Executiva
Apresentação ExecutivaApresentação Executiva
Apresentação Executiva
Powerlogic Consultoria e Sistemas
 
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
Marcos Pereira
 
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
Cleiton Felipe Moraes
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareElvis Lima
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Hiury Araújo
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
Rodrigo Oliveira, Msc, PMP
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeis
Qualister
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
Aragon Vieira
 
Automação de Testes - How to do It Right
Automação de Testes - How to do It RightAutomação de Testes - How to do It Right
Automação de Testes - How to do It Right
João Lucas Fernandes Coimbra
 
SonarQube
SonarQubeSonarQube
SonarQube
CDS
 
Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
Maykel dos Santos Braz, ZCE
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e Selenium
Rafael Cruz, MCT, MBA
 
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaUtilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Cleiton Felipe Moraes
 
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
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGNeubio Ferreira
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
Fernanda Ferreira
 

Semelhante a Delphi Conference 2012 - Qualidade no Código (20)

XPCE - Qualidade no Código
XPCE - Qualidade no CódigoXPCE - Qualidade no Código
XPCE - Qualidade no Código
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
 
Apresentação Executiva
Apresentação ExecutivaApresentação Executiva
Apresentação Executiva
 
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
 
Tdd On Rails
Tdd On RailsTdd On Rails
Tdd On Rails
 
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
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de software
 
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por FuncionalidadesFeature Driven Development – Desenvolvimento Guiado por Funcionalidades
Feature Driven Development – Desenvolvimento Guiado por Funcionalidades
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 
Testes em métodos ágeis
Testes em métodos ágeisTestes em métodos ágeis
Testes em métodos ágeis
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
 
Automação de Testes - How to do It Right
Automação de Testes - How to do It RightAutomação de Testes - How to do It Right
Automação de Testes - How to do It Right
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e Selenium
 
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day CuritibaUtilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
Utilizando BDD com Specflow e Selenium para testes Web MSP Tech Day Curitiba
 
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?
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 

Delphi Conference 2012 - Qualidade no Código

  • 1. Melhorando a Qualidade do Código com Métricas e Auditorias José Araújo
  • 2. Quem? • José Araújo • 7 anos na área de desenvolvimento • Delphi Developer Certification • Delphi Conference 2011 (CI) • Active Delphi • Engenharia de Software • Fortes Informática (Fortes Report)
  • 4. Introdução • Prazos, cronogramas apertados; • Código fonte estruturado; • Degradação da evolução; • Ferramentas; • Métricas;
  • 6. Código-Fonte como Design • Subvalorização; • Movimento ágil; • Martin Fowler, Kent Beck; • Diagramas (UML); • Representação mais fiel do comportamento real; • Estratégia de alteração;
  • 8. Um bom design • Definição abstrata; • Cliente; • Programador; • Intuição humana; • Potenciais problemas; • Medições; • Constante monitoramento;
  • 10. Quais métricas utilizar? • Existem várias; • Todas me atende? • “Incômodos”; • Maus cheiros; • Princípios de OO; • O que você não quer ter no código;
  • 12. Código duplicado • “Cheiro mais forte”; • Prioridade total; • Impacto nos testes; • Manutenção; • Número de linhas duplicadas;
  • 13. Métodos longos & Complexidade • Métodos Megazord - EGH; • Leitura; • Incentiva duplicidade; • Só faz uma tarefa; • if, elses, for, while, case...;
  • 14. Classes grandes • Coesão; • Princípio da responsabilidade única (SRP); • Open Close Principle – OCP; • Muitos métodos; • Muitos atributos;
  • 15. QA Metrics & QA Audits
  • 16. QA Metrics & QA Audits • Ferramenta visual; • Varias Métricas e Auditórias prontas; • Gráfico de Kiviat; • Apartir do Delphi 2006;
  • 17. Bate-papo final • Estratégia; • Agir de forma sistêmica; • Desenvolvedores Capacitados; • Prevenção; • Analisar dados coletados; • Habilidade dos desenvolvedores;
  • 18. Perguntas? • Portal de Treinamentos e Vagas – http://www.edobrasil.net/treinamentos • Embarcadero Developer Network - http://edn.embarcadero.com • Diretório de MVP’s - http://www.embarcadero.com.br/mvp-directory • Documentação dos Produtos - http://docs.embarcadero.com • CodeRage 7 - http://www.embarcadero.com/coderage • YouTube - http://youtube.com/user/embarcaderodobrasil • Twitter - https://twitter.com/EmbarcaderoBR http://twitter.com/EmbarcaderoTech • Blogs: http://blogs.embarcadero.com • Facebook: https://www.facebook.com/pages/Embarcadero-Delphi-Brasil/399151510134179 • atendimento@embarcadero.com.br • (11) 5643-1333