Улучшения, показаны 50 из 52.
Когда-то в программах не было исключений и их код был усыпан бесконечными проверками — удачно …
Если программа сообщает о проблеме с помощью исключения `Exception('что-то случилось')`, то перехватить его будет сложно. …
Когда-то в программах не было исключений и их код был усыпан бесконечными проверками — удачно …
Если блок кода внутри `except` сломан, то этого легко не заметить. Сначала программа будет отлично …
Django создаёт исключения `DoesNotExist` и `MultipleObjectsReturned` как атрибуты каждой модели, чтобы можно было обработать ошибку …
В работе с исключениями всегда следуйте правилу **«Бросай рано, обрабатывай поздно»**. Порой это контринтуитивно — …
Если блок кода внутри `except` сломан, то этого легко не заметить. Сначала программа будет отлично …
Django создаёт исключения `DoesNotExist` и `MultipleObjectsReturned` как атрибуты каждой модели, чтобы можно было обработать ошибку …
Когда вы не указываете какое исключение хотите перехватить, то перехватываются все. Если в блоке кода …
В коде ниже вы перехватываете исключение. Но зачем? Программисту они только помешают. Вместо ваших сообщений …
Все запросы к VK API всегда возвращают статус код `200`, даже если там произошла ошибка. …
Порой функция обещает вернуть полезные данные, но сделать этого не может — не нашла файл, …
Если функция не справилась со своей задачей, то внешнему коду полезно об этом знать. Вдруг, …
Если долго держать открытым соединение с сервером, то рано или поздно случится обрыв: админ перезапустит …
При вызове метода `QuerySet.get(…)` может так случиться, что искомой записи в базе не будет, и …
Если программист хочет проигнорировать какое-нибудь исключение, то часто получается подобный код: ```python try: os.remove('somefile.tmp') except …
Функция не обязана работать с абсолютно любыми входными данными. Правильно и удобно делать часть аргументов …
Когда asyncio закидывает внутрь корутины `CancelledError`, то ожидает что исключение всплывет вверх по стеку вызовов …
При вызове метода `QuerySet.get` помимо исключения `DoesNotExist` возможна еще одна ситуация — вместо одной записи …
Исключение `ReadTimeout` возникает если сервер не отвечает так долго, что клиент, не дождавшись, сам разрывает …
Внутри `try...except` должен быть только тот код, для которого этот блок был добавлен. Излишняя логика …
Интернет так устроен, что даже если сайт не может обработать запрос, он всё равно обязан …
Сейчас, если что-то пойдет не так, то в системе останется работать зависший процесс zip. > …
Порой функция обещает вернуть полезные данные, но сделать этого не может — не нашла файл, …
Если функция не справилась со своей задачей, то внешнему коду полезно об этом знать. Вдруг, …
Функция `get_object_or_404` нужна для View. Вне View её использовать не стоит. Вместо неё лучше используйте …
Если долго держать открытым соединение с сервером, то рано или поздно случится обрыв: админ перезапустит …
Поиск записи в базе данных по ключу, например, по `id` или `slug`, требуется настолько часто, …
При вызове метода `QuerySet.get(…)` может так случиться, что искомой записи в базе не будет, и …
Сайт tululu ведёт себя нестандартно — в любой непонятной ситуации он вместо 404 присылает редирект …
Метод словаря `get(key)` отличается от обычного индекса `[key]` реакцией на отсутствующий ключ. Вместо исключения `KeyError` …
Преобразования типов бывают лишними. Посмотрите на эти строки кода: ```python text = 'Найдено {} записей'.format(str(len(records))) …
Каждый вызов `open(…)`, требует своего `close()`. Такого мнения придерживается операционная система. Она выделяет ресурсы при …
Использование классов в коде усложняет программу. Создатели библиотек знают об этом, поэтому пишут подробную документацию …
Если объединять много правок в один коммит, то вся история изменений будет складываться из названий …
Метод `response.raise_for_status()` выкидывает исключение, если срабатывает условие `not response.ok`. По этой причине нет смысла повторно …
Общая структура программы такова: 1. Импорты 2. Глобальные константы 3. Объявления функций 4. Объявление `def …
Когда asyncio закидывает внутрь корутины `CancelledError`, то ожидает что исключение всплывет вверх по стеку вызовов …
Обычно логер нужен сразу внутри многих функций, и, чтобы не вызывать `getLogger` много раз внутри …
При вызове метода `QuerySet.get` помимо исключения `DoesNotExist` возможна еще одна ситуация — вместо одной записи …
Исключение `ReadTimeout` возникает если сервер не отвечает так долго, что клиент, не дождавшись, сам разрывает …
От обычно скрипта парсер отличается тем, что работает долго и зависит от надёжности сетевого соединения. …
В Django количество записей внутри `QuerySet` можно посчитать с помощью самой обычной функции `len(…)`. Выглядит …
Некоторые компоненты на странице являются общими. Например, иконки Font-Awesome подключаются всего раз в шапке файла, …
Если не побеспокоиться заранее об обработке HTTP 404, то ваши логи будут завалены бесполезными сообщениями. …
Mixins – это худшее, что может случиться с вашим кодом. Они подрывают стабильность кода, усложняют …
Адрес и путь похожи, но это не синонимы. **Путь** -- это локально, в файловой системе. …
Даже если ваши предыдущие места работы с IT не связаны, их всё равно будет не …
Иногда программе лучше сразу сломаться, сделать это с грохотом и трейсбеком, чем замалчивать ошибку и …