Рубрики
Без рубрики

Инструменты качества кода в Python

Что такое качество кода? Прежде чем говорить о инструментах качества кода, давайте посмотрим, какой код кода … Теги с кодом, Python, программированием, производительностью.

Что такое качество кода?

Прежде чем поговорить о инструментах качества кода, давайте посмотрим, какое качество кода. Мы можем договориться, что код высокого качества если

Это делает то, что предполагается сделать

Если код письменного кода не делает то, что должно делать, то он не соответствует очень основным требованиям, и мы можем сказать, что качество кода низкое.

Это не содержит дефектов или проблем

Давайте скажем, что ваш код делает то, что он должен делать, но борьба для выполнения скважин в краевых случаях. Давайте возьмем пример мобильного приложения, которое вы начинаете использовать для общения с друзьями и семьей. Вы можете легко отправлять и получать сообщения от своих друзей через это приложение. Один прекрасный день, вы хотите поделиться фотографией с группой и сбоями вашего приложения. Конечно, есть какой-то проблема с кодом, который не был проверен правильно.

Легко читать, поддерживать и простираться

Наконец, давайте рассмотрим, что код делает то, что должно делать, и он не содержит никаких дефектов или проблем. Но код не легко читать, поддерживать и расширять.

Роберт С. Мартин в его книге Чистый код говорит:

Действительно, соотношение времени, потраченное на чтение по сравнению с письмом, более 10 до 1. Мы постоянно читаем старый код как часть усилий, чтобы написать новый код. Поскольку это соотношение настолько высокое, мы хотим прочтение кода, чтобы быть легким, даже если он делает запись более сложнее.

Следовательно, чтение кода является очень важным фактором в качестве кода.

Гид по стилю: После конвенций

Отличные кодовые базы выглядят так, как будто они были написаны человеком, когда они работали командой.

Код согласованности легче читать и поэтому поддерживать командой. Руководство по стилю служит цели определения последовательного способа записи вашего кода. Руководство по стилю содержит конвенции для записи кода. Pep8 Официальный руководство по стилю для Python, который рекомендуется использовать для записи любого кода Python. Давайте рассмотрим небольшой пример. В приведенном ниже Код Python операторы, как правило, разбросаны на разных столбцах На экране и каждый оператор отошел от операнда и на предыдущую строку. Здесь глаз должен сделать дополнительную работу, чтобы сказать, какие элементы добавляются и которые вычтены:

Не рекомендуется:

## No: operators sit far away from their operands
income = (gross_wages +
          taxable_interest +
          (dividends - qualified_dividends) -
          ira_deduction -
          student_loan_interest)

Чтобы решить эту проблему для чтения, математики и их издатели следуют на противоположной конвенции, которая более читается

Рекомендуемые:

## Yes: easy to match operators with operands
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)

Еще одна официальная рекомендация из Python – Pep-257 Конвенции DOCSTRING. DOCSTRING – это строковый литерал, который происходит в качестве первого утверждения в модуле, функции, классе или определении метода.

def complex(real=0.0, imag=0.0):
    """Form a complex number.

    Keyword arguments:
    real -- the real part (default 0.0)
    imag -- the imaginary part (default 0.0)
    """
    if imag == 0.0 and real == 0.0:
        return complex_zero
    ...

Существуют инструменты, способные генерировать документацию непосредственно из кода, если DocStrings согласуются в коде.

Некоторые организации, такие как Google, имеют свои Руководства в стиле . Оформить заказ Google Руководство по стилю Python Отказ

Как измерить качество кода?

Существуют разные способы измерения качества кода в целом. В этой статье говорится о некоторых основных инструментах, предусмотренных Python для измерения качества кода:

  • Летание
  • Форматтеры

Летание

Linters анализируют код для обнаружения различных категорий проблем:

  1. Логическая проблема

    • Кодовые ошибки
    • Код с потенциально непреднамеренными результатами
    • Опасные кодовые модели
  2. Стилистическая проблема

    • Код не соответствует определенным направляющим конвенциям/стилях

Популярные Python Linters

  1. Пилинт : Особенности, как проверка Стандарты кодирования , Обнаружение ошибок , Помощь рефакторинга и больше.
  2. Pycodestyle : Для проверки некоторых из стилей конвенций в Pep8
  3. Flake8 : комбинация следующих связей: Pyflakes , Pycodestyle , Скрипт MCCABE Batchelder
  4. Пилама : Состоит из следующих связей и других инструментов для анализа кода:
  5. Pycodestyle.
  6. Pydocstyle.
  7. Pyflakes
  8. MCCABE
  9. Пилинт
  10. Радон
  11. jsslint.

Каждый линтер имеет свои преимущества и недостатки и должны быть подняты на основе проекта, над которым вы работаете. Если Linter не выдает какое-либо предупреждение для любого вещества, что не означает, что код всегда правильный, Linter – это просто статический инструмент для анализа кода. Он не может проверить, выполняется ли задание, которая должна быть сделана, выполнена или нет.

Форматтеры

Форматтеры автоматически отформатируют код на основе стиля. Некоторые популярные форматтели Python являются:

Чернить

Согласно документации Black, Черный Является ли «бескомпромиссным кодом Python Code». Это мой личный фаворит, потому что он имеет минимальную конфигурацию и достаточно быстро. Черный используется некоторыми очень популярными проектами с открытым исходным кодом, таким как Pteest, Tox, Pyramid, Django каналы, поэзия и так далее. Пример использования:

unique.py

def is_unique(
               s
               ):
    s = list(s
                )
    s.sort()


    for i in range(len(s) - 1):
        if s[i] == s[i + 1]:
            return 0
    else:
        return 1


if __name__ == "__main__":
    print(
          is_unique(input())
         )

$ Black Unique.py производит следующее

def is_unique(s):
    s = list(s)
    s.sort()

    for i in range(len(s) - 1):
        if s[i] == s[i + 1]:
            return 0
    else:
        return 1


if __name__ == "__main__":
    print(is_unique(input()))

Yapf.

Yapf (Еще еще один форма Python) – официальный форма Python Google, который следует Google Руководство по стилю Отказ Документация легко Понять установку и конфигурацию для этого формата.

autopep8.

Autopep8 Это неофициальный, но популярный инструмент, который автоматически формирует Код Python, чтобы соответствовать PEP 8. Он использует Pycodestyle, официальный инструмент «Pep-8 Pep-8 Pep-8 Pyphon», чтобы определить, какие части кода необходимо отформатировать.

isort.

Исторт это утилита/библиотека Python, чтобы сортировать импорт в алфавитном порядке, а автоматически разделен на разделы и по типу.

До Isort:

from my_lib import Object

import os

from my_lib import Object3

from my_lib import Object2

import sys

from third_party import lib15, lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14

import sys

from __future__ import absolute_import

from third_party import lib3

print("Hey")
print("yo")

После isort:

from __future__ import absolute_import

import os
import sys

from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,
                         lib9, lib10, lib11, lib12, lib13, lib14, lib15)

from my_lib import Object, Object2, Object3

print("Hey")
print("yo")

Где использовать инструменты качества кода?

Вы можете использовать эти инструменты качества кода:

  • В вашем IDE/редакторе, Когда вы пишете свой код
  • при совершении кода
  • Объединение кода или при запуске тестов

IDE/редактор

Большинство современных идентификаторов и редакторов имеют встроенную поддержку линтам. Некоторые редакторы, такие как VS код иметь большую поддержку для линей. Вы также можете запустить определенный Fixetter при запуске команды Auto-Format в VS-коде. Проверьте больше об этом здесь Отказ

Для IDE, таких как Pycharm, есть плагины для беговых линий и формоздоров. Например, проверить Плагин пилинта и Черный флагин

При совершении кода: крючки

Как и многие другие системы управления версиями, Git имеет способ устрелить пользовательские скрипты, когда некоторые важные действия происходят через Гит-крюки Отказ Вы можете использовать эти сценарии для запуска Lints и Formatters, чтобы заблокировать любой новый код, который не соответствует стандартам качества или автоматически отформатировать коммит. Полезно Предварительный коммит (написано в Python) – менеджер многоязычного пакета для Предварительные фиксаторы крючки. Вы указываете список желаемых крючков, и предварительный коммит управляет установкой и выполнением любого крючка, написанного на любом языке, прежде чем каждый коммит

При запуске тестов: Непрерывная интеграция

Вы также можете разместить Linters и Formatters непосредственно в любую систему, которую вы можете использовать для непрерывной интеграции. ЛИНТЕРЫ могут быть установлены, чтобы выйти из строя, если код не соответствует стандартам качества. CI (непрерывная интеграция) – это практика автоматизации интеграции изменений кода из нескольких авторов в один программный проект. Это означает, что, как только разработчик объединяет свой код в главной ветви, трубопровод CI (например, Workflow Git) может выполнять некоторые автоматические операции, такие как форматирование до развертывания кода.

Вывод

Код имеет высокое качество, если он делает то, что он должен делать, это не содержит дефектов или проблемы и Это легко Читать, поддерживать и простираться Отказ Руководство по стилю, как руководство по стилю, как Pep8 и Google Руководство по стилю Помогите служить цели определения последовательного способа написать свой код. Различные инструменты для измерения и улучшения качества кода являются линтами и форматировами.

Linters анализируют код для выявления различных категорий проблем, таких как материально-технические проблемы и стилистические проблемы. Некоторые Популярные лепки Пилинт , Pycodestyle , Flake8. и Пилама Отказ

Форматтеры автоматически отформатируют код на основе стиля. Некоторые популярные форматшиты – Черный С Yapf. , autopep8. и Исторт Отказ

Наконец, вы можете использовать эти инструменты качества кода, используя:

  • IDE/редакторы – когда вы пишете свой код
  • Предварительный коммит крючки – при совершении кода с использованием
  • Непрерывная интеграция – при запуске тестов

Оригинал: “https://dev.to/dollardhingra/code-quality-tools-in-python-4k2a”