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.47K 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
Кейс проектирования банка в BIAN на этапах TOGAF в Archimate

Возрадуйтесь, дорогие корпоративные архитекторы в банках!

Archi Banking Group: Combining the BIAN Reference Model, ArchiMate® Modeling Notation, and the TOGAF® Framework

Описание 👉здесь
Файл Archimate 👉здесь (для импорта в Archi, например)

P.S. Файл Archimate скачивайте по инструкции в ссылке, иначе нормально не скачается

#кейс #фрейм #архитектура
via 📢@it_ace
Статистика популярности языков программирования от JetBrains.

"The State of Developer Ecosystem 2021
This report presents the combined results of the fifth annual Developer Ecosystem Survey conducted by JetBrains. 31,743 developers from 183 countries or regions helped us map the landscape of the developer community."
https://www.jetbrains.com/lp/devecosystem-2021/
Обсуждал с товарищем изобилие баг в приложении одного из банков, и он выдвинул предположение, что это может быть связано с бурными темпами его развития и приоритетом на скорость доставки новых фич в ущерб внутреннему качеству продукта. И привел пару интересных цитат:

> If no one is using your product, who cares how clean your code is?

> This morning your team can add more code, or add more customers. Which do you want?

Эти цитаты вызвали у меня профессиональный интерес, и желание проанализировать их.

Фразы сильно зависимы от контекста. Непонятно, какой опыт от использования продукта (негативный или позитивный), какая модель разработки и обработки неопределенности (BDUF, спиральная, итеративная), какой экономический эффект от раннего выхода на рынок, и предпочтут ли новые пользователи дефектный продукт перед конкурирующим? Попробуем восстановить контекст.

Во-первых, основная задача Clean Code - это повышение темпов разработки. В таком случае, противоречия между первой и второй частями первой цитаты даже не возникает. Если быть точным, то основная задача Clean Code - это достижение архитектурного качества Modifiability, которое позволяет снизить рост стоимости изменения кода вплоть до горизонтальной асимтоты, что создает экономическую целесообразность эмпирического разрешения неопределенности требований путем Adaptation, а не Prediction, поскольку стоимость реализации решения в таком случае становится независимым от момента времени принятия решения. Таким образом, Clean Code представляет ценность не сам по себе, а только как средство достижения экономической целесообразности итеративной модели разработки. Например, при BDUF он уже не имеет такого важного значения, так как все решения уже приняты заблаговременно.

Во-вторых, необретенного клиента еще можно обрести. А вот потерянного клиента вернуть уже достаточно сложно. Из цитаты неясно, какой опыт обретается из "using your product" - позитивный или негативный. А это уже сильно зависит от внутреннего качества продукта.

В-третьих, качество кода не замедляет темпов разработки, потому что существуют методики сглаживания Design Payoff Line.

В-четвертых, существует 4 типа техдолга. При reckless нужно заниматься не Чистым Кодом, а обучением. А prudent часто допускается из соображений YAGNI, кроме случая prudent-inadvertent, который неизбежен, и часто устраняется в контексте Бизнесовых Сторей, так как окупается в пределах релиза. Сам Фаулер в таком случае советует даже ничего не говорить менеджерам.

В-пятых, важны не новые пользователи сами по себе, а тот экономический эффект, который они формируют. Если ранний выход на рынок действительно обеспечивает хорошую маржинальность, способную покрыть масштабирование команд разработки, тогда почему предпочитается дефектность продукта?

Основная причина появления багов - это высокий уровень сложности, с которым приходится иметь дело краткосрочной памяти разработчика. В таком случае, он легко может упустить что-нибудь из внимания. Еще Гради Буч говорил, что Архитектура - это многоуровневая система абстракций (где назначение абстракций - управление сложностью).

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

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

P.S.: Кто-то красиво сказал - не важно, сколько вы потратили на написание кода, который не работает как нужно.

#SoftwareDesign #Management #SoftwareArchitecture
👍2
Forwarded from Анастасия
Подключайся 29 сентября к трансляции Hello Conference!
Neal Ford с темой архитектурные стили и паттерны и другие эксперты в IT архитектуре поделятся своими наработками и опытом.
Мы будем говорить про:
• Архитектуру больших данных;
• Корпоративную архитектуру и практику построения сложных систем;
• Процессы создания верификации архитектуры в аgile проектах;
• Платформы, ArchOps, DataMesh.
И многое другое.
Регистрируйся на сайте helloconf.ru и подключайся 29 сентября к трансляции Hello Conference!
Подробная информация, тайминг и анонсы на сайте helloconf.ru.
Как-то я пропустил, что Cloud Native Computing Foundation тоже выпускает технологические радары https://radar.cncf.io/2021-09-devsecops
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Обсуждал с товарищем изобилие баг в приложении одного из банков, и он выдвинул предположение, что это может быть связано с бурными темпами его развития и приоритетом на скорость доставки новых фич в ущерб внутреннему качеству продукта. И привел пару интересных…
Мой товарищ нашел хорошее объяснение, почему некоторые продукты могут быть все же популярны вопреки своей дефектности. Выводы показались мне интересными, не могу не поделиться.

Все просто. Сперва через удачную рекламную стратегию формируется "Каскад доступной информации". Ну а потом, когда баги обнаруживаются клиентом, то работает "Закон иррационального усиления", "Искажение в восприятии сделанного выбора", "Селективное восприятие", "Склонность к подтверждению своей точки зрения", потому что для человека намного проще согласиться с существующим положением дел, и, чтобы подавить "Когнитивный диссонанс", человек старается всеми силами преувеличить существенность принятого им решения, одновременно приуменьшая важность отвергнутого. Вследствие этого альтернатива теряет всякую привлекательность в его глазах.

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

#Psychology #SoftSkills
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Вышла неплохая статья о шифровании чувствительных данных в Event Sourcing: "Protecting Sensitive Data in Event-Sourced Systems with Crypto Shredding" - https://www.eventstore.com/blog/protecting-sensitive-data-in-event-sourced-systems-with-crypto-shredding…
Пару лет назад проблему удаления персональных данных из неизменяемого Event Sourcing лога событий по требованию GDPR освещал Mathias Verraes, и предложил два подхода:

"Eventsourcing Patterns: Forgettable Payloads. Store the sensitive payload of an event in a separate store to control access and removal." by Mathias Verraes
- https://verraes.net/2019/05/eventsourcing-patterns-forgettable-payloads/

"Eventsourcing Patterns: Crypto-Shredding. Encrypt sensitive information in an event and delete the key." by Mathias Verraes
- https://verraes.net/2019/05/eventsourcing-patterns-throw-away-the-key/

#DDD #EventSourcing #Microservices #SoftwareArchitecture #SoftwareDesign
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
"Events should be as small as possible, right?" by Oskar Dudycz - https://event-driven.io/en/events_should_be_as_small_as_possible/ К этому посту можно добавить, что поднятый вопрос известен так же под названием "Event Notification" vs. "Event-Carried State…
Проблеме, озвученной Oskar Dudycz, похожее решение дает Mathias Verraes в статье
"Patterns for Decoupling in Distributed Systems: Segregated Event Layers. Explicitly segregate a Bounded Context's events in visibility layers, with their own language."
- https://verraes.net/2019/05/patterns-for-decoupling-distsys-segregated-event-layers/

#DDD #Microservices #DistributedSystems #SoftwareArchitecture #SoftwareDesign