home.social

#unit_of_work — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #unit_of_work, aggregated by home.social.

fetched live
  1. Развитие FastAPI приложения в ходе разработки production-системы

    Полтора года назад я написал о своём подходе к структуре FastAPI-приложений. С тех пор два крупных проекта, production и несколько архитектурных граблей заставили меня многое пересмотреть. В этой статье расскажу, что изменилось и какие решения действительно упростили мне разработку.

    habr.com/ru/articles/1073130/

    #FastAPI #Python #SQLAlchemy #Docker #Clean_Architecture #DDD #Repository_Pattern #Unit_of_Work #backendразработка #архитектура_ПО

  2. [Перевод] Unit of Work в Go: практический гайд по транзакциям между репозиториями

    Когда у каждого репозитория есть свой Tx , код может выглядеть чисто, но атомарность всё равно сломается: один Store откатится, другой уже успеет закоммитить изменения. В статье показан более надёжный вариант для Go-кода: репозитории остаются небольшими интерфейсами, транзакционная логика уезжает в Unit of Work , а сервис работает с готовым набором хранилищ, построенных поверх одного sql.Tx . Разобраться в Go

    habr.com/ru/companies/otus/art

    #golang #go #репозиторий #транзакции #Unit_of_Work #интерфейсы #сервисный_слой #sqlc

  3. Паттерн Unit of Work в Python с SQLAlchemy

    Unit of Work отслеживает все объекты, которые были загружены в память и изменены в ходе выполнения программы. Он управляет их состояниями и сохраняет изменения в базе данных в конце транзакции. Это делается с использованием сессий, которые действуют как контейнеры для всех изменений. Когда работа завершена, Unit of Work выполняет commit для всех изменений, сохраняя их в базе данных. Если что-то пошло не так, выполняется rollback, и база данных возвращается в состояние до начала транзакции. В данной статье рассмотрим, как реализовать паттерн Unit of Work с использованием SQLAlchemy.

    habr.com/ru/companies/otus/art

    #аналитика_данных #python #sql #Unit_of_Work #SQLAlchemy

  4. Как сменить технологию и не закопаться в рефакторинге: опыт внедрения DDD в проект на FastAPI — Часть 1

    Привет, хабравчане! В серии статей расскажу, что такое DDD (domain-driven design) и какие у него преимущества и недостатки. Разберемся, когда применять подход и как сочетать его с FastAPI , популярным ASGI фреймворком на Python. В этой части рассмотрим паттерны проектирования Repository и Unit of Work . С их помощью мы работаем через интерфейсы. Паттерны помогают в разделении кода на слои: основная логика приложения представляется внутренними слоями, а используемые технологии - внешними.

    habr.com/ru/articles/833720/

    #fastapi #ddd #refactoring #repository_pattern #unit_of_work #проектирование #рефакторинг #чистая_архитектура

  5. Паттерн Unit of Work в разрезе чистой архитектуры DDD на языке Golang

    Всем привет! Недавно мне выпала возможность разработать шаблон сервиса, который можно было бы использовать как для монолитной, так и для микро‑сервисной архитектуры. Шаблон должен был придерживаться принципов Domain‑Driven Design (DDD). В этом процессе, я столкнулся с двумя интересными проблемами: Проблема 1: Сложности обеспечения транзакционности базы данных При разработке сервисов, часто возникает неотъемлемая потребность в использовании транзакций базы данных для обеспечения целостности данных. Однако, при попытке интегрировать транзакционную логику в традиционные подходы, столкнулся с трудностями. Связывание транзакционной логики с логикой слоя базы данных оказалось нетривиальным и привело к нарушению принципов разделения ответственности. Это, в свою очередь, сказалось на тестировании и поддержке кода. Проблема 2: Нарушение изолированности слоя В попытке решить первую проблему, некоторые разработчики переносят работу с транзакциями на уровень слоя приложения, чтобы избежать прямой зависимости от базы данных. Однако, такой подход, несмотря на его обоснование, может нарушить изолированность слоев и противоречить принципам DDD и чистой архитектуры. Это, в конечном итоге, затрудняет поддержку приложения и усложняет его масштабирование. Эти две проблемы стали отправной точкой для исследования применения паттерна Unit of Work и его роли в обеспечении надежности и консистентности данных в контексте Golang и DDD. В статье я расскажу о своем подходе к решению этих задач.

    habr.com/ru/articles/784186/

    #ddd #unit_of_work #arhitectura #архитектура #архитектура_приложений #голанг #golang #hexagon #гексогональная_архитектура