Луковичная архитектура: канон и где от него осознанно отступать

Луковичную (onion) архитектуру обычно продают аргументом «легко поменять БД или фреймворк». Только базу в проде меняют раз в пятилетку, а чаще вообще не меняют — ради этого городить слои не выгодно. Реальная ценность в другом, и она ежедневная: глядя на правку, ты заранее видишь её радиус. Поменял формат ответа одной ручки — изменение осталось в одном handler'е, соседние ручки и cron не задеты. Тронул бизнес-правило в сервисе — и сразу понятно, что эффект расходится на всё, что выше. Понадобилось параллельно писать ещё в одно хранилище — горячий кэш, поисковый индекс, аналитическую базу рядом с основной — это добавляется в одном репозитории, и весь код, который через него пишет, начинает писать в оба места разом. Ничего не переписываешь и, главное, негде забыть: точка подключения одна, а не разбросана по всем местам, где идёт запись.

https://habr.com/ru/articles/1051970/

#чистая_архитектура #onion_architecture #луковичная_архитектура #гексагональная_архитектура #DDD #инверсия_зависимостей #dependency_injection #рефакторинг #проектирование #кодовые_агенты

Луковичная архитектура: канон и где от него осознанно отступать

⚠️  Ахтунг:  тут пробегал ИИ. 📝  Примечание:  есть отступления от канона — они в тексте помечены и объяснены. Идея на пальцах Код укладывается слоями, как лук. Внутренние слои...

Хабр
Un format d'atelier utilisant C4 et le DDD (et certains formats d'ateliers agiles) pour modéliser une architecture. Ca me semble aussi malin qu'efficace. https://bytesizearchitecturesessions.com/ #C4 #ddd #architecture #méthode #agile
Bytesize Architecture Sessions

A site about Bytesize Architecture Sessions. Bytesize Architecture Sessions created by Andrea Magnorsky

Bytesize Architecture Sessions

It's hard when teams identify problems as technical, but the real issues are deeper. We interviewed nine practicioners at @dddeu and ask them: what's the hardest part of facilitating software architecture and design?

Read, watch, or listen: https://virtualddd.com/facilitating-archdes/problem-isnt-technical-ddd-europe/

#DDD #Facilitation #SoftSkills

When the Problem Isn't Technical: 9 Voices from DDD Europe

At DDD Europe, nine practitioners agreed the problem isn't technical. Discover why facilitation, power structures, and the right people decide outcomes.

Virtual Domain-Driven Design

Skill of the week: Spring Data JDBC — качество Opus на модели за копейки

Ранее в рубрике Skill of the Week мы уже разбирали Skill для Spring Data JPA . И, что предсказуемо, в комментариях нашлись те, кто увидел в нём лишнее доказательство простого тезиса: «вот видите, JPA не нужна, она слишком сложная». Аргумент понятный — у AI Agent-а с JPA действительно регулярно случаются «пожары»: ошибки в настройке связей между сущностями, странности с конфигурацией базовых типов, путаница с контекстом персистентности и разными состояниями сущности. Что характерно, ровно на этих же местах спотыкаются и живые разработчики — так что претензия скорее к технологии, чем к модели. Раз JPA такая сложная — почему бы не взять что-нибудь попроще? Чистый JDBC многим кажется слишком низкоуровневым, и взгляд естественным образом падает на Spring Data JDBC: те же репозитории и сущности, но без прокси, lazy loading и кэша первого уровня. Технология проще — значит, и никакой Skill тут не нужен, верно? А вот и нет. Умение AI «пользоваться» той или иной технологией зависит не столько от её когнитивной сложности, сколько от того, сколько кода с её использованием модель видела на этапе обучения. Spring Data JDBC объективно проще JPA, но кода с ней в открытом доступе на порядки меньше. Парадокс, но именно для технологий «с малым количеством кода» Skill даёт наибольший эффект: он закрывает ровно тот пробел, который модели нечем заполнить самостоятельно. В сегодняшнем эпизоде еженедельной рубрики Skill of the Week разберёмся, как, используя Spring Data JDBC Skill, научить своего агента важным навыкам при работе со Spring Data JDBC.

https://habr.com/ru/companies/haulmont/articles/1050834/

#spring_data_jdbc #spring #spring_boot #java #kotlin #jdbc #ddd #aiагенты #llm #claudecode

Skill of the week: Spring Data JDBC — качество Opus на модели за копейки

Ранее в рубрике Skill of the Week мы уже разбирали Skill для Spring Data JPA . И, что предсказуемо, в комментариях нашлись те, кто увидел в нём лишнее доказательство простого тезиса: «вот видите, JPA...

Хабр

Die meisten Domänenmodelle scheitern nicht an zu enger Kopplung, sondern an zu wenig Kohäsion.

Beim nächsten #INNOQTechnologyLunch widmet sich Michael Plöd den Arten von Kohäsion, ihrer Rolle im Domain-driven Design und ihren Bezug zur Chemie und Bodenmechanik.

🎤 „Kohäsion im Kontext von Modellierung und Design"

📆 1. Juli 2026
🕒 12:15–13:00 Uhr
👉 Jetzt anmelden: https://www.meetup.com/innoq-technology-lunch/events/315382182/?eventOrigin=group_upcoming_events

#DDD #Softwarearchitektur

We released 3.19.2 of event-sourcing! See here for the changelog: https://github.com/patchlevel/event-sourcing/releases/tag/3.19.2
#PHP #DDD #EventSourcing
Release 3.19.2 · patchlevel/event-sourcing

Release Notes for 3.19.2 3.19..x bugfix release (patch) 3.19.2 Total issues resolved: 0 Total pull requests resolved: 1 Total contributors: 1 bug 869: Check the result of GET_LOCK if lock could ...

GitHub

Two decades of cutting-edge tech trends! Celebrate #InfoQ20 with us by leveling up your stack.

Today, we’re offering a comprehensive guide to #CellBasedArchitecture.

It delivers the key principles, practical implementation strategies, and architectural insights needed to successfully apply a cell-based approach to both existing and new systems.

📥 Download your FREE copy: https://bit.ly/3Sgw4Rb

#SoftwareArchitecture #SociotechnicalArchitecture #DDD #ArchitectureDesign #DistributedSystems

Один ко многим в Java: когда коллекция в родителе оправдана, а когда — нет

Реляционная модель хранит FK на стороне дочерней таблицы. В Java у нас два способа отразить эту связь: коллекция в родительской сущности ( @OneToMany / List) или ссылка в дочерней ( @ManyToOne / long parentId). Выбор между ними влияет на поведение при записи — и именно здесь большинство решений принимаются без достаточного обоснования. Тест, который даёт однозначный ответ Влад Михалча формулирует так: ассоциация @ManyToOne является наиболее естественным способом отображения связи «один ко многим» в базе данных и, как правило, наиболее эффективной альтернативой. Практический критерий: если убрать коллекцию и заменить её отдельным запросом, какое бизнес-правило перестанет работать? Если ответ — «никакое, просто список будет получаться отдельным запросом» — коллекция не нужна как часть модели. Если ответ — «нарушится инвариант» — коллекция оправдана. Типичные случаи:

https://habr.com/ru/articles/1050776/

#java #jpa #hibernate #spring #spring_data #jdbc #onetomany #manytoone #ddd #aggregate

Один ко многим в Java: когда коллекция в родителе оправдана, а когда — нет

Реляционная модель хранит FK на стороне дочерней таблицы. В Java у нас два способа отразить эту связь: коллекция в родительской сущности ( @OneToMany / List) или ссылка в дочерней ( @ManyToOne / long...

Хабр

A few days ago, Talysson Oliveira represented Codeminer42 on stage at Domain-Driven Design Europe 2026, one of the world's leading conferences on software modelling and design, held in Antwerp, Belgium.

His session explored practical first steps for engineers looking to deepen their understanding of DDD and apply it in real-world systems.

Thanks to everyone who joined the session and exchanged ideas with us. 💎

#Codeminer42 #TechEvents #DDD