home.social

#декораторы — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #декораторы, aggregated by home.social.

  1. Authorization без middleware: как я завернул Casbin в декораторы для FastAPI

    Когда в FastAPI-проекте появляется нормальная авторизация, код быстро начинает расползаться в стороны. Сначала все выглядит терпимо: один Depends(get_current_user) , один Depends(get_enforcer) , одна ручная проверка. Потом роутов становится больше, правил доступа становится больше, и внезапно половина endpoint’ов начинает содержать не бизнес-логику, а обвязку вокруг нее. В какой-то момент меня перестал устраивать и классический подход через dependency injection в каждом роуте, и вариант с middleware. Хотелось, чтобы правило доступа было видно прямо рядом с маршрутом, но при этом не приходилось таскать авторизацию в сигнатуры всех функций. В итоге я собрал casbin-fastapi-decorator — тонкий слой над Casbin для FastAPI, который позволяет описывать authorization через декораторы. Идея простая:

    habr.com/ru/articles/1018670/

    #FastAPI #Python #Casbin #авторизация #rbac #abac #декораторы #api #open_source

  2. Замыкания, декораторы и nonlocal в Python: Путешествие от переменной до элегантного кода

    Python славится своей гибкостью. Мы можем передавать функции как аргументы, возвращать их из других функций и даже "записывать" внутрь них состояние. Но как это работает под капотом? И при чем тут странное слово nonlocal ? В этой статье мы проследим эволюцию: начнем с глобальных переменных, разберемся с замыканиями (closures), поймем магию nonlocal , а затем соберем всё это вместе, чтобы понять, как работают декораторы — один из самых элегантных механизмов Python.

    habr.com/ru/articles/1009132/

    #python #global #декораторы #замыкания #функции #nonlocal

  3. Декораторы в Python для самых маленьких и немного для взрослых

    Представьте типичную ситуацию: вы написали отличный кусок кода. У вас есть десяток функций, которые делают полезную работу — например, ходят в стороннее API, парсят данные и аккуратно складывают их в базу. Код читаемый, лаконичный, всё работает как часы. И тут приходит тимлид (или заказчик) и говорит: «Слушай, а давай-ка мы будем замерять время выполнения каждой функции и писать это в логи. Ну, чтобы отлавливать тормоза на проде». Что делает разработчик, который не знает про декораторы?

    habr.com/ru/articles/1004866/

    #декораторы #декораторы_python_для_начинающих #python #python3 #python_для_начинающих #python_3 #python_tutor

  4. Грани полиморфизма React: полиморфные декораторы

    Привет, снова Костя из Интересно

    habr.com/ru/companies/cloud_ru

    #react #полиморфизм #декораторы #hoc #link #uikit

  5. Грани полиморфизма React: полиморфные декораторы

    Привет, снова Костя из Интересно

    habr.com/ru/companies/cloud_ru

    #react #полиморфизм #декораторы #hoc #link #uikit

  6. Грани полиморфизма React: полиморфные декораторы

    Привет, снова Костя из Интересно

    habr.com/ru/companies/cloud_ru

    #react #полиморфизм #декораторы #hoc #link #uikit

  7. Грани полиморфизма React: полиморфные декораторы

    Привет, снова Костя из Интересно

    habr.com/ru/companies/cloud_ru

    #react #полиморфизм #декораторы #hoc #link #uikit

  8. Грани полиморфизма в React: паттерн asChild

    Привет, мы продолжаем разбирать полиморфизм в React. В прошлой серии мы разобрали паттерн as — мощный, типобезопасный, но с проблемами в композиции. Сегодня разберем, как решить эту проблему с помощью паттерна asChild . Спойлер: это сделает ваш код чище, композируемее и приятнее для глаз, но придется пожертвовать поддерживаемостью. Читать про asChild

    habr.com/ru/companies/cloud_ru

    #полиморфизм #react #typescript #декораторы

  9. Продвинутое использование декораторов Python

    Привет хабр! продолжаю цикл статей про python разработку. В данной статье продолжаю материал прошлой и хочу углубиться в тему декораторов, показать относительно сложные, но применимые в реальной практике примеры использования декораторов, дам небольшую теоретическую базу и некоторое количество ссылок на полезные материалы по теме. Думаю, последние разделы статьи будут полезны даже для опытных разработчиков. Как обычно буду очень рад критике и предложениям по улучшению материала.

    habr.com/ru/articles/910424/

    #python #python3 #decorator #декоратор #декораторы #decorators #программирование #сигнатура

  10. Отладка с sys._getframe в Python

    Привет, Хабр! Сегодня в коротком формате разберемся с тем, что же творится внутри CPython, когда функции вызывают друг друга: sys._getframe , f_back , f_globals , f_locals , а также создадим свои декораторы.

    habr.com/ru/companies/otus/art

    #python #CPython #декораторы #отладка #call_stack

  11. [Перевод] Замыкания в Python: примеры использования

    В Python замыкание — это функция, которая определяется и возвращается из другой функции. Эта вложенная функция может сохранять объекты, определенные в нелокальной области видимости непосредственно перед ее определением, что позволяет ей использовать эти переменные даже после завершения выполнения внешней функции. Замыкания часто используются в функциональных языках программирования. Python их поддерживает, замыкания в нём могут быть очень полезными, так как они, например, позволяют создавать декораторы на основе функций. В этой статье мы:

    habr.com/ru/articles/862692/

    #python #руководство #туториал #замыкания #декораторы #основы_python #основы_программирования #туториал_по_python

  12. [Перевод] Замыкания в Python: примеры использования

    В Python замыкание — это функция, которая определяется и возвращается из другой функции. Эта вложенная функция может сохранять объекты, определенные в нелокальной области видимости непосредственно перед ее определением, что позволяет ей использовать эти переменные даже после завершения выполнения внешней функции. Замыкания часто используются в функциональных языках программирования. Python их поддерживает, замыкания в нём могут быть очень полезными, так как они, например, позволяют создавать декораторы на основе функций. В этой статье мы:

    habr.com/ru/articles/862692/

    #python #руководство #туториал #замыкания #декораторы #основы_python #основы_программирования #туториал_по_python

  13. [Перевод] Замыкания в Python: примеры использования

    В Python замыкание — это функция, которая определяется и возвращается из другой функции. Эта вложенная функция может сохранять объекты, определенные в нелокальной области видимости непосредственно перед ее определением, что позволяет ей использовать эти переменные даже после завершения выполнения внешней функции. Замыкания часто используются в функциональных языках программирования. Python их поддерживает, замыкания в нём могут быть очень полезными, так как они, например, позволяют создавать декораторы на основе функций. В этой статье мы:

    habr.com/ru/articles/862692/

    #python #руководство #туториал #замыкания #декораторы #основы_python #основы_программирования #туториал_по_python

  14. [Перевод] Замыкания в Python: примеры использования

    В Python замыкание — это функция, которая определяется и возвращается из другой функции. Эта вложенная функция может сохранять объекты, определенные в нелокальной области видимости непосредственно перед ее определением, что позволяет ей использовать эти переменные даже после завершения выполнения внешней функции. Замыкания часто используются в функциональных языках программирования. Python их поддерживает, замыкания в нём могут быть очень полезными, так как они, например, позволяют создавать декораторы на основе функций. В этой статье мы:

    habr.com/ru/articles/862692/

    #python #руководство #туториал #замыкания #декораторы #основы_python #основы_программирования #туториал_по_python

  15. Сериализация сущностей с помощью декораторов на TypeScript

    В процессе написания приложения с более-менее сложной бизнес-логикой на фронтенде возникает необходимость держать всю эту логику на слое предметной области в "толстых" моделях. Например, для работы с формой, которая отображает на пользовательский интерфейс создание или редактирование сущности с большим количеством взаимозависимых свойств. Если "размазать" обработчики изменения состояния этой сущности и входящих в неё подсущностей по слою Application, легко можно потерять целостность модели в разных actions, reducers, валидаторах. Такой код будет трудно читать, отлаживать и поддерживать. Можно использовать паттерн Aggregate Root для единой точки входа управления моделью, тогда упростится поддержка инварианта такой сущности. Методы доступа к свойствам и методы, меняющие состояние сущности, можно вызывать из одного объекта, а сам объект будет обеспечивать целостность и валидность своих данных. Но здесь появляется ещё одна проблема: сериализация. К примеру, бывает нужно сохранить всю сущность в каком-нибудь хранилище -- localStorage, redux store. Или отправить на бэкэнд для сохранения. Или событием обновить пользовательский интерфейс, а в payload события при этом надо передать часть сущности в виде простого плоского объекта. В этих случаях нам нужна выжимка данных из сущности, которую можно будет восстановить потом при запросе из хранилища для дальнейшей работы. Это особенно актуально, если на проекте используется SSR, там данные, которые собираются для страницы на серверной стороне, должны быть сериализуемыми.

    habr.com/ru/articles/836746/

    #декораторы #typescript #javascript #фронтенд #фронтендразработка #фронтэнд #сериализация

  16. Декораторы в python по книгам

    С Python я знаком давно, в основном пишу бэкенд на Django. Сейчас работаю на нескольких работах, на одной выполняю роль бэкенд-разработчика, а на другой - лида веб отдела. Недавно наткнулся на тему в вузе, которую я давно хотел изучить - декораторы . Используются они много где, особенно удобно в фреймворках просто перед функцией написать какую-нибудь магическую строчку с @ и всё готово. Примерно понимал как они работают, но учиться никогда не поздно, так что попробую разобрать основные технические детали работы декораторов (только для функций). Статья подойдёт тем, кто просто зашёл узнать пару фактов про декораторы и хочет узнать синтаксис. Также раскрою немного глубже в техническую часть декораторов. Хорошие источники по этой теме - в конце. Также была использована великолепная статья: «Python декораторы на максималках. Универсальный рецепт по написанию и аннотированию от мала до велика» Узнать про декораторы

    habr.com/ru/articles/817445/

    #python_3 #decorators #decorator #декораторы #питон #книги_по_программированию #функции

  17. Используем паттерн Decorator в Bitrix

    Применять паттерны программирования — хорошая практика. К сожалению, на проектах CMS Bitrix редко встречаются примеры использования. В статье я покажу на примере, как можно использовать паттерн Decorator. А также рассмотрю этот паттерн в целом: его распространенные реализации в PHP, возможные альтернативы и ситуации, в которых лучше избегать его использования. Читать далее!

    habr.com/ru/articles/788412/

    #декораторы #битрикс #php #decorator

  18. Замыкания и декораторы в Python: часть 2 — декораторы

    Уважаемые читатели, рад вас приветствовать в новой статье. Этот материал является продолжением предыдущей публикации , посвященной замыканиям. В данной части обзора мы углубимся в тему декораторов. Эта статья написана в первую очередь для тех, кто только начинает свой путь в программировании или начал изучать Python. Потому здесь я не буду рассматривать декораторы классов, чтобы сделать материал более доступным для новичков. Тем не менее, для тех, кто изучит данную статью, не составит труда разобраться в декораторах классов, так как они не имеют существенных отличий от рассматриваемых здесь декораторов функций.

    habr.com/ru/articles/800239/

    #python #декораторы #decorator