Care sunt cele mai bune instrumente pentru analiza statică Python?


Cel mai bun răspuns

Există mai multe instrumente pentru efectuarea analizei statice pentru programarea Python.

  1. Pylint → Un instrument open source
  2. Kiuwan → Instrument comercial
  3. Pyflakes și așa mai departe.

Am folosit Pylint și Kiuwan.

Pylint poate găsi mai jos lucruri:

  • verificarea lungimii codului de linie,
  • verificarea dacă numele variabilelor sunt bine formate conform standardului dvs. de codare
  • verificarea dacă sunt folosite module importate
  • verificarea dacă interfețele declarate sunt cu adevărat implementate
  • verificarea dacă sunt importate module

Kiuwan poate accepta mai jos seturi de reguli:

  • Evitați codificarea hard adreselor IP
  • Cod duplicat
  • Evitați utilizarea parametrilor impliciți modificabili
  • Evitați funcția exec ()
  • Evitați atribuirile către True sau False
  • Evitați comparațiile în lanț care conțin operator de egalitate
  • Evitați funcțiile prea complexe
  • Deschideți fișiere usin g declarația cu
  • Evitați să utilizați module depreciate
  • Metoda \_init\_ nu poate fi un generator

Este o opțiune mai bună pentru a verifica dacă există mai multe instrumente și decide care instrument se potrivește perfect cerinței.

Răspuns

Folosesc flocuri pentru verificarea codului în interiorul Vim și mi se pare foarte util. Dar totuși, pylint este mai bun pentru verificarea codului pre-commit. Ar trebui să aveți două niveluri de verificare a codului: erori care nu pot fi comise și avertismente care sunt miros de cod, dar care pot fi comise. Puteți configura acest lucru și multe alte lucruri cu pylint.

Uneori ați putea crede că pylint este prea pretențios: se poate plânge pentru ceva care credeți că este perfect ok. Gândește-te de două ori. Foarte des, am constatat că avertismentul pe care l-am găsit prea conservator în urmă cu o lună a fost de fapt un sfat foarte bun.

Deci, răspunsul meu este că pylint este fiabil și robust și nu știu un cod mult mai bun analizor.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *