Я не эксперт с десятками многолетнего опыта написания кода качества производства, но я участвовал в команде, разрабатывающей несколько проектов. За это время я заметил некоторые общие заблуждения, которые есть более неопытные разработчики.
Я хотел поделиться самыми распространенными заблуждениями, которые я нашел. Для этого давайте посмотрим на пример из проекта, который я сделал недавно:
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”