emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
В последнее время очень популярными стали обсуждения в стиле Agile vs. Architecture. Давайте посмотрим, что говорит по этому поводу Agile Manifesto. Некоторые из принципов Agile Manifesto ( https://agilemanifesto.org/principles.html ): 📝 "Изменение требований…
Kent Beck о роли Архитектора в XP (Agile) команде:
📝 "Architects
Architects on an XP team look for and execute large-scale refactorings, write system-level tests that stress the architecture, and implement stories. Architects apply their expertise a little bit at a time throughout the project. They direct the architecture of the project throughout its evolution. The architecture for a little system should not be the same as for a big system. While the system is little the architect makes sure the system has just the right little architecture. As the system grows, the architect makes sure the architecture keeps pace.
Making big architectural changes in small, safe steps is one of the challenges for an XP team. The principle of the alignment of authority and responsibility suggests that it is a bad idea to give one person the power to make decisions that others have to follow without having to personally live with the consequences. Architects sign up for programming tasks just like any programmer. However, they are also on the lookout for big changes that have big payoffs.
Tests can communicate architectural intent. I talked with the architect of a major credit card processor who said that in such a high-capacity environment you don't want any architecture that might get in the way. To achieve this his team had a sophisticated stress testing environment. When they wanted to improve the architecture they would first improve the stress tests until the system broke. Then they would improve the architecture just enough to run the tests.
I suggested this strategy to an architect at another company. He complained of spending all of his time writing specifications and then explaining them to developers. He was frustrated that he didn't have time to code any more. I suggested he write a testing infrastructure and then use tests instead of specifications and explanations. If he saw a hole in a design he should write a failing test to point it out. I wasn't able to convince him to try the idea, but I still think it's valuable.
Another task for architects on an XP team is partitioning systems. Partitioning isn't an up-front, once-and-for-all task, though. Rather than divide and conquer, an XP team conquers and divides. First a small team writes a small system. Then they find the natural fracture lines and divide the system into relatively independent parts for expansion. The architects help choose the most appropriate fracture lines and then follow the system as a whole, keeping the big picture in mind as the groups focus on their smaller section."
- "Extreme Programming Explained" 2nd edition by Kent Beck
#Agile #SoftwareDesign #SoftwareArchitecture
📝 "Architects
Architects on an XP team look for and execute large-scale refactorings, write system-level tests that stress the architecture, and implement stories. Architects apply their expertise a little bit at a time throughout the project. They direct the architecture of the project throughout its evolution. The architecture for a little system should not be the same as for a big system. While the system is little the architect makes sure the system has just the right little architecture. As the system grows, the architect makes sure the architecture keeps pace.
Making big architectural changes in small, safe steps is one of the challenges for an XP team. The principle of the alignment of authority and responsibility suggests that it is a bad idea to give one person the power to make decisions that others have to follow without having to personally live with the consequences. Architects sign up for programming tasks just like any programmer. However, they are also on the lookout for big changes that have big payoffs.
Tests can communicate architectural intent. I talked with the architect of a major credit card processor who said that in such a high-capacity environment you don't want any architecture that might get in the way. To achieve this his team had a sophisticated stress testing environment. When they wanted to improve the architecture they would first improve the stress tests until the system broke. Then they would improve the architecture just enough to run the tests.
I suggested this strategy to an architect at another company. He complained of spending all of his time writing specifications and then explaining them to developers. He was frustrated that he didn't have time to code any more. I suggested he write a testing infrastructure and then use tests instead of specifications and explanations. If he saw a hole in a design he should write a failing test to point it out. I wasn't able to convince him to try the idea, but I still think it's valuable.
Another task for architects on an XP team is partitioning systems. Partitioning isn't an up-front, once-and-for-all task, though. Rather than divide and conquer, an XP team conquers and divides. First a small team writes a small system. Then they find the natural fracture lines and divide the system into relatively independent parts for expansion. The architects help choose the most appropriate fracture lines and then follow the system as a whole, keeping the big picture in mind as the groups focus on their smaller section."
- "Extreme Programming Explained" 2nd edition by Kent Beck
#Agile #SoftwareDesign #SoftwareArchitecture
Forwarded from Экспресс 42
Отчет о состоянии DevOps в России 2020
Компания Экспресс 42, совместно с конференциями Олега Бунина (Онтико), провели первое исследование состояния DevOps в России. Мы давно вынашивали эту идею, так как понимали, что исследования других компаний не дают ответов на вопросы, как DevOps развивается у нас в России.
В течении августа 2020 мы опросили 889 специалистов и руководителей из разных регионов, отраслей и компаний. В результате получили срез по текущему состоянию инженерных практик и инструментов, проверили гипотезы, как DevOps влияет на производительность и показатели компаний, сравнили результаты с предыдущими исследованиями, выявили тренды развития.
В отчете за 2020 год вы узнаете про следующие темы:
1. Использование ключевых DevOps метрик;
2. Сравнение ключевых метрик с показателями эффективности компаний;
3. Планы компаний на следующий год;
4. Популярные DevOps инструменты;
5. Применение DevOps практик:
1. Платформа как сервис;
2. Инфраструктура как код;
3. Непрерывная поставка и интеграция;
6. Как внедрять и развивать DevOps практики и инструменты;
7. Как связаны Agile и DevOps.
Скачайте отчет о состоянии DevOps в России 2020 прямо сейчас!
Компания Экспресс 42, совместно с конференциями Олега Бунина (Онтико), провели первое исследование состояния DevOps в России. Мы давно вынашивали эту идею, так как понимали, что исследования других компаний не дают ответов на вопросы, как DevOps развивается у нас в России.
В течении августа 2020 мы опросили 889 специалистов и руководителей из разных регионов, отраслей и компаний. В результате получили срез по текущему состоянию инженерных практик и инструментов, проверили гипотезы, как DevOps влияет на производительность и показатели компаний, сравнили результаты с предыдущими исследованиями, выявили тренды развития.
В отчете за 2020 год вы узнаете про следующие темы:
1. Использование ключевых DevOps метрик;
2. Сравнение ключевых метрик с показателями эффективности компаний;
3. Планы компаний на следующий год;
4. Популярные DevOps инструменты;
5. Применение DevOps практик:
1. Платформа как сервис;
2. Инфраструктура как код;
3. Непрерывная поставка и интеграция;
6. Как внедрять и развивать DevOps практики и инструменты;
7. Как связаны Agile и DevOps.
Скачайте отчет о состоянии DevOps в России 2020 прямо сейчас!
Новый доклад от Vladik Khononov ( @vladik_kh ):
"Case Study: Large-Scale Marketing System - DDD Europe 2020"
https://youtu.be/0qsAxb3L8GM
#DDD
"Case Study: Large-Scale Marketing System - DDD Europe 2020"
https://youtu.be/0qsAxb3L8GM
#DDD
YouTube
Case Study: Large-Scale Marketing System - Vladik Khononov - DDD Europe 2020 Vladik Kononov
Domain-Driven Design Europe 2020
http://dddeurope.com - https://twitter.com/ddd_eu
Turns out Domain-Driven Design works not only for cargo shipping. In this session I’d like to share the story of Plexop. Plexop is a large-scale marketing system that spans…
http://dddeurope.com - https://twitter.com/ddd_eu
Turns out Domain-Driven Design works not only for cargo shipping. In this session I’d like to share the story of Plexop. Plexop is a large-scale marketing system that spans…
Хороший сборник советов от Craig Larman, автора терминов GRASP и LESS. Ориентирован на всех - управленцев, архитекторов, разработчиков.
- In English https://less.works/less/technical-excellence/architecture-design.html
- На Русском https://less.works/ru/less/technical-excellence/architecture-design
#Agile #SoftwareDesign #SoftwareArchitecture
- In English https://less.works/less/technical-excellence/architecture-design.html
- На Русском https://less.works/ru/less/technical-excellence/architecture-design
#Agile #SoftwareDesign #SoftwareArchitecture
Large Scale Scrum (LeSS)
Architecture & Design
There are 10 types of people: those who understand binary, and those who do not. --anonymous In landscape architecture there is an *evolutionary design...
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Опубликована третья статья мини-серии статьей про Agile and Architecture by Gregor Hohpe (автор EIP) "Conversation stopper: IT Should Become Agile" https://architectelevator.com/transformation/agile-conversation-stopper/ #Agile #SoftwareArchitecture
Опубликована четвертая (заключительная) статья мини-серии статьей про Agile and Architecture by Gregor Hohpe (автор EIP)
"Lack of Discipline is Agile Failure Mode #1. Slow Chaos isn’t Order."
https://architectelevator.com/transformation/agile-discipline/
#Agile #SoftwareArchitecture
"Lack of Discipline is Agile Failure Mode #1. Slow Chaos isn’t Order."
https://architectelevator.com/transformation/agile-discipline/
#Agile #SoftwareArchitecture
The Architect Elevator
Lack of Discipline is Agile Failure Mode #1
Slow Chaos isn’t Order.
В последнее время часто поднимаются вопросы на тему Роль vs. Должность, Знания vs. Титулы. И мне, почему-то, вспоминается отрывок из фильма "Доктор Хаус", 3 сезон, эпизод 7:
"Когда мне было 14, мой отец был в Японии. Мы занимались скалолазанием с парнем из школы. Он упал и поранился, и мне пришлось отвезти его в больницу. Мы прошли не в тот вход, и попали в фойе. Там был уборщик. У моего друга была инфекция и... доктора не знали, что делать. И они привели... уборщика. Он был доктором. И Бураку. Одним из японских неприкасаемых. Его предки были... убийцами, копателями могил. И этот парень, знал, что его не примет персонал больницы. Он даже не пытался. Он не одевался хорошо. Он не притворялся одним из них. Люди, которые управляли этой больницей, они не знали, что у него было всё, что они хотели. Пока он не понадобился им. Потому что он был прав. Что означает, что ничто другое не имеет значения. И они должны были его слушать. Спасибо."
#Career
"Когда мне было 14, мой отец был в Японии. Мы занимались скалолазанием с парнем из школы. Он упал и поранился, и мне пришлось отвезти его в больницу. Мы прошли не в тот вход, и попали в фойе. Там был уборщик. У моего друга была инфекция и... доктора не знали, что делать. И они привели... уборщика. Он был доктором. И Бураку. Одним из японских неприкасаемых. Его предки были... убийцами, копателями могил. И этот парень, знал, что его не примет персонал больницы. Он даже не пытался. Он не одевался хорошо. Он не притворялся одним из них. Люди, которые управляли этой больницей, они не знали, что у него было всё, что они хотели. Пока он не понадобился им. Потому что он был прав. Что означает, что ничто другое не имеет значения. И они должны были его слушать. Спасибо."
#Career
Моим коллегам, вынужденно находящимся на удаленной работе:
"чем опасен хронический недосып"
https://www.med2.ru/story.php?id=101571
#Career
"чем опасен хронический недосып"
https://www.med2.ru/story.php?id=101571
#Career
Медицина 2.0
Медики рассказали, чем опасен хронический недосып
7 опасных последствий недосыпа.Недосып влечет за собой определенные последствия для здоровья, и некоторые из них отнюдь не пустяковые, а опасны.О том, какие...
Craig Larman:
📝 "Первые две книги по LeSS подчеркивали: в продуктовой разработке нет такого понятия как “лучшие практики” - есть только практики, применение которых целесообразно в конкретном контексте.
Практики ситуационны, и беспечное объявление их “лучшими” отрывает их от мотивации и контекста. Они превращаются в ритуалы, и навязывание так называемых “best practices” убивает культуру обучения, задавания вопросов, вовлечения и непрерывных улучшений. Зачем людям искать чего-то лучшего, если все уже придумано за них?"
- "Знакомство с LeSS" by Craig Larman
https://less.works/ru/less/framework/introduction
См. также: "Серебряной пули нет".
#Agile #SoftwareDesign
📝 "Первые две книги по LeSS подчеркивали: в продуктовой разработке нет такого понятия как “лучшие практики” - есть только практики, применение которых целесообразно в конкретном контексте.
Практики ситуационны, и беспечное объявление их “лучшими” отрывает их от мотивации и контекста. Они превращаются в ритуалы, и навязывание так называемых “best practices” убивает культуру обучения, задавания вопросов, вовлечения и непрерывных улучшений. Зачем людям искать чего-то лучшего, если все уже придумано за них?"
- "Знакомство с LeSS" by Craig Larman
https://less.works/ru/less/framework/introduction
См. также: "Серебряной пули нет".
#Agile #SoftwareDesign
Large Scale Scrum (LeSS)
Знакомство с LeSS
(это глава 2 из книги "Large-Scale Scrum: More with LeSS") Есть два пути конструирования [проектирования]: Один путь - сделать все настолько просто, чт...
Forwarded from Архитектура ИТ-решений
Подарок для методиста https://microservice-api-patterns.org/ Обратите внимание на вводное слайд-шоу в верхнем правом углу
microservice-api-patterns.org
Patterns for API Design
Our Patterns for API Design, also known as Microservice API Patterns (MAP), capture proven solutions to problems commonly encountered when specifying, implementing and maintaining message-based APIs.
MAP focusses on message representations – the payloads…
MAP focusses on message representations – the payloads…
Forwarded from Архитектура ИТ-решений
Или же многобукв для тех, кому это нравится https://microservice-api-patterns.org/introduction
microservice-api-patterns.org
Microservice API Patterns
Our Microservice API Patterns (MAP) distill proven solutions to recurring service interface design and specification problems such as finding well-fitting service granularities, promoting independence among services, or managing the evolution of a microservice…
В одном из архитекторских чатах поднимался вопрос автоматизации архитектурного надзора. Есть надежда, что эти ребята реализуют его в обозримом будущем:
"Ability to control drift between reality and diagrams: Static code analysis allows writing tools that compare the software models with actual code to detect discrepencies (this repo does not provide such a tool at this time)."
- https://github.com/goadesign/model
Вообще, у ребят неплохая экосистема для описания архитектуры и генерации кода по описанию:
"Goa is a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client code, and documentation is derived."
- https://goa.design/learn/introduction/
#Golang #SoftwareArchitecture
"Ability to control drift between reality and diagrams: Static code analysis allows writing tools that compare the software models with actual code to detect discrepencies (this repo does not provide such a tool at this time)."
- https://github.com/goadesign/model
Вообще, у ребят неплохая экосистема для описания архитектуры и генерации кода по описанию:
"Goa is a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client code, and documentation is derived."
- https://goa.design/learn/introduction/
#Golang #SoftwareArchitecture
GitHub
GitHub - goadesign/model: Create your software architecture models and diagrams in Go.
Create your software architecture models and diagrams in Go. - goadesign/model
Проектирование DDD от Nick Tune:
"Domain-Driven Design Starter Modelling Process"
- https://ddd-crew.github.io/ddd-starter-modelling-process/
Исходники:
- https://github.com/ddd-crew/ddd-starter-modelling-process
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices
"Domain-Driven Design Starter Modelling Process"
- https://ddd-crew.github.io/ddd-starter-modelling-process/
Исходники:
- https://github.com/ddd-crew/ddd-starter-modelling-process
#DDD #SoftwareArchitecture #SoftwareDesign #Microservices
ddd-starter-modelling-process
Domain-Driven Design Starter Modelling Process
If you’re new to DDD and not sure where to start, this process will guide you step-by-step
awesome-microfrontends
- https://github.com/ChristianUlbrich/awesome-microfrontends
- https://github.com/rajasegar/awesome-micro-frontends
Если кому мало на Английском:
- https://github.com/semlinker/awesome-micro-frontends
- https://github.com/ChristianUlbrich/awesome-microfrontends
- https://github.com/rajasegar/awesome-micro-frontends
Если кому мало на Английском:
- https://github.com/semlinker/awesome-micro-frontends
GitHub
GitHub - ChristianUlbrich/awesome-microfrontends: A curated list of resources about everything Micro Frontends
A curated list of resources about everything Micro Frontends - ChristianUlbrich/awesome-microfrontends
"The Difference Between a Story and a Task" by Mike Cohn
https://www.mountaingoatsoftware.com/blog/the-difference-between-a-story-and-a-task
Если кому некогда читать, то Ron Jeffries уже дал краткий "пересказ" 🙂:
📝 "the difference between a story and a task is like the difference between pants and underpants: only one of them is a public matter."
https://twitter.com/RonJeffries/status/1314273610148777985?s=19
#Agile
https://www.mountaingoatsoftware.com/blog/the-difference-between-a-story-and-a-task
Если кому некогда читать, то Ron Jeffries уже дал краткий "пересказ" 🙂:
📝 "the difference between a story and a task is like the difference between pants and underpants: only one of them is a public matter."
https://twitter.com/RonJeffries/status/1314273610148777985?s=19
#Agile
Mountain Goat Software
The Difference Between a Story and a Task
Here is the real difference between a story and a task in Scrum.
Тред заслуживает на прочтение:
Where does all this misunderstanding of CQRS and microservices and event sourcing come from?
https://twitter.com/jbogard/status/1315082571118710786?s=19
#DDD #Microservices
Where does all this misunderstanding of CQRS and microservices and event sourcing come from?
https://twitter.com/jbogard/status/1315082571118710786?s=19
#DDD #Microservices
Twitter
jimmybogard.usd 🇺🇦🍻
Where does all this misunderstanding of CQRS and microservices and event sourcing come from? reddit.com/r/microservice…
Архитектура ИТ-решений
Подарок для методиста https://microservice-api-patterns.org/ Обратите внимание на вводное слайд-шоу в верхнем правом углу
Twitter
Gregor
I have a well-known weakness for architecture icons, but these ones are especially nicely done: https://t.co/gDFOKE0Ixi Of course, there are some smart heads behind them, e.g. @pautasso, @uwe_zdun and the Twitter-shy Olaf Zimmermann. #apis #microservices…
На DotNext 2020 Moscow выступит Владимир Хориков (@vkhorikov) — эксперт и автор курсов по Domain Driven Design.
В своем докладе он разберет самые важные аспекты DDD и поможет глубже его понять.
Подробности и билеты: https://t.co/aojAA87L7C
https://dotnext-moscow.ru/2020/msk/talks/23lzgqtlrzsf5b23becvyn/
#DDD
В своем докладе он разберет самые важные аспекты DDD и поможет глубже его понять.
Подробности и билеты: https://t.co/aojAA87L7C
https://dotnext-moscow.ru/2020/msk/talks/23lzgqtlrzsf5b23becvyn/
#DDD
Analyzing the Limits of Connection Scalability in Postgres
https://www.citusdata.com/blog/2020/10/08/analyzing-connection-scalability/
#Database #PostgreSQL
https://www.citusdata.com/blog/2020/10/08/analyzing-connection-scalability/
#Database #PostgreSQL
Citus Data
Analyzing the Limits of Connection Scalability in Postgres
Postgres doesn’t handle large numbers of connections particularly well. This post explores why it’s important to improve connection scalability, followed by an analysis of the limiting aspects of Postgres connection scalability, from memory usage to snapshot…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
В последнее время очень популярными стали обсуждения в стиле Agile vs. Architecture. Давайте посмотрим, что говорит по этому поводу Agile Manifesto. Некоторые из принципов Agile Manifesto ( https://agilemanifesto.org/principles.html ): 📝 "Изменение требований…
О стоимости изменения кода с точки зрения архитектуры - у Len Bass хорошо раскрывается эта тема в главе 7 Modifiability "Architecture in practice" 3d ed.
#Agile #SoftwareDesign #SoftwareArchitecture
#Agile #SoftwareDesign #SoftwareArchitecture