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

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

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

Укажите default value для аргумента функции

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

Укажите все аргументы функции

Функция может получать настройки из нескольких источников: из полученных аргументов и из глобальных констант и …

Откажитесь от модификации входных аргументов

У Python есть интересная особенность — при вызове функция получает не копию аргументов, а их …

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

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

Не используйте mutable-types в качестве аргумента по умолчанию

Изучите возможную ошибку на следующем примере: * [least-astonishment-and-the-mutable-default-argument](https://stackoverflow.com/questions/1132941/least-astonishment-and-the-mutable-default-argument)

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

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

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

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

Добавьте описание скрипта

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

Изолируйте функцию от внешнего окружения

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

Добавьте защиту от ошибок в GET параметрах

В GET параметрах запроса запрещены многие символы - `&`, `?`, пробел, табуляция, кириллица. URL будет …

Используйте None как пустое значение

В Python есть специальный объект для обозначения пустого значения — `None`. Его возвращают функции, когда …

Сделайте функцию требовательной к качеству входных данных

Функция не обязана работать с абсолютно любыми входными данными. Правильно и удобно делать часть аргументов …

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

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

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

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

Распутайте класс-спагетти

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

Разбейте функцию на части

Функции — это строительные блоки вашей программы. Они похожи на детали конструктора Lego — из …

Очистите функции

В программировании есть такое понятие — *чистая функция*. От прочих она отличается тем, что не …

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

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

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

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

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

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

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

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

Разделите конфиги docker compose для разных окружений

Как для запуска приложения в local-окружении на машине разработчика, так и на серверах вам понадобятся …

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

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

deprecated