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

Вы должны написать скучный код

Я не эксперт с десятками многолетнего опыта написания кода качества производства, но я был на уровне … Tagged с Codequality, Python, Beginters, Tuperial.

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

Я хотел поделиться самыми распространенными заблуждениями, которые я нашел. Для этого давайте посмотрим на пример из проекта, который я сделал недавно:

FILTER_KEYWORDS = ("sandbox", "mongo", "postgres", "memcached")
data = [
    line.split() for line in stdout.decode('utf-8').split('\n') if line
][1:]
data = [
    item for item in data
        if any([1 for keyword in FILTER_KEYWORDS if keyword in item[0]])
]

Вы поняли, что делает этот код? Если вы это сделали, сколько времени вам понадобилось?

Посмотрим, сможем ли мы сделать это лучше.

Сделайте ваш код читаемым

Я наставлял довольно много стажеров, и это очень распространенная ошибка, которая сначала привлекает мое внимание.

Давайте начнем с цитаты Роберта С. Мартина (очень важного чувака из мира разработчиков):

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

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

Итак, из -за них – перестаньте писать умный, сложный код, который вы можете понять. Вместо этого постарайтесь сделать ваш код простым и легким для понимания. Это часть того, что делает великого разработчика.

Я также подвержен этой ошибке, но хорошо, что на моем рабочем месте есть культура обзора кода, которая препятствует такому кодированию. Кроме того, спросите себя:

  • Пойдет ли менее опытный разработчик, как работает этот код?
  • Пойдет ли менее информированный разработчик, что делает этот код?

Держите вещи простыми и всегда старайтесь, чтобы кто -то мог держать вас под контролем Анкет

Сохраняйте свой код предсказуемым

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

Наименование особенно важно. Очень важно дать хорошее имя переменной. Позвольте мне оставить это с вами:

В информатике есть только две сложные вещи: недействительность кэша и именование вещей.

— Фил Карлтон

Все это особенно важно при работе в команде с другими разработчиками. Когда все пишут Код, следуя тем же соглашениям, становится легче предсказать, откуда Функция импорта x , как Используйте функцию y , и т.д.

Чтобы соблюдать стандарты PEP8, мы используем Линтер под названием Flake8 который предотвращает достижение производства плохо стиль.

Ваш код – ваша документация

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

Добавление комментариев в качестве документации, с другой стороны, является ловушкой, с которой я встречался несколько раз. Слишком сложно сохранить эту «документацию» в актуальном состоянии, и вы забудете обновить ее.

Так что попробуйте и Держите свой код достаточно простым, поэтому достаточно просто читать Анкет В тех случаях, когда вы действительно не можете, убедитесь, что будете точными во время документирования.

Откуда это нас взяло?

И, наконец, если мы применим совет, мы получим что -то подобное:

FILTER_KEYWORDS = ("sandbox", "mongo", "postgres", "memcached")

data = []
logs = stdout.decode('utf-8').split('\n')

for line in logs[1:]:
    for keyword in FILTER_KEYWORDS:
        if keyword in line:
            data.append(line.split())
            break

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

Оригинал: “https://dev.to/mjuraj/you-should-write-boring-code-12fd”