SlideShare uma empresa Scribd logo
1 de 20
Universidade Federal de Alagoas
     Ciência da Computação




            Pylint
Iorgama Porcely
Jessyka Oliveira
Tópicos

    Pylint


    Instalação


    Mãos na massa


    Conclusão
Análise Estática do Código

    Definição


    É o processo de avaliação do código fonte sem executar
Pylint

    Definição:

      
          Ferramenta que analisa estaticamente o código de
          Python a procura de erros ou de má qualidade no
          código fonte.
Verificações Básicas

    Verificar:
    
      A existência de docstring nos métodos
    
      Se as variáveis não estão definidas
    
      A existência de linhas similares
    
      Se todos os métodos e módulos importados estão sendo
      utilizados
    
      O comprimento da linha
    
      Incorreções no código, como: <> em vez de !=
Instalação

    Fazer download da ferramenta:
    http://download.logilab.org/pub/pylint/pylint-0.25.1.tar.gz

      
          Após baixar, descompactar o pacote Pylint usando o
          comando:
            tar -vzxf pylint-0.25.1.tar.gz
Instalação
         Em seguida, entre no diretório da ferramenta:
           cd pylint-0.25.1

         E execute o script setup.py que irá adicionar o Pylint no
          diretório Python:
            sudo python setup.py install

   Verificar a versão:
      pylint --version
Mãos na Massa

    Exibe uma série de relatórios, cada um focando num
    aspecto particular do projeto


    Projeto testado SAPA 1.0


    Executando Pylint:
    pylint <nome do projeto> ou <nome_do_arquivo.py>
Mãos na Massa

    O resultado do Pylint é dividido em:
    
      Análise de código                    Relatório
Mãos na Massa: Análise de
         Código

    Análise de código



                        C: 1,0: Missing docstring

                        - C é o tipo da mensagem
                        - 1 é o número da linha (no
                            arquivo) onde o problema foi
                           constatado
                        - Missing docstring é a mensagem
                           gerada
Mãos na Massa

    Possíveis mensagens:
      
        Error (E)
          
            Erros de programação importantes (bugs)
      
        Warning (W)
          
            Erros de programação menores (advertências)
      
        Fatal (F)
          
            Erros que impedem a análise de continuar
      
        Refactor (R)
          
            Violação das boas práticas
      
        Convention (C)
          
            Violação do padrão de codificação
Mãos na Massa: Relatórios

    Analisando resultados:

    
        Número de módulos analisados:

    
        Duplicação do código fonte:
Mãos na Massa: Relatórios

    Analisando resultados:

    
        Estatísticas por tipo:
Mãos na Massa: Relatórios

    Analisando resultados:

    
        Erros e advertências por módulos:
Mãos na Massa: Relatórios

    Analisando resultados:

    
        Mensagens por categoria:
Mãos na Massa: Relatórios

    Analisando resultados:

    
        Total de ocorrência de erros (ordenados por nº de
        ocorrências)
Mãos na Massa: Relatórios

    Para entender o código das mensagens de erros:
    
      pylint –help-msg=<id_msg>

    
        pylint –help-msg=W0611:




    
        pylint –help-msg=C0301:




    
        http://pylint-messages.wikidot.com/all-codes
Mãos na Massa: Relatórios

    Analisando resultados:
    
      Pontuação
       1ª Rodada                          2ª Rodada




    
        Verificar se melhorou a qualidade do código ou não
Conclusão

    Poderosa ferramenta, porém deve ser usado com cuidado


    Promove às boas práticas de codificação


    Não analisa a parte “alto nível” do projeto, como:
    bibliotecas externas, design e HTML
Referências

    Pylint
    http://www.logilab.org/857


    Entendendo o código das Mensagens:
    http://pylint-messages.wikidot.com/all-messages


    Pylint: Análisis estático del código en Python
    http://blog.milmazz.com.ve/archivos/2010/03/13/pylint-
    analisis-estatico-del-codigo-en-python


    Assegure a qualidade do seu código Python – Pylint
    http://www.klauslaube.com.br/2011/09/06/assegura-a-
    qualidade-de-codigo-python-pylint/

Mais conteúdo relacionado

Mais procurados

TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislAdriano Petrich
 
Introdução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOIntrodução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOJose Augusto Cintra
 
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testesAndré Luiz Forchesatto
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de softwarericardophp
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Robson Agapito Correa
 
Especificação e Verificação de Programas
Especificação e Verificação de ProgramasEspecificação e Verificação de Programas
Especificação e Verificação de ProgramasAdolfo Neto
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivosFlávio Freitas
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02profwtelles
 
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...Rogério Moraes de Carvalho
 

Mais procurados (18)

Sprint cPython at Globo.com
Sprint cPython at Globo.comSprint cPython at Globo.com
Sprint cPython at Globo.com
 
Mini aula de teste de software
Mini aula de teste de softwareMini aula de teste de software
Mini aula de teste de software
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Introdução à Linguagem de Programação GO
Introdução à Linguagem de Programação GOIntrodução à Linguagem de Programação GO
Introdução à Linguagem de Programação GO
 
O compilador dev c++
O compilador dev c++O compilador dev c++
O compilador dev c++
 
Introdução a Programação Orientada a testes
Introdução a Programação Orientada a testesIntrodução a Programação Orientada a testes
Introdução a Programação Orientada a testes
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
PHPUnit e teste de software
PHPUnit e teste de softwarePHPUnit e teste de software
PHPUnit e teste de software
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.Mutant Testing: um mundo para um X-Testing.
Mutant Testing: um mundo para um X-Testing.
 
Especificação e Verificação de Programas
Especificação e Verificação de ProgramasEspecificação e Verificação de Programas
Especificação e Verificação de Programas
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Testes de Sofware
Testes de SofwareTestes de Sofware
Testes de Sofware
 
Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
The Developer's Conference (TDC) 2013 - São Paulo: Programação assíncrona com...
 

Semelhante a Análise estática de código Python com Pylint

Desenvolvimento em Comunidade
Desenvolvimento em ComunidadeDesenvolvimento em Comunidade
Desenvolvimento em ComunidadePedro Dias
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsHelio Colombe
 
Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Rudá Moura
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6 Fabio Spanhol
 
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Filipe Chagas Ferraz
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5Fabio Spanhol
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementRamon Durães
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termosValore I/O
 
Monitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordemMonitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordemThaisa Silva
 

Semelhante a Análise estática de código Python com Pylint (20)

Programação Python na Iot
Programação Python na IotProgramação Python na Iot
Programação Python na Iot
 
Desenvolvimento em Comunidade
Desenvolvimento em ComunidadeDesenvolvimento em Comunidade
Desenvolvimento em Comunidade
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Curso de Python (Básico) - Português
Curso de Python (Básico) - PortuguêsCurso de Python (Básico) - Português
Curso de Python (Básico) - Português
 
Por Que Python É Tão Lento?
Por Que Python É Tão Lento?Por Que Python É Tão Lento?
Por Que Python É Tão Lento?
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
Aula - Introdução (Curso de Python Básico -- FATEC SENAI MT)
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
AulaPython.pdf
AulaPython.pdfAulaPython.pdf
AulaPython.pdf
 
Apostila_IC.pdf
Apostila_IC.pdfApostila_IC.pdf
Apostila_IC.pdf
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
Monitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordemMonitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordem
 

Mais de Iorgama Porcely

Mais de Iorgama Porcely (6)

Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
 
Haskell
HaskellHaskell
Haskell
 
Transformações 3D
Transformações 3DTransformações 3D
Transformações 3D
 
Segmentação de imagem
Segmentação de imagemSegmentação de imagem
Segmentação de imagem
 
Modelos de cores
Modelos de coresModelos de cores
Modelos de cores
 
Fluxos em Rede e Associação
Fluxos em Rede e AssociaçãoFluxos em Rede e Associação
Fluxos em Rede e Associação
 

Último

Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxfabiolalopesmartins1
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 

Último (20)

Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 
A experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptxA experiência amorosa e a reflexão sobre o Amor.pptx
A experiência amorosa e a reflexão sobre o Amor.pptx
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 

Análise estática de código Python com Pylint

  • 1. Universidade Federal de Alagoas Ciência da Computação Pylint Iorgama Porcely Jessyka Oliveira
  • 2. Tópicos  Pylint  Instalação  Mãos na massa  Conclusão
  • 3. Análise Estática do Código  Definição  É o processo de avaliação do código fonte sem executar
  • 4. Pylint  Definição:  Ferramenta que analisa estaticamente o código de Python a procura de erros ou de má qualidade no código fonte.
  • 5. Verificações Básicas  Verificar:  A existência de docstring nos métodos  Se as variáveis não estão definidas  A existência de linhas similares  Se todos os métodos e módulos importados estão sendo utilizados  O comprimento da linha  Incorreções no código, como: <> em vez de !=
  • 6. Instalação  Fazer download da ferramenta: http://download.logilab.org/pub/pylint/pylint-0.25.1.tar.gz  Após baixar, descompactar o pacote Pylint usando o comando: tar -vzxf pylint-0.25.1.tar.gz
  • 7. Instalação  Em seguida, entre no diretório da ferramenta: cd pylint-0.25.1  E execute o script setup.py que irá adicionar o Pylint no diretório Python: sudo python setup.py install  Verificar a versão: pylint --version
  • 8. Mãos na Massa  Exibe uma série de relatórios, cada um focando num aspecto particular do projeto  Projeto testado SAPA 1.0  Executando Pylint: pylint <nome do projeto> ou <nome_do_arquivo.py>
  • 9. Mãos na Massa  O resultado do Pylint é dividido em:  Análise de código Relatório
  • 10. Mãos na Massa: Análise de Código  Análise de código C: 1,0: Missing docstring - C é o tipo da mensagem - 1 é o número da linha (no arquivo) onde o problema foi constatado - Missing docstring é a mensagem gerada
  • 11. Mãos na Massa  Possíveis mensagens:  Error (E)  Erros de programação importantes (bugs)  Warning (W)  Erros de programação menores (advertências)  Fatal (F)  Erros que impedem a análise de continuar  Refactor (R)  Violação das boas práticas  Convention (C)  Violação do padrão de codificação
  • 12. Mãos na Massa: Relatórios  Analisando resultados:  Número de módulos analisados:  Duplicação do código fonte:
  • 13. Mãos na Massa: Relatórios  Analisando resultados:  Estatísticas por tipo:
  • 14. Mãos na Massa: Relatórios  Analisando resultados:  Erros e advertências por módulos:
  • 15. Mãos na Massa: Relatórios  Analisando resultados:  Mensagens por categoria:
  • 16. Mãos na Massa: Relatórios  Analisando resultados:  Total de ocorrência de erros (ordenados por nº de ocorrências)
  • 17. Mãos na Massa: Relatórios  Para entender o código das mensagens de erros:  pylint –help-msg=<id_msg>  pylint –help-msg=W0611:  pylint –help-msg=C0301:  http://pylint-messages.wikidot.com/all-codes
  • 18. Mãos na Massa: Relatórios  Analisando resultados:  Pontuação 1ª Rodada 2ª Rodada  Verificar se melhorou a qualidade do código ou não
  • 19. Conclusão  Poderosa ferramenta, porém deve ser usado com cuidado  Promove às boas práticas de codificação  Não analisa a parte “alto nível” do projeto, como: bibliotecas externas, design e HTML
  • 20. Referências  Pylint http://www.logilab.org/857  Entendendo o código das Mensagens: http://pylint-messages.wikidot.com/all-messages  Pylint: Análisis estático del código en Python http://blog.milmazz.com.ve/archivos/2010/03/13/pylint- analisis-estatico-del-codigo-en-python  Assegure a qualidade do seu código Python – Pylint http://www.klauslaube.com.br/2011/09/06/assegura-a- qualidade-de-codigo-python-pylint/