Артём Антоненко, Application architect in XLNTech выступил на конференции CODEiD – PHP Odessa Conf #4 с темой «Domain Driven Design».
«Очень много разработчиков, выбравших PHP основным языком программирования, получили свои знания по архитектуре из инструкций для фреймворков. Немногие обратились к источникам, которые написаны для (с помощью) Java, C++ и других языков. Язык PHP уже давно перестал быть уделом домохозяек и перешел в инструменты для разработки enterprise приложений.
Но как писать такой код, который будет понятен и легко расширяем через год, два и более?
Как подготовить монолит к разделению на микросервисы?
Как выстроить эффективное взаимодействие со stakeholders?
На эти вопросы отвечает предметно-ориентироанние программирование.»
CODEiD – это всеукраинское сообщество PHP-разработчиков.Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
Domain driven design (DDD) - отражение модели предметной области в код (Максим Цепков на Software People 2013). Подробнее http://mtsepkov.org/DDD_problem_and_solving
Domain Driven Design (DDD) — подход, предложенный Эриком Эвансом для эффективного проектирования и реализации приложений в сложных предметных областях. Основой его является создание модели будущей системы на едином языке (ubiquitous launguage), разрабатываемом для проекта и обеспечивающим надежные коммуникации между всеми участниками проекта. Модель, описанная на этом языке, согласуется с бизнес-заказчиком и верифицируется им, а затем отражается в реализацию системы с использованием типовых шаблонов, так что элементы и конструкции модели могут быть прослежены в коде. Таким образом обеспечивается соответствие поведения готовой системы потребностям заказчика, без чего сложные IT-проекты едва ли могут стать успешными.
В докладе будет дан общий обзор DDD на основе многолетнего успешного опыта его применения для разработки приложений — от построения модели с формированием единого языка до выработки шаблонов реализации типовых элементов модели.
DATAS Technology — международная компания, специализирующаяся в области разработки программного обеспечения, системной интеграции и оказания комплексных ИТ-услуг организациям различной отраслевой специализации, прежде всего участникам финансового рынка.
Domain driven design (DDD) - отражение модели предметной области в код (Максим Цепков на Software People 2013). Подробнее http://mtsepkov.org/DDD_problem_and_solving
Domain Driven Design (DDD) — подход, предложенный Эриком Эвансом для эффективного проектирования и реализации приложений в сложных предметных областях. Основой его является создание модели будущей системы на едином языке (ubiquitous launguage), разрабатываемом для проекта и обеспечивающим надежные коммуникации между всеми участниками проекта. Модель, описанная на этом языке, согласуется с бизнес-заказчиком и верифицируется им, а затем отражается в реализацию системы с использованием типовых шаблонов, так что элементы и конструкции модели могут быть прослежены в коде. Таким образом обеспечивается соответствие поведения готовой системы потребностям заказчика, без чего сложные IT-проекты едва ли могут стать успешными.
В докладе будет дан общий обзор DDD на основе многолетнего успешного опыта его применения для разработки приложений — от построения модели с формированием единого языка до выработки шаблонов реализации типовых элементов модели.
DATAS Technology — международная компания, специализирующаяся в области разработки программного обеспечения, системной интеграции и оказания комплексных ИТ-услуг организациям различной отраслевой специализации, прежде всего участникам финансового рынка.
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
Прошедший в «Академии информационных систем» (г. Москва) семинар «Как измерить архитектуру ПО?» ответил на вопрос о том, реально ли оценить архитектуру программной системы и сказать, насколько она полна, качественна, подвержена тем или иным недостаткам. В ходе семинара слушатели узнали, какие архитектурные метрики существуют, какие из них — признаны отраслью, в чем состоит их польза и как подходить к их применению в условиях производства.
Опыт госпроектов и взаимодействия с корпоративными структурамиПрофсоUX
Доклад предназначен для UX-специалистов, руководителей проектов и всех остальных.
В последнее время UX-специалисты и компании все чаще привлекаются к реализации проектов для корпораций и государственных заказчиков. На первый взгляд кажется, что при работе с ними попадаешь из мира сотрудничества в мир формальных взаимодействий. На самом деле построить с такими заказчиками настоящее сотрудничество вполне возможно. Более того, заказчик в нем заинтересован, просто не всегда представляет, как это сделать. В докладе я поделюсь практиками работы с крупными заказчиками из опыта компании CUSTIS.
GRASP - General Responsibility Assignment Software PrinciplesCODEiD PHP Community
Описание:
1. Борьба с ошибками, порожденными эффектом каскадного изменения модулей.
2. Достижение хорошего дизайна, через распределение ответственности
3. Наглядная демонстрация.
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiDCODEiD PHP Community
Christoph Rumpel выступил на конференции PHP сообщества CODEiD
Facebook Messenger, WhatsApp, WeChat, Skype, and Telegram have more than three billion active users combined! This led messenger platforms to open their doors for application development on their chats and started the rise of these applications. We all know them today as chatbots.
⠀
Chatbots are much more than a hype. They change the way we communicate with companies and are bringing customer support and personalization to a new level. But what does the technology behind look like?
⠀
In this talk, I will show you all the tools it takes to build a chatbot in PHP. You will see what it’s like developing and testing chatbots for multiple platforms and how NLP (Natural Language Processing) services can help you to understand the user.
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
More Related Content
Similar to Domain Driven Design | Артём Антоненко | CODEID |
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
Прошедший в «Академии информационных систем» (г. Москва) семинар «Как измерить архитектуру ПО?» ответил на вопрос о том, реально ли оценить архитектуру программной системы и сказать, насколько она полна, качественна, подвержена тем или иным недостаткам. В ходе семинара слушатели узнали, какие архитектурные метрики существуют, какие из них — признаны отраслью, в чем состоит их польза и как подходить к их применению в условиях производства.
Опыт госпроектов и взаимодействия с корпоративными структурамиПрофсоUX
Доклад предназначен для UX-специалистов, руководителей проектов и всех остальных.
В последнее время UX-специалисты и компании все чаще привлекаются к реализации проектов для корпораций и государственных заказчиков. На первый взгляд кажется, что при работе с ними попадаешь из мира сотрудничества в мир формальных взаимодействий. На самом деле построить с такими заказчиками настоящее сотрудничество вполне возможно. Более того, заказчик в нем заинтересован, просто не всегда представляет, как это сделать. В докладе я поделюсь практиками работы с крупными заказчиками из опыта компании CUSTIS.
GRASP - General Responsibility Assignment Software PrinciplesCODEiD PHP Community
Описание:
1. Борьба с ошибками, порожденными эффектом каскадного изменения модулей.
2. Достижение хорошего дизайна, через распределение ответственности
3. Наглядная демонстрация.
The PHP developer stack for building chatbots | Christoph Rumpel | CODEiDCODEiD PHP Community
Christoph Rumpel выступил на конференции PHP сообщества CODEiD
Facebook Messenger, WhatsApp, WeChat, Skype, and Telegram have more than three billion active users combined! This led messenger platforms to open their doors for application development on their chats and started the rise of these applications. We all know them today as chatbots.
⠀
Chatbots are much more than a hype. They change the way we communicate with companies and are bringing customer support and personalization to a new level. But what does the technology behind look like?
⠀
In this talk, I will show you all the tools it takes to build a chatbot in PHP. You will see what it’s like developing and testing chatbots for multiple platforms and how NLP (Natural Language Processing) services can help you to understand the user.
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
Hannes Van De Vreken, Software Engineer из Бельгии на конференции CODEID – PHP Odessa Conf #5 презентовал доклад на тему «IoC container beyond constructor injection».
Did you know your IoC container can do a whole lot more than just constructor injection? Besides that it is actually packed with features. Inflectors, resolving callbacks, aliasing, method invocation to name a few. In this talk you will learn how to leverage the power of a great container and service providers to write better, loosely coupled code. Well designed code put together by your IoC container will make your applications SOLID, modular, lean and decoupled from the framework!
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
Dave Liddament - международный спикер и разработчик в Lamp Bristol. Мы пригласили его выступить у нас на конференции 8 декабря с темой «Effective Code Review».
⠀
There are so many benefits from code review; lower development costs, increased code quality, quick up-skilling and on-boarding of team members. Despite these benefits many teams don’t have code review as part of their process at all. Others don’t get the gains they should from it.
⠀
This talk first outlines the business case for code review. It then explores how to make code review effective, specifically looking at:
⠀
• Expectations of what can be achieved with code review.
• What should be covered by code review (including example code)
• What should not be covered by code review
• How to write code that makes code review easy
• What makes good code review comments
• What makes good responses to code review comments
⠀
Finally to wrap up you'll be shown how to enable a code review with Github. Spoiler alert: It can be done it under 5 mins!So if you are on a team that isn’t using code review, or isn’t using it effectively then you should be at this talk.
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
Евгений Кузьмин, CTO Smart Gamma. Тема его доклада «Contract testing. Изолированное тестирование микросервисной архитектуры».
В этом докладе мы расскажем о проблемах которые возникают при тестировании приложений построенных на микросервисной архитектуре. Проведем краткий обзор способов тестирования взаимодействия между сервисами. А так же подробно поговорим о контрактном тестировании с примером применения инструмента pact.io.
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
Running microservices successfully | Bastian Hofmann | CODEiDCODEiD PHP Community
Bastian Hofmann, Software Engineer at SysEleven, выступил на конференции CODEiD – PHP Odessa Conf #4 с темой «Running microservices successfully»
«Using microservices can give you a lot of benefits in your application architecture in terms of developer productivity or scalability, but deploying and running them can be quite hard, for example in terms of monitoring or network latencies.
In this talk I will show you what you have to keep in mind if you want to keep your microservices running fast and smoothly and how you can solve the problems that will arise when the amount of services or traffic is growing.»
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
- GraphQL is a query language and execution engine that allows clients to request specific data from an API rather than retrieve predefined resources. It was created by Facebook in 2012 and became an open standard in 2015.
- GraphQL provides improvements over REST APIs such as allowing clients to request specific data in one endpoint using queries rather than making multiple requests to different endpoints.
- Symfony implementations of GraphQL include the GraphQLBundle which allows defining types, fields, and resolvers in YAML configuration and connecting them to Symfony services and repositories.
- Security measures for GraphQL APIs include limiting query depth and complexity, field access control, and marking fields as deprecated.
Tobias Nyholm, Symfony core team, выступил на конференции CODEiD – PHP Odessa Conf #4 с темой «Mastering message queues»
Message queues are the perfect way to decentralize your application. You may use them for communication, scheduling and decentralization of your application. With help from a message queue you may decouple your application from the framework and the infrastructure. Which means that your app is written in pure PHP and not Symfony/Laravel/Yii etc.
With some smart configuration on your message bus you may put the message queue outside of your application and you may leverage from a decentralized and asynchronous system.
This talk will quickly go throw the basics of queues, hexagonal design and show proof of concept with Symfony’s proposed message component.
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
Symfony4: A new way to develop applications | Antonio Peric | CODEiDCODEiD PHP Community
Antonio Peric, CEO at Locastic выступил на конференции CODEiD – PHP Odessa Conf #4 с темой «Symfony4: A new way to develop applications».
«Symfony4 is here and it is better than ever. With Flex it can be a micro framework and amazing beast with any feature you want. What changed from version 3, what are new best practices and why Symfony is moving PHP world forward once again you can find in this talk.»
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
CodeID - PHP Odessa Conf: Сергей Тимошевский "Все пути ведут к микросервисам"CODEiD PHP Community
Презентация доклада Сергея Тимошевского на CodeID - PHP Odessa Conf о процессе перехода с монолитной структуры приложений на микросервисную архитектуру.
25 июня прошла первая встреча одесского PHP сообщества на конференции CodeID - PHP Odessa Conf.
Больше о конференции и сообществе:
http://codeid.com.ua/
https://www.facebook.com/codeidua/
https://twitter.com/Code_ID_UA
Группа для общения в LinkedIn:
https://www.linkedin.com/groups/13535615
Чат в Telegram:
https://t.me/codeidua
CodeID - PHP Odessa Conf: Вячеслав Мозговой "Как сделать сайт быстрым и люб...CODEiD PHP Community
Презентация доклада Вячеслава Мозгового на CodeID - PHP Odessa Conf "Как сделать сайт быстрым и любимым Google. Или особенности оптимизации Больших Сайтов".
25 июня прошла первая встреча одесского PHP сообщества на конференции CodeID - PHP Odessa Conf.
Больше о конференции и сообществе:
http://codeid.com.ua/
https://www.facebook.com/codeidua/
https://twitter.com/Code_ID_UA
Группа для общения в LinkedIn:
https://www.linkedin.com/groups/13535615
Чат в Telegram:
https://t.me/codeidua
2. 2 слайд из 39
Артем Антоненко
Engineering manager/Application architect at
XLNTech (Remit )
Опыт в менеджменте более 9 лет.
Консультант в сфере реинжиниринга бизнес-
процессов.
Более 6 лет в девелопменте.
12. Then there’s the matter of what comes
under the term “business logic.”
I find this a curious term because there
are few things that are less logical than
business logic. («Patterns of Enterprise
Application Architecture»)
12 слайд из 39
13. Отказ от четкого выделения предметной
области при определенных условиях может
обернуться катастрофой. Если задача
предстоит сложная и принято решение
следовать принципам ПРОЕКТИРОВАНИЯ ПО
МОДЕЛИ (MODEL-DRIVEN DESIGN), то
стисните зубы, пригласите нужных
специалистов и избегайте
ИНТЕЛЛЕКТУАЛЬНОГО ИНТЕРФЕЙСА
(SMART UI).
Эрик Эванс
13 слайд из 39
15. Джеймс Клерк Максвелл, "Трактат об
электричестве и магнетизме" James Clerk Maxwell,
А Treatise оп Electricity and Magnetism), 1873 г.
Эти четыре уравнения, вместе с определениями
понятий и лежащими в их основе математическим
аппаратом, описывают всю классическую теорию
электромагнетизма XIX в.
Зачем DDD? Упрощение сложных систем.
15 слайд из 39
16. Зачем DDD? Выделение и совершенствование
уникального торгового предложения
16 слайд из 39
21. Основные понятия. Единый язык
Domain expert
Analyst Developer
Developer
Ubiquitous
Language
Application
code
Test
code
Specs and
documentation
Whiteboard
discussions
21 слайд из 39
22. Основные понятия. Ограниченный контекст
Контекст
Граница, в
пределах которой
понятия
единого языка
имеют вполне
конкретное
значение.
Ordering context Supplier context
Order
Customer
Product
Vendor
Order
Invoice
22 слайд из 39
23. Основные понятия. Смысловое ядро
Смысловое ядро
Подобласть,
имеющая
первостепенное
значение для
организации.
Стратегия бизнеса
строится вокруг
смыслового ядра.
23 слайд из 39
24. Основные понятия. Карта контекстов
Заказ товаров
Сторонняя ERP
Модуль лояльности
Пользователи Shared kernel
ACL
Partnership
Модуль рекламы
Customer-supplier
Складской сервис
Conformist
24 слайд из 39
25. Основные понятия. Предметная область
Предметная
область
это то, что делает
организация, и
среда, в которой
она это делает.
Часто состоит из
предметных
подобластей.
Purchase
planning
Warehouse
context
Core
domain
Purchase
context
Distribution
context
Logistic
context
25 слайд из 39
28. Проекция Мерка́тора
Проекция Меркатора оказалась
весьма удобной для нужд
мореходства, особенно в
старые времена. Объясняется
это тем, что траектория
движения корабля, идущего
под одним и тем же румбом к
меридиану (то есть с
неизменным положением
стрелки компаса относительно
шкалы) изображается прямой
линией на карте в проекции
Меркатора.
Википедия
28 слайд из 39
34. 2 slides
В книге Эрика Эванса (Eric Evans) Domain-Driven Design
(Addison-Wesley) основное внимание уделялось
способам создания систем, моделирующих реально
существующие области..
Если нужна информация из ограниченного контекста
или нужно сделать запросы на какие-либо действия
внутри ограниченного контекста, происходит обмен
данными с его четко обозначенной границей с помощью
моделей. В своей книге Эванс использовал аналогию с
клетками: «Клетки могут существовать благодаря своим
мембранам, определяющим, что попадает внутрь, что
выходит наружу и что именно может через них
проходить».
Идеи, представленные Эриком Эвансом в книге
Domain-Driven Design, весьма полезны при поиске
разумных границ наших сервисов, и мы пока …