tgoop.com »
United States »
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc. » Telegram Web
Forwarded from Микросервисы / распределенные системы (Sergey Baranov)
Заметки по распределенным системам.
Категории заметок
- Concepts
- Failure Detection
- Leader Election
- Replication Consistency
- Dissemination
- Anti-Entropy
- Gossip
- Distributed Transactions
- Consensus
- Paxos
- Message Queues
- Distributed Locks
- Clustering
- Cache
- Rate Limit
https://tangentyh.github.io/notes-of-tan/backend/distributed.html
Категории заметок
- Concepts
- Failure Detection
- Leader Election
- Replication Consistency
- Dissemination
- Anti-Entropy
- Gossip
- Distributed Transactions
- Consensus
- Paxos
- Message Queues
- Distributed Locks
- Clustering
- Cache
- Rate Limit
https://tangentyh.github.io/notes-of-tan/backend/distributed.html
tangentyh.github.io
Distributed System | Notes of Tan
Tan's notes.
👍8❤1
В следующем сообщении говорится о том, почему я для EventStorming использую Archi - чтобы с математической точностью вычислять наилучшую конфигурацию контуров микросервисов на основании принципа Low Coupling & High Cohesion:
Forwarded from Микросервисы / распределенные системы (Sergey Baranov)
A Metrics Suite for Microservices, EventStorming and DDD 👍
Measuring Coupling and Cohesion of Bounded Contexts on an EventStorming Domain Model
https://phillipjohnson.co.uk/a-metrics-suite-for-microservices-eventstorming-and-ddd
Measuring Coupling and Cohesion of Bounded Contexts on an EventStorming Domain Model
https://phillipjohnson.co.uk/a-metrics-suite-for-microservices-eventstorming-and-ddd
Forwarded from Архитектура ИТ-решений
Cranking out lines of code isn’t the most value-add activity for architects. But understanding system structures and hidden dependencies is, and debugging is all about that
Gregor Hohpe начинает 2023 год с разговора на нашу любимую тему: "Должен ли архитектор писать код" и приходит к неожиданному выводу о большей пользе для архитектора от участия в отладке: https://architectelevator.com/transformation/debugging-architect/
Gregor Hohpe начинает 2023 год с разговора на нашу любимую тему: "Должен ли архитектор писать код" и приходит к неожиданному выводу о большей пользе для архитектора от участия в отладке: https://architectelevator.com/transformation/debugging-architect/
The Architect Elevator
Debugging Architects
Whether architects must code or not has been much debated. Why not try debugging?
Forwarded from Архитектура ИТ-решений
Обещал найти ссылку о применимости шаблона описания архитектурных решений ADR для более широкого класса решений.
Делюсь: ADR = Any Decision Record? Architecture, Design and Beyond
Делюсь: ADR = Any Decision Record? Architecture, Design and Beyond
Olaf Zimmermann (ZIO, socadk, MAP author): portfolio, blog
ADR = Any Decision Record? Architecture, Design and Beyond
If architectural decision records are so useful to capture software design rationale, why not extend their scope: Can they log organizational and managerial decisions as well? How about everyday decisions?
👍1
Forwarded from Архитектура ИТ-решений
Fm7q8p7acAEUkiL.jpg
215.4 KB
Краткое графическое введение в c4model от IcePanel
https://blog.icepanel.io/2022/10/03/c4-model-for-system-architecture-design/
https://blog.icepanel.io/2022/10/03/c4-model-for-system-architecture-design/
🔥3❤1
Forwarded from Архитектура ИТ-решений
Долгое время единственным ISO-шным стандартом по архитектуре оставался ISO/IEC/IEEE 42010:2011 Systems and software engineering — Architecture description. В 2019 году появились сразу два новых архитектурных стандарта 42020 и 42030. А в ноябре прошлого, 2022 года обновился и основной стандарт описания архитектуры.
Как именно, читайте здесь: https://mxsmirnov.com/changes-420x0/
Как именно, читайте здесь: https://mxsmirnov.com/changes-420x0/
❤🔥1
Forwarded from Микросервисы / распределенные системы (Sergey Baranov)
The Ultimate Guide To Software Architecture Documentation
This guide shows you how to write, structure, visualize and manage software architecture documentation in a lean way using appropriate documentation tools.
https://www.workingsoftware.dev/software-architecture-documentation-the-ultimate-guide/
This guide shows you how to write, structure, visualize and manage software architecture documentation in a lean way using appropriate documentation tools.
https://www.workingsoftware.dev/software-architecture-documentation-the-ultimate-guide/
workingsoftware.dev
The Ultimate Guide To Software Architecture Documentation
This guide shows you how to write, structure, visualize and manage software architecture documentation using appropriate documentation tools.
❤3
Forwarded from Микросервисы / распределенные системы (Sergey Baranov)
Собрал структурированную базу знаний по микросервисам на основе своих статей и переводов.
http://agilemindset.ru/микросервисы/
http://agilemindset.ru/микросервисы/
👍2
Forwarded from Микросервисы / распределенные системы (Sergey Baranov)
Вот такой вот прекрасный тест на ArchUnit, который объясняет суть слоя доменной логики. Должны быть зависимости только от самого себя и никаких внешних зависимостей.
🔥3
Микросервисы / распределенные системы
Вот такой вот прекрасный тест на ArchUnit, который объясняет суть слоя доменной логики. Должны быть зависимости только от самого себя и никаких внешних зависимостей.
В крупных приложениях этого, к сожалению, недостаточно, т.к. сам доменный слой тоже может расслаиваться, см. главу 16-17 книги Eric Evans.
👍3
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
В течении последнего месяца я попробовал программировать и по DDD + CQRS (no ORM), и по документации Django. Особенность ситуации в том, что за последние три года я программировал крайне редко, что устраняет "эффект недавнего". К слову, на Django я программировал…
Пишу своими руками сейчас два проекта. Один - по всем канонам DDD на малознакомом мне стэке. Другой - по документации Django Framework. Я уже говорил об этом.
По прошествии двух месяцев могу поделиться впечатлениями.
1. Скорость разработки на Django, все-таки быстрее, но не слишком существенно.
Это потому, что Django во всю использует рефлексию для минимизации количества кода.
Известно два способа решения этой проблемы - "reflective program" и "code generation", подробнее см. в главе "Metadata Mapping" книги "Patterns of Enterprise Application Architecture" by M.Fowler.
Таким образом, чтоб парировать превосходство Django Framework, нужно делать генератор кода для DDD-проектов. Тогда скорость разработки даже существенно превзойдет скорость на Django.
Основные потери времени на Django составляет борьба с Framework в каждом нетипичном кейсе. Это от 30% до 50% времени разработки.
В свою очередь, проект по DDD требует время на исследовательскую работу по способу структурирования кода.
2. Django накладывает более строгие требования к способности выдерживать когнитивные нагрузки. Нередко приходится погружаться в потроха Фреймворка, понимать его реализацию (а Django сегодня не такая уж и простая, как была 10 лет тому назад). Обзор и инспекция её плагинов так же требует погружения в детали их реализации. Встречались случаи, например, грубого нарушения потокобезопасности. Так что Django накладывает более строгие требования к квалификации исполнителя, кто бы не убеждал в обратном.
Однако, проект с чистого листа по DDD требует невероятно глубоких познаний и обширную работу с литературой. Хорошо то, что эти затраты однократны. Если под рукой уже есть сформированный качественный образец (а лучше - генератор кода), то справится любой мидл.
3. Моральное удовлетворение больше приносит разработка по DDD. Это чувство можно сравнить с выплаченным кредитом - теперь ты не заложник обстоятельств. Чувство свободы и независимости.
Если вы смотрели сериал "Is TDD Dead?", то заметили, что претензии David Heinemeier Hansson касались не столько TDD, сколько принципов Clean Architecture.
В принципе, для заказной разработки вполне пригодна разработка по Framework без всяких там DDD или Clean Architecture, и зачастую она способна дать существенный прирост темпов разработки.
Особняком возникает вопрос сопровождения таких продуктов, т.к. во фреймворках время от времени обнаруживают уязвимости, а поддержка публичного интерфейса всегда ограничена по своей длительности.
По прошествии двух месяцев могу поделиться впечатлениями.
1. Скорость разработки на Django, все-таки быстрее, но не слишком существенно.
Это потому, что Django во всю использует рефлексию для минимизации количества кода.
Известно два способа решения этой проблемы - "reflective program" и "code generation", подробнее см. в главе "Metadata Mapping" книги "Patterns of Enterprise Application Architecture" by M.Fowler.
Таким образом, чтоб парировать превосходство Django Framework, нужно делать генератор кода для DDD-проектов. Тогда скорость разработки даже существенно превзойдет скорость на Django.
Основные потери времени на Django составляет борьба с Framework в каждом нетипичном кейсе. Это от 30% до 50% времени разработки.
В свою очередь, проект по DDD требует время на исследовательскую работу по способу структурирования кода.
2. Django накладывает более строгие требования к способности выдерживать когнитивные нагрузки. Нередко приходится погружаться в потроха Фреймворка, понимать его реализацию (а Django сегодня не такая уж и простая, как была 10 лет тому назад). Обзор и инспекция её плагинов так же требует погружения в детали их реализации. Встречались случаи, например, грубого нарушения потокобезопасности. Так что Django накладывает более строгие требования к квалификации исполнителя, кто бы не убеждал в обратном.
Однако, проект с чистого листа по DDD требует невероятно глубоких познаний и обширную работу с литературой. Хорошо то, что эти затраты однократны. Если под рукой уже есть сформированный качественный образец (а лучше - генератор кода), то справится любой мидл.
3. Моральное удовлетворение больше приносит разработка по DDD. Это чувство можно сравнить с выплаченным кредитом - теперь ты не заложник обстоятельств. Чувство свободы и независимости.
Если вы смотрели сериал "Is TDD Dead?", то заметили, что претензии David Heinemeier Hansson касались не столько TDD, сколько принципов Clean Architecture.
В принципе, для заказной разработки вполне пригодна разработка по Framework без всяких там DDD или Clean Architecture, и зачастую она способна дать существенный прирост темпов разработки.
Особняком возникает вопрос сопровождения таких продуктов, т.к. во фреймворках время от времени обнаруживают уязвимости, а поддержка публичного интерфейса всегда ограничена по своей длительности.
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Потихоньку возвращаюсь к Golang DDD Reference Application Grade. Это не только демонстрационный, но еще и вполне реальный проект, который, используя принципы теории игр, позволяет существенно повысить объективность и качество т.н. карма-движков, и повысить…
👍12❤3🔥1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Пишу своими руками сейчас два проекта. Один - по всем канонам DDD на малознакомом мне стэке. Другой - по документации Django Framework. Я уже говорил об этом. По прошествии двух месяцев могу поделиться впечатлениями. 1. Скорость разработки на Django, все…
Как организовать БД для запуска интеграционных тестов на Golang? Да еще и чтобы можно было запускать тестовые кейсы параллельно, обеспечивая при этом изоляцию данных?
Ребята подготовили два решения, которые создают отдельную копию БД для каждого параллельного потока:
- https://github.com/pantafive/demo-repository-test by @pantafive
- https://github.com/xorcare/testing-go-code-with-postgres by @xorcare
Там же продемонстрировано как это сделать на GitHub workflow.
Все элегантно и просто. Мне это оказало неоценимую помощь при освоении малознакомого мне стэка.
#Golang #Testing
Ребята подготовили два решения, которые создают отдельную копию БД для каждого параллельного потока:
- https://github.com/pantafive/demo-repository-test by @pantafive
- https://github.com/xorcare/testing-go-code-with-postgres by @xorcare
Там же продемонстрировано как это сделать на GitHub workflow.
Все элегантно и просто. Мне это оказало неоценимую помощь при освоении малознакомого мне стэка.
#Golang #Testing
GitHub
GitHub - pantafive/demo-repository-test
Contribute to pantafive/demo-repository-test development by creating an account on GitHub.
🔥6👍2😢1🙏1🍾1
Forwarded from КП Наука
Умные туго соображают: исследование
Похоже, тестам на IQ приходит конец. Статья в престижном Nature Communications доказывает, что умным людям нужно больше времени для решения сложной задачи. Дело в том, что умный человек прикидывает все варианты, которые только возможны (и невозможны). Глупому многое и в голову не придет, и ему «все понятно». Поэтому умным надо время на подумать.
Тесты IQ устроены так, что соображать надо быстро, а правильные ответы – скорее из области «здравого смысла». Так что IQ определяет хорошего работника, сообразительного парня, но не умного человека. Не верьте тестам на IQ.
С вами был научный журналист Евгений Арсюхин.
Подписаться на КП Наука
Пишем о науке на KP.RU - серьёзно, просто и иногда весело!
@kpnauka
Похоже, тестам на IQ приходит конец. Статья в престижном Nature Communications доказывает, что умным людям нужно больше времени для решения сложной задачи. Дело в том, что умный человек прикидывает все варианты, которые только возможны (и невозможны). Глупому многое и в голову не придет, и ему «все понятно». Поэтому умным надо время на подумать.
Тесты IQ устроены так, что соображать надо быстро, а правильные ответы – скорее из области «здравого смысла». Так что IQ определяет хорошего работника, сообразительного парня, но не умного человека. Не верьте тестам на IQ.
С вами был научный журналист Евгений Арсюхин.
Подписаться на КП Наука
Пишем о науке на KP.RU - серьёзно, просто и иногда весело!
@kpnauka
🤔6🔥2
КП Наука
Умные туго соображают: исследование Похоже, тестам на IQ приходит конец. Статья в престижном Nature Communications доказывает, что умным людям нужно больше времени для решения сложной задачи. Дело в том, что умный человек прикидывает все варианты, которые…
В продолжение предыдущего сообщения - еще Kent Beck писал о проблеме "Borrowing Trouble", которую я называю "проблемой умных людей". Практика показывает, что эта проблема широко распространена. Наиболее умные разработчики зачастую работают гораздо медленнее посредственных. Но ситуация кардинально меняется, если им объяснить причины этого.
И еще пара ссылок в тему:
- https://habr.com/ru/company/web_payment_ru/blog/246081/
- https://www.hindawi.com/journals/np/2009/482696/
И еще пара ссылок в тему:
- https://habr.com/ru/company/web_payment_ru/blog/246081/
- https://www.hindawi.com/journals/np/2009/482696/
Telegram
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Умные туго соображают: исследование
Похоже, тестам на IQ приходит конец. Статья в престижном Nature Communications доказывает, что умным людям нужно больше времени для решения сложной задачи. Дело в том, что умный человек прикидывает все варианты, которые…
Похоже, тестам на IQ приходит конец. Статья в престижном Nature Communications доказывает, что умным людям нужно больше времени для решения сложной задачи. Дело в том, что умный человек прикидывает все варианты, которые…
🤔6👍5🔥2🤩1
О проекте "Архитектурные этюды".
Список топиков: https://www.tgoop.com/archicases
Главный топик (для вступления): https://www.tgoop.com/archicases/1
Это, наверное, первая успешная попытка среди экспертных тг-сообществ, которая решает один из ключевых вызовов современности - повышение качества навигации в перегруженном информационном пространстве, путем исключения из зоны внимания нерелевантной информации.
В отличии от других сообществ, которые создают топики обсуждения по конкретным областям знаний, @sergey486 решил создавать топики по конкретным кейсам. Тем самым он еще больше облегчил поиск решения на основе схожести проблемы. Именно возможность навигации на основе схожести проблемы является причиной роста популярности эталонно-демонстрационных приложений. Как говорится, лучше один раз увидеть. Именно по этой причине Example Mapping стал таким популярным.
Информация из топиков обсуждения в последующем дистиллируется и публикуется в виде дайджестов, что еще больше удешевляет освоение информации.
Невероятно порадовала легкость отчуждения знаний путем использования статического генератора контента. Собственно, такой инструментарий может служить самостоятельным источником дивергентности решений посредством слияния коммитов - моя давняя идея.
Какие вопросы еще остаются нерешенными?
Несмотря на то, что удалось достигнуть значительного успеха в дивергентности принятия решения, конвергентность все еще опирается на монополию компетентности в лице модераторов и авторов дайджестов. Это, безусловно, сковывает развитие сообщества и ставит систему в зависимость от качеств конкретных личностей (пусть хоть эти личности и демонстрируют высокие качества, но факт зависимости остается).
Остается открытым вопрос организации защиты информационного пространства от захламления откровенно недостоверными вбросами, а также от проявлений эффекта Даннинга-Крюгера, субъективизма и вкусовщины. Модерация пока остаётся единственным и не самым действенным механизмом. Новичкам не всегда понятно кого слушать, а грамотные специалисты не всегда спешат ввязываться во флейм. Но, должен заметить, что уровень конструктивности и морально-психологического климата ему удалось значительно повысить по сравнению с аналогичными экспертными тг-сообществами.
Это сложные проблемы, и прецедентов их успешного решения в отрасли крайне мало. Решением этих проблем занимается Теория Игр.
Качество и глубина исследования аргументации зачастую оставляет желать лучшего. Наиболее глубокое исследование и качество аргументации, которорое я наблюдал в своей практике, дает диалектика (в формате диалогов Платона). @GKruglov удалось достигнуть впечатляющих успехов в этом деле.
Иными словами, задачу структурирования и организации информационного пространства можно считать решенной. Следующим этапом мне видится структурирование и организация источников информации, т.е. мета-организация.
Построение модели самоустанавливающегося развития экспертного сообщества - задача чрезвычайно важная, которая способна в корне преобразить отрасль. Первые шаги в этом направлении уже сделаны. Проект Сергея является существенным инкрементом в этом направлении. Хочется верить в дальнейшее продолжение. Рекомендую.
[UPDATE]: после регистрации требуется пройти спам-тест в главном топике https://www.tgoop.com/archicases/1 за 60 сек.
Список топиков: https://www.tgoop.com/archicases
Главный топик (для вступления): https://www.tgoop.com/archicases/1
Это, наверное, первая успешная попытка среди экспертных тг-сообществ, которая решает один из ключевых вызовов современности - повышение качества навигации в перегруженном информационном пространстве, путем исключения из зоны внимания нерелевантной информации.
В отличии от других сообществ, которые создают топики обсуждения по конкретным областям знаний, @sergey486 решил создавать топики по конкретным кейсам. Тем самым он еще больше облегчил поиск решения на основе схожести проблемы. Именно возможность навигации на основе схожести проблемы является причиной роста популярности эталонно-демонстрационных приложений. Как говорится, лучше один раз увидеть. Именно по этой причине Example Mapping стал таким популярным.
Информация из топиков обсуждения в последующем дистиллируется и публикуется в виде дайджестов, что еще больше удешевляет освоение информации.
Невероятно порадовала легкость отчуждения знаний путем использования статического генератора контента. Собственно, такой инструментарий может служить самостоятельным источником дивергентности решений посредством слияния коммитов - моя давняя идея.
Какие вопросы еще остаются нерешенными?
Несмотря на то, что удалось достигнуть значительного успеха в дивергентности принятия решения, конвергентность все еще опирается на монополию компетентности в лице модераторов и авторов дайджестов. Это, безусловно, сковывает развитие сообщества и ставит систему в зависимость от качеств конкретных личностей (пусть хоть эти личности и демонстрируют высокие качества, но факт зависимости остается).
Остается открытым вопрос организации защиты информационного пространства от захламления откровенно недостоверными вбросами, а также от проявлений эффекта Даннинга-Крюгера, субъективизма и вкусовщины. Модерация пока остаётся единственным и не самым действенным механизмом. Новичкам не всегда понятно кого слушать, а грамотные специалисты не всегда спешат ввязываться во флейм. Но, должен заметить, что уровень конструктивности и морально-психологического климата ему удалось значительно повысить по сравнению с аналогичными экспертными тг-сообществами.
Это сложные проблемы, и прецедентов их успешного решения в отрасли крайне мало. Решением этих проблем занимается Теория Игр.
Качество и глубина исследования аргументации зачастую оставляет желать лучшего. Наиболее глубокое исследование и качество аргументации, которорое я наблюдал в своей практике, дает диалектика (в формате диалогов Платона). @GKruglov удалось достигнуть впечатляющих успехов в этом деле.
Иными словами, задачу структурирования и организации информационного пространства можно считать решенной. Следующим этапом мне видится структурирование и организация источников информации, т.е. мета-организация.
Построение модели самоустанавливающегося развития экспертного сообщества - задача чрезвычайно важная, которая способна в корне преобразить отрасль. Первые шаги в этом направлении уже сделаны. Проект Сергея является существенным инкрементом в этом направлении. Хочется верить в дальнейшее продолжение. Рекомендую.
[UPDATE]: после регистрации требуется пройти спам-тест в главном топике https://www.tgoop.com/archicases/1 за 60 сек.
Telegram
Архитектурные этюды
Вместе решаем архитектурные этюды - реальные практические ситуации и вопросы.
Правила: https://www.tgoop.com/archicases/1/2
Правила: https://www.tgoop.com/archicases/1/2
👍4❤1🔥1
Update, еще одна книжка от автора топологии команд:
Remote Team Interactions Workbook: Using Team Topologies Patterns for Remote Working https://a.co/d/6VCTWNc
Remote Team Interactions Workbook: Using Team Topologies Patterns for Remote Working https://a.co/d/6VCTWNc
👍4🔥1
Хорошие курсы по оптимизации PostgreSQL:
- https://postgrespro.ru/education/courses/QPT
- https://postgrespro.ru/education/courses/QPT
postgrespro.ru
QPT
Postgres Professional - российская компания, разработчик систем управления базами данных
❤13👍3🔥1
Коллеги, есть ли кто из юристов с опытом в налогообложении? Есть вопросик. Напишите в личку, пожалуйста: @emacsway
Актуальное видео в нашей профессиональной среде:
https://youtu.be/hm-vYGXx3Aw
https://youtu.be/hm-vYGXx3Aw
YouTube
Один раз сделал и сутулиться не смог никогда после этого. Правильная осанка за 5 минут на всю жизнь
9 ШАГОВ К ИДЕАЛЬНОМУ ЗРЕНИЮ. Восстановление зрения. Полный комплекс упражнений из 9 занятий здесь: https://boosty.to/antonalex/posts/13b7c69c-43a7-44a3-9f17-4af7fd0ae418?share=post_link
Программа курса:
1. Восстановление глазодвигательных мышц
2. Синхронная…
Программа курса:
1. Восстановление глазодвигательных мышц
2. Синхронная…
👍9🙏3🔥2