Привет! В Монолите весь код должен быть в едином стиле, a в разных микросервисах можно использовать разные подходы, языки программирования и фреймворки. Для простых микросервисов с 1 — 2 контроллерами и 1 — 10 действиями особо смысла городить слои абстракций нет. Для сложных микросервисов с различными состояниями и логикой перехода между ними наоборот лучше изначально не лениться. Я хочу рассказать о моем опыте организации кода и использования подходов DDD, Портов и Адаптеров для обоих случаев. Есть кратко суть статьи: Джун — пишет код в контроллере. Мидл — пишет кучу абстракций. Сеньор — знает когда нужно писать код в контроллере, а когда нужны абстракции.Читать полностью »
Рубрика «DDD» - 2
Организация кода в микросервисах и мой подход применения гексагональной архитектуры и DDD
2020-03-21 в 17:37, admin, рубрики: .net, C#, DDD, Microservices, микросервисы, Программирование, Проектирование и рефакторинг, Совершенный кодАнтипаттерны событийно-ориентированной архитектуры
2020-03-19 в 13:21, admin, рубрики: DDD, Domain Events, Microservices, Блог компании OTUS. Онлайн-образование, микросервисыИ снова здравствуйте! В преддверии старта курса «Архитектор ПО» подготовили перевод еще одного интересного материала.
Последние несколько лет наблюдается рост популярности микросервисной архитектуры. Есть много ресурсов, которые учат правильно ее реализовывать, однако достаточно часто люди говорят о ней, как о серебряной пуле. Против использования микросервисов есть множество аргументов, но самый весомый из них заключается в том, что этот тип архитектуры таит в себе неопределенную сложность, уровень которой зависит от того, как вы управляете отношениями вежду вашими сервисами и командами. Вы можете найти много литературы, которая расскажет почему (возможно) в вашем случае микросервисы окажутся не лучшим выбором.Читать полностью »
Инструменты Domain Driven Design
2020-03-10 в 8:47, admin, рубрики: DDD, dry-python, Moscow Python Conf++, python, Блог компании Конференции Олега Бунина (Онтико), Проектирование и рефакторинг, Разработка веб-сайтов, управление разработкойСиний кит — отличный пример того, как проектирование сложного проекта пошло не по плану. Кит внешне похож на рыбу, но он млекопитающее: кормит детенышей молоком, у него есть шерсть, а в плавниках до сих пор сохранились кости предплечья и кистей с пальцами, как у сухопутных. Он живет в океанах, но не может дышать под водой, поэтому регулярно поднимается на поверхность глотнуть воздуха, даже когда спит. Кит самое большое животное в мире, длиной с девятиэтажный дом, а массой как 75 автомобилей Volkswagen Touareg, но при этом не хищник, а питается планктоном.
Когда разработчики работали над китом, то не стали писать все с нуля, а использовали наработки из старых проектов. Он словно слеплен из несовместимых частей кода, которые не тестировались, а все проектирование сводилось к выбору фреймворка и к срочному «велосипедированию» уже в продакшне. В итоге получился проект красивый внешне, но с кусками дремучего легаси и костылей под капотом.
Для создания проектов, которые помогают бизнесу зарабатывать, а не похожих на морское животное, которое не может дышать под водой, есть DDD. Это подход, который фокусируется не на инструментах или коде, а на изучении предметной области, отдельных бизнес-процессов и на том, как код или инструменты работают для бизнес-логики.
Что такое DDD и какие инструменты в нем есть, мы расскажем в статье на основе доклада Артема Малышева. Подход DDD в Python, инструменты, подводные камни, контрактное программирование и проектирование продукта вокруг решаемой проблемы, а не используемого фреймворка — все это под катом.
Читать полностью »
Платформенные команды, DDD радар и MVP, который не превратится в техдолг — все это на TechLead Conf 2020
2020-03-03 в 11:55, admin, рубрики: architect, Conference, CTO, DDD, legacy, mvp, ontico, refactoring, techleads, Блог компании Конференции Олега Бунина (Онтико), конференции, Разработка веб-сайтов, Тестирование IT-систем, управление разработкой
Привет!
Меня зовут Вьет, и больше 10 лет я с любовью пишу код. В прошлом году меня пригласили в программный комитет, в котором большие фанаты качественной разработки делали конференцию QualityConf. Мы верим, что качественная разработка не ограничивается вопросами тестирования, поэтому собрали под одной крышей доклады про различные аспекты качества продуктов.
Но нашу команду поджидали две серьезные проблемы.
Долой техдолг! На TechLead Conf 2020 расскажем как
2020-03-03 в 11:55, admin, рубрики: architect, Conference, CTO, DDD, legacy, mvp, ontico, refactoring, techleads, Блог компании Конференции Олега Бунина (Онтико), Разработка веб-сайтов, Совершенный код, Тестирование IT-систем, управление разработкой
Привет!
Меня зовут Вьет, и больше 10 лет я с любовью пишу код. В прошлом году меня пригласили в программный комитет, в котором большие фанаты качественной разработки делали конференцию QualityConf. Мы верим, что качественная разработка не ограничивается вопросами тестирования, поэтому собрали под одной крышей доклады про различные аспекты качества продуктов.
Но нашу команду поджидали две серьезные проблемы.
Что можно узнать о Domain Driven Design за 10 минут?
2020-02-21 в 12:54, admin, рубрики: Bounded Context, DDD, Dodo IS, Dodo Pizza Engineering, domain driven, domain-driven design, functional thinking, Ubiquitous Language, Анализ и проектирование систем, Блог компании Dodo Pizza Engineering, Программирование, Проектирование и рефакторингГоворят, что можно бесконечно смотреть на огонь, наблюдать за тем, как работают другие, а также изучать DDD (Domain Driven Design, предметно-ориентированное проектирование). Но если у вас есть только 10 минут — можно прочитать эту статью и пройтись по самым верхушкам, а потом с умным видом кивать головой во время светской беседы.
Покрутили и рассмотрели DDD с разных сторон вместе с Андреем Ратушным — техническим директором компании Югорские Интернет Решения.
Йошкар-Ола, вообще, айтишный город?
2020-01-27 в 8:45, admin, рубрики: AWS, DDD, devops митап, php, php митап, phpstorm, symfony, Блог компании Skyeng, борьба с легаси, конференции, митапы, митапы по фронтенду, Разработка веб-сайтов, региональные сообществаИменно таким вопросом мы задались, встретив ребят оттуда на казанском PHP-митапе. Оказалось, всего за месяц они смогли раскачать местное сообщество — небольшое расследование со ссылками на городские чаты, активности и каналы под катом.
А если вам точно не хватало развиртуализации, приходите 1 февраля на 2-й PHP-митап от местного чата.
Читать полностью »
Мы слишком много используем redux-селекторы
2020-01-25 в 6:49, admin, рубрики: DDD, javascript, React, ReactJS, redux, TypeScriptКогда я заглядываю в файл {domain}/selectors.js в больших проектах на React/Redux, с которыми работаю, я часто встречаю огромный список redux-селекторов подобного вида:
getUsers(state)
getUser(id)(state)
getUserId(id)(state)
getUserFirstName(id)(state)
getUserLastName(id)(state)
getUserEmailSelector(id)(state)
getUserFullName(id)(state)
…
На первый взгляд использование селекторов не выглядит чем-то необычным, но с опытом мы начинаем понимать — селекторов может накопиться слишком много. И кажется, мы дожили до этого момента.
Го в Go! Как команда PHP взялась писать микросервисы
2019-12-05 в 9:02, admin, рубрики: DDD, Go, Microservices, paradigm shift, Блог компании Lamoda, Разработка под e-commerceВсем привет! Меня зовут Алексей Скоробогатый, я системный архитектор в Lamoda. В феврале 2019 года я выступал на Go Meetup еще на позиции тимлида команды Core. Сегодня хочу представить расшифровку своего доклада, который вы также можете посмотреть.
Наша команда называется Core неспроста: в зону ответственности входит все, что связано с заказами в e-commerce платформе. Команда образовалась из PHP-разработчиков и специалистов по нашему order processing, который на тот момент представлял собой единый монолит. Мы занимались и продолжаем заниматься декомпозицией его на микросервисы.
Data Mesh: как работать с данными без монолита
2019-11-13 в 15:37, admin, рубрики: big data, data, data lake, data mesh, DDD, Dodo Pizza Engineering, domain-driven design, Блог компании Dodo Pizza Engineering, данные, хранение данныхПривет! Мы в Dodo Pizza Engineering очень любим данные (а кто их сейчас не любит?). Сейчас будет история о том, как накопить все данные мира Dodo Pizza и дать любому сотруднику компании удобный доступ к этому массиву данных. Задача под звёздочкой: сохранить нервы команды Data Engineering.