"Trannoscript of Greg Young's Talk at Code on the Beach 2014: CQRS and Event Sourcing" by Greg Young
https://www.eventstore.com/blog/trannoscript-of-greg-youngs-talk-at-code-on-the-beach-2014-cqrs-and-event-sourcing
#DDD #EventSourcing #CQRS #SoftwareDesign #SoftwareArchitecture
https://www.eventstore.com/blog/trannoscript-of-greg-youngs-talk-at-code-on-the-beach-2014-cqrs-and-event-sourcing
#DDD #EventSourcing #CQRS #SoftwareDesign #SoftwareArchitecture
www.kurrent.io
Trannoscript of Greg Young's Talk at Code on the Beach 2014: CQRS and Event Sourcing
Greg Young gave this important talk at Code on the Beach 2014. It's one of the seminal explanations of Event Sourcing and CQRS.
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Вот как понимает OOP Robert C. Martin: 📝 "Объектно-ориентированное программирование Второй парадигмой, получившей широкое распространение, стала парадигма, в действительности появившаяся двумя годами ранее, в 1966-м, и предложенная Оле-Йоханом Далем и Кристеном…
Современное определение OOP:
📝 "Объектно-ориентированное программирование — это метод программирования, основанный на представлении программы в виде
совокупности взаимодействующих объектов, каждый из которых является экземпляром определенного класса, а классы являются членами определенной иерархии наследования.
Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships."
📝 "Объектно-ориентированное программирование (object-oriented programming). Методология программирования, в которой программы представляют собой совокупности взаимодействующих объектов, каждый из которых является экземпляром определенного класса, входящего в иерархию классов, связанных отношением наследования. В таких программах классы обычно считаются статичными сущностями, а объекты имеют более динамичную природу, поддерживаемую механизмами динамического связывания и полиморфизма.
Object-oriented programming.
A method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships. In such programs, classes are generally viewed as static, whereas objects typically have a much more dynamic nature, which is encouraged by the existence of dynamic binding and polymorphism."
- "Object-Oriented Analysis and Design with Applications" 3rd edition by Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young Ph.D., Jim Conallen, Kelli A. Houston
Кстати, есть мнение, что тут не обошлось без коммерции:
📝 "OO is merely a clever and successful MarketingScheme which has made Grady Booch a wealthy man. -- Daniel Brockman"
https://wiki.c2.com/?NobodyAgreesOnWhatOoIs
#OOP #SoftwareDesign
📝 "Объектно-ориентированное программирование — это метод программирования, основанный на представлении программы в виде
совокупности взаимодействующих объектов, каждый из которых является экземпляром определенного класса, а классы являются членами определенной иерархии наследования.
Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships."
📝 "Объектно-ориентированное программирование (object-oriented programming). Методология программирования, в которой программы представляют собой совокупности взаимодействующих объектов, каждый из которых является экземпляром определенного класса, входящего в иерархию классов, связанных отношением наследования. В таких программах классы обычно считаются статичными сущностями, а объекты имеют более динамичную природу, поддерживаемую механизмами динамического связывания и полиморфизма.
Object-oriented programming.
A method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships. In such programs, classes are generally viewed as static, whereas objects typically have a much more dynamic nature, which is encouraged by the existence of dynamic binding and polymorphism."
- "Object-Oriented Analysis and Design with Applications" 3rd edition by Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young Ph.D., Jim Conallen, Kelli A. Houston
Кстати, есть мнение, что тут не обошлось без коммерции:
📝 "OO is merely a clever and successful MarketingScheme which has made Grady Booch a wealthy man. -- Daniel Brockman"
https://wiki.c2.com/?NobodyAgreesOnWhatOoIs
#OOP #SoftwareDesign
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Современное определение OOP: 📝 "Объектно-ориентированное программирование — это метод программирования, основанный на представлении программы в виде совокупности взаимодействующих объектов, каждый из которых является экземпляром определенного класса, а классы…
Ранее в этом треде приводилось выссказывание Niklaus Wirt об обстоятельствах, при которых внедрялось OOP. Он писал о модных поветриях и причинах коммерческого порядка.
О коммерческих причинах пишет и основатель языка программирования Erlang - Joe Armstrong:
📝 "At this point I am reminded of the keynote speech of the then boss of IBM in France who addressed the audience at the 7th IEEE Logic programming conference in Paris. IBM Prolog had added a lot of OO extensions. When asked why he replied:
Our customers wanted OO Prolog so we made OO Prolog
I remember thinking “How simple, no qualms of conscience, no soul-searching, no asking ‘Is this the right thing to do’ …”"
- "Why OO Sucks" by Joe Armstrong
https://www.cs.otago.ac.nz/staffpriv/ok/Joe-Hates-OO.htm
#OOP #FunctionalProgramming #SoftwareDesign
О коммерческих причинах пишет и основатель языка программирования Erlang - Joe Armstrong:
📝 "At this point I am reminded of the keynote speech of the then boss of IBM in France who addressed the audience at the 7th IEEE Logic programming conference in Paris. IBM Prolog had added a lot of OO extensions. When asked why he replied:
Our customers wanted OO Prolog so we made OO Prolog
I remember thinking “How simple, no qualms of conscience, no soul-searching, no asking ‘Is this the right thing to do’ …”"
- "Why OO Sucks" by Joe Armstrong
https://www.cs.otago.ac.nz/staffpriv/ok/Joe-Hates-OO.htm
#OOP #FunctionalProgramming #SoftwareDesign
www.cs.otago.ac.nz
Why OO Sucks
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Ранее в этом треде приводилось выссказывание Niklaus Wirt об обстоятельствах, при которых внедрялось OOP. Он писал о модных поветриях и причинах коммерческого порядка. О коммерческих причинах пишет и основатель языка программирования Erlang - Joe Armstrong:…
Это наверное, лучшее объяснение, которое я встречал, о том, чем отличается FP от OOP, и что у них общего:
📝 "OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts."
- Michael Feathers
https://twitter.com/mfeathers/status/29581296216
Это высказывание так же поясняет, почему Functional Programming не равно Anemic Domain Model. Все дело в том, что в Functional Programming обеспечивается ссылочная прозрачность, т.е. накладывается ограничение на изменяемость данных. А между тем, основной недостаток утраты инкапсуляции в Anaemic Domain Model заключается именно в утрате контроля за изменением состояния и обеспечением инвариантов.
#OOP #FunctionalProgramming #SoftwareDesign
📝 "OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts."
- Michael Feathers
https://twitter.com/mfeathers/status/29581296216
Это высказывание так же поясняет, почему Functional Programming не равно Anemic Domain Model. Все дело в том, что в Functional Programming обеспечивается ссылочная прозрачность, т.е. накладывается ограничение на изменяемость данных. А между тем, основной недостаток утраты инкапсуляции в Anaemic Domain Model заключается именно в утрате контроля за изменением состояния и обеспечением инвариантов.
#OOP #FunctionalProgramming #SoftwareDesign
Twitter
Michael Feathers
OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts.
Forwarded from Архитектура ИТ-решений
В развитие темы о моделировании DDD-агрегатов. На мой взгляд множество внятных предложений по расширению реляционной модели данных дал сам Edgar F. Codd в своей статье 1979 года Extending the Database Relational Model to Capture More Meaning (см. перевод здесь: http://citforum.ru/database/classics/codd_2/) Работа сложная (как впрочем и непосредственно реляционная модель, описанная им десятью годами раньше), для любителей посидеть, подумать, поразбираться с моделированием данных, но очень ёмкая. Жаль, что десятая глава декартова агрегация(Cartesian aggregation) в ней слишком лаконична
Forwarded from Архитектура ИТ-решений
Официально издана книжка Бернда Рюкера об оркестровке и интеграции в микросервисных и cloud-native архитектурах.
https://blog.bernd-ruecker.com/publishing-practical-process-automation-with-oreilly-db993db68411 Сознаюсь, этого релиза я ждал несколько месяцев и вот не только дождался, но еще и скачал бесплатный экземпляр с сайта камунды(раздают за регистрацию). В подписке O'Reilly она тоже есть. Если кому-то еще интересна эта тема, предлагаю почитать и ближе к концу апреля поучаствовать в обсуждении книжки в формате голосового чата. Пишите в комментах
https://blog.bernd-ruecker.com/publishing-practical-process-automation-with-oreilly-db993db68411 Сознаюсь, этого релиза я ждал несколько месяцев и вот не только дождался, но еще и скачал бесплатный экземпляр с сайта камунды(раздают за регистрацию). В подписке O'Reilly она тоже есть. Если кому-то еще интересна эта тема, предлагаю почитать и ближе к концу апреля поучаствовать в обсуждении книжки в формате голосового чата. Пишите в комментах
Medium
Publishing “Practical Process Automation” With O’Reilly
A Book about Orchestration and Integration in Microservices and Cloud-Native Architectures
Forwarded from Gennadiy Kruglov
https://www.amazon.com/Real-Life-BPMN-4th-introduction-DMN-ebook/dp/B07XC6R17R/
Рекомендую эту книгу. Бернд Рюкер в соавторах.
Читал одно из предыдущих изданий.
В книге "потроха", которые крайне полезно знать практикам.
Рекомендую эту книгу. Бернд Рюкер в соавторах.
Читал одно из предыдущих изданий.
В книге "потроха", которые крайне полезно знать практикам.
Топовая новость в мире Golang & DDD. Авторы Watermill и целого ряда статей на тему DDD & Golang подготовили электронную книгу на основе своих статей, и приступили к созданию мини-курса обучения.
📝 "we prepared the e-book "Go With Domain: Building Modern Business Software in Go" based on articles from the series. The e-book is available in PDF, EPUB, and MOBI formats."
Ссылка на мини-курс, к сожалению, персонализированная в email. Кому интересно - можете подписаться на рассылку: https://threedots.tech/newsletter/
#DDD #Golang #SoftwareDesign #SoftwareArchitecture
📝 "we prepared the e-book "Go With Domain: Building Modern Business Software in Go" based on articles from the series. The e-book is available in PDF, EPUB, and MOBI formats."
Ссылка на мини-курс, к сожалению, персонализированная в email. Кому интересно - можете подписаться на рассылку: https://threedots.tech/newsletter/
#DDD #Golang #SoftwareDesign #SoftwareArchitecture
GitHub
GitHub - ThreeDotsLabs/watermill: Building event-driven applications the easy way in Go.
Building event-driven applications the easy way in Go. - ThreeDotsLabs/watermill
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Обзор книги "Fundamentals of Software Architecture: An Engineering Approach" 1st edition by Mark Richards, Neal Ford https://apolomodov.medium.com/%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-fundamentals-of-software-architecture-1754c0e78d48 От Alexander Polomodov - Director…
В свое время я собрал целую библиотеку по управленческой психологии, Decision Making и Soft Skills, читал "Harvard Business Review on Decision Making" by Harvard Business School Press.
Практически вся необходимая для IT-архитектора информация по этим вопросам представлена в минималистичном, но в исчерпывающем виде в двух книгах:
- "The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise 1st Edition" by Gregor Hohpe
- "Fundamentals of Software Architecture: An Engineering Approach" 1st edition by Mark Richards, Neal Ford
Обе книги - невероятно ценные в библиотеке архитектора. Ну, можно еще упомянуть по этим вопросам книгу:
- "The Book: 37 Things One Architect Knows About IT Transformation" by Gregor Hohpe
P.S.: На всякий случай хочу напомнить, что у меня есть постоянно обновляемая страничка в интернете по литературе:
- https://emacsway.github.io/ru/self-learning-for-software-engineer/
#Career #Management #SoftSkills #DecisionMaking
Практически вся необходимая для IT-архитектора информация по этим вопросам представлена в минималистичном, но в исчерпывающем виде в двух книгах:
- "The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise 1st Edition" by Gregor Hohpe
- "Fundamentals of Software Architecture: An Engineering Approach" 1st edition by Mark Richards, Neal Ford
Обе книги - невероятно ценные в библиотеке архитектора. Ну, можно еще упомянуть по этим вопросам книгу:
- "The Book: 37 Things One Architect Knows About IT Transformation" by Gregor Hohpe
P.S.: На всякий случай хочу напомнить, что у меня есть постоянно обновляемая страничка в интернете по литературе:
- https://emacsway.github.io/ru/self-learning-for-software-engineer/
#Career #Management #SoftSkills #DecisionMaking
emacsway.github.io
Список литературы для самообучения разработчика программного обеспечения — @emacsway's blog
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
Тема управленческой психологии получила дальнейшее развитие в чате канала, с весьма интересным списком литературы от опытных архитекторов, который имеет смысл продублировать в канал.
#Career #Management #SoftSkills #DecisionMaking
#Career #Management #SoftSkills #DecisionMaking
Telegram
emacsway-chat
Группа тг-канала (@emacsway_log) о
Software Design/Architecture, DDD, Microservice Architecture, Distributed Systems, SDLC, Agile, Team Topology etc.
Правила: https://news.1rj.ru/str/emacsway_chat/2339
Software Design/Architecture, DDD, Microservice Architecture, Distributed Systems, SDLC, Agile, Team Topology etc.
Правила: https://news.1rj.ru/str/emacsway_chat/2339
Forwarded from Gennadiy Kruglov
@emacsway с твоего позволения накидаю книги по психологии (из последних, что читал):
Психология влияния. Убеждай, воздействуй, защищайся | Чалдини Роберт Б.https://www.ozon.ru/product/psihologiya-vliyaniya-ubezhday-vozdeystvuy-zashchishchaysya-chaldini-robert-b-chaldini-robert-b-211424560/
Думай медленно... решай быстро | Канеман Даниэль https://www.ozon.ru/product/2020-dumay-medlenno-reshay-bystro-thinking-fast-and-slow-24286114/
Биология добра и зла. Как наука объясняет наши поступки | Сапольски Роберт https://www.ozon.ru/product/biologiya-dobra-i-zla-kak-nauka-obyasnyaet-nashi-postupki-147997818/
Как разговаривать с мудаками | Гоулстон Марк https://www.ozon.ru/product/kak-razgovarivat-s-mudakami-139106797/
Сила воли. Как развить и укрепить | Макгонигал Келли https://www.ozon.ru/product/sila-voli-kak-razvit-i-ukrepit-8243294/
Психология влияния. Убеждай, воздействуй, защищайся | Чалдини Роберт Б.https://www.ozon.ru/product/psihologiya-vliyaniya-ubezhday-vozdeystvuy-zashchishchaysya-chaldini-robert-b-chaldini-robert-b-211424560/
Думай медленно... решай быстро | Канеман Даниэль https://www.ozon.ru/product/2020-dumay-medlenno-reshay-bystro-thinking-fast-and-slow-24286114/
Биология добра и зла. Как наука объясняет наши поступки | Сапольски Роберт https://www.ozon.ru/product/biologiya-dobra-i-zla-kak-nauka-obyasnyaet-nashi-postupki-147997818/
Как разговаривать с мудаками | Гоулстон Марк https://www.ozon.ru/product/kak-razgovarivat-s-mudakami-139106797/
Сила воли. Как развить и укрепить | Макгонигал Келли https://www.ozon.ru/product/sila-voli-kak-razvit-i-ukrepit-8243294/
Forwarded from Alexey Merson
мне зашли
Фил Портер "Съесть или быть съеденным. Эффективные приемы внутрикорпоративной борьбы" https://www.ozon.ru/context/detail/id/950957/
Хазин, Щеглов "Лестница в небо. Диалоги о власти, карьере и мировой элите" https://www.ozon.ru/context/detail/id/136154461/
Фил Портер "Съесть или быть съеденным. Эффективные приемы внутрикорпоративной борьбы" https://www.ozon.ru/context/detail/id/950957/
Хазин, Щеглов "Лестница в небо. Диалоги о власти, карьере и мировой элите" https://www.ozon.ru/context/detail/id/136154461/
Forwarded from Gennadiy Kruglov
Тогда также добавлю книги по управлению, для понимания происходящего в корпорациях:
Как преодолеть кризисы менеджмента. Диагностика и решение управленческих проблем | Адизес Ицхак Кальдерон https://www.ozon.ru/product/kak-preodolet-krizisy-menedzhmenta-diagnostika-i-reshenie-upravlencheskih-problem-2703903/
Стратегическое сафари. Экскурсия по дебрям стратегического менеджмента | Генри Минцберг: https://www.ozon.ru/product/strategicheskoe-safari-ekskursiya-po-debryam-strategicheskogo-menedzhmenta-157233873/
Как преодолеть кризисы менеджмента. Диагностика и решение управленческих проблем | Адизес Ицхак Кальдерон https://www.ozon.ru/product/kak-preodolet-krizisy-menedzhmenta-diagnostika-i-reshenie-upravlencheskih-problem-2703903/
Стратегическое сафари. Экскурсия по дебрям стратегического менеджмента | Генри Минцберг: https://www.ozon.ru/product/strategicheskoe-safari-ekskursiya-po-debryam-strategicheskogo-menedzhmenta-157233873/
👍1
Forwarded from Alexey Merson
И конкретно по российской специфике
Русская модель управления | Прохоров Александр Петрович
https://www.ozon.ru/product/russkaya-model-upravleniya-29962647/
Русская модель управления | Прохоров Александр Петрович
https://www.ozon.ru/product/russkaya-model-upravleniya-29962647/
Интересная статья в пересылаемом сообщении.
Кстати, она имеет еще один адрес в интернете:
http://sharovatov.github.io/entries/2020-12-codereview.html
См. также "Несовпадение фаз спиралей обучения"
- https://dckms.github.io/system-architecture/emacsway/soft-skills/learning-spiral-phase-mismatch.html
#Career #DecisionMaking #Management #SoftSkills #SoftwareDesign #SoftwareArchitecture
Кстати, она имеет еще один адрес в интернете:
http://sharovatov.github.io/entries/2020-12-codereview.html
См. также "Несовпадение фаз спиралей обучения"
- https://dckms.github.io/system-architecture/emacsway/soft-skills/learning-spiral-phase-mismatch.html
#Career #DecisionMaking #Management #SoftSkills #SoftwareDesign #SoftwareArchitecture
sharovatov.github.io
Виталий Шароватов о разработке и людях
Социально-технические системы — не только просто, но и сложно
Forwarded from DDDevotion
С удивлением обнаружил, что не только лишь все топят за код-ревью. Более того на западе множество публикаций с подсчетом эффективности этого процесса.
На мой взгляд идеальное код-ревью, это парное программирование. Если по каким-то причинам команда не пишет код в паре, то код-ревью проводится уже на смерженном коде (или не проводится вовсе). Лонг-терм ветки при этом не должны существовать.
https://www.youtube.com/watch?v=mKaIR-EjoC0
https://github.com/sharovatov/teamlead/blob/master/codereview.md
На мой взгляд идеальное код-ревью, это парное программирование. Если по каким-то причинам команда не пишет код в паре, то код-ревью проводится уже на смерженном коде (или не проводится вовсе). Лонг-терм ветки при этом не должны существовать.
https://www.youtube.com/watch?v=mKaIR-EjoC0
https://github.com/sharovatov/teamlead/blob/master/codereview.md
YouTube
How feature branching affects domain-driven design with Thierry de Pauw
Feature branching is again gaining in popularity due to the rise of distributed version control systems. Although branch creation has become very easy, it comes with a specific cost. Long living branches break the flow of the software delivery process, impacting…
"Domain Events" by Alexey Zimarev ( @zimareff )
https://alexey-zimarev.medium.com/domain-events-f56555258cf5
#DDD #EventSourcing #SoftwareDesign #SoftwareArchitecture
https://alexey-zimarev.medium.com/domain-events-f56555258cf5
#DDD #EventSourcing #SoftwareDesign #SoftwareArchitecture
Medium
Domain Events
I wrote a page about domain events for Eventuous documentation today. It landed as a blog article, so I decided to publish it separately…
📝 "Дипломатия – это дважды подумать прежде чем ничего не сказать" — Алекс Дрейер
P.S.: не мог не поделиться 🙂))
#SoftSkills #Career
P.S.: не мог не поделиться 🙂))
#SoftSkills #Career
👍2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Одной из непростых тем в DDD и микросервисной архитектуре является т.н. проблема "конкурирующих подписчиков". Это когда два причинно-зависимых события попадают на конкурирующие узлы обработки событий, и второе событие может "обогнать" первое, например, по…
Скомпилировал все посты, по теме нарушения очередности (гонки) сообщений в условиях конкурирующих подписчиков, в отдельную статью:
- https://emacsway.github.io/ru/message-ordering-in-competing-consumers/
#DDD #Microservices #DistributedSystems #EIP
- https://emacsway.github.io/ru/message-ordering-in-competing-consumers/
#DDD #Microservices #DistributedSystems #EIP
emacsway.github.io
О гонке сообщений в условиях конкурирующих подписчиков — @emacsway's blog
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
Гена внес хорошее дополнение по поводу атрибутов качеств:
- https://news.1rj.ru/str/emacsway_chat/935
#Agile #Career #Management #SoftwareArchitecture
- https://news.1rj.ru/str/emacsway_chat/935
#Agile #Career #Management #SoftwareArchitecture