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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Удалите отладочные print

Эти вызовы `print` уже выполнили свою задачу, помогли отладить код. Теперь от них больше вреда …

Удалите отладочные Image.save()

По коду разбросаны вызовы `.save()` для промежуточных результатов. Это удобно при отладке, но загромождает вывод …

Избавьтесь от типов в названиях

Вся приятность системы типов в Питоне заключается в том, что мы не указываем типы. Благодаря …

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

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

Упростите цикл while

Следующих два фрагмента кода эквивалентны: ```python while True: ... if not condition: break ``` Можно …

Упростите доступ к данным

Добраться до нужного фрагмента во вложенной структуре данных бывает не просто: ```python json_data['new_attempts'][0]['lesson_title'] ``` Таких …

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

Шаблоны намного нагляднее — сразу видно куда и какое значение будет подставлено, легко представить себе …

Используйте метод file.read()

Чтобы считать все содержимое текстового файла, можно воспользоваться методом `read`. Это быстрее и проще, чем …

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

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

Воспользуйтесь logging.exception

Отправить в лог информацию об ошибке — это настолько частая задача, что для неё есть …

Удалите лишние all()

Метод `all()` нужен для того, чтобы запросить у менеджера объектов `Book.objects` первый объект запроса — …

Упростите создание словаря

В python есть несколько способов создания словаря. Можно сначала объявить пустой словарь, а затем наполнить …

Упростите создание списка

В python есть несколько способов создания списка. Можно сначала объявить пустой список, а затем наполнить …

Спрессуйте изменения в словаре

Большинство изменений в словаре: добавление новых ключей и изменение старых значений — можно сжать в …

Используйте методы от объектов, а не классов

Если у вас есть `visit`, у которого есть метод `.some_method()`, то в питоне принято вызывать …

Удалите неиспользуемый код

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

Избавьтесь от сравнений с нулём

В Python избегают сравнений с нулём `== 0`. В языке достаточно инструментов, чтобы записать ту …

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

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

Настройте enumerate

Стандартный `enumerate` можно настроить так, чтобы он начинал индексировать не с нуля, а с единицы …

Избавьтесь от сравнений с пустой строкой

В Python не принято сравнивать с пустой строкой. В языке достаточно инструментов, чтобы записать ту …

Удалите из репозитория старые установочные файлы

В репозитории есть целый набор файлов для установки зависимостей. Какие из них актуальны и находятся …

Удалите media/ из репозитория

Если медиа-файлы лежат в репозитории, то они обязательно попадут на сервер вместе с очередным обновлением …

Удалите лишний .gitkeep

Файл `.gitkeep` необходим для папок, в которых нет файлов. Пустые папки `git` записывать отказывается, поэтому, …

Обновите устаревшую документацию

Документация — тоже часть кода. За ней тоже стоит следить и ухаживать.

Удалите БД из репозитория

БД в репозитории не хранят по нескольким причинам: - Если случайно опубликовать БД с данными …

Избавьтесь от сравнений с None

В Python не принято сравниваться с `None` без особой на то необходимости. Без `None` код …

Используйте силу Counter

Подсчёт количества повторов — это настолько частая задача, что для неё в Python есть готовый …

Высушите код

Чем больше в программе кода, тем сложнее в нём разобраться. Чем труднее разбираться, тем меньше …

Высушите названия

Никто не хочет читать водянистый текст, в котором смысл прячется за пятиэтажными оборотами и десятками …

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

У второй версии Python были проблемы с поддержкой кириллицы в коде. Он считал, что код …

Добавьте блок в базовый шаблон

В шаблонах не зря используют наследование. С его помощью общую логику, что повторяется на всех …

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

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