October 8

Этика написания кода

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

1. Названия переменных и функций: детали и лайфхаки

Правильные имена переменных и функций — это ключ к написанию ясного и понятного кода.

Переменные

Названия переменных должны четко описывать данные, которые они хранят. Не используйте однобуквенные переменные вроде x или y, если они не являются частью математической формулы или цикла.

Лайфхаки:

  • Используйте понятные названия. Например, вместо n лучше использовать numberOfItems, а вместо ddistance.
  • Избегайте слишком длинных имен, но и не делайте их слишком короткими. Название должно быть достаточной длины, чтобы понятно описывать переменную.
  • Следите за согласованностью: если в одном месте вы назвали переменную userName, не называйте её в другом месте просто name или user — это может запутать.

Пример:

pythonCopy code# Плохо:
n = 5

# Лучше:
numberOfUsers = 5

Функции

Функции должны отражать действие, которое они выполняют. Имя функции должно начинаться с глагола: calculate, get, set, fetch и т.д.

Лайфхаки:

  • Четкость имен: Название функции должно объяснять, что она делает. Например, fetchUserData() более понятно, чем просто fetch().
  • Разделяйте задачи: Каждая функция должна выполнять одну конкретную задачу. Это облегчает тестирование и отладку.

Пример:

pythonCopy code# Плохо:
def process():
    pass

# Лучше:
def processUserOrder(order):
    pass

2. Комментарии: как и когда их использовать

Комментарии — это ваши заметки внутри кода, которые помогают другим программистам (и вам) понять, что происходит. Однако, комментарии не должны объяснять очевидные вещи.

Лайфхаки:

  • Не комментируйте очевидное: Если код уже достаточно ясен, комментарии могут оказаться лишними.
  • Объясняйте "почему": Комментарии должны объяснять, почему что-то сделано определённым образом, а не что делает каждая строка.
  • Документируйте сложные моменты: Если логика вашего кода сложная или неочевидная, обязательно оставьте комментарий, объясняющий эту логику.

Пример:

pythonCopy code# Плохо:
# Умножаем a на b и сохраняем результат в c
c = a * b

# Лучше:
# Умножаем две переменные, чтобы получить общую площадь
area = length * width

3. Простота и читаемость кода: как упростить

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

Лайфхаки:

  • Минимизируйте вложенность: Многократные вложенные циклы и условия затрудняют чтение кода. Попробуйте разбить такие конструкции на несколько функций.
  • Используйте ранний выход из функции: Если функция может завершиться на раннем этапе (например, если встречено исключение), используйте return или break, чтобы избежать лишних проверок и циклов.

Пример:

pythonCopy code# Плохо:
def check_age(age):
    if age >= 18:
        return True
    else:
        return False

# Лучше:
def check_age(age):
    return age >= 18

4. Избегайте повторений (DRY — Don't Repeat Yourself)

DRY-принцип гласит: "Не повторяйся". Это значит, что каждый кусок логики в коде должен существовать только в одном месте. Если вы замечаете дублирование кода, вынесите его в функцию.

Лайфхаки:

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

Пример:

pythonCopy code# Плохо (повторение кода для вычисления площади):
def area_of_square(side):
    return side * side

def area_of_rectangle(width, height):
    return width * height

# Лучше:
def calculate_area(shape, *dimensions):
    if shape == "square":
        return dimensions[0] * dimensions[0]
    elif shape == "rectangle":
        return dimensions[0] * dimensions[1]

5. Чистота кода: форматирование и отступы

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

Лайфхаки:

  • Отступы: Используйте стандартные отступы (например, 4 пробела в Python). Это поможет визуально отделить блоки кода.
  • Оставляйте пустые строки: Пустые строки между логическими блоками кода делают его более читаемым.
  • Форматирование: Следите за тем, чтобы скобки и другие символы были правильно расставлены, а строки не были слишком длинными.

Пример:

pythonCopy code# Плохо:
def func(x,y):if x>y:print(x)

# Лучше:
def compare_values(x, y):
    if x > y:
        print(x)

6. Не бойтесь рефакторинга

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

Лайфхаки:

  • Рефакторинг поэтапно: Не пытайтесь сразу переписывать всё. Разбейте процесс на этапы и улучшайте код постепенно.
  • Автоматические инструменты: Используйте инструменты для автоматического форматирования кода, такие как black для Python или Prettier для JavaScript. Это сэкономит вам время и гарантирует, что код будет иметь единый стиль.

7. Тестирование и поддержка кода

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

Лайфхаки:

  • Покрывайте функции тестами: Пишите тесты для каждой важной функции, особенно если это сложная логика.
  • Используйте unit-тесты: Юнит-тесты проверяют отдельные функции или методы, и это лучший способ обеспечить качество кода.
  • Автоматизация тестирования: Используйте системы для автоматического запуска тестов при каждом изменении кода (например, CI/CD инструменты).

8. Использование версионного контроля

Использование систем версионного контроля (например, Git) помогает отслеживать изменения в коде и предотвращать ошибки. Важно правильно организовать ветки проекта и следить за чистотой истории коммитов.

Лайфхаки:

  • Маленькие коммиты: Старайтесь делать небольшие, логически завершённые коммиты. Это облегчит откат изменений при ошибках.
  • Осмысленные сообщения коммитов: Сообщение должно четко описывать, что было изменено, например: Добавлена функция проверки возраста вместо Изменения.

Заключение

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