emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Наши авторы тоже хорошо пишут о распределенных вычислениях: - Косяков М. С. "Введение в распределенные вычисления.". — СПб: НИУ ИТМО, 2014. — С. 75-82. — 155 с. http://books.ifmo.ru/file/pdf/1551.pdf P.S.: Если вдруг кто-то пропустил конспект Martin Kleppmann…
Если вдруг кто не знал, последнюю версию "Distributed systems: principles and paradigms" 3d edition (2017) by Andrew S. Tanenbaum, Maarten Van Steen можно скачать бесплатно на официальном сайте:
- https://www.distributed-systems.net/index.php/books/ds3/
[UPDATE]: Даже версию 3.03 (2020).
#DistributedSystems #DDD
- https://www.distributed-systems.net/index.php/books/ds3/
[UPDATE]: Даже версию 3.03 (2020).
#DistributedSystems #DDD
DISTRIBUTED-SYSTEMS.NET
Distributed Systems 3rd edition (2017) - DISTRIBUTED-SYSTEMS.NET
Get your free copy of Distributed Systems
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Скомпилировал все сообщения на тему "Может ли CQRS-команда возвращать результат" в отдельную статью: https://emacsway.github.io/ru/cqrs-command-and-result/ Статья получилась достаточно тяжелой, и для подавляющего большинства специалистов такая детализация…
Еще одно исследование на тему может ли CQRS-команда возвращать результат:
- "Can command return a value?" by Oskar Dudycz
https://event-driven.io/en/can_command_return_a_value/
- "CQRS facts and myths explained" by Oskar Dudycz
https://event-driven.io/en/cqrs_facts_and_myths_explained/
Предыдущее обсуждение:
- https://news.1rj.ru/str/emacsway_log/476
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #FunctionalProgramming #OOP #CQRS #CQS
- "Can command return a value?" by Oskar Dudycz
https://event-driven.io/en/can_command_return_a_value/
- "CQRS facts and myths explained" by Oskar Dudycz
https://event-driven.io/en/cqrs_facts_and_myths_explained/
Предыдущее обсуждение:
- https://news.1rj.ru/str/emacsway_log/476
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #FunctionalProgramming #OOP #CQRS #CQS
Oskar Dudycz
Can command return a value?
Event-Driven by Oskar Dudycz
Как-то я не заметил вовремя этот пост:
"What's the difference between a command and an event?" by Oskar Dudycz
- https://event-driven.io/en/whats_the_difference_between_event_and_command/
Кстати, на этот вопрос очень хорошо отвечает "Open Agile Architecture™" - A Standard of "The Open Group" в разделе
"21.2.1. Concepts of Command, Query, and Event"
- https://pubs.opengroup.org/architecture/o-aa-standard/#KLP-EDA-event-command
Там есть вот такая простая и понятная картинка:
- https://pubs.opengroup.org/architecture/o-aa-standard/images/command-query-event.png
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #CQRS
"What's the difference between a command and an event?" by Oskar Dudycz
- https://event-driven.io/en/whats_the_difference_between_event_and_command/
Кстати, на этот вопрос очень хорошо отвечает "Open Agile Architecture™" - A Standard of "The Open Group" в разделе
"21.2.1. Concepts of Command, Query, and Event"
- https://pubs.opengroup.org/architecture/o-aa-standard/#KLP-EDA-event-command
Там есть вот такая простая и понятная картинка:
- https://pubs.opengroup.org/architecture/o-aa-standard/images/command-query-event.png
#DDD #Microservices #SoftwareDesign #SoftwareArchitecture #CQRS
Oskar Dudycz
What's the difference between a command and an event?
Event-Driven by Oskar Dudycz
"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 Transfer":
- https://martinfowler.com/articles/201701-event-driven.html
, где "Event Notification" обладает более лучшим Consistency при недостатке Availability (в контексте CAP-theorem), а "Event-Carried State Transfer" - наоборот (лучше Availability при недостатке Consistency). Этот критерий является ключевым при выборе решения.
Иногда "Event Notification" используется сознательно из соображений коммутативности, для компенсации гонки сообщений в условиях конкурирующих подписчиков (не самое интересное решение, но недорогое, и в ряде случаев оно работает):
- https://news.1rj.ru/str/emacsway_log/58
- https://emacsway.github.io/ru/message-ordering-in-competing-consumers/#id3
Идея автора создавать несколько вариантов событий под разные клиенты выглядит весьма дискуссионной, так как вынуждает отправителя сообщения быть осведомленным о потребностях разных групп своих клиентов, что формирует двустороннюю осведомленность, которую желательно избегать для достижения Low Coupling.
Это признает и сам автор:
"We’re also risking bigger coupling between services. We need to know what other modules need, and our module must adapt."
Аналогию с BFF я не могу назвать удачной, потому что BFF находится, все-таки, в зоне ответственности потребителя:
"The BFF is tightly coupled to a specific user experience, and will typically be maintained by the same team as the user interface, thereby making it easier to define and adapt the API as the UI requires, while also simplifying process of lining up release of both the client and server components."
- https://samnewman.io/patterns/architectural/bff/
- https://samnewman.io/pattern-img/bff/team-ownership.jpg
Автор это тоже понимает, и предлагает решение:
"I suggest splitting events into Internal and External. Internal are meaningful in the specific module context. External are understandable in the context of the entire system and overall business process."
Это действительно было бы решением, если бы только микросервис не был единицей развертывания, а Bounded Context (включая микросервис) - границей автономности команды:
- https://news.1rj.ru/str/emacsway_log/302
- https://news.1rj.ru/str/emacsway_log/343
BFF отличается тем, что не нарушает ни единиц развертываения, ни границ автономности команд. Скорее наоборот - он продиктован этими целями.
А нарушение автономности команд является ключевым препятствием в их масштабировании:
- https://news.1rj.ru/str/emacsway_log/313
- https://news.1rj.ru/str/emacsway_log/510
В маленьких коллективах это не критично, но в больших - это имеет решающее значение.
Разве что только подумать о применении подхода Sidecar по аналогии с BFF:
- https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar
#DDD #Microservices #DistributedSystems #SoftwareArchitecture
- https://event-driven.io/en/events_should_be_as_small_as_possible/
К этому посту можно добавить, что поднятый вопрос известен так же под названием "Event Notification" vs. "Event-Carried State Transfer":
- https://martinfowler.com/articles/201701-event-driven.html
, где "Event Notification" обладает более лучшим Consistency при недостатке Availability (в контексте CAP-theorem), а "Event-Carried State Transfer" - наоборот (лучше Availability при недостатке Consistency). Этот критерий является ключевым при выборе решения.
Иногда "Event Notification" используется сознательно из соображений коммутативности, для компенсации гонки сообщений в условиях конкурирующих подписчиков (не самое интересное решение, но недорогое, и в ряде случаев оно работает):
- https://news.1rj.ru/str/emacsway_log/58
- https://emacsway.github.io/ru/message-ordering-in-competing-consumers/#id3
Идея автора создавать несколько вариантов событий под разные клиенты выглядит весьма дискуссионной, так как вынуждает отправителя сообщения быть осведомленным о потребностях разных групп своих клиентов, что формирует двустороннюю осведомленность, которую желательно избегать для достижения Low Coupling.
Это признает и сам автор:
"We’re also risking bigger coupling between services. We need to know what other modules need, and our module must adapt."
Аналогию с BFF я не могу назвать удачной, потому что BFF находится, все-таки, в зоне ответственности потребителя:
"The BFF is tightly coupled to a specific user experience, and will typically be maintained by the same team as the user interface, thereby making it easier to define and adapt the API as the UI requires, while also simplifying process of lining up release of both the client and server components."
- https://samnewman.io/patterns/architectural/bff/
- https://samnewman.io/pattern-img/bff/team-ownership.jpg
Автор это тоже понимает, и предлагает решение:
"I suggest splitting events into Internal and External. Internal are meaningful in the specific module context. External are understandable in the context of the entire system and overall business process."
Это действительно было бы решением, если бы только микросервис не был единицей развертывания, а Bounded Context (включая микросервис) - границей автономности команды:
- https://news.1rj.ru/str/emacsway_log/302
- https://news.1rj.ru/str/emacsway_log/343
BFF отличается тем, что не нарушает ни единиц развертываения, ни границ автономности команд. Скорее наоборот - он продиктован этими целями.
А нарушение автономности команд является ключевым препятствием в их масштабировании:
- https://news.1rj.ru/str/emacsway_log/313
- https://news.1rj.ru/str/emacsway_log/510
В маленьких коллективах это не критично, но в больших - это имеет решающее значение.
Разве что только подумать о применении подхода Sidecar по аналогии с BFF:
- https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar
#DDD #Microservices #DistributedSystems #SoftwareArchitecture
Oskar Dudycz
Events should be as small as possible, right?
Event-Driven by Oskar Dudycz
Forwarded from Архитектура ИТ-решений
SFIA (The global skills and competency framework for a digital world ) - описание навыков архитектора решений (Solution architecture) https://sfia-online.org/ru/sfia-7/skills/solution-architecture
SFIA
Архитектура решений
Проектирование и коммуникация высокоуровневых структур для обеспечения и руководства проектированием и разработкой интегрированных решений, отвечающих текущим и будущим потребностям бизнеса. В дополнение к технологическим компонентам архитектура решения включает…
Forwarded from Архитектура ИТ-решений
Да вы что! Неужели? https://www.infoq.com/articles/architecture-trends-2021/
InfoQ
Software Architecture and Design InfoQ Trends Report—April 2021
An overview of how the InfoQ editorial team sees the Software Architecture and Design topic evolving in 2021, with a focus on what architects are designing for today.
ArchiMate, трассировка требований и Agile.
В одном из предыдущих сообщений ( https://news.1rj.ru/str/emacsway_log/501 ), рассматривался стандарт ISO/IEC/IEEE 12207:2017 SDLC в отношении применения автоматизированных средств управления требованиями в Agile-моделе разработки, с целью обеспечения трассировки:
📝 "Where possible [during agile projects], bidirectional traceability is enabled and enforced by integrated automated systems and procedures for requirements management, architecture and design, configuration management, measurement, and information management."
- ISO/IEC/IEEE 12207:2017(E)
Существует множество систем управления требованиями, но есть одна бесплатная и с открытым исходным кодом, которая позволяет управлять описанием архитектуры интегрированно, как в problem space, так и в solution space. Причем, осуществлять это коллективно.
Мне как-то подвернулась интересная вводная статья по этому вопросу:
"ArchiMate Cookbook"
- https://www.hosiaisluoma.fi/blog/archimate/
Можно скачать в pdf:
- http://www.hosiaisluoma.fi/ArchiMate-Cookbook.pdf
Примеры от Visual-Paradigm:
- https://www.visual-paradigm.com/guide/archimate/full-archimate-viewpoints-guide/
Примеры от Sparxsystems:
- https://sparxsystems.com/resources/user-guides/15.2/model-domains/languages/archimate.pdf
Документация ArchiMate по этому вопросу:
"Motivation Elements" (Stakeholder, Driver, Assessment, Goal, Outcome, Principle, Requirement, and Constraint)
- https://pubs.opengroup.org/architecture/archimate3-doc/chap06.html
Статья Alexander Teterkin ( @teterkin ) по этому вопросу:
"Хорошая архитектура и ArchiMate"
- https://hostco.ru/news/khoroshaya-arkhitektura-i-archimate/
Плагин к Archimatetool для коллективной разработки:
coArchi - a plug-in to share and collaborate on Archi models.
- https://github.com/archimatetool/archi-modelrepository-plugin
Описание плагина:
- https://www.archimatetool.com/plugins/#coArchi
Документация к плагину:
- https://github.com/archimatetool/archi-modelrepository-plugin/wiki
Пользовательская документация к Archimatetool:
- https://www.archimatetool.com/downloads/Archi%20User%20Guide.pdf
Ранее уже говорилось, что ArchiMate и Archimatetool можно использовать для Event Storming (лично для меня это удобней, чем Miro):
- https://news.1rj.ru/str/emacsway_log/253
Другие посты по теме ArchiMate:
- https://news.1rj.ru/str/emacsway_log/297
- https://news.1rj.ru/str/emacsway_log/336
Как и сколько документировать требования в Agile:
- https://news.1rj.ru/str/emacsway_log/500
- https://news.1rj.ru/str/emacsway_log/502
#SoftwareArchitecture #ArchiMate
В одном из предыдущих сообщений ( https://news.1rj.ru/str/emacsway_log/501 ), рассматривался стандарт ISO/IEC/IEEE 12207:2017 SDLC в отношении применения автоматизированных средств управления требованиями в Agile-моделе разработки, с целью обеспечения трассировки:
📝 "Where possible [during agile projects], bidirectional traceability is enabled and enforced by integrated automated systems and procedures for requirements management, architecture and design, configuration management, measurement, and information management."
- ISO/IEC/IEEE 12207:2017(E)
Существует множество систем управления требованиями, но есть одна бесплатная и с открытым исходным кодом, которая позволяет управлять описанием архитектуры интегрированно, как в problem space, так и в solution space. Причем, осуществлять это коллективно.
Мне как-то подвернулась интересная вводная статья по этому вопросу:
"ArchiMate Cookbook"
- https://www.hosiaisluoma.fi/blog/archimate/
Можно скачать в pdf:
- http://www.hosiaisluoma.fi/ArchiMate-Cookbook.pdf
Примеры от Visual-Paradigm:
- https://www.visual-paradigm.com/guide/archimate/full-archimate-viewpoints-guide/
Примеры от Sparxsystems:
- https://sparxsystems.com/resources/user-guides/15.2/model-domains/languages/archimate.pdf
Документация ArchiMate по этому вопросу:
"Motivation Elements" (Stakeholder, Driver, Assessment, Goal, Outcome, Principle, Requirement, and Constraint)
- https://pubs.opengroup.org/architecture/archimate3-doc/chap06.html
Статья Alexander Teterkin ( @teterkin ) по этому вопросу:
"Хорошая архитектура и ArchiMate"
- https://hostco.ru/news/khoroshaya-arkhitektura-i-archimate/
Плагин к Archimatetool для коллективной разработки:
coArchi - a plug-in to share and collaborate on Archi models.
- https://github.com/archimatetool/archi-modelrepository-plugin
Описание плагина:
- https://www.archimatetool.com/plugins/#coArchi
Документация к плагину:
- https://github.com/archimatetool/archi-modelrepository-plugin/wiki
Пользовательская документация к Archimatetool:
- https://www.archimatetool.com/downloads/Archi%20User%20Guide.pdf
Ранее уже говорилось, что ArchiMate и Archimatetool можно использовать для Event Storming (лично для меня это удобней, чем Miro):
- https://news.1rj.ru/str/emacsway_log/253
Другие посты по теме ArchiMate:
- https://news.1rj.ru/str/emacsway_log/297
- https://news.1rj.ru/str/emacsway_log/336
Как и сколько документировать требования в Agile:
- https://news.1rj.ru/str/emacsway_log/500
- https://news.1rj.ru/str/emacsway_log/502
#SoftwareArchitecture #ArchiMate
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
"Документирование Agile Requirements"
- https://dckms.github.io/system-architecture/emacsway/it/sdlc/models/agile/analysis/requirements/documenting.html
#Management #Agile #SoftwareArchitecture
- https://dckms.github.io/system-architecture/emacsway/it/sdlc/models/agile/analysis/requirements/documenting.html
#Management #Agile #SoftwareArchitecture
👍2
Gregor Hohpe про двухфазные транзакции и их влияние на масштабирование:
"Your Coffee Shop Doesn’t Use Two-Phase Commit" by Gregor Hohpe.
http://eaipatterns.com/docs/IEEE_Software_Design_2PC.pdf
#DistributedSystems #Microservices #DDD #SoftwareArchitecture
"Your Coffee Shop Doesn’t Use Two-Phase Commit" by Gregor Hohpe.
http://eaipatterns.com/docs/IEEE_Software_Design_2PC.pdf
#DistributedSystems #Microservices #DDD #SoftwareArchitecture
"Воркшоп: Event sourcing в реальном времени" / Алексей Зимарев
https://www.youtube.com/watch?v=z20XGmEUzIw
#DDD #Microservices #EventSourcing
https://www.youtube.com/watch?v=z20XGmEUzIw
#DDD #Microservices #EventSourcing
YouTube
Алексей Зимарев — Воркшоп: Event sourcing в реальном времени
Подробнее о конференции DotNext: https://jrg.su/3WmFRE
— —
Присоединяйтесь к Алексею Зимареву, энтузиасту event sourcing и автору «Hands-On Domain-Driven Design with .NET Core» на воркшоп для разработчиков и архитекторов, которые хотят научиться практическим…
— —
Присоединяйтесь к Алексею Зимареву, энтузиасту event sourcing и автору «Hands-On Domain-Driven Design with .NET Core» на воркшоп для разработчиков и архитекторов, которые хотят научиться практическим…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Просматривал вчера книгу этого же автора: - "Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise" by Dean Leffingwell. Она вышла в печать в том же году, в котором он выпустил первый релиз SAFe. Без сомнений, эта…
Неплохая обзорная статья по Agile Architecture:
- https://www.mytechiebits.com/AgileArchitecture
#SoftwareArchitecture #Agile
- https://www.mytechiebits.com/AgileArchitecture
#SoftwareArchitecture #Agile
Mytechiebits
Agile Architecture
A site to capture techie bits and thoughts
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
"Architecture Ownership Patterns for Team Topologies. Part 3: Multi-Team Patterns" by Nick Tune https://medium.com/nick-tune-tech-strategy-blog/architecture-ownership-patterns-for-team-topologies-part-3-multi-team-patterns-eecc146ddb28 #DDD #Microservices…
Alberto Brandolini не остался в стороне от популярного в наши дни вопроса топологии команд:
"About Team Topologies and Context Mapping" by Alberto Brandolini
https://blog.avanscoperta.it/2021/04/22/about-team-topologies-and-context-mapping/
P.S.: Другие посты по теме топологии команд:
- https://news.1rj.ru/str/emacsway_log/510
- https://news.1rj.ru/str/emacsway_log/348
- https://news.1rj.ru/str/emacsway_log/308
- https://news.1rj.ru/str/emacsway_log/141
- https://news.1rj.ru/str/emacsway_log/343
- https://news.1rj.ru/str/emacsway_log/322
- https://news.1rj.ru/str/emacsway_log/313
#DDD #Management #Microservices #SoftwareArchitecture
"About Team Topologies and Context Mapping" by Alberto Brandolini
https://blog.avanscoperta.it/2021/04/22/about-team-topologies-and-context-mapping/
P.S.: Другие посты по теме топологии команд:
- https://news.1rj.ru/str/emacsway_log/510
- https://news.1rj.ru/str/emacsway_log/348
- https://news.1rj.ru/str/emacsway_log/308
- https://news.1rj.ru/str/emacsway_log/141
- https://news.1rj.ru/str/emacsway_log/343
- https://news.1rj.ru/str/emacsway_log/322
- https://news.1rj.ru/str/emacsway_log/313
#DDD #Management #Microservices #SoftwareArchitecture
Avanscoperta Blog
About Team Topologies and Context Mapping | Avanscoperta Blog
Team Topologies and Domain-Driven Design have a lot in common. Here's Alberto Brandolini's attempt to see the best of both worlds as well as the pros and cons of the different approaches.
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Прекрасная подборка ссылок по распределенной архитектуре. Literature references for "Designing Data-Intensive Applications". This repository accompanies the book Designing Data-Intensive Applications by Martin Kleppmann, published by O'Reilly Media. https…
"Version Vectors are not Vector Clocks" by Carlos Baquero
- https://haslab.wordpress.com/2011/07/08/version-vectors-are-not-vector-clocks/
#DistributedSystems
- https://haslab.wordpress.com/2011/07/08/version-vectors-are-not-vector-clocks/
#DistributedSystems
HASlab
Version Vectors are not Vector Clocks
Most people still confuse Version Vectors and Vector Clocks. Well, I did confuse them for several years. In fact they look the same and the update rules are almost the same. Both of these mechanism…
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
И еще одна очень крутая книга попала в мое поле зрения на тему Soft Skills, от известного автора в области психологии, системного мышления и антропологии разработки программного обеспечения, на работы которого ссылаются в своих книгах такие светила, как Kent…
Интересная статья (в pdf) про типы людей в команде:
- https://www.pluralsight.com/content/dam/pluralsight2/landing-pages/offers/flow/pdf/Pluralsight_20Patterns_ebook.pdf
Что-то вроде паттернов/антипаттернов поведения в команде.
Спасибо за ссылку Саше Войкову ( @adzeitor )!
#SoftSkills #Career #Management #Agile
- https://www.pluralsight.com/content/dam/pluralsight2/landing-pages/offers/flow/pdf/Pluralsight_20Patterns_ebook.pdf
Что-то вроде паттернов/антипаттернов поведения в команде.
Спасибо за ссылку Саше Войкову ( @adzeitor )!
#SoftSkills #Career #Management #Agile
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Критически важная статья, проливающая свет на один из наиболее частых и болезненных вопросов в DDD: "Domain model purity vs. domain model completeness" by Vladimir Khorikov https://enterprisecraftsmanship.com/posts/domain-model-purity-completeness/ #DDD
Если вдруг кто не знал, у Vladimir Khorikov ( @vkhorikov ), известного автора в области DDD и Unit Testing, на сайте https://enterprisecraftsmanship.com/ есть рассылка. Подписаться можно здесь:
- https://enterprisecraftsmanship.com/subscribe
Контент рассылки не совпадает с контентом блога! Посмотреть архив рассылок можно на его другом сайте, про который мало кто знает:
- https://khorikov.org/
#DDD #Microservices #SoftwareArchitecture #SoftwareDesign
- https://enterprisecraftsmanship.com/subscribe
Контент рассылки не совпадает с контентом блога! Посмотреть архив рассылок можно на его другом сайте, про который мало кто знает:
- https://khorikov.org/
#DDD #Microservices #SoftwareArchitecture #SoftwareDesign
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Статьи на частые вопросы по DDD: - "What is domain logic?" by Vladimir Khorikov - "Domain services vs Application services" by Vladimir Khorikov - "Domain model isolation" by Vladimir Khorikov - "Email uniqueness as an aggregate invariant" by Vladimir Khorikov…
Не нарушит ли глабольно-уникальный идентификатор своего смысла, если он будет идентифицировать не один, а два и более Агрегата в разных Ограниченных Контекстах (или микросервисах), идентифицируя при этом одну и ту же бизнес-сущность?
На этот вопрос отвечает Vladimir Khorikov ( @vkhorikov ) в статье
"Should you reuse ids among microservices?"
- https://khorikov.org/posts/2021-02-03-should-you-reuse-ids-between-mss/
#Microservices #DDD #SoftwareDesign #SoftwareArchitecture
На этот вопрос отвечает Vladimir Khorikov ( @vkhorikov ) в статье
"Should you reuse ids among microservices?"
- https://khorikov.org/posts/2021-02-03-should-you-reuse-ids-between-mss/
#Microservices #DDD #SoftwareDesign #SoftwareArchitecture
Ivan
А я уже делился: - https://news.1rj.ru/str/emacsway_log/45 - https://news.1rj.ru/str/emacsway_log/44 Барбару я, к сожалению, пока еще не читал. Но весьма авторитетный специалист Сергей Тепляков, бывший инструктор Люксофта, а сегодня он работает в Microsoft (США), автор популярного…
Как управлять знаниями и что для этого использовать? Это - один из наиболее частых вопросов. Поделюсь своим скромным опытом.
Internet-content
Нужные мне статьи из интернета я сохраняю в pdf-файлы, поскольку сайты с контентом даже таких известных людей, как Alistair Cockburn (а недавно - еще и Greg Young), могут быть недоступны.
В ноутбуке можно сохранять html-страницы в pdf-файл любым модулем печати ОС. Просто выбираю "Печатать в pdf-файл".
А вот в Android, только Яндекс-браузер позволяет сохранять режим чтения при печати html-страницы в pdf-файл. В FF такая возможность была, и, возможно, еще вернется. В остальных популярных браузерах, к сожалению, такой возможности нет, так как печать делается через share, а с media print не на всех сайтах все хорошо.
Можно использовать приложение Notion/Evernote/Nimbus/OneNote/etc. для сохранения html-страниц.
Пользуюсь "Избранным" браузера Firefox и его штатной возможностью синхронизации устройств.
Если сайт мне очень интересен, то скачиваю его полностью или частично (--no-parent), с помощью утилиты wget. Это позволяет осуществлять поиск в offline-режиме с помощью консольной утилиты find.
И все это сохраняю в свою библиотеку вместе с книгами.
Библиотека
Синхронизирую память телефона с ноутбуком по sftp посредством мобильного приложения TotalCommander/Termux/GhostCommander/etc. Раньше поднимал иногда sshd на телефоне и использовал команду sync на ноутбуке. Шнурком почти не пользуюсь.
Читаю обычно в EBookDroid и ReadEra.
Знания
Как сохранять свои заметки и мысли, чтобы они были доступны с любого устройства, дома и на работе?
Когда-то давно я поднимал свой Trac ( https://trac.edgewall.org/ ). Но возможность работы в offline-режиме для меня имеет значение, особенно в поездках.
Пробовал Evernote (для Linux - Nixnote2/Tusk/Geeknote). Но двухуровневая иерархия заметок (в виде наборов и блокнотов) для меня недостаточна. XML-формат экспорта (*.enex/*.nnex) тоже не очень удобен. Geeknote выглядит интересно, но плохо поддерживается и устанавливается не без проблем. Получить доступ к заметкам можно и на уровне API ( https://dev.evernote.com/doc/ ), используя SDK ( https://dev.evernote.com/doc/start/python.php ). Если этот вариант кому-то интереснен, то учитывайте, что evertnote (для python2) и evernote3 (для python3) - это две разные библиотеки, вместо одной кросс-совместимой ( https://github.com/evernote ).
Notion лишен этих недостатков - неограниченная иерархия и экспорт в PDF/HTML/Markdown&CSV файлы. Официально поддерживает Linux.
Существует ряд других приложений, в т.ч. Open Source, но эти два - наиболее популярные среди моих коллег.
Цитадель
Самую ценную информацию я сохраняю в обычных application-agnostic текстовых *.rst файлах (в силу привычки и тяги к аскетичности). Гитхаб хорошо отображает reStructuredText-разметку, предоставляет полнотекстовый поиск и позволяет синхронизировать устройства. Неограниченная иерархия.
На телефоне, для доступа к файлам git-repository, я использую мобильное Open Source приложение MGit ( https://play.google.com/store/apps/details?id=com.manichord.mgit ) и обычный текстовый редактор.
Share
Еще одним из способов управления знаниями является этот Телеграм-канал. Десктопная версия Телеграма позволяет экспортировать весь его контент целиком, что снижает риски.
В качестве блогового движка я использую статический генератор ABlog ( https://ablog.readthedocs.io/ ) - это расширение к статическому генератору документации Sphinx-Doc ( https://www.sphinx-doc.org/ ).
На Golang популярным аналогом считается Gohugo ( https://gohugo.io/ ).
Контент блога хранится в обычных текстовых файлах, с которыми можно работать с телефона в offline-режиме, используя MGit. А единый reStructuredText-формат разметки для заметок и для блога облегчает преобразование первого во второе.
News
Раз в неделю я просматриваю новости с помощью RSS-агрегатора Thunderbird и Twitter. Подписан на многих авторов из моей библиотеки. По соотношению затрат времени к качеству обнаруженного материала, RSS-подписки эффективней, чем Twitter.
А что используете вы?
#Career #SoftSkills
Internet-content
Нужные мне статьи из интернета я сохраняю в pdf-файлы, поскольку сайты с контентом даже таких известных людей, как Alistair Cockburn (а недавно - еще и Greg Young), могут быть недоступны.
В ноутбуке можно сохранять html-страницы в pdf-файл любым модулем печати ОС. Просто выбираю "Печатать в pdf-файл".
А вот в Android, только Яндекс-браузер позволяет сохранять режим чтения при печати html-страницы в pdf-файл. В FF такая возможность была, и, возможно, еще вернется. В остальных популярных браузерах, к сожалению, такой возможности нет, так как печать делается через share, а с media print не на всех сайтах все хорошо.
Можно использовать приложение Notion/Evernote/Nimbus/OneNote/etc. для сохранения html-страниц.
Пользуюсь "Избранным" браузера Firefox и его штатной возможностью синхронизации устройств.
Если сайт мне очень интересен, то скачиваю его полностью или частично (--no-parent), с помощью утилиты wget. Это позволяет осуществлять поиск в offline-режиме с помощью консольной утилиты find.
И все это сохраняю в свою библиотеку вместе с книгами.
Библиотека
Синхронизирую память телефона с ноутбуком по sftp посредством мобильного приложения TotalCommander/Termux/GhostCommander/etc. Раньше поднимал иногда sshd на телефоне и использовал команду sync на ноутбуке. Шнурком почти не пользуюсь.
Читаю обычно в EBookDroid и ReadEra.
Знания
Как сохранять свои заметки и мысли, чтобы они были доступны с любого устройства, дома и на работе?
Когда-то давно я поднимал свой Trac ( https://trac.edgewall.org/ ). Но возможность работы в offline-режиме для меня имеет значение, особенно в поездках.
Пробовал Evernote (для Linux - Nixnote2/Tusk/Geeknote). Но двухуровневая иерархия заметок (в виде наборов и блокнотов) для меня недостаточна. XML-формат экспорта (*.enex/*.nnex) тоже не очень удобен. Geeknote выглядит интересно, но плохо поддерживается и устанавливается не без проблем. Получить доступ к заметкам можно и на уровне API ( https://dev.evernote.com/doc/ ), используя SDK ( https://dev.evernote.com/doc/start/python.php ). Если этот вариант кому-то интереснен, то учитывайте, что evertnote (для python2) и evernote3 (для python3) - это две разные библиотеки, вместо одной кросс-совместимой ( https://github.com/evernote ).
Notion лишен этих недостатков - неограниченная иерархия и экспорт в PDF/HTML/Markdown&CSV файлы. Официально поддерживает Linux.
Существует ряд других приложений, в т.ч. Open Source, но эти два - наиболее популярные среди моих коллег.
Цитадель
Самую ценную информацию я сохраняю в обычных application-agnostic текстовых *.rst файлах (в силу привычки и тяги к аскетичности). Гитхаб хорошо отображает reStructuredText-разметку, предоставляет полнотекстовый поиск и позволяет синхронизировать устройства. Неограниченная иерархия.
На телефоне, для доступа к файлам git-repository, я использую мобильное Open Source приложение MGit ( https://play.google.com/store/apps/details?id=com.manichord.mgit ) и обычный текстовый редактор.
Share
Еще одним из способов управления знаниями является этот Телеграм-канал. Десктопная версия Телеграма позволяет экспортировать весь его контент целиком, что снижает риски.
В качестве блогового движка я использую статический генератор ABlog ( https://ablog.readthedocs.io/ ) - это расширение к статическому генератору документации Sphinx-Doc ( https://www.sphinx-doc.org/ ).
На Golang популярным аналогом считается Gohugo ( https://gohugo.io/ ).
Контент блога хранится в обычных текстовых файлах, с которыми можно работать с телефона в offline-режиме, используя MGit. А единый reStructuredText-формат разметки для заметок и для блога облегчает преобразование первого во второе.
News
Раз в неделю я просматриваю новости с помощью RSS-агрегатора Thunderbird и Twitter. Подписан на многих авторов из моей библиотеки. По соотношению затрат времени к качеству обнаруженного материала, RSS-подписки эффективней, чем Twitter.
А что используете вы?
#Career #SoftSkills
browser.yandex.ru
Режим чтения. Справка
Служба поддержки
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Цикл статей Gregor Hohpe о презентационных навыках. На прошлой неделе вышла пятая статья цикла. - Making Complex Topics Stick (Part 1: Content). Ethos, Logos, and Pathos have to be built-in, not tacked on. https://architectelevator.com/strategy/complex-topics…
О презентационных навыках вышла очередная статья Gregor Hohpe:
- The Second Curse of Speaking (Complex Topics, Part 6). A Steady Rhythm Keeps Your Listeners On Track
https://architectelevator.com/strategy/presenting-second-curse/
#SoftwareArchitecture #Career #SoftSkills #Management
- The Second Curse of Speaking (Complex Topics, Part 6). A Steady Rhythm Keeps Your Listeners On Track
https://architectelevator.com/strategy/presenting-second-curse/
#SoftwareArchitecture #Career #SoftSkills #Management
The Architect Elevator
The Second Curse of Speaking (Complex Topics, Part 6)
A Steady Rhythm Keeps Your Listeners On Track
В продолжение темы топологии и платформенных команд - сегодня вышла статья от ребят из ThoughtWorks на сайте M.Fowler:
"Mind the platform execution gap. Prerequisite capabilities for successful platform strategies" by Cristóbal García García, Chris Ford
- https://martinfowler.com/articles/platform-prerequisites.html
Интересно, что они хорошо отзываются о книге "Team Topologies: Organizing Business and Technology Teams for Fast Flow" by Matthew Skelton, которая недавно упоминалась здесь:
- https://news.1rj.ru/str/emacsway_log/510
#Management #SoftwareArchitecture #Agile
"Mind the platform execution gap. Prerequisite capabilities for successful platform strategies" by Cristóbal García García, Chris Ford
- https://martinfowler.com/articles/platform-prerequisites.html
Интересно, что они хорошо отзываются о книге "Team Topologies: Organizing Business and Technology Teams for Fast Flow" by Matthew Skelton, которая недавно упоминалась здесь:
- https://news.1rj.ru/str/emacsway_log/510
#Management #SoftwareArchitecture #Agile
martinfowler.com
Mind the platform execution gap
The hype around developer productivity platforms can shroud the prerequisites to doing them well.
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
О презентационных навыках вышла очередная статья Gregor Hohpe: - The Second Curse of Speaking (Complex Topics, Part 6). A Steady Rhythm Keeps Your Listeners On Track https://architectelevator.com/strategy/presenting-second-curse/ #SoftwareArchitecture #Career…
Alexander Polomodov (Director of digital ecosystem development department at Tinkoff), опубликовал вчера интересный пост о применимости принципов ООП-проектирования в управленческой деятельности и в топологии команд:
"SOLID’ный тимлид, или основы менеджмента для технарей"
https://apolomodov.medium.com/solid-teamlead-basic-management-for-techies-260a3ba30ad2
#Management #SoftwareArchitecture #Agile #SoftwareDesign
"SOLID’ный тимлид, или основы менеджмента для технарей"
https://apolomodov.medium.com/solid-teamlead-basic-management-for-techies-260a3ba30ad2
#Management #SoftwareArchitecture #Agile #SoftwareDesign
Medium
SOLID’ный тимлид, или основы менеджмента для технарей
Часто получается так, что тимлидом в команде становится самый прокачанный разработчик, который хорош в hard skill’ах, но менеджментом до…
Интересная подборка литературы по SoftSkills и искусству спора:
- https://m.vk.com/wall-56611080_127534
Первая книга - еще 1923 года, а Шопенгауэр и того старше. Пролистал несколько книг из этой коллекции и остался впечатлен.
#SoftSkills #Career #Management
- https://m.vk.com/wall-56611080_127534
Первая книга - еще 1923 года, а Шопенгауэр и того старше. Пролистал несколько книг из этой коллекции и остался впечатлен.
#SoftSkills #Career #Management
VK
Post deleted | VK
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Как управлять знаниями и что для этого использовать? Это - один из наиболее частых вопросов. Поделюсь своим скромным опытом. Internet-content Нужные мне статьи из интернета я сохраняю в pdf-файлы, поскольку сайты с контентом даже таких известных людей, как…
Мое изучение систем управления знаниями переросло в мини-проект:
- https://github.com/emacsway/dckms-template
Он возник потому, что сегодня мы много пишем там, где не ищем, и ищем там, где стали писать мало. Я, в этом отношении, не являюсь исключением.
Преследовалась цель минимизировать риски и внешние зависимости, обеспечить автономность работы и защищенность данных в пределах контролируемого контура, достигнуть легкость интеграции приватной базы знаний с коллективной (корпоративной, общественной), и при этом сохранить её свободу и автономность посредством распределенности.
Неделю назад я начал пользоваться этим подходом сам, и мигрировал все свои заметки на Sphinx-doc. Это оказалось несложно благодаря изначально выбранному reStructuredText-формату разметки. Впрочем, с Markdown все было бы так же просто:
- https://github.com/emacsway/dckms-template#markdown
Спасибо всем, кто принимал участие в этом процессе, делился опытом, давал информацию и идеи.
#Career #SoftSkills #KnowledgeManagement
- https://github.com/emacsway/dckms-template
Он возник потому, что сегодня мы много пишем там, где не ищем, и ищем там, где стали писать мало. Я, в этом отношении, не являюсь исключением.
Преследовалась цель минимизировать риски и внешние зависимости, обеспечить автономность работы и защищенность данных в пределах контролируемого контура, достигнуть легкость интеграции приватной базы знаний с коллективной (корпоративной, общественной), и при этом сохранить её свободу и автономность посредством распределенности.
Неделю назад я начал пользоваться этим подходом сам, и мигрировал все свои заметки на Sphinx-doc. Это оказалось несложно благодаря изначально выбранному reStructuredText-формату разметки. Впрочем, с Markdown все было бы так же просто:
- https://github.com/emacsway/dckms-template#markdown
Спасибо всем, кто принимал участие в этом процессе, делился опытом, давал информацию и идеи.
#Career #SoftSkills #KnowledgeManagement
GitHub
GitHub - emacsway/dckms-template: Distributed Collaborative Knowledge Management System. A bare instance.
Distributed Collaborative Knowledge Management System. A bare instance. - emacsway/dckms-template