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
Forwarded from Gennadiy Kruglov
Думаю, что есть комплексный атрибут качества, более важный с точки зрения скорости поставки, замечу, не разработки, а именно поставки. Этот атрибут - Flexibility
Почему так? Потому что на скорость поставки влияют кроме Modifiability ещё и Modularity, Testabilty, Deployability и пр.
Какой прок быстро менять код, если его не протестировать, не задеплоить автоматически и т.д. Важна гибкость в целом.
Также есть ещё один комплексный артибут качества - Evolvability. Есть интуитивное понимание, что Evolvability зависит от Flexibility
Таким образом зависимость я бы выстроил так: Evolvability -> Flexibility -> Modifiability
Почему так? Потому что на скорость поставки влияют кроме Modifiability ещё и Modularity, Testabilty, Deployability и пр.
Какой прок быстро менять код, если его не протестировать, не задеплоить автоматически и т.д. Важна гибкость в целом.
Также есть ещё один комплексный артибут качества - Evolvability. Есть интуитивное понимание, что Evolvability зависит от Flexibility
Таким образом зависимость я бы выстроил так: Evolvability -> Flexibility -> Modifiability
Новая статья от разработчиков Watermill: "Running integration tests on Google Cloud Build using docker-compose"
https://threedots.tech/post/running-integration-tests-on-google-cloud-build/
#DDD #Microservices
https://threedots.tech/post/running-integration-tests-on-google-cloud-build/
#DDD #Microservices
threedots.tech
Running integration tests with docker-compose in Google Cloud Build
This post is a direct follow-up to Microservices test architecture where I’ve introduced new kinds of tests to our example project.
Wild Workouts uses Google Cloud Build as CI/CD platform. It’s configured in a continuous deployment manner, meaning the changes…
Wild Workouts uses Google Cloud Build as CI/CD platform. It’s configured in a continuous deployment manner, meaning the changes…
"CQRS — что делать с кодом, который нужно использовать сразу в нескольких обработчиках?", Максим Аршинов
- https://habr.com/ru/post/547746/
#CQRS #DDD #SoftwareDesign #SoftwareArchitecture
- https://habr.com/ru/post/547746/
#CQRS #DDD #SoftwareDesign #SoftwareArchitecture
Хабр
CQRS — что делать с кодом, который нужно использовать сразу в нескольких обработчиках?
При использовании архитектуры в стиле вертикальных слайсов рано или поздно встает вопрос «а что делать, если появляется код, который нужно использовать сразу в...
Несколько интересных сообщений про AsyncAPI:
#Microservices #DistributedSystems #DDD #SoftwareArchitecture
#Microservices #DistributedSystems #DDD #SoftwareArchitecture
Forwarded from Архитектура ИТ-решений
Спорим, что вы не знали о существовании такой спецификации? https://www.asyncapi.io/
Asyncapi
AsyncAPI Initiative for event-driven APIs
Open source tools to easily build and maintain your event-driven architecture.
All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs.
All powered by the AsyncAPI specification, the industry standard for defining asynchronous APIs.
Forwarded from Архитектура ИТ-решений
https://youtu.be/oMSzGc5bDr4 Программа по ссылке https://www.asyncapiconf.com/
YouTube
AsyncAPI online conference | #asyncapiconf
First-ever conference with topics around, but not only, the AsyncAPI specification. Visit our website https://www.asyncapi.com/.
Schedule:
10:34 - Opening words
16:58 - Unhappy Path & Dealing with Bad Events by Paul Taylor
54:13 - A model-based AsyncAPI…
Schedule:
10:34 - Opening words
16:58 - Unhappy Path & Dealing with Bad Events by Paul Taylor
54:13 - A model-based AsyncAPI…
Forwarded from Архитектура ИТ-решений
Похоже, что разговоры про культуру заходят у нас не очень. Потому сегодня вернемся к технологиям. Поделюсь ссылкой на рассуждения архитектора из MuleSoft Антонио Гарроте, об описании асинхронных взаимодействий https://engineering.salesforce.com/asyncapi-and-openapi-an-api-modeling-approach-db9873695910
Для REST есть спецификация Open API. А для обмена сообщениями AsyncAPI как-бы есть, но мало кто ей пользуется.
На самом деле, я думаю, что проблема глубже и стандартизировать надо не обмен сообщениями, а обработку потоков сообщений. Но, тем не менее
Для REST есть спецификация Open API. А для обмена сообщениями AsyncAPI как-бы есть, но мало кто ей пользуется.
На самом деле, я думаю, что проблема глубже и стандартизировать надо не обмен сообщениями, а обработку потоков сообщений. Но, тем не менее
Salesforce Engineering Blog
AsyncAPI and OpenAPI: an API Modeling Approach - Salesforce Engineering Blog
At MuleSoft, we have long embraced a multi-spec, metadata-driven approach to API interfaces.
Forwarded from Архитектура ИТ-решений
Хорошая новость для AsyncAPI Эта инициатива наконец начала вызывать некоторый интерес: https://linuxfoundation.org/en/press-release/linux-foundation-will-host-asyncapi-to-support-growth-and-collaboration-for-industrys-fastest-growing-api-spec/
Прекрасная статья на тему организации работы аналитиков и архитекторов в условиях итеративной (Agile) разработки, от одного из китов в области аналитики Dean Leffingwell:
https://scalingsoftwareagility.wordpress.com/2010/03/05/an-agile-architectural-epic-kanban-system-part-2-%E2%80%93-the-model/
#SoftwareArchitecture #Management #Agile
https://scalingsoftwareagility.wordpress.com/2010/03/05/an-agile-architectural-epic-kanban-system-part-2-%E2%80%93-the-model/
#SoftwareArchitecture #Management #Agile
Scaling Software Agility
An Agile Architectural Epic Kanban System: Part 2 – The Model
In the last post, I described the context and objectives for a kanban system for identifying, analyzing and implementing architectural epics in the agile enterprise. This work is being developed in…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Ответ Jimmy Bogard по поводу того, может ли CQRS-Команда возвращать результат: 📝 "It might seem rather strange that commands always have a result, but it’s much, much easier to deal with side effects of commands through return parameters than through some…
Скомпилировал все сообщения на тему "Может ли CQRS-команда возвращать результат" в отдельную статью: https://emacsway.github.io/ru/cqrs-command-and-result/
Статья получилась достаточно тяжелой, и для подавляющего большинства специалистов такая детализация рассмотрения этого вопроса вряд ли требуется (всегда можно сослаться, например, на мнение Jimmy Bogard, чтобы аргументировать свою позицию в процессе работы).
Но если кто-то хочет получить глубокое понимание этого вопроса, то статья будет полезной.
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #FunctionalProgramming #OOP #CQRS #CQS
Статья получилась достаточно тяжелой, и для подавляющего большинства специалистов такая детализация рассмотрения этого вопроса вряд ли требуется (всегда можно сослаться, например, на мнение Jimmy Bogard, чтобы аргументировать свою позицию в процессе работы).
Но если кто-то хочет получить глубокое понимание этого вопроса, то статья будет полезной.
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #FunctionalProgramming #OOP #CQRS #CQS
emacsway.github.io
Может ли CQRS-команда возвращать результат? — @emacsway's blog
Статья переехала на новый адрес в Distributed Collaborative Knowledge Management System for System Architecture (о проекте).
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Несколько интересных сообщений про AsyncAPI: #Microservices #DistributedSystems #DDD #SoftwareArchitecture
Код-генератор, трансформирующий AsyncAPI в Golang-код:
- https://github.com/asyncapi/go-template
- https://github.com/asyncapi/generator
Очень гармонично сочетается с генератором Golang кода по OpenAPI и C4-model:
- https://news.1rj.ru/str/emacsway_log/170
#Microservices #Golang #DistributedSystems
- https://github.com/asyncapi/go-template
- https://github.com/asyncapi/generator
Очень гармонично сочетается с генератором Golang кода по OpenAPI и C4-model:
- https://news.1rj.ru/str/emacsway_log/170
#Microservices #Golang #DistributedSystems
GitHub
GitHub - asyncapi/go-watermill-template: Go template for the AsyncAPI Generator using Watermill module
Go template for the AsyncAPI Generator using Watermill module - asyncapi/go-watermill-template
Не смог не поделиться. Истину говорит:
Forwarded from Gennadiy Kruglov
Если хочешь чтобы донатили, открой канал на Тик-Ток)) За умные мысли донатить не будут, делиться ими - твоя потребность)
Когда ты делишься умными мыслями, ты снимаешь тяжесть с себя и возлагаешь её на других)
Когда ты делишься умными мыслями, ты снимаешь тяжесть с себя и возлагаешь её на других)
Forwarded from SWE notes
Для тех кто считает что jsonb в postgresql может заменить монгу, очень рекомендую ознакомиться со статьёй ниже об особенностях его работы и хранения
#postgresql #jsonb
https://scalegrid.io/blog/using-jsonb-in-postgresql-how-to-effectively-store-index-json-data-in-postgresql/
#postgresql #jsonb
https://scalegrid.io/blog/using-jsonb-in-postgresql-how-to-effectively-store-index-json-data-in-postgresql/
ScaleGrid
JSONB PostgreSQL: How To Store & Index JSON Data
In this post, we are going to show you tips and techniques on how to effectively store and index JSON data in PostgreSQL. Learn more about JSONB in Postgres.
Еще один интересный и лаконичный документ (всего 19 страниц) от Dean Leffingwell на тему разрешения противоречий между бизнес- и техническими интересами (на странице 11) в частности, и об управлении требованиями в масштабируемом Agile в целом:
https://scalingsoftwareagility.files.wordpress.com/2007/03/a-lean-and-scalable-requirements-information-model-for-agile-enterprises-pdf.pdf
#Management #Agile
https://scalingsoftwareagility.files.wordpress.com/2007/03/a-lean-and-scalable-requirements-information-model-for-agile-enterprises-pdf.pdf
#Management #Agile