Любителям функционального стиля и python – предлагаю посмотреть на замечательную библиотеку returns, где реализованы основные монады (+типизация) и разные полезные вспомогательные штуки для работы с ними. Очень помогает делать простые вещи – просто.
Там есть все из списка, но и еще куча дополнительных ништяков вроде: `wemake-python-styleguide`, `mypy`, правильный набор плагинов для `pytest`, `poetry` для управления зависимостями, куча всего для безопасности (`bandit`, `safety`, `snyk`)
Спасибо за видео и статью! К сожалению, не смог посетить доклад лично.
Задам вопрос пост-фактум.
> Есть функции, которые принимают позиционные аргументы. Если аргументов достаточно много, то при их вызове функции не очень понятно, где какой аргумент и зачем он нужен.
У меня была похожая идея для своего линтера: github.com/wemake-services/wemake-python-styleguide/issues/340
Но она разбилась о факт наличия `*args` в языке. Как вы решаете проблему того, что некоторые функции могут и должны принимать много позиционных аргументов by design?
— github.com/wemake-services/wemake-django-template
— github.com/wemake-services/wemake-vue-template
Любителям функционального стиля и python – предлагаю посмотреть на замечательную библиотеку returns, где реализованы основные монады (+типизация) и разные полезные вспомогательные штуки для работы с ними. Очень помогает делать простые вещи – просто.
Там есть все из списка, но и еще куча дополнительных ништяков вроде: `wemake-python-styleguide`, `mypy`, правильный набор плагинов для `pytest`, `poetry` для управления зависимостями, куча всего для безопасности (`bandit`, `safety`, `snyk`)
Кстати про Python. Туда тоже начинают проникать похожие идеи и подходы: habr.com/ru/company/oleg-bunin/blog/445234
Задам вопрос пост-фактум.
> Есть функции, которые принимают позиционные аргументы. Если аргументов достаточно много, то при их вызове функции не очень понятно, где какой аргумент и зачем он нужен.
У меня была похожая идея для своего линтера: github.com/wemake-services/wemake-python-styleguide/issues/340
Но она разбилась о факт наличия `*args` в языке. Как вы решаете проблему того, что некоторые функции могут и должны принимать много позиционных аргументов by design?