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

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

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

Разбейте функцию на части

Функции — это строительные блоки вашей программы. Они похожи на детали конструктора Lego — из …

Распакуйте параметры функции

Функции созданы для того, чтобы ими пользоваться. А чтобы функцией пользоваться, надо выяснить какие данные …

Изолируйте функцию от внешнего окружения

С функциями, которые берут свои настройки из переменных окружения сложно работать. Прочитайте объявление такой функции …

Очистите функции

В программировании есть такое понятие — *чистая функция*. От прочих она отличается тем, что не …

Уточните название функции

Названия функций важны. Хорошее название подсказывает программисту, что делает код функции и что он вернёт …

Укажите все аргументы функции

Функция может получать настройки из нескольких источников: из полученных аргументов и из глобальных констант и …

Изолируйте функцию от внешнего окружения

С функциями, которые берут свои настройки из переменных окружения сложно работать. Прочитайте объявление такой функции …

Начните название функции с глагола

Каждая функция — это действие, поэтому название должно содержать глагол. Еще лучше, если название начинается …

Вынесите решение проблемы наружу функции

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

Уточните название функции

Названия функций важны. Хорошее название подсказывает программисту, что делает код функции и что он вернёт …

Разбейте большой блок кода на функции

Когда блок кода перестаёт умещаться в половину экрана монитора приходит пора бить его на функции. …

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

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

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

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

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

Дублирование кода приводит к быстрому росту его объема. А чем больше кода, тем сложнее его …

Укажите default value для аргумента функции

В Python для функции можно задать опциональный аргумент, указав для него значение по умолчанию — …

Вынесите копипасту в функцию

Копипаста кода — это плохо. Во-первых, если код нужно будет поменять — придётся искать все …

Предупредите код снаружи функции о проблеме

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

Вынесите общие функции в отдельный файл

В разработке часто встречается ситуация, когда в разных скриптах нужны одни и те же функции. …

Начните название функции с глагола

Каждая функция — это действие, поэтому название должно содержать глагол. Еще лучше, если название начинается …

Вынесите решение проблемы наружу функции

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

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

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

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

Дублирование кода приводит к быстрому росту его объема. А чем больше кода, тем сложнее его …

Вынесите копипасту в функцию

Копипаста кода — это плохо. Во-первых, если код нужно будет поменять — придётся искать все …

Предупредите код снаружи функции о проблеме

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

Откажитесь от модификации входных аргументов

У Python есть интересная особенность — при вызове функция получает не копию аргументов, а их …

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

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

Распутайте класс-спагетти

Иногда код сравнивают со спагетти — вызов одного его метода влияет на работу других методов, …

Сократите количество запросов к БД

Запросы к базе данных — одна из самых медленных операций в работе сайта. Если откинуть …

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

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

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

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

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

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

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

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

Не переизобретайте механизм исключений

Когда-то в программах не было исключений и их код был усыпан бесконечными проверками — удачно …

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

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

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

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

Разберите свалку в файле

Название вашего файла позволяет складывать в него что угодно. Это симптом проблемы: скорее всего стоит …

Добавьте обработку ошибок VK api

Все запросы к VK API всегда возвращают статус код `200`, даже если там произошла ошибка. …

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

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

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

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

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

Использование классов в коде усложняет программу. Создатели библиотек знают об этом, поэтому пишут подробную документацию …

Используйте комбинацию num2words и transliterate

Для написания вашего кода нужно запускать его дважды: сначала для того, чтобы перевести числа на …

Не используйте get_object_or_404 вне View

Функция `get_object_or_404` нужна для View. Вне View её использовать не стоит. Вместо неё лучше используйте …

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

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

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

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

Сократите валидаторы с использованием any

Теперь когда вы написали валидаторы с помощью цикла `for`, у вас не составит труда использовать …

Перенесите canvas.nodelay в код инициализации

```python canvas.nodelay(True) ``` Этот код поменяет настройки canvas для всей программы разом и сломает остальной …

Соберите управление списком obstacles в одном месте

Код запутан и неустойчив из-за того, что препятствия регистрируются в одной функции, а удаляются — …

Избегайте глаголов в названиях переменных

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

Добавьте поддержку других доменов Bitly

Чаще всего Bit.ly генерирует ссылки, начинающиеся с домена `bit.ly/`, но это не всегда так. Сервис …