Я уже говорил, что недавно я начал интересоваться инвестициями, и уже накопилась кое-какая информация, которой можно поделиться. Поэтому я завел еще один канал для небольшого круга своих друзей, посвященный теме инвестиций:
- https://news.1rj.ru/str/it2capital
Буду там делиться самым интересным из того, что сам узнаю.
Если кому-то интересно начать изучать эту тему, то присоединяйтесь. Пообщаться в диалоговом режиме можно в чате канала:
- https://news.1rj.ru/str/it2capital_chat
- https://news.1rj.ru/str/it2capital
Буду там делиться самым интересным из того, что сам узнаю.
Если кому-то интересно начать изучать эту тему, то присоединяйтесь. Пообщаться в диалоговом режиме можно в чате канала:
- https://news.1rj.ru/str/it2capital_chat
Telegram
IT to Capital
Про инвестиции без воды, для тех, кто занят, но испытывает интерес. Делюсь самым ценным из того, что сам узнаю.
Чат канала: https://news.1rj.ru/str/it2capital_chat
Чат канала: https://news.1rj.ru/str/it2capital_chat
Ожидаем очередную книгу из серии Vaughn Vernon:
" Principles of Web API Design: Delivering Value with APIs and Microservices" by James Higginbotham
- https://www.informit.com/store/principles-of-web-api-design-delivering-value-with-9780137355631
#DDD #Microservices #Integration #SoftwareDesign #SoftwareArchitecture
" Principles of Web API Design: Delivering Value with APIs and Microservices" by James Higginbotham
- https://www.informit.com/store/principles-of-web-api-design-delivering-value-with-9780137355631
#DDD #Microservices #Integration #SoftwareDesign #SoftwareArchitecture
Informit
Principles of Web API Design: Delivering Value with APIs and Microservices | InformIT
This is a comprehensive, start-to-finish guide to the processes required for effective API design. Unlike other books, it covers the entire lifecycle. Leading API and microservices consultant James Higginbotham shows how API development teams can successfully…
"Adopting an API Design-First Approach" by James Higginbotham
- https://kalele.io/adopting-an-api-design-first-approach/
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #Integration
- https://kalele.io/adopting-an-api-design-first-approach/
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #Integration
Kalele
Adopting an API Design-First Approach
The design of a web API is a separate and critical step of software delivery. The process of API design requires communication that extends beyond the
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
"Would you like architects with your architecture? Architecting your organization to do architecture with or without architects." by Gregor Hohpe - https://architectelevator.com/architecture/organizing-architecture/ Ссылки в этой статье - бесценны! #S…
"Back from the engine room. Architects dive deep to come back up with new insights. Here’s is what I brought back from the serverless cloud integration engine room." by Gregor Hohpe
- https://architectelevator.com/architecture/engine-room/
#EIP #SoftwareArchitecture
- https://architectelevator.com/architecture/engine-room/
#EIP #SoftwareArchitecture
The Architect Elevator
Back from the engine room
Architects dive deep to come back up with new insights. Here’s is what I brought back from the serverless cloud integration engine room.
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
"Domain-Driven Refactoring: Defactoring and Pushing Behavior Down" by Jimmy Bogard - https://jimmybogard.com/domain-driven-refactoring-defactoring-and-pushing-behavior-down/ #SoftwareDesign #Refactoring #DDD
"Domain-Driven Refactoring: Encapsulating Data" by Jimmy Bogard
- https://jimmybogard.com/domain-driven-refactoring-encapsulating-data/
#SoftwareDesign #Refactoring #DDD
- https://jimmybogard.com/domain-driven-refactoring-encapsulating-data/
#SoftwareDesign #Refactoring #DDD
Jimmy Bogard
Domain-Driven Refactoring: Encapsulating Data
Posts in this series:
* Intro
* Procedural Beginnings
* Long Methods
* Extracting Domain Services
* Defactoring and Pushing Behavior Down
* Encapsulating Data
* Encapsulating Collections
In the last post, we looked at using a few common refactorings…
* Intro
* Procedural Beginnings
* Long Methods
* Extracting Domain Services
* Defactoring and Pushing Behavior Down
* Encapsulating Data
* Encapsulating Collections
In the last post, we looked at using a few common refactorings…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Я регулярно упоминаю статью "Clarified CQRS" by Udi Dahan, которая играет критически важное значение в багаже знаний разработчика. На Хабре появился перевод этой статьи: https://m.habr.com/ru/post/545128/ Ну и вообще, парень перевел ряд важных статей: h…
Парень продолжает переводить архи-полезные и архи-актуальные статьи. На этот раз, он перевел ряд статьей Володи Хорикова ( @vkhorikov ). Перечислять все не буду, дам ссылку на список его последних постов:
- https://habr.com/ru/users/ArkadiyXIII/posts/
#DDD #TDD #Testing #FunctionalProgramming
- https://habr.com/ru/users/ArkadiyXIII/posts/
#DDD #TDD #Testing #FunctionalProgramming
Хабр
Посты / Профиль ArkadiyXIII
Максим Аршинов о кроссфункциональности разработчиков:
"Фулстеки — это будущие архитекторы, а не вечные мидлы (если захотят конечно)"
- https://habr.com/ru/post/575118/
#Agile
"Фулстеки — это будущие архитекторы, а не вечные мидлы (если захотят конечно)"
- https://habr.com/ru/post/575118/
#Agile
Хабр
Фулстеки — это будущие архитекторы, а не вечные мидлы (если захотят конечно)
Ой, а напомни как называют очень опытного программиста, там что-то такое романтично-средневековое, кажется «милорд»... Homo vitruvianus — изображение, созданное Леонардо да Винчи в 1492 году. Леонардо...
"The Specification contravariant functor by Mark Seemann"
- https://blog.ploeh.dk/2021/09/09/the-specification-contravariant-functor/
"Contravariant functors" by Mark Seemann
- https://blog.ploeh.dk/2021/09/02/contravariant-functors/
"The Reader functor" by Mark Seemann
- https://blog.ploeh.dk/2021/08/30/the-reader-functor/
"The Command Handler contravariant functor" by Mark Seemann
- https://blog.ploeh.dk/2021/09/06/the-command-handler-contravariant-functor/
#FunctionalProgramming
- https://blog.ploeh.dk/2021/09/09/the-specification-contravariant-functor/
"Contravariant functors" by Mark Seemann
- https://blog.ploeh.dk/2021/09/02/contravariant-functors/
"The Reader functor" by Mark Seemann
- https://blog.ploeh.dk/2021/08/30/the-reader-functor/
"The Command Handler contravariant functor" by Mark Seemann
- https://blog.ploeh.dk/2021/09/06/the-command-handler-contravariant-functor/
#FunctionalProgramming
blog.ploeh.dk
The Specification contravariant functor
An introduction for object-oriented programmers to the Specification contravariant functor.
Как себя преподнести
От одного топ-менеджера, как себя преподнести:
1. Я понимаю что Вы хотите
2. Я понимаю как туда идти
3. Я беру ответственность за этот результат
4. Я готов взращивать команду, учить, растить, = увеличивать потенциал зарабатывать прибыль
Не надо говорить про навыки и компетенции, главный навык - это выше.
#топ #практика #итменеджмент
via 📢@it_ace
От одного топ-менеджера, как себя преподнести:
1. Я понимаю что Вы хотите
2. Я понимаю как туда идти
3. Я беру ответственность за этот результат
4. Я готов взращивать команду, учить, растить, = увеличивать потенциал зарабатывать прибыль
Не надо говорить про навыки и компетенции, главный навык - это выше.
#топ #практика #итменеджмент
via 📢@it_ace
Кейс проектирования банка в 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
Возрадуйтесь, дорогие корпоративные архитекторы в банках!
Archi Banking Group: Combining the BIAN Reference Model, ArchiMate® Modeling Notation, and the TOGAF® Framework
Описание 👉здесь
Файл Archimate 👉здесь (для импорта в Archi, например)
P.S. Файл Archimate скачивайте по инструкции в ссылке, иначе нормально не скачается
#кейс #фрейм #архитектура
via 📢@it_ace
publications.opengroup.org
Archi Banking Group: Combining the BIAN Reference Model, ArchiMate® Modeling Notation, and the TOGAF® Framework
This Case Study is a fictitious example developed to illustrate the combined use of the Banking Industry Architecture Network (BIAN) Reference Model with the ArchiMate® modeling notation and the TOGAF® framework (both standards of The Open Group).
Forwarded from Evgeny
"The Busy Developers's Guide to Go Profiling, Tracing and Observability"
- https://github.com/DataDog/go-profiler-notes/blob/main/guide/README.md
#Golang
- https://github.com/DataDog/go-profiler-notes/blob/main/guide/README.md
#Golang
GitHub
go-profiler-notes/guide/README.md at main · DataDog/go-profiler-notes
felixge's notes on the various go profiling methods that are available. - DataDog/go-profiler-notes
Forwarded from IT to Capital
Event Storming на примере архитектуры фондовой биржи. Цикл статей от IBM:
- https://developer.ibm.com/tutorials/reactive-in-practice-1/
- https://developer.ibm.com/tutorials/reactive-in-practice-1/
Ibm
IBM Developer
IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
Forwarded from IT to Capital
IBM Stock Trader - Org containing a repository per microservice in the IBM Stock Trader cloud-native sample application
- https://github.com/IBMStockTrader
- https://developer.ibm.com/blogs/introducing-stocktrader/
- https://github.com/IBMStockTrader
- https://developer.ibm.com/blogs/introducing-stocktrader/
GitHub
IBM/Kyndryl Stock Trader
Org containing a repository per microservice in the IBM/Kyndryl Stock Trader cloud-native sample application - IBM/Kyndryl Stock Trader
Scott Wlaschin про DDD и FP:
"Domain-Driven Design meets Functional Programming"
- https://blog.avanscoperta.it/2021/09/14/domain-driven-design-meets-functional-programming-scott-wlaschin/
#DDD #FunctionalProgramming #SoftwareDesing
"Domain-Driven Design meets Functional Programming"
- https://blog.avanscoperta.it/2021/09/14/domain-driven-design-meets-functional-programming-scott-wlaschin/
#DDD #FunctionalProgramming #SoftwareDesing
Avanscoperta Blog
Domain-Driven Design meets Functional Programming
Scott Wlaschin is interviewed by Matteo Baglini. What makes Domain-Driven Design and Functional Programming a nice pair, how do they work well together and how to get the most out of them.
Статистика популярности языков программирования от 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/
"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/
JetBrains: Developer Tools for Professionals and Teams
The State of Developer Ecosystem in 2021 Infographic
The State of Developer Ecosystem 2021 is a detailed report about the programming community, which covers the latest trends in languages, tools, technologies, and lifestyles of developers.
Может ли одна CQRS-команда изменять несколько агрегатов пакетно? Довольно частый вопрос. Пара статей, которые затрагивают эту тему:
- https://enterprisecraftsmanship.com/posts/ddd-bulk-operations/#command
- https://udidahan.com/2009/01/24/ddd-many-to-many-object-relational-mapping/
#DDD #SoftwareDesign
- https://enterprisecraftsmanship.com/posts/ddd-bulk-operations/#command
- https://udidahan.com/2009/01/24/ddd-many-to-many-object-relational-mapping/
#DDD #SoftwareDesign
Enterprise Craftsmanship
DDD and bulk operations
Combining bulk operations with Domain-Driven Design is a tough problem. In this article, we’ll look at why that is so and discuss ways to marry the two.
Обсуждал с товарищем изобилие баг в приложении одного из банков, и он выдвинул предположение, что это может быть связано с бурными темпами его развития и приоритетом на скорость доставки новых фич в ущерб внутреннему качеству продукта. И привел пару интересных цитат:
> 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
> 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
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
В продолжение темы о ключевом моменте Agile - есть два очень хороших тезиса:
📝 "At the core of understanding this argument is the software change curve. The change curve says that as the project runs, it becomes exponentially more expensive to make changes.…
📝 "At the core of understanding this argument is the software change curve. The change curve says that as the project runs, it becomes exponentially more expensive to make changes.…
👍2