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

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

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

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

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

Предусмотрите ошибку геокодера

Некоторые адреса геокодер будет не в состоянии распознать и функция `fetch_coordinates` вернёт `None`. Стоит заранее …

Избавьтесь от цикла while

Цикл `while` опаснее, чем `for`. Он может запросто застрять в бесконечном цикле, если допустить малейшую …

Избавьтесь от устаревшей is_safe_url

[`url_has_allowed_host_and_scheme`](https://docs.djangoproject.com/en/3.0/_modules/django/utils/http/) -- современный аналог `is_safe_url`. Это есть в коде самой функции, прочитайте внимательно: ``` def …

Итерируйтесь по списку/словарю напрямую

Раньше в C++ итерация по коллекции проходила так: ``` for(int i = 0; i < …

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

Функция `startswith` умеет работать сразу с кортежем (`tuple`) из строк. Поэтому такой код можно сильно …

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

Вместо нескольких строчек с методом get и его обработкой: ```py def show_posts(request, user_id): try: user …

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

Аргументы -- это настройки для функций. Но от настройки нет никакого толку, если менять её …

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

Перенести из template во view

Локализуйте проблему

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

Не используйте пайплайны для функций

Сейчас все функции вызываются пайплайном (друг в друге), вот так: ```py def first_func(): ... ... …

deprecated
Привяжите функцию к предметной области

Абстрактную функцию легко приладить к решению новых задач, но если перегнуть палку и сделать её …

deprecated
Перераспределите ответственность между функциями (bitly)

Функция, которая делают всё сразу, затрудняет программирование. Функцию трудно переиспользовать, если она делает несколько действий. …

deprecated
Вынесите общие алгоритмы в общие функции [не исправлено]

Следующий фрагмент кода избавляет от дубликации кода: ```python if job_service == 'hh': vacancies = get_vacancies_from_hh(language) …

deprecated
Создайте рамку вокруг чека внутри одной функции

Сейчас линии сверху и снизу чека - горизонтальные границы - создаются внутри одного блока кода, …

deprecated
Сделайте check_short_url чистой функцией

Проверять, является ли ссылка битлинком, можно без запроса в сеть. Это быстрее и универсальнее.

deprecated
Отделите обработку данных от ввода вывода

Функцию удобно использовать, когда она делает что-то одно - скачивает информацию из сети, либо читает …

deprecated
Напишите общую predict_rub_salary

Так как у `hh.predict_rub_salary` и `sj.predict_rub_salary` совпадает алгоритм, его следует выделить в отдельную функцию. Эта …

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

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

deprecated
Используйте if вместо try...except

Оба по-сути используются для одного и того же: для ветвления кода. Если X, то делай …

deprecated