Путь аналитика данных к совершенствованию чистоты кода

«Хорошо составленный код подобен тонкому гобелену. он рассказывает историю, передает цель и делает комплекс легким и элегантным». —Аноним

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

1. Используйте осмысленные имена переменных и функций

При создании кода на Python я считаю, что использование описательных и осмысленных имен переменных и функций имеет первостепенное значение. Это поможет вам и другим быстро понять назначение и функциональность кода. Избегайте расплывчатых или общих названий и стремитесь к ясности и конкретности.

Например, сравните эти два фрагмента кода:

# Bad Example
x = 5
y = 10
result = x + y
# Good Example
num1 = 5
num2 = 10
sum_result = num1 + num2

В хорошем примере переменные названы описательно, что делает код понятным даже без комментариев.

2. Комментарий с целью

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

3. Структурируйте свой код с помощью пробелов

Пробелы, хотя и кажущиеся незначительными, играют жизненно важную роль в улучшении читаемости кода. Я верю в эффективное использование пробелов для логической структуризации и организации вашего кода. Используйте пустые строки для разделения логических разделов, последовательно делайте отступы и применяйте пробелы вокруг операторов и после запятых.

Рассмотрите следующий пример:

# Bad Example
def calculate_average(numbers):
total=0
for number in numbers:
total+=number
average=total/len(numbers)
return average
# Good Example
def calculate_average(numbers):
    total = 0
    
    for number in numbers:
        total += number
    
    average = total / len(numbers)
    return average

Хороший пример легче читать и понимать благодаря последовательному отступу и правильному использованию пробелов.

4. Упростите с помощью списков

При работе со списками в Python я думаю, что понимание списков является мощным инструментом для упрощения кода и сделать его более кратким. Они позволяют выражать сложные операции над списками в одной строке, улучшая читаемость и уменьшая потребность в промежуточных переменных.

Вот пример, демонстрирующий разницу:

# Bad Example
squared_numbers = []
for number in numbers:
    squared_numbers.append(number ** 2)
# Good Example
squared_numbers = [number ** 2 for number in numbers]

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

5. Примите дзен Python

У Python есть руководящий принцип, изложенный в «Дзен Python» Тима Питерса. Я верю в включение этих принципов в ваш код. Вызовите оператор import this в вашей оболочке Python, чтобы прочитать полный список афоризмов. Некоторые ключевые принципы включают в себя:

  • Удобочитаемость имеет значение.
  • Простое лучше сложного.
  • Flat лучше, чем вложенный.
  • Редкий лучше, чем густой.

Придерживаясь этих принципов, ваш код станет более элегантным, удобным в сопровождении и синхронизированным с Pythonic.

6. Разбейте это на части: модульность с функциями

Я думаю, что для создания чистого и читаемого кода важно разбивать сложные задачи на более мелкие, автономные функции. Этот подход, известный как модульность, делает ваш код более управляемым, пригодным для повторного использования и более простым для понимания. У каждой функции должна быть одна обязанность и четкое название, отражающее ее назначение. Рассмотрим следующий пример:

# Bad Example
def calculate_total_expenses(expenses):
    total = 0
    
    for expense in expenses:
        total += expense
        
    return total
# Good Example
def calculate_total_expenses(expenses):
    return sum(expenses)

В хорошем примере мы инкапсулируем логику суммирования расходов в функцию, что приводит к более чистому и модульному коду.

7. Используйте строки документации

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

def calculate_total_expenses(expenses):
    """
    Calculate the total expenses from a list of individual expenses.
    
    Args:
        expenses (list): A list of individual expenses.
        
    Returns:
        float: The total sum of expenses.
    """
    return sum(expenses)

Строка документации содержит четкое описание назначения функции, ее аргументов и ожидаемого возвращаемого значения.

8. Овладейте искусством обработки ошибок

Обработка ошибок является неотъемлемой частью написания надежного кода. Я думаю, что очень важно предвидеть и корректно обрабатывать потенциальные ошибки, чтобы избежать сбоев программы или неожиданного поведения. Используйте блоки try-except для перехвата и обработки исключений, предоставления информативных сообщений об ошибках или резервных стратегий, когда это необходимо.

Вот пример:

try:
    result = divide(a, b)
except ZeroDivisionError:
    print("Error: Cannot divide by zero.")

В этом примере мы перехватываем ZeroDivisionError и отображаем значимое сообщение об ошибке для пользователя, предотвращая необработанное исключение.

9. Оптимизируйте читаемость, а не производительность

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

10. Последовательность — это ключ

Поддержание согласованности во всей кодовой базе необходимо для удобочитаемости. Я думаю, что важно установить и следовать согласованному стилю кодирования, придерживаясь отраслевых стандартов, таких как PEP 8. Согласованность в соглашениях об именах, форматировании и общей структуре делает ваш код предсказуемым и более легким для чтения. Используйте линтеры и средства форматирования кода, такие как Flake8 или Black, для автоматизации применения стилей.

11. Принимайте отзывы коллег

Наконец, я верю в силу сотрудничества и экспертных оценок. Делитесь своим кодом с другими и приветствуйте конструктивные отзывы, которые могут значительно улучшить качество и читабельность кода. Экспертные проверки помогают выявлять потенциальные ошибки, предлагать альтернативные решения и предлагать свежие взгляды. Будьте открыты для отзывов и учитесь на опыте других, так как это может улучшить ваши навыки кодирования и способствовать общему качеству вашей работы.

Заключение

Создание чистого и читаемого кода на Python — это навык, который требует времени и практики. Используя одиннадцать методов, обсуждаемых в этом блоге, я считаю, что вы можете поднять свой стиль кодирования на новую высоту. Помните, что чистый код не только повышает вашу производительность, но и облегчает совместную работу, понимание и ремонтопригодность. Овладейте искусством создания кода и пусть ваши шедевры Python сияют!

Помните, что путь к ясности кода продолжается, и каждая написанная вами строка кода — это возможность его улучшить. Удачного кодирования!

Надеюсь, эта статья была вам полезна. Спасибо, что нашли время, чтобы прочитать его.

💰 Бесплатная электронная книга💰

👉Ворваться в технологии + получить работу

Если вам понравилась эта статья, вы можете помочь мне поделиться ею с другими:👏хлопать в ладоши, 💬комментировать и обязательно 👤+ подписаться.

Кто я? Меня зовут Гейб А., я опытный архитектор визуализации данных и писатель с более чем десятилетним опытом. Моя цель — предоставить вам простые для понимания руководства и статьи по различным темам науки о данных. Имея более 250+ статей, опубликованных в 25+ публикациях на Medium, мне доверяют в индустрии обработки и анализа данных.



Будьте в курсе. Будьте в курсе последних новостей и обновлений в области творческого ИИ — следите за публикацией AI Genesis.

💰 Бесплатная электронная книга💰

👉Ворваться в технологии + получить работу

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .