emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Гы... недавно был холиварчик в архитекторской группе на эту тему. Там же: 📝 "A software architect who does not code is like a cook who does not eat." - Grady Booch https://twitter.com/Grady_Booch/status/1301810374598033408?s=19 #SoftwareDesign #SftwareArchitecture
📝 "The “real place” in software development is the code, which suggests that first-level managers are master programmers who are frequently evaluating the code."
- https://less.works/less/principles/systems-thinking.html
📝 "“Место, где происходит реальная работа” в программировании - это код, из чего следует, что первоклассными менеджерами должны становиться лучшие разработчики, которые часто оценивают код."
- https://less.works/ru/less/principles/systems-thinking.html
- Craig Larman, известный как создатель GRASP и LESS
#Agile #Career
- https://less.works/less/principles/systems-thinking.html
📝 "“Место, где происходит реальная работа” в программировании - это код, из чего следует, что первоклассными менеджерами должны становиться лучшие разработчики, которые часто оценивают код."
- https://less.works/ru/less/principles/systems-thinking.html
- Craig Larman, известный как создатель GRASP и LESS
#Agile #Career
Large Scale Scrum (LeSS)
Systems Thinking
I took a speed reading course and read “War and Peace” in twenty minutes. It involves Russia. —Woody Allen “No matter what we do, the number of defects...
awesome-workflow-engines - A curated list of awesome open source workflow engines
https://github.com/meirwah/awesome-workflow-engines
Говоря по-русски - список движков для оркестрации и SAGA-транзакций.
[UPDATE]: http://meirwah.github.io/awesome-workflow-engines/
#Microservices
https://github.com/meirwah/awesome-workflow-engines
Говоря по-русски - список движков для оркестрации и SAGA-транзакций.
[UPDATE]: http://meirwah.github.io/awesome-workflow-engines/
#Microservices
GitHub
GitHub - meirwah/awesome-workflow-engines: A curated list of awesome open source workflow engines
A curated list of awesome open source workflow engines - meirwah/awesome-workflow-engines
Don't miss @vladikk talking about how #eventsourcing was the simple solution to some complex user and business requirements. How did he solve technical deficit with event sourcing? https://t.co/dMcTyA3E0h
"A Story of Simple Solutions that Led to Complex Problems"
https://www.eventstore.com/blog/a-story-of-simple-solutions-that-led-to-complex-problems
#DDD #Microservices
"A Story of Simple Solutions that Led to Complex Problems"
https://www.eventstore.com/blog/a-story-of-simple-solutions-that-led-to-complex-problems
#DDD #Microservices
Eventstore
A Story of Simple Solutions that Led to Complex Problems
Vladik Khononov writes about the time a seemingly simple solution led to a complex series of problems
Новый Reference Application на .NET от Chris Richardson
"Eventuate Tram Customers and Orders - .NET version"
https://github.com/eventuate-examples/eventuate-tram-core-dotnet-examples-customers-and-orders
#DDD #Microservices
"Eventuate Tram Customers and Orders - .NET version"
https://github.com/eventuate-examples/eventuate-tram-core-dotnet-examples-customers-and-orders
#DDD #Microservices
GitHub
GitHub - eventuate-examples/eventuate-tram-core-dotnet-examples-customers-and-orders
Contribute to eventuate-examples/eventuate-tram-core-dotnet-examples-customers-and-orders development by creating an account on GitHub.
Forwarded from Архитектура ИТ-решений
Как-то раньше я и не задумывался о том, что подходы к развертыванию приложений можно взять и пересчитать https://thenewstack.io/deployment-strategies/ а еще и анимированными картинками сопроводить
The New Stack
Six Strategies for Application Deployment
There are a variety of techniques to deploy new applications to production, so choosing the right strategy is an important
Третья книга 2020 года по SRE от Google:
"Building Secure & Reliable Systems"
https://landing.google.com/sre/books/
Можно скачать с первоисточника.
#Microservices #SRE #DevOps
"Building Secure & Reliable Systems"
https://landing.google.com/sre/books/
Можно скачать с первоисточника.
#Microservices #SRE #DevOps
Неплохая статья на тему OOP vs Procedural Programming. Дает еще одну точку зрения на Anemic Domain Model.
"Classes vs. Data Structures"
http://blog.cleancoder.com/uncle-bob/2019/06/16/ObjectsAndDataStructures.html
Очень хорошо эта тема раскрывается в главе "Chapter 6: Objects and Data Structures : Data/Object Anti-Symmetry" книги “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. Martin.
Еще на эту тему:
"Что такое expression problem, или О дуализме функционального и объектно-ориентированного программирования"
https://ru.hexlet.io/blog/posts/expression-problem
#SoftwareDesign #DDD
"Classes vs. Data Structures"
http://blog.cleancoder.com/uncle-bob/2019/06/16/ObjectsAndDataStructures.html
Очень хорошо эта тема раскрывается в главе "Chapter 6: Objects and Data Structures : Data/Object Anti-Symmetry" книги “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. Martin.
Еще на эту тему:
"Что такое expression problem, или О дуализме функционального и объектно-ориентированного программирования"
https://ru.hexlet.io/blog/posts/expression-problem
#SoftwareDesign #DDD
ru.hexlet.io
Что такое expression problem, или О дуализме функционального и объектно-ориентированного программирования
В этой статье идёт речь об expression problem, а наглядные примеры кода показывают, как эта проблема проявляется в реальных программах.
Перевод монументальной статьи "Is Design Dead?" by M.Fowler о том, как избежать крайностей в архитектуре приложения при Agile разработке: http://citforum.ru/SE/project/design_dead/
#SoftwareDesign #SoftwareArchitecture #Agile
#SoftwareDesign #SoftwareArchitecture #Agile
Поговорим немного о целесообразности посещения курсов. Курсы, конечно, бывают разные, и их нужно рассматривать дифференцировано. Но будем считать, что нам посчастливилось найти качественные курсы. Насколько целесообразно их посещение?
Software Construction/Design/Architecture - это довольно обширная область знаний, на глубокое изучение которой может и жизни не хватить. Но нужна ли глубина везде и во всем?
Для полноценного развития специалиста нужно поддерживать баланс между глубиной и охватом знаний (кругозором).
Работу нужно делать здесь и сейчас, поэтому глубина знаний должна быть ориентирована на решение насущных боевых задач. Однако, не все задачи типовые, и это как раз та область, где оказывается востребованным кругозор, чтобы понимать в каком направлении переориентировать фокус своей глубины знаний.
Недостаток кругозора вызывает "зашоренность" (от слова "шоры"). Шоры ограничивают обзорность. Но нужно понимать, что коню надевают шоры именно потому, что им управляет наездник, обладающий необходимой обзорностью, и только вместе они являются единицей участия в скачках.
Литература дает хорошую глубину знаний, однако, темпы освоения литературы работающим специалистом зачастую недостаточны для формирования требуемого кругозора. Это как раз та ниша, где курсы могут дать в короткое время необходимую обзорность знаний, не отвлекая на себя много ресурсов времени от ключевых вопросов. Они позволяют очертить горизонты знаний, и облегчить ориентирование. Так же они позволяют дать еще одну точку зрения на собственную структуру знаний, кристилизовать их, обнаружить пробелы, расставить приоритеты.
Приоритеты - вот то, что является важным, и здесь так же действует "Принцип Парето".
Существуют разные источники информации, которые дают разную глубину знаний. Мы можем сортировать эти источники в соответствии с приоритетами. Это позволяет нам вписываться в лимитированные ресурсы времени.
На этой неделе я посетил один из курсов от https://www.luxoft-training.ru/training/katalog_kursov/ именно по этой причине - мне нужно было в лимитированные ресурсы времени получить необходимый кругозор знаний по вопросам, которые для меня в настоящий момент не являются приоритетными, но с которыми мне тоже приходится работать (речь идет о методиках документирования архитектуры), вскрыть пробелы, систематизировать и подвергнуть ревизии свои знания.
Впечатления остались весьма позитивные. Ожидания полностью оправдались. К тому же там снабжают необходимыми методичками, и проделывают за вас всю работу по дисцилляции весьма увесистого объема литературы.
Можно выделить следующие направления:
- https://www.luxoft-training.ru/training/katalog_kursov/arkhitektura-po/
- https://www.luxoft-training.ru/training/katalog_kursov/upravlencheskaya_effektivnost_i_kommunikatsii/
- https://www.luxoft-training.ru/training/katalog_kursov/lichnaya_effektivnost/
- https://www.luxoft-training.ru/training/katalog_kursov/testirovanie/
- https://www.luxoft-training.ru/training/katalog_kursov/sistemnyy-analiz/
- https://www.luxoft-training.ru/training/katalog_kursov/biznes-analiz/
- https://www.luxoft-training.ru/training/katalog_kursov/upravlenie_proektami_razrabotki_po/
Пост отражает мое мнение и не является рекламой.
Если вы ищите курсы, то я бы советовал еще присмотреться к курсам @vkhorikov (на мой взгляд, у него лучшие русскоязычные курсы по DDD и тестированию):
- https://www.pluralsight.com/authors/vladimir-khorikov
- https://it.eductera.com/experts/expert/52/
P.S.: посещение курсов и конференций у нас в компании оплачивается, засчитывается в рабочее время, и даже является обязательным. Так что, если вы в поиске более лучших условий для своего профессионального роста как разработчик (и есть желание делать это на Golang), то можете обратиться ко мне в приват - окажу содействие нашему HR.
#Career #SoftwareDesign #SoftwareArchitecture
Software Construction/Design/Architecture - это довольно обширная область знаний, на глубокое изучение которой может и жизни не хватить. Но нужна ли глубина везде и во всем?
Для полноценного развития специалиста нужно поддерживать баланс между глубиной и охватом знаний (кругозором).
Работу нужно делать здесь и сейчас, поэтому глубина знаний должна быть ориентирована на решение насущных боевых задач. Однако, не все задачи типовые, и это как раз та область, где оказывается востребованным кругозор, чтобы понимать в каком направлении переориентировать фокус своей глубины знаний.
Недостаток кругозора вызывает "зашоренность" (от слова "шоры"). Шоры ограничивают обзорность. Но нужно понимать, что коню надевают шоры именно потому, что им управляет наездник, обладающий необходимой обзорностью, и только вместе они являются единицей участия в скачках.
Литература дает хорошую глубину знаний, однако, темпы освоения литературы работающим специалистом зачастую недостаточны для формирования требуемого кругозора. Это как раз та ниша, где курсы могут дать в короткое время необходимую обзорность знаний, не отвлекая на себя много ресурсов времени от ключевых вопросов. Они позволяют очертить горизонты знаний, и облегчить ориентирование. Так же они позволяют дать еще одну точку зрения на собственную структуру знаний, кристилизовать их, обнаружить пробелы, расставить приоритеты.
Приоритеты - вот то, что является важным, и здесь так же действует "Принцип Парето".
Существуют разные источники информации, которые дают разную глубину знаний. Мы можем сортировать эти источники в соответствии с приоритетами. Это позволяет нам вписываться в лимитированные ресурсы времени.
На этой неделе я посетил один из курсов от https://www.luxoft-training.ru/training/katalog_kursov/ именно по этой причине - мне нужно было в лимитированные ресурсы времени получить необходимый кругозор знаний по вопросам, которые для меня в настоящий момент не являются приоритетными, но с которыми мне тоже приходится работать (речь идет о методиках документирования архитектуры), вскрыть пробелы, систематизировать и подвергнуть ревизии свои знания.
Впечатления остались весьма позитивные. Ожидания полностью оправдались. К тому же там снабжают необходимыми методичками, и проделывают за вас всю работу по дисцилляции весьма увесистого объема литературы.
Можно выделить следующие направления:
- https://www.luxoft-training.ru/training/katalog_kursov/arkhitektura-po/
- https://www.luxoft-training.ru/training/katalog_kursov/upravlencheskaya_effektivnost_i_kommunikatsii/
- https://www.luxoft-training.ru/training/katalog_kursov/lichnaya_effektivnost/
- https://www.luxoft-training.ru/training/katalog_kursov/testirovanie/
- https://www.luxoft-training.ru/training/katalog_kursov/sistemnyy-analiz/
- https://www.luxoft-training.ru/training/katalog_kursov/biznes-analiz/
- https://www.luxoft-training.ru/training/katalog_kursov/upravlenie_proektami_razrabotki_po/
Пост отражает мое мнение и не является рекламой.
Если вы ищите курсы, то я бы советовал еще присмотреться к курсам @vkhorikov (на мой взгляд, у него лучшие русскоязычные курсы по DDD и тестированию):
- https://www.pluralsight.com/authors/vladimir-khorikov
- https://it.eductera.com/experts/expert/52/
P.S.: посещение курсов и конференций у нас в компании оплачивается, засчитывается в рабочее время, и даже является обязательным. Так что, если вы в поиске более лучших условий для своего профессионального роста как разработчик (и есть желание делать это на Golang), то можете обратиться ко мне в приват - окажу содействие нашему HR.
#Career #SoftwareDesign #SoftwareArchitecture
Та самая книга, которую никто не читал, но которую все знают 🙂))
#Юмор
#Юмор
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
"The Architect’s Path (Part 1)" by Gregor Hohpe https://architectelevator.com/architecture/architect-path/ #SoftwareArchitecture #Career
"The Architect’s Path (Part 2 - Implementation)" by Gregor Hohpe
https://architectelevator.com/architecture/architect-bookshelf/
#SoftwareArchitecture #Career
https://architectelevator.com/architecture/architect-bookshelf/
#SoftwareArchitecture #Career
The Architect Elevator
The Architect’s Path (Part 2 - Bookshelf)
Growing an architect is different from growing a system. This bookshelf will help.
"C# 9 Records as DDD Value Objects" by Vladimir Khorikov
https://enterprisecraftsmanship.com/posts/csharp-records-value-objects/
#DDD
https://enterprisecraftsmanship.com/posts/csharp-records-value-objects/
#DDD
Enterprise Craftsmanship
C# 9 Records as DDD Value Objects
Today, we’ll talk about the new C# 9 feature, Records, and whether or not they can be used as DDD value objects.
Две превосходные статьи про Культ Карго в программировании:
1. "Культ карго в программировании", Сергей Тепляков
http://sergeyteplyakov.blogspot.com/2013/09/blog-post_24.html
2. "Cargo Cult Software Engineering" by Steve McConnell
https://stevemcconnell.com/articles/cargo-cult-software-engineering/
#Career #Agile #SoftwareDesign #SoftwareDevelopment
1. "Культ карго в программировании", Сергей Тепляков
http://sergeyteplyakov.blogspot.com/2013/09/blog-post_24.html
2. "Cargo Cult Software Engineering" by Steve McConnell
https://stevemcconnell.com/articles/cargo-cult-software-engineering/
#Career #Agile #SoftwareDesign #SoftwareDevelopment
Blogspot
Культ карго в программировании
Замечали ли вы за собой, своими коллегами или друзьями одну интересную особенность: когда у кого-то начинает что-либо хорошо получаться, то ...
"Domain, Subdomain, Bounded Context, Problem/Solution Space in DDD: Clearly Defined" by Nick Tune
https://medium.com/nick-tune-tech-strategy-blog/domains-subdomain-problem-solution-space-in-ddd-clearly-defined-e0b49c7b586c
#DDD #Microservices
https://medium.com/nick-tune-tech-strategy-blog/domains-subdomain-problem-solution-space-in-ddd-clearly-defined-e0b49c7b586c
#DDD #Microservices
Medium
Domain, Subdomain, Bounded Context, Problem/Solution Space in DDD: Clearly Defined
Domain-Driven Design is an approach to designing systems, usually software, that emphasises creating a common language between domain…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
На Хабре есть перевод упомянутой статьи: "Предметно-ориентированная микросервисная архитектура от Uber", автор оригинала: Adam Gluck https://m.habr.com/ru/company/flant/blog/514830/ #Microservices #DDD
Еще один комментарий в сторону Uber, на этот раз - от Nick Tune:
"If DDD had clear definitions, maybe Uber wouldn't have created their own definitions."
https://ntcoding.medium.com/my-main-problems-are-c779a6d62da
#DDD #Microservices
"If DDD had clear definitions, maybe Uber wouldn't have created their own definitions."
https://ntcoding.medium.com/my-main-problems-are-c779a6d62da
#DDD #Microservices
Medium
My main problems are:
1. Arguments frequently end up discussing the semantics of these concepts rather than using them to explore ideas and solve problems (see…
📝 "Patterns are the antidote to the suck/rock dichotomy.
There's far too many isolated tweets dispensing architecture advice that ignores context/problem + solutions/benefits/drawbacks. 😢"
- Chris Richardson
https://twitter.com/crichardson/status/1331696743382097920?s=19
#Microservices #SoftwareDesign #SoftwareArchitecture
There's far too many isolated tweets dispensing architecture advice that ignores context/problem + solutions/benefits/drawbacks. 😢"
- Chris Richardson
https://twitter.com/crichardson/status/1331696743382097920?s=19
#Microservices #SoftwareDesign #SoftwareArchitecture
Twitter
Chris Richardson
Patterns are the antidote to the suck/rock dichotomy. There's far too many isolated tweets dispensing architecture advice that ignores context/problem + solutions/benefits/drawbacks. 😢 https://t.co/73Zoynv478
📝 "✨New educational materials!✨
Today I'm announcing two new, free resources I've written: an 8-lecture course on fundamentals of distributed systems, and a 30-page tutorial on elliptic curve cryptography. https://martin.kleppmann.com/2020/11/18/distributed-systems-and-elliptic-curves.html "
- Martin Kleppmann
https://twitter.com/martinkl/status/1329051710019543041?s=19
P.S.: Если кто не знает, Martin Kleppmann - один из лучших авторов по распределенным системам. Автор "Кабанчика".
The distributed systems course comprises about 7 hours of video and 87 pages of lecture notes. It covers the following topics:
1. Introduction: distributed systems, computer networks, and RPC
2. System models: network faults, crash and Byzantine faults, synchrony assumptions
3. Physical clocks, clock synchronisation, and causality
4. Logical time, broadcast protocols (reliable, FIFO, causal, total order)
5. Replication, quorum protocols, state machine replication
6. Consensus, details on the Raft consensus algorithm
7. Replica consistency, two-phase commit, linearizability, eventual consistency
8. Case studies: collaboration software, Google’s Spanner
#SoftwareDesign #DistributedSystems #SoftwareArchitecture
Today I'm announcing two new, free resources I've written: an 8-lecture course on fundamentals of distributed systems, and a 30-page tutorial on elliptic curve cryptography. https://martin.kleppmann.com/2020/11/18/distributed-systems-and-elliptic-curves.html "
- Martin Kleppmann
https://twitter.com/martinkl/status/1329051710019543041?s=19
P.S.: Если кто не знает, Martin Kleppmann - один из лучших авторов по распределенным системам. Автор "Кабанчика".
The distributed systems course comprises about 7 hours of video and 87 pages of lecture notes. It covers the following topics:
1. Introduction: distributed systems, computer networks, and RPC
2. System models: network faults, crash and Byzantine faults, synchrony assumptions
3. Physical clocks, clock synchronisation, and causality
4. Logical time, broadcast protocols (reliable, FIFO, causal, total order)
5. Replication, quorum protocols, state machine replication
6. Consensus, details on the Raft consensus algorithm
7. Replica consistency, two-phase commit, linearizability, eventual consistency
8. Case studies: collaboration software, Google’s Spanner
#SoftwareDesign #DistributedSystems #SoftwareArchitecture
Twitter
Martin Kleppmann
✨New educational materials!✨ Today I'm announcing two new, free resources I've written: an 8-lecture course on fundamentals of distributed systems, and a 30-page tutorial on elliptic curve cryptography. martin.kleppmann.com/2020/11/18/dis…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
📝 "✨New educational materials!✨ Today I'm announcing two new, free resources I've written: an 8-lecture course on fundamentals of distributed systems, and a 30-page tutorial on elliptic curve cryptography. https://martin.kleppmann.com/2020/11/18/distributed…
📝 "The distributed systems course covers many of the fundamental algorithms behind today's apps. It consists of 87 pages of detailed notes (including exercises) https://t.co/5PmH0ESwDh and 7 hours of lecture videos https://t.co/oXvqzaTwrX "
- Martin Kleppmann
https://twitter.com/martinkl/status/1329052185183854593?s=19
#SoftwareDesign #SoftwareArchitecture #DistributedSystems
- Martin Kleppmann
https://twitter.com/martinkl/status/1329052185183854593?s=19
#SoftwareDesign #SoftwareArchitecture #DistributedSystems