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

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

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

Исправьте реакцию на ReadTimeout в long polling запросе

Исключение `ReadTimeout` возникает если сервер не отвечает так долго, что клиент, не дождавшись, сам разрывает …

Уточните критерий поиска

Если бы автоинспеция искала машины по ФИО водителя, штрафы бы постоянно приходили не тем людям. …

Разделите сессии DialogFlow

DialogFlow использует id сессии подобно тому, как сайт узнаёт пользователя по cookies. С помощью сессий …

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

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

Добавьте в парсер поддержку всех относительных адресов

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

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

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

Проверьте обработку исключений

Если блок кода внутри `except` сломан, то этого легко не заметить. Сначала программа будет отлично …

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

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

Уточните о каком пользователе речь

Ничто не встречается в моделях данных так же часто, как ссылка на юзера через `ForeignKey` …

Подготовьте шаблон к изменению URL схемы

URL схема сайта часто меняется. Так, страница может переехать с одного адреса на другой, при …

Используйте Image.thumbnail эффективно

Метод `Image.thumbnail` достаточно умён и может сам определять бо́льшую сторону и рассчитывать новые размеры с …

Спрячьте чувствительные данные

Не стоит хранить в коде токены, секретные ключи и прочие пароли. Код рано или поздно …

Замените обратные слеши в адресе

По недосмотру на Windows часто используют адреса с обратным слешом `\`: ```html ``` По стандарту …

Повысьте отзывчивость управления кораблём

На команды игрока космический корабль реагирует с задержкой. Чем она будет меньше, тем комфортнее станет …

Разрешите пользователю указать другой путь к файлу

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

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

Python отличается от других языков своей богатой стандартной библиотекой. Она хорошо продумана, отлично реализована и …

Изолируйте миграцию от остального кода

В миграциях Django ни в коем случае нельзя использовать код из models.py и прочих файлов …

Оставьте пояснение в коде

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

Используйте настройки argparse

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

Обеспечьте уникальность названий для скачиваемых файлов

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

Проверьте ответ tululu на редирект

Сайт tululu ведёт себя нестандартно — в любой непонятной ситуации он вместо 404 присылает редирект …

Перевесьте стили с тегов на классы

Не стоит привязывать CSS стили к тегам. Так вы поменяете настройки глобально для всех тегов …

Откажитесь от id в CSS-селекторах

CSS-селекторы, содержащие id тегов теряют свою ключевую способность — их нельзя использовать повторно, ведь двух …

Укажите HTML title

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

Добавьте favicon

Каждая вкладка браузера имеет своё название и иконку — так она подсказывает на каком сайте …

Отключите неактивные кнопки

Пользователей бесят сломанные кнопки на сайте. Если на странице есть кнопка, то сайт обязан реагировать …

Отделите друг от друга визуальные блоки

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

Уточните название переменной

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

Почините битую вёрстку

В верстке есть ошибки. Это может привести к некорректному отображению сайта в нестандартных браузерах или …

Не вешайте стили на `js-` селекторы

Во фронтенде принято разделять CSS и JS код, чтобы менять их и тестировать независимо друг …

Закодируйте URL

В адресе URL разрешено использовать не так много символов. Пробелы, квадратные скобки, кириллица — все …

Укажите img alt

Атрибут `alt` является обязательным для заполнения. Если оставить его пустым, то вёрстка будет некорректной.

Положите статику в репозиторий

В репозитории не хватает файлов статики. Без них сайт в браузере отображается некорректно.

Подготовьте парсер к сетевым сбоям

От обычно скрипта парсер отличается тем, что работает долго и зависит от надёжности сетевого соединения. …

Сообщите пользователю о сбое

Если в программе произошёл сбой, и он отразится на результатах её работы, то нельзя замалчивать …

Отделите пользователей разных соцсетей и чатов

Каждая соцсеть и каждый мессенджер следят за уникальностью своих id. Если пользователь получил id, то …

Используйте другие структуры данных Redis

Redis не только умеет хранить ключи и значения. Он также поддерживает списки и хеши — …

Предоставьте образец входных данных

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

Используйте стандартное поле id / pk

К списку полей каждой модели данных Django автоматически добавляет поле `id`. Оно есть у всех …

Закройте сокет

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

Считывайте архив равными порциями

Метод `readline` считывает данные до символа переноса строки `\n`. В бинарном файле сложно предсказать когда …

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

Вот так делать не надо: ```python if logging_enabled: logging.info(f"Data loaded!") ``` Все эти `if` сильно …

Протестируйте related_name

Запросы с использованием такого `related_name` выглядят супер-странно.

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

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

Удаляйте устаревшие страницы

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

Пересоберите сайт в момент запуска

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

Расскажите как запустить оффлайн-библиотеку

Ваш заказчик хотел, чтобы сайт был доступен оффлайн. В репозитории есть код, какие-то файлы, но …

Подготовьте сайт к работе без веб-сервера

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

Посчитайте количество записей на стороне БД

В Django количество записей внутри `QuerySet` можно посчитать с помощью самой обычной функции `len(…)`. Выглядит …

Вынесите chat_id из кода

Сейчас настройка `chat_id` намертво зашита в скрипте и без правок в коде её никак не …