mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

8.1K
active users

#domain_driven_design

0 posts0 participants0 posts today
Habr<p>Domain-Driven Design: ошибки, которые не описаны в книгах</p><p>Всем привет! Меня зовут Андрей, уже несколько лет я работаю тимлидом/техлидом в разных компаниях и различных проектах. В последнее время подход Domain Driven Design у всех на слуху. Хотя этот подход развивается уже много лет (с 2003), только сейчас на него обращают активное внимание и многие команды пробуют внедрять его у себя. В этой статье я бы хотел рассказать об ошибках, возникших в процессе внедрения DDD в проектах с моим участием, и рассказать о подводных камнях, с которыми мы столкнулись при реализации, и о которых, к сожалению, мало говорят в книгах и руководствах. Возможно, это поможет вам правильно построить процесс внедрения и развития проектов с использованием подхода DDD.</p><p><a href="https://habr.com/ru/articles/922418/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/922418/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/ddd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ddd</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>проектирование_систем</span></a></p>
Habr<p>Преодоление сложности в самом сердце Анемичной Модели</p><p>Доброго времени суток, Хабр! Сегодня хотел бы поговорить об анемичной модели — одном из самых дискуссионных топиков (особенно для приверженцев DDD) и о том, как, по моему мнению, правильно её готовить. Для кого-то анемичная модель — это антипаттерн, тогда как для других это единственный правильный способ реализации приложений. Многие использовали её годами и даже не знали, как она называется, и что кем-то она считается антипаттерном. Реальность же такова, что анемичная модель — это инструмент, который может подходить или не подходить в зависимости от ситуации, но при этом является очень популярным и, по факту, «стандартом де-факто» для многих программистов и организаций. Хотя в последние годы я и вижу тенденцию к тому, что DDD и, соответственно, богатая доменная модель становятся всё популярнее, пока что, по моему мнению, им далеко до популярности анемичной модели.</p><p><a href="https://habr.com/ru/articles/917012/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/917012/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/ddd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ddd</span></a> <a href="https://zhub.link/tags/software_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>software_design</span></a> <a href="https://zhub.link/tags/anemic_model" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>anemic_model</span></a> <a href="https://zhub.link/tags/refactoring" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>refactoring</span></a> <a href="https://zhub.link/tags/architecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>architecture</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>java</span></a> <a href="https://zhub.link/tags/oop" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>oop</span></a> <a href="https://zhub.link/tags/web_development" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>web_development</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/functional_programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>functional_programming</span></a></p>
Habr<p>Go-микросервисы: Стандартизация архитектуры с Clean Architecture и DDD</p><p>Go-разработчики часто сталкиваются с парадоксом: изначально простой и понятный проект со временем превращается в сложный для поддержки монолит. ✔️ Бизнес-логика оказывается размазана между слоями? ✔️ Замена базы данных требует переписывания половины кода? ✔️ Новым разработчикам требуется недели, чтобы разобраться в проекте? В этой статье мы разбираем практическое применение DDD и Clean Architecture в Go . Обсуждаем возможный стандарт структуры микросервиса . Оптимизируем существующие. 🔥 Для разработчиков, которые хотят создавать проекты, остающиеся поддерживаемыми даже через годы развития.</p><p><a href="https://habr.com/ru/articles/911018/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/911018/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/clean_architecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>clean_architecture</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/ddd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ddd</span></a> <a href="https://zhub.link/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>разработка</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>архитектура</span></a> <a href="https://zhub.link/tags/%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82_golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>стандарт_golang</span></a> <a href="https://zhub.link/tags/%D1%87%D0%B8%D1%81%D1%82%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>чистый_код</span></a> <a href="https://zhub.link/tags/%D1%87%D0%B8%D1%81%D1%82%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>чистая_архитектура</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%B0%D1%82%D1%82%D0%B5%D1%80%D0%BD%D1%8B_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>паттерны_разработки</span></a></p>
Habr<p>Как эксперимент помог распутать спагетти-код: применяем DDD-Lite на микросервисах</p><p>Ситуация, знакомая многим: разрабатываем сервис, пилим в нём фичи, развиваем продукт… но постепенно всё выходит из под контроля. Кодовая база разрастается, зависимости становятся сложнее. Команда разработчиков тратит больше времени на распутывание существующих проблем, чем на создание новой функциональности. Хорошая новость: распутать спагетти-код можно по-разному, и иногда срабатывают не самые очевидные способы. В нашем случае помогла комбинация действий: не просто выделение части кода в отдельные микросервисы, но и параллельная реализация архитектурного подхода DDD Lite (в связке с принципами чистой архитектуры). О том, как в рамках кейса мы избавились от спагетти-зависимостей, поделили сервис на чёткие слои, упростили поддержку и масштабирование кода, — рассказываем под катом. Плюс делимся рекомендациями: кому и при каких сценариях связка «DDD Lite + микросервисы» может пригодиться.</p><p><a href="https://habr.com/ru/companies/sravni/articles/896894/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/sravni/a</span><span class="invisible">rticles/896894/</span></a></p><p><a href="https://zhub.link/tags/nestjs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nestjs</span></a> <a href="https://zhub.link/tags/DDDlite" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DDDlite</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/%D0%BB%D1%83%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>луковая_архитектура</span></a> <a href="https://zhub.link/tags/typescript" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>typescript</span></a> <a href="https://zhub.link/tags/onion_architecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>onion_architecture</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D1%8B" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>проектирование_архитектуры</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>микросервисы</span></a></p>
:rss: Hacker News<p>I don't do Domain Driven Design<br><a href="https://www.tonymarston.net/php-mysql/dont-do-domain-driven-design.html" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">tonymarston.net/php-mysql/dont</span><span class="invisible">-do-domain-driven-design.html</span></a><br><a href="https://rss-mstdn.studiofreesia.com/tags/ycombinator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ycombinator</span></a> <a href="https://rss-mstdn.studiofreesia.com/tags/PHP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>PHP</span></a> <a href="https://rss-mstdn.studiofreesia.com/tags/OOP" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>OOP</span></a> <a href="https://rss-mstdn.studiofreesia.com/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a></p>
Habr<p>Domain-Driven Design: чистая архитектура снизу доверху</p><p>Когда мидл-разработчик дорастает до сениора, его, как правило, мучает вопрос: как правильно писать приложение? Понятно, что когда он был джуном, ему давали совсем атомарные задачи, и он развлекался покрытием тестов или написанием контроллеров. Переход в мидлы знаменуется назначением на разработчика более абстрактных задач вроде реализации сервисов, репозиторной части или интеграции с внешними сервисами посредством клиентов. Но в какой-то момент мидл начинает задавать самому себе вопросы: как найти единственно правильный способ написать приложение с нуля ? Если Вы - мидл, и Вас стали мучать такие вопросы - поздравляю, Вы на верном пути. Ведь профессиональный рост не происходит с переводом на должность - новый сениор должен родиться, и это как раз муки такого рождения. Да, мы уже знаем самые популярные практики: KISS, DRY, YAGNI, SOLID, что там ещё... Мы умеем их применять. Но нас не покидает чувство, что все эти практики объединяет общая научная основа. Знаете, это как с Менделеевым, который на основе закономерностей практически по наитию составил периодическую систему, а потом открыли электроны и всё встало на свои места. У меня для вас хорошие новости: научная основа есть. Это предметно-ориентированное проектирование . Но есть и плохая новость: тема настолько новая и непростая в изучении, что какая-никакая популярность к ней пришла лет 5 назад, и до сих пор совсем небольшое число разработчиков достаточно хорошо в ней разбирается. Но есть ещё одна хорошая новость: в статье ниже я постараюсь дать максимально понятный ответ, что же такое предметно-ориентированное проектирование. Начнём.</p><p><a href="https://habr.com/ru/companies/sberbank/articles/781612/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/sberbank</span><span class="invisible">/articles/781612/</span></a></p><p><a href="https://zhub.link/tags/%D1%87%D0%B8%D1%81%D1%82%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>чистая_архитектура</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%B0%D1%82%D1%82%D0%B5%D1%80%D0%BD%D1%8B_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>паттерны_проектирования</span></a> <a href="https://zhub.link/tags/%D0%BB%D1%83%D0%BA%D0%BE%D0%B2%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>луковичная_архитектура</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D1%8B" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>интерфейсы</span></a></p>
Habr<p>Немного про DDD: Реализация событий предметной области в .NET</p><p>Всем привет! Предметно-ориентированное проектирование, на мой взгляд, является недопонятым подходом, о котором многие говорят, но немногие его действительно применяют. Одним из относительно простых в реализации и полезных в архитектурном смысле паттернов, на мой взгляд, являются события предметной области (Domain Events) . В данной статье я бы хотел рассказать о возможных вариантах реализации этого шаблона DDD с использованием .NET.</p><p><a href="https://habr.com/ru/articles/846796/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/846796/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F_%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE%D0%B9_%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D0%B8" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>События_предметной_области</span></a> <a href="https://zhub.link/tags/ddd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ddd</span></a> <a href="https://zhub.link/tags/entityframework" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>entityframework</span></a> <a href="https://zhub.link/tags/domain_events" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_events</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a></p>
Habr<p>DDD простыми словами</p><p>Часто в больших компания всё поделено на большие системы. А если система «Legacy», т.е. устаревшая, то часто внутри неё собрано очень много разнородного функционала. По сути такие системы представляют из себя монолитных монстров. Бывает, что компании решают использовать микросервисный подход, но в результате получают таких же монолитных монстров, но только работающих в Кубере. Границы систем размыты, нет чёткого понимания, что должно входить в систему, а что нет. Команды сильно специализированы на конкретную систему и не могут участвовать в доработке никакой другой системы. По сути, речь идёт о том, что системы становится слишком большими и для их доработки требуется длительный процесс погружения. Можно ли исправить ситуацию коренным образом?</p><p><a href="https://habr.com/ru/articles/809831/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/809831/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/ddd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ddd</span></a> <a href="https://zhub.link/tags/%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BA%D1%81%D1%82" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ограниченный_контекст</span></a> <a href="https://zhub.link/tags/bounded_context" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bounded_context</span></a> <a href="https://zhub.link/tags/ubiquitous_language" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ubiquitous_language</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>архитектура</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>предметная_область</span></a></p>
Habr<p>Проектируем микросервисы с Reactive Manifesto</p><p>Работаете с распределенными системами или только пытаетесь к ним подобраться? Проектировать такие системы с нуля бывает сложно и страшно: чтобы учесть все нюансы, нужен определенный багаж знаний. На помощь приходит Reactive Manifesto — документ, который обобщил опыт целого ряда компаний по созданию распределенных систем. Манифест формулирует главные принципы, на которые стоит опираться на этапе проектирования и эксплуатации таких систем. Меня зовут Андрей Василевский, я системный архитектор в Lamoda Tech. В этой статье я на примерах из своей работы покажу, как применять Reactive Manifesto на практике. Статья будет полезна тем, кто только начал изучать распределенные системы, хочет закрепить теорию или тем, кто хочет структурировать проектирование микросервисов в своей компании.</p><p><a href="https://habr.com/ru/companies/lamoda/articles/803793/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/lamoda/a</span><span class="invisible">rticles/803793/</span></a></p><p><a href="https://zhub.link/tags/%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>микросервисы</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/event_driven_architecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>event_driven_architecture</span></a> <a href="https://zhub.link/tags/system_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>system_design</span></a> <a href="https://zhub.link/tags/architecture" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>architecture</span></a> <a href="https://zhub.link/tags/saga" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>saga</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>распределенные_системы</span></a> <a href="https://zhub.link/tags/cap_theorem" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>cap_theorem</span></a> <a href="https://zhub.link/tags/fault_tolerance" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fault_tolerance</span></a> <a href="https://zhub.link/tags/guideline" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>guideline</span></a></p>
Habr<p>Domain Driven Design в Go – это почти не больно</p><p>Как выглядят паттерны DDD (Domain Driven Design) в большом проекте? А самое главное, стоит ли их вообще использовать? Рассмотрим, какими инструментами можно реализовать DDD на Go и оценим, насколько это больно. Меня зовут Илья Сергунин , я backend-сочинитель в Авито: занимаюсь тем, что передаю смартфоны в хорошие руки. В этой статье попытаюсь объяснить, как можно натянуть DDD на Go без синтаксического сахара и магии Java-подобных языков, и без больших крутых ORM c Data mapper, которые также отсутствуют в Go.</p><p><a href="https://habr.com/ru/companies/oleg-bunin/articles/791420/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/oleg-bun</span><span class="invisible">in/articles/791420/</span></a></p><p><a href="https://zhub.link/tags/go" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>go</span></a> <a href="https://zhub.link/tags/ddd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ddd</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://zhub.link/tags/golangconf" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golangconf</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>предметноориентированное</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>проектирование</span></a></p>
Habr<p>Calypso: Схема данных MongoDB на Scala</p><p>Чтобы применять Domain-Driven Design, DDD Aggregate и Transactional outbox на MongoDB, наша команда создала open source библиотеку calypso для работы с BSON. Публикация для тех, кто стремится к современным практикам разработки и разделяет наше влечение к Scala 3. Готовы к открытиям? Добро пожаловать в мир функционального программирования и надёжной работы с schema-on-read.</p><p><a href="https://habr.com/ru/companies/m2tech/articles/782986/" rel="nofollow noopener" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/m2tech/a</span><span class="invisible">rticles/782986/</span></a></p><p><a href="https://zhub.link/tags/scala" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>scala</span></a> <a href="https://zhub.link/tags/ddd" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ddd</span></a> <a href="https://zhub.link/tags/scala3" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>scala3</span></a> <a href="https://zhub.link/tags/outbox" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>outbox</span></a> <a href="https://zhub.link/tags/adt" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>adt</span></a> <a href="https://zhub.link/tags/algebraic_data_types" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>algebraic_data_types</span></a> <a href="https://zhub.link/tags/mongodb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mongodb</span></a> <a href="https://zhub.link/tags/nosql" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nosql</span></a> <a href="https://zhub.link/tags/domain_driven_design" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>domain_driven_design</span></a> <a href="https://zhub.link/tags/functional_programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>functional_programming</span></a></p>