Типичные улучшения

Для поиска по тегу начните название тега с символа '@'.

Улучшения, показаны 50 из 540.

Подберите точные названия

Когда код исполняет компьютер, ему не важны названия, можно хоть a,b,c,x,y использовать, он справится. Названия …

Избавьтесь от закомментированного кода

Закомментированный код имеет свойство быстро устаревать, ведь никто не следит за его актуальностью и работоспособностью. …

Свяжите числа с кодом

Если мы изменим числовую константу в коде, то наверняка заденем циклы, условия и значения других …

Оберните код в ifmain / def main

Ваш файл с кодом `script.py` можно использовать двумя способами: запустить напрямую или подключить в качестве …

Очистите код от индексов

Обращение к данным по индексу `voice_record[1][0]` сильно осложняет код. Программисту приходится держать в голове структуру …

Обновите комментарии в коде

Комментарии в коде - тоже часть кода. За ними нужно следить, их нужно поддерживать в …

Сделайте except избирательным

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

Избавьтесь от комментариев, дублирующих код

Лишние комментарии нагромождают код, в нем сложнее ориентироваться. К тому же, они усложняют поддержку кода …

Избавьтесь от лишних функций

Если функция не упрощает код, то от нее лучше избавиться. Лишняя абстракция затруднит понимание и …

Добавьте защиту от ошибок в GET параметрах

В GET параметрах запроса запрещены многие символы - `&`, `?`, пробел, табуляция, кириллица. URL будет …

Замените простые циклы на comprehensions

Каждый цикл или условие увеличивают сложность кода. Даже есть такой термин - цикломатическая сложность.

Используйте None как пустое значение

В Python есть специальный объект для обозначения пустого значения — `None`. Его возвращают функции, когда …

Сделайте функцию требовательной к качеству входных данных

Функция не обязана работать с абсолютно любыми входными данными. Правильно и удобно делать часть аргументов …

Используйте специальный синтаксис GitHub для ссылок на коммиты

GitHub поддерживает особый синтаксис для ссылок на коммиты. Он надежнее, удобнее и является общепринятым. Используйте …

Оформите docstrings по стандартам

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

Разбейте длинные строки на части

Сложно охватить взглядом код, который не умещается в экран и требует горизонтальной прокрутки. Сложный код …

Замените транслит на англоязычные названия

Программный код - это текст на английском языке. Его читают подобно статьям и документации. Транслит …

Поместите импорт библиотек в начало файла

Объявления всех импортов `import` принято собирать в первых строках файла с кодом. Другой программист сильно …

Соберите код cli в одном месте

Функции не годятся для повторного использования, если внутри них прячутся вызовы `print`, `input` или `argparse`. …

Используйте встроенные возможности format

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

Используйте систему ограничения прав доступа

В Linux для управления доступом к файлам используют флаги - file permissions. Работайте с ними …

Вместо кодов статуса используйте response.ok

В HTTP любой статус ответа, начинающийся с цифры 2 считается успешным: 200, 201, 202. Чтобы …

Используйте enumerate для нумерации списков

Для нумерации списков в Python есть встроенная функция enumerate. Она избавляет от рутины в работе …

Сократите использование скобок

Обилие скобок в тексте — признак слишком сложной структуры. Лишние скобки осложняют чтение программы.

Уберите лишние преобразования типов

Преобразования типов бывают лишними. Посмотрите на эти строки кода: ```python text = 'Найдено {} записей'.format(str(len(records))) …

Повысьте надежность операций с файлами

Каждый вызов `open(…)`, требует своего `close()`. Такого мнения придерживается операционная система. Она выделяет ресурсы при …

Перенесите загрузку переменных окружения внутрь ifmain / def main

Функция `load_dotenv` меняет настройки окружения, общие для всей программы. Такой код нельзя размещать на уровне …

Расскажите в README о переменных окружения

Программа берет настройки из нестандартных переменных окружения. Их не угадать без чтения кода.

Добавьте файл с зависимостями

Без точных инструкций установка программы превращается в головную боль.

Сделайте коммиты понятнее

Название коммита важно. Это единственное место, где написано "зачем" были внесены изменения в этом коммите.

Используйте в названиях правильный регистр букв

Верхний и нижний регистр букв в названиях имеют значение. По ним программист узнает тип сущности: …

Выберите между ifmain и defmain

`def main` — это особая функция. Внутри нее держат код, который будет запущен при запуске …

Спрячьте избыточные индексы

Избыточные индексы — это номера первого и последнего символа в строке. Они избыточны, потому что …

Вернитесь к исходным настройкам wttr.in

Ваши настройки для wttr.in отличаются от тех, что были в исходной программе. Теперь прогноз погоды …

Используйте isinstance

В Python не сравнивают типы данных напрямую. Такая конструкция мешает наращивать код: ```python if type(my_variable) …

Поставьте ссылку на первоисточник

Сложный код стоит комментировать. Оставьте ссылку на вопрос в StackOverflow или на статью в интернете. …

Добавьте поддержку http[s]

Ссылка может начинаться с `http://` или с `https://`, если сайт поддерживает защищенное соединение. Пользователь ожидает, …

Проверьте работу условий if

Если условие `if` записано неверно, то внутренний блок кода никогда не сработает. Либо наоборот, будет …

Используйте возможности os.makedirs

Создать каталог, если его еще нет — это часто встречающаяся задача. Для неё в библиотеке …

Разрешите конфликт имен

В Python есть названия, занятые стандартными функциями и классами — `dict`, `list`, `range`. Python разрешает …

Соблюдайте запрет на табы

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

Уменьшите кол-во необходимых библиотек

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

Сделайте скрипт совместимым с *nix и Windows

В Linux и MacOs для записи путей в файлам используют символ `/`, а в Windows …

Вычислите булево значение без if

Результат любого сравнения: `==`, `<`, `>`, `is` — это всегда True или False. Воспользуйтесь этим, …

Сократите количество сетевых запросов

Сетевые запросы - это самая медленная часть программы. Если можете избежать лишнего запроса — стоит …

Избавьтесь от сравнений с True/False

Следующие две конструкции делают одно и то же: ```python if value == True: ``` ```python …

Добавьте в README пример запуска скрипта

При чтении документации пользователя интересует как установить программу и как её запустить. Разобраться в документации …

Используйте splitext из модуля os.path

Функция `os.path.splitext` возвращает расширение и путь до файла. Она уже есть в стандартной библиотеке, не …

Разверните if, сделайте код более плоским

Вложенные друг в друга `if`, `else` и `for` усложняют восприятие кода. Программу тяжело понять, затруднительно …

Избавьтесь от точки с запятой

В Python можно ставить символ `;` в конце строки, но в этом нет необходимости. Ставить …