emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc. – Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
3.48K subscribers
119 photos
15 videos
22 files
1.14K links
Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, Extreme Programming, SDLC, Agile, etc.

Chat: https://news.1rj.ru/str/emacsway_chat

Persistence: https://dckms.github.io/system-architecture/
Download Telegram
Когда спрашивают зачем нужен слой абстракции от БД:
😁11👍3
Forwarded from SecurityLab.ru
ФСТЭК отзовет более 50 продуктов иностранных разработчиков, которые приостановили свою деятельность в России

— Приостановлены сертификаты на решения от IBM, Microsoft, Oracle, SAP, Vmware, ESET, Trend Micro и другие.

— Действие сертификатов будет прекращено, если компании не возобновят поддержку продуктов в течение 90 дней.

— Теперь государственным информационным системам и объектам критической информационной инфраструктуры придётся ещё быстрее искать замену зарубежным системам.

https://www.securitylab.ru/news/530814.php?r=1
😁13👍3🎉2🤔1🤯1
Ребята, вчерашний пост я удалил вскоре после публикации, потому что некоторым показалось наличие в нем политического подтекста, хотя он отражал исключительно мой личный опыт без намека на какие бы то ни было параллели.

Мне жаль, что эту ценную информацию, которая сильно облегчила мою архитекторскую деятельность по разрешению противоречий, сегодня не все могут рассматривать без политической призмы. Поэтому, я публикую укороченную версию вчерашнего поста:
Существуют некоторые вещи, которые являются ключевыми. Профессиональная задача архитектора - эти вещи выявлять.

📝 “Architecture is about the important stuff. Whatever that is” - Ralph Johnson

[Здесь шла речь о принципе, который со времен Гераклита используется для разрешения противоречий.]

Такие же принципы существуют и в архитектуре, и одним из монументальных принципов является Constantine's Law: "Low Coupling & High Cohesion". Однако, знание этого принципа еще не гарантирует его успешной практической применимости, также как и знание букв еще не делает человека поэтом. Потому что, как говорил Edsger W. Dijkstra:

📝 "Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better." — Edsger W. Dijkstra

В своей практике я иногда замечал, как программисты могут "переусложнить" решение, не утруждаясь осознанием тонкой грани между простотой и примитивностью. Различие между этими терминами проявляется позже, когда становится очевидным, что краткосрочные интересы препятствуют долгосрочным интересам, а не служат им. И тогда проект, подобно Уроборосу, удерживает себя за хвост своего собственного развития. Это явление иногда ошибочно путают с YAGNI.

Колоссальный монументальный труд в исследовании вопроса управления сложностью проделал Vlad Khononov - человек, обладающий уникальной способностью объяснять сложные вещи простым языком. Очень скоро его книга "Balancing Coupling in Software Design: Successful Software Architecture in General and Distributed Systems" станет доступной в продаже. Книга номер один среди всех существующих руководств по созданию успешного проекта. Книга, которая не захламляет, а очищает и кристаллизует знания, учит управлять образом мышления, и вооружает нас принципом, способным легко отыскивать победные решения в задачах любого уровня сложности. Книга, которая станет достойным продолжением дела Larry Constantine, Tom DeMarco, Meilir Page-Jones, David L. Parnas, Robert C. Martin.
🔥17👍5🤯1
Forwarded from DDDevotion
Не очень слежу, но тем не менее, в марте в гошечке 1.18 завезли генерики)

Я помню как они появились в c# 2.0 (а до этого я только у читал про них у Майерса). И это был кайф!

https://go.dev/doc/tutorial/generics
Сейчас в кулуарах российского архитектурного сообщества обсуждается вопрос организации Reference Application и Reference Architectures.

Если кто не в курсе - это такая эталонная демонстрация, создаваемая с целью демонстрации архитектурных решений на живом примере. Но лучше один раз увидеть - в качестве примера можно посмотреть:

Пример DDD/MSA Reference Application:
- https://github.com/dotnet-architecture/eShopOnContainers

Пример Reference Architecture:

"Agile Architecture Modeling Using the ArchiMate® Language":
- https://publications.opengroup.org/g20e
- https://nicea.nic.in/sites/default/files/Agile_Architecture_Modelling_Using_Archimate.pdf
- https://community.opengroup.org/archimate-user-community/home/-/issues/8

Archi Banking Group: Combining the BIAN Reference Model, ArchiMate® Modeling Notation, and the TOGAF® Framework:
- https://publications.opengroup.org/y201
- https://publications.opengroup.org/y201m

И т.п.

Я нередко использую Reference Applications в работе, для демонстрации типовых архитектурных решений разработчикам. Могу заметить, что полностью завершенные эталонно-демонстрационные приложения мне неизвестны, поэтому, приходится обращаться к ним в качестве демонстрационных примеров разрозненно и фрагментарно, "выкусывая" из них качественно организованные аспекты и игнорируя остальные. У меня даже сформировался некий "путеводитель", указывающий в каком демонстрационном приложении лучше смотреть реализацию того, либо иного, архитектурного аспекта.

Не хватает единого и завершенного демонстрационного приложения, которое сделало бы такой "путеводитель" ненужным. По всей видимости, ситуация назрела для обсуждения её решения.

Если кому эта тема интересна, и кто-то хочет её обсудить, и имеет возможность принять участие в создании Reference Application/Architectures, обращайтесь ко мне в личку ( @emacsway ) за инвайтом в группу обсуждения. Вместе попробуем найти решение этого вопроса.
👍14
Коротко о самой сути термина Technical Debt:

📝 "Asking "is something technical debt" is usually uninteresting. The metaphor's value is comparing paying interest vs principal. We judge debt of $1K differently if we are paying $1/month to service it vs $100/month"

-- Martin Fowler, https://twitter.com/martinfowler/status/1517152168775614473?t=BMpST8vXSLBnY36k9o-lUg&s=19

Подробнее по этой теме здесь.
"Multi-cloud: From Buzzword to Decision Model" by Gregor Hohpe
- https://architectelevator.com/cloud/multi-cloud-decision-model/

Architects aren’t there to make all decisions. They help others make better decisions by sharing models. Let’s do that for a major enterprise decision: whether to cloud or multi-cloud.

📝 "Architects aren’t the smartest people in the room. Their primary job is to make everyone else smarter, for example, by getting folks to see more dimensions."

Хорошая статья.

#SoftwareArchitecture
👍8
Мне приходилось слышать о ряде неудачных кейсов по внедрению DDD. Интересно послушать ваш опыт внедрения DDD. Был ли он успешным? Каким образом удалось преодолеть сопротивление? Был ли он неудачным? По каким причинам?
🔥3👍1🤔1
Давно не писал в канал, не мог найти времени, а все от того, что параллельно работаем над такими вещами, как:
- референс-архитектуры, в том числе микросервисные, в том числе ддд-compliant (детали тут: https://news.1rj.ru/str/emacsway_log/888)
- возрождение архитектурных ката, попробуем перезапустить с @Kirill_vet
- российская сертификация/база знаний в области разработки и проектирования (от сообщества для сообщества). Понятно, что нет такого понятия, как «российская специфика», но есть определенный базис, который нужен и хорошо, если мы сможем его давать внутри страны 👍получится - хорошо, не получится - чему-то научимся :)
- ddd проникает во все большее число компаний, растет интерес к применению ddd для отображения в орг структуру. Чему я несказанно рад, потому что при проектировании микросервисов так или иначе всегда строили модель предметной области, а вот предложение перенести эту модель в орг структуру и бизнес-архитектуру принималось через раз (где принималось, те понимают о чем я 😉). Готовлю выступление «оргдизайн через ddd». Кстати, это буквально воплощение закона Конвея.
- со дня на день стартует подготовка к archdays. Оффлайн🤞, наверное все же с онлайном, ибо странно не использовать этот канал совсем. Уже есть заявки, ждем еще 👀
👍6🤔2🔥1
Пошла жара вокруг ДДД. Имхо когда мы говорим о какой-то практике, нужно четко разделять:
1. Академическую часть
2. Приклад
3. Контекстно-зависимое применение

Поясню на примере ДДД.

Академическая часть - это Эванс, Вернон, работы о самом ДДД, теория сложных адаптивных систем, моделирование, системное мышления и проячее. Академическая часть нужна для того чтобы:
- развивать фундаментальные основы, независимо от приклада
- обучать прикладным вещам (да, для этого важно понимать, на чем они основаны)
2. Приклад. Например, - дизайн организационной структуры, принятие управленческих решений на основе типов доменов (что инхаус разрабатывать, что отдать на аутсорс), проектирование микросервисного решения
3. Контексто-зависимый приклад - например, Банк, CRM, ритейл, Поиск. Для применения здесь не нужно даже знать терминологию ДДД, и даже вообще знать что есть какое-то ДДД, но тому кто будет проектировать или строить модели, проводить совместное исследование домена, безусловно, нужны знания и на академическом и на прикладном уровне (а вот контекстно-зависимый приклад уже не так важен, его нужно структурировать усилиями участников совместной практики).

И так с любой практикой, имхо. Есть популярный узкоспециализированный приклад, есть принципы и основы на которых он построен и их знание позволяет подстраиваться под любые специализации в рамках области определения и есть еще более фундаментальные основы, которые дают понимание самых базовых принципов.

Менеджмент становится намного проще при знании мат аппарата теории массового обслуживания (теории очередей) просто потому, что знание что там в числителе, что в знаменателе, что от чего зависит позволяет быстро оценить зависимости по переменным для любого контекста. Это не обязательно, конечно, и не всем нужно, но для обучения менеджменту (в моем понимании - и архитектуре), для понимания как работать с потоком создания ценности, это имхо прям must have знания.

Туда же микросервисы, где для создания написания кода сервисов важнее прикладные навыки, а для проектирования уже важны и фундаментальные знания, причем чем в большем спектре они перейдут в проф. интуицию, тем лучше.

Буду рад обсудить в коментах.
👍13🤔1
Forwarded from Maxim Smirnov
В момент выхода версии 9.2 TOGAF развивающая его The Open Group анонсировал свое намерение превратить TOGAF в открытую расширяемую библиотеку. В 10-ой версии это практически реализовалось. PDF-ы скачать можно, но их довольно много и работать с ними не очень удобно
Собственно, короткая заметка о выходе TOGAF10 у меня в блоге https://mxsmirnov.com/2022/04/28/togaf-10/
👍3