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

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

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

Настройте анимацию корабля

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

Очистите obstacles

В списке препятствий накапливаются объекты. Со временем их становится всё больше.

Оптимизируйте запрос ORM

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

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

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

Вынесите вставки кода в отдельные блоки

В Markdown есть два формата для вставок кода. Первый — это inlines. Его применяют для …

Используйте sub-commands

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

Отделите STATIC_ROOT от STATICFILES_DIRS

Пока мы занимаемся отладкой django берёт на себя функции веб-сервера и веб-приложения. Обычно эти роли …

Замените HTML теги на разметку Markdown

Разметку Markdown любят за её выразительность и простоту. В сравнении с HTML здесь не надо …

Избавьтесь от абсолютных путей

Когда вы используете абсолютные пути, такие как `C:\Елена\Рабочий стол\Devman`, вы идёте в неверном направлении. Такой …

Воспользуйтесь Git-ом

Начну с терминов: Git и GitHub — это разные вещи. GitHub — это место для …

Сделайте ссылку на чтение книги крупнее

Это самая важная кнопка на сайте и она оказалась совсем незаметной. Присмотритесь к вёрстке и …

Перезалейте репозиторий

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

Спрячьте пустой default в текстовых полях

Обычно Django кладёт `None` во все незаполненные поля модели данных. Пустой `IntegerField` — это `None`, …

Используйте format_html для подстановки в HTML

Функция `format_html` в Django похожа по своим возможностям на обычное форматирование строк. Она тоже подставляет …

Подготовьте код Django к изменению URL схемы

URL схема сайта иногда всё-таки меняется. Если сейчас по коду раскиданы фрагменты адресов `'/post/'` и …

Уберите из админки огромные select-поля

Для полей `ForeignKey` Django в админке использует виджет ``. Он предлагает пользователю выбрать из одну …

Не перехватывайте исключения просто так

В коде ниже вы перехватываете исключение. Но зачем? Программисту они только помешают. Вместо ваших сообщений …

Замените список на абзацы текста

В тексте и список, и абзацы решают одну задачу - задают структуру текста, разбивая его …

Отделите API Moltin от остального кода

Сейчас у вас есть файл с реализацией разных запросов к API Moltin. Этот модуль ценен …

Почините конфликт Vue.js и Django

Пропала текстовка, что располагась между первой картинкой и галереей снизу. ![Скриншот](https://i.imgur.com/eGvUkms.png) Проблема в конфликте между …

Почините Add another для картинок

![](https://dvmn.org/filer/canonical/1600270419/713/) [Ссылка на скриншот](https://dvmn.org/filer/canonical/1600270419/713/) Там, где загружена картинка, слева показано название загруженного файла, а справа …

Обновляйте токен по графику

Общение с Moltin — самая дорогая операция в вашем боте. Сам по себе питон работает …

Разберите свалку в каталоге

Важно, чтобы название каталога всегда соответствовало содержимому. Если вы назвали папку `static/`, то все ожидают, …

Открывайте книги в новой вкладке

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

Используйте шорткат render

Вместо нескольких строчек с загрузкой шаблона и его обработкой: ```python def show_phones(request): template = loader.get_template('product_page.html') …

Удалите пробелы из примера .env

В вашем README есть пример заполнения файла с конфигами. Дело в том, что так их …

Отформатируйте JSONResponse

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

Требуйте меньше настроек CLI

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

Не используйте max_length для TextField

В Django есть два основных поля для текста: `CharField` и `TextField`. Если речь о небольшом …

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

Проблема отправки JSON по API не новая, и вместо использования `json.dumps()` уже давно используют другой …

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

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

Протестируйте программу на неполном словаре

Метод словаря `get(key)` отличается от обычного индекса `[key]` реакцией на отсутствующий ключ. Вместо исключения `KeyError` …

Используйте verbatim на весь тег

Вы используете `{% verbatim %}`, но он захватывает какую-то рандомную область в шаблоне. Получается, что …

Добавьте метод `__str__`

Сейчас объекты из БД ничем друг от друга не отличаются, кроме id: ![](https://dvmn.org/filer/canonical/1600780595/714/) [*ссылка на …

Замените наследование на ассоциацию

Наследование - это один из худших способов расширения функциональности. Обычно к нему прибегают от безвыходности. …

Настройте метод *_or_create

Оба метода и `get_or_create`, и `update_or_create` ищут записи в БД с точным совпадением по всем …

Уточните название класса в HTML

Название классов так же важны, как и названия переменных, функций. Именно классы связывают html-теги со …

Используйте livereload cli

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

Зафиксируйте размеры кнопок

![](https://i.imgur.com/9AyvGj2.png) По клику на кнопку Play сдвигается кнопка справа от неё. Это потому, что ширину …

Почистите HTML от стилей

Инлайн-стили — это крутой способ быстро добавить стиль нужному тегу. Но в мире фронтенда их …

Переименуйте CSS классы в kebab-case

Как и в Python для CSS классов есть свои правила по наименованию. Придерживайтесь их, чтобы …

Соберите js-скрипты в конце HTML

В загрузке js кода в самом начале страницы есть насколько проблем 1. JS-код будет работать, …

Почините UI звука плеера

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

Уберите лишние контейнеры

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

Не трогайте стили общих компонентов

Некоторые компоненты на странице являются общими. Например, иконки Font-Awesome подключаются всего раз в шапке файла, …

Не меняйте стандартные методы Model.save, delete, create

В документации Django и других статьях авторы часто советуют поместить код прямо внутрь метода `save` …

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

В архив вместе с файлами попадает лишний каталог с жутким хэшом `7kna` в названии.

Спрячьте parse_args внутрь ifmain / def main

Вызов метода `parser.parse_args()` может привести к внезапному завершению программы. Такое случится если пользователь укажет при …

Избавьтесь от лог-файлов

Скрипт предназначенный к запуску на сервере не должен брать на себя обработку логов. Это не …

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

В HTML5 есть с десяток тегов, похожих на ``: ``, ``, ``, `` и пр. …