Типичные улучшения
Улучшения, показаны 50 из 550.
Подберите точные названия
Когда код исполняет компьютер, ему не важны названия, можно хоть a,b,c,x,y использовать, он справится. Названия …
Избавьтесь от закомментированного кода
Закомментированный код имеет свойство быстро устаревать, ведь никто не следит за его актуальностью и работоспособностью. …
Свяжите числа с кодом
Если мы изменим числовую константу в коде, то наверняка заденем циклы, условия и значения других …
Оберните код в ifmain / def main
Ваш файл с кодом можно использовать двумя способами: запустить напрямую или подключить в качестве стороннего …
Очистите код от индексов
Обращение к данным по индексу `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 можно ставить символ `;` в конце строки, но в этом нет необходимости. Ставить …