[3/3] Quality Metrics in Software Architecture (Рубрика #Architecture)
Заканчивая рассказ (1 и 2) про этот whitepaper поделюсь иллюстрациями из самой статьи
Заканчивая рассказ (1 и 2) про этот whitepaper поделюсь иллюстрациями из самой статьи
👍5❤4🔥2
What Every Programmer Should Know about How CPUs Work • Matt Godbolt • GOTO 2024 (Рубрика #Engineering)
Посмотрел на неделе интересное выступление Мэтта Годболта, британского программиста, разработчика игр и бывшего сотрудника Google, наиболее известного как создатель популярного среди разработчиков инструмента Compiler Explorer. В этом выступлении Мэтт рассказывал о вещах, которые обязательно знать программистам о том, как работают CPUs (да, я знаю, что сейчас более модно рассказывать о том, как работают GPUs, но мы тут про базу, а не про хайп ). Доклад проливает свет за 45 минут на следующие вещи
- Как выглядит архитектура современных процессоров в плане конвейерной обработки инструкций, что такое фронтэнд и бэкэнд в процессорах
- Как базово работает механизм branch prediction (предсказания ветвлений)
- Как процессоры разбирают инструкции и избегают конфликтов при работе с регистрами.
- Как достигается одновременное выполнение множества инструкций и почему это важно для производительности (тут про буфер переупорядочивания)
- Как процессор реагирует на ошибки (например, сегментации) и отменяет неверные вычисления.
- Как точность предсказания ветвлений напрямую влияет на скорость работы программ.
- Как сортировка данных и особенности кода влияют на эффективность исполнения (примеры на Python и C++)
- Почему деление — одна из самых медленных операций, как компиляторы и программисты могут это обойти (роль кэшей и памяти)
- Какие инструменты можно использовать для анализа производительности (Perf, Compiler Explorer, Cache Grind и другие)
В итоге, этот доклад прямо интересно посмотреть тем, кто хочет писать быстрый и эффективный код, понимая, как реально работают современные процессоры и компиляторы.
#Engineering #Software #Architecture #Hardware
Посмотрел на неделе интересное выступление Мэтта Годболта, британского программиста, разработчика игр и бывшего сотрудника Google, наиболее известного как создатель популярного среди разработчиков инструмента Compiler Explorer. В этом выступлении Мэтт рассказывал о вещах, которые обязательно знать программистам о том, как работают CPUs (
- Как выглядит архитектура современных процессоров в плане конвейерной обработки инструкций, что такое фронтэнд и бэкэнд в процессорах
- Как базово работает механизм branch prediction (предсказания ветвлений)
- Как процессоры разбирают инструкции и избегают конфликтов при работе с регистрами.
- Как достигается одновременное выполнение множества инструкций и почему это важно для производительности (тут про буфер переупорядочивания)
- Как процессор реагирует на ошибки (например, сегментации) и отменяет неверные вычисления.
- Как точность предсказания ветвлений напрямую влияет на скорость работы программ.
- Как сортировка данных и особенности кода влияют на эффективность исполнения (примеры на Python и C++)
- Почему деление — одна из самых медленных операций, как компиляторы и программисты могут это обойти (роль кэшей и памяти)
- Какие инструменты можно использовать для анализа производительности (Perf, Compiler Explorer, Cache Grind и другие)
В итоге, этот доклад прямо интересно посмотреть тем, кто хочет писать быстрый и эффективный код, понимая, как реально работают современные процессоры и компиляторы.
#Engineering #Software #Architecture #Hardware
YouTube
What Every Programmer Should Know about How CPUs Work • Matt Godbolt • GOTO 2024
This presentation was recorded at GOTO Chicago 2024. #GOTOcon #GOTOchgo
https://gotochgo.com
Matt Godbolt - Low-level Latency Geek @MattGodbolt
RESOURCES
https://bsky.app/profile/matt.godbolt.org
https://xania.org
https://github.com/mattgodbolt
https:…
https://gotochgo.com
Matt Godbolt - Low-level Latency Geek @MattGodbolt
RESOURCES
https://bsky.app/profile/matt.godbolt.org
https://xania.org
https://github.com/mattgodbolt
https:…
🔥10❤5👍2🥱1
The Beauty of Simplicity - Making Your Own Technology • Yan Chernikov • YOW! 2024 (Рубрика #Architecture)
Посмотрел недавно интересно выступление Яна Черникова (The Cherno), австралийского разработчика, популярного YouTube-блогера и бывшего инженера Electronic Arts. Его основной вклад — образовательный контент по C++, разработке игровых движков и программированию, а также создание собственного 3D-движка Hazel. Черников прославился благодаря подробным видеоурокам по архитектуре игровых движков и практическим сериям по созданию Hazel с нуля. До Hazel он работал над движками Osiris и Frostbite в EA, но ушёл, чтобы сосредоточиться на собственных проектах и образовательной деятельности.
В этом выступлении он рассказал интересный доклад про красоту простоты. В своем докладе он подчёркивает ценность простоты как основы для выживания и эффективности в разработке собственных решений. Вот основные темы, что он затронул в своем рассказе
- Как он пришел к Hazel и почему это было вызовом самому себе и стало образовательным проектом для сообщества
- Как Hazel вырос из личного проекта в командную разработку благодаря вовлечённости сообщества и добровольцам
- Как выглядит образовательная часть - самHazel и сопутствующие видео используются для обучения C++, архитектуре движков и демонстрации реальных кейсов разработки
- Как сравнить использование готовых движков с созданием собственного продукта - Unity и Unreal Engine против Hazel
- Какие основные неявные критерии выбора: лицензии, поддержка, найм специалистов - все это важные аспекты при выборе между готовыми решениями и самостоятельной разработкой
- Как работать с зависимостями и почему важна модульность - лучше минимизировать внешние зависимости и работать модульно - это обеспечит гибкость и возможность менять отдельные модули под свои задачи
- Почему open source помогает делает свои решшение - сейчас есть много открытых решений, что позволяют ускорить разработку и делегировать часть задач готовым решениям
- Что такое VSDD (vertical slice driven development) - я уже как-то рассказывал про доклад "Designing for change with Vertical Slice Architecture - Chris Sainty - NDC London 2024", где об это рассказывают сильно подробнее
Вертикальная разработка и оптимизация
Подход VSDD: развитие всех компонентов проекта параллельно, а не углубление только в одну часть; простота как ключ к эффективной оптимизации.
- Почему важно поступательное движение и фокус на конечном продукте, а также зачем пробовать создавать свои решения, даже если это кажется сложным
В общем, Черников вдохновляет разработчиков не бояться создавать свои технологии, ценить простоту и учиться на реальных задачах, а не только на готовых решениях.
#Architecture #SystemDesign #Engineering #Management #Software
Посмотрел недавно интересно выступление Яна Черникова (The Cherno), австралийского разработчика, популярного YouTube-блогера и бывшего инженера Electronic Arts. Его основной вклад — образовательный контент по C++, разработке игровых движков и программированию, а также создание собственного 3D-движка Hazel. Черников прославился благодаря подробным видеоурокам по архитектуре игровых движков и практическим сериям по созданию Hazel с нуля. До Hazel он работал над движками Osiris и Frostbite в EA, но ушёл, чтобы сосредоточиться на собственных проектах и образовательной деятельности.
В этом выступлении он рассказал интересный доклад про красоту простоты. В своем докладе он подчёркивает ценность простоты как основы для выживания и эффективности в разработке собственных решений. Вот основные темы, что он затронул в своем рассказе
- Как он пришел к Hazel и почему это было вызовом самому себе и стало образовательным проектом для сообщества
- Как Hazel вырос из личного проекта в командную разработку благодаря вовлечённости сообщества и добровольцам
- Как выглядит образовательная часть - самHazel и сопутствующие видео используются для обучения C++, архитектуре движков и демонстрации реальных кейсов разработки
- Как сравнить использование готовых движков с созданием собственного продукта - Unity и Unreal Engine против Hazel
- Какие основные неявные критерии выбора: лицензии, поддержка, найм специалистов - все это важные аспекты при выборе между готовыми решениями и самостоятельной разработкой
- Как работать с зависимостями и почему важна модульность - лучше минимизировать внешние зависимости и работать модульно - это обеспечит гибкость и возможность менять отдельные модули под свои задачи
- Почему open source помогает делает свои решшение - сейчас есть много открытых решений, что позволяют ускорить разработку и делегировать часть задач готовым решениям
- Что такое VSDD (vertical slice driven development) - я уже как-то рассказывал про доклад "Designing for change with Vertical Slice Architecture - Chris Sainty - NDC London 2024", где об это рассказывают сильно подробнее
Вертикальная разработка и оптимизация
Подход VSDD: развитие всех компонентов проекта параллельно, а не углубление только в одну часть; простота как ключ к эффективной оптимизации.
- Почему важно поступательное движение и фокус на конечном продукте, а также зачем пробовать создавать свои решения, даже если это кажется сложным
В общем, Черников вдохновляет разработчиков не бояться создавать свои технологии, ценить простоту и учиться на реальных задачах, а не только на готовых решениях.
#Architecture #SystemDesign #Engineering #Management #Software
YouTube
The Beauty of Simplicity - Making Your Own Technology • Yan Chernikov • YOW! 2024
This presentation was recorded at YOW! Australia 2024. #GOTOcon #YOW
https://yowcon.com
Yan Chernikov - Director at Studio Cherno @TheCherno
RESOURCES
https://thecherno.com
https://github.com/thecherno
https://twitter.com/TheCherno
https://www.linkedin.com/in/yan…
https://yowcon.com
Yan Chernikov - Director at Studio Cherno @TheCherno
RESOURCES
https://thecherno.com
https://github.com/thecherno
https://twitter.com/TheCherno
https://www.linkedin.com/in/yan…
❤7🔥5👍2
Диснейленд в Шанхае (Рубрика #Travel)
Во второй раз за месяц приехал в Китай, но на этот раз с семьей. Первым делом мы отправились в Диснейленд, чтобы прочувствовать атмосферу диснеевских мультфильмов. В принципе, у нас это получилось - мы пришли к 8.30 в парк, а ушли в районе 17.00, полностью посетив все, что входили в fast tack из 11 аттракционов. Круто, что самого маленького сына пустили почти везде. Особенно нам понравился громадный ландшафтый парк и общая атмосфера с музыкой и парадами игровых персонажей по улицам города. В общем, мы с женой вспоминили свое детство со старыми диснеевскими мультиками, а детишки простт увидели воплощенные сказки, которые они часто видят в телевизоре.
Один день на Дичнейленд конечно потратить стоит, но больше одного дня по нему ходить было бы скучно.
#Travel #Cinema
Во второй раз за месяц приехал в Китай, но на этот раз с семьей. Первым делом мы отправились в Диснейленд, чтобы прочувствовать атмосферу диснеевских мультфильмов. В принципе, у нас это получилось - мы пришли к 8.30 в парк, а ушли в районе 17.00, полностью посетив все, что входили в fast tack из 11 аттракционов. Круто, что самого маленького сына пустили почти везде. Особенно нам понравился громадный ландшафтый парк и общая атмосфера с музыкой и парадами игровых персонажей по улицам города. В общем, мы с женой вспоминили свое детство со старыми диснеевскими мультиками, а детишки простт увидели воплощенные сказки, которые они часто видят в телевизоре.
Один день на Дичнейленд конечно потратить стоит, но больше одного дня по нему ходить было бы скучно.
#Travel #Cinema
🔥18👍9🥰7❤2
9 мая
Поздравляю всех с Днем Победы ... а себя еще и с окончанием поездки в Китай, где я провел две недели со своей семьей, чуток подустал от отдыха и рад вернуться на вторые майские праздники в Россию. В связи с этим мой перерыв с постами в этот канал оканчивается и дальше они пойдут примерно в прежнем темпе.
Поздравляю всех с Днем Победы ... а себя еще и с окончанием поездки в Китай, где я провел две недели со своей семьей, чуток подустал от отдыха и рад вернуться на вторые майские праздники в Россию. В связи с этим мой перерыв с постами в этот канал оканчивается и дальше они пойдут примерно в прежнем темпе.
🔥24🫡24👍5❤4🥴3😢1🕊1
Understanding Distributed Architectures - The Patterns Approach (Рубрика #Architecture)
Недавно на конференции YOW! 2024 выступил Unmesh Joshi, известный эксперт в области распределённых систем, который является Principal Consultant в ThoughtWorks с более чем 20-летним опытом работы в индустрии. Это выступление является кратким изложением его книги "Patterns of Distributed Systems", изданной в 2023 году в серии Мартина Фаулера (на сайте Мартина есть краткая версия каталога паттернов из этой книги). Понятно, что в 35 минутном выступлении рассказать все 30 паттернов из книги он не смог, но вот вот какие темы у него раскрыть получилось
- Введение в распределённые системы - современные системы включают облачные сервисы (cloud services), Kafka, Kubernetes и многие другие распределённые технологии.
- Самоподобие шаблонов - паттерны (patterns) применимы на разных уровнях абстракции и часто демонстрируют свойства самоподобия (self-similarity). Мне это напомнило фракталы:)
- Изучение открытого кода - для выявления шаблонов Unmesh использует "правило трёх реализаций", анализируя open source проекты распределенных систем (Kafka, K8s, Cassandra, ...)
- Каталог из 30 шаблонов - созданный автором каталог шаблонов помогает понять внутреннее устройство распределённых систем, с примерами из реальных продуктов.
- "Симпатия к платформе" - концепция, аналогичная "механической симпатии" (mechanical sympathy) в автогонках, помогающая эффективно использовать системы.
- Важность практического опыта - реальный код устраняет двусмысленность и превращает абстрактные концепции в конкретные решения. У автора на Github есть репозитории с примерами распределенных систем для оркестрации контейнеров (аля K8s), messaging system (аля Kafka), nosql database (аля Cassandra)
- Структурирование через шаблоны - паттерны помогают организовать информацию и сделать код более понятным, устраняя неясности в документации. Я бы добавил, что они позволяют использовать инженерам общий язык при проектировании сложных систем
- Архитектура как последовательность паттернов - знание шаблонов упрощает понимание сложных архитектур, а также проектирование собственных систем
- Согласованное ядро и управление метаданными - пример паттерна, где небольшой кластер с высокой степенью согласованности (high consistency) управляет метаданными (metadata), что позволяет основному кластеру масштабироваться до тысяч узлов (nodes). По-факту, это стандартная концепция с разделением control plane и data plane.
- Применение шаблонов в реальных системах - у автора есть демонстрация реализации паттернов на примере мнииатюрных версий Kubernetes и Kafka для обучения (можно поискать на Github аккаунте автора, который я приводил выше)
Ну и финальная мысль выступления в том, что эти шаблоны помогают уменьшить случайную сложность (accidental complexity) и прояснить существенную сложность (essential complexity) распределённых систем (distributed systems), что помогает разобраться с таким сложной темой:)
#Software #Architecture #DistributedSystems #SystemDesign #Patterns #Sofware
Недавно на конференции YOW! 2024 выступил Unmesh Joshi, известный эксперт в области распределённых систем, который является Principal Consultant в ThoughtWorks с более чем 20-летним опытом работы в индустрии. Это выступление является кратким изложением его книги "Patterns of Distributed Systems", изданной в 2023 году в серии Мартина Фаулера (на сайте Мартина есть краткая версия каталога паттернов из этой книги). Понятно, что в 35 минутном выступлении рассказать все 30 паттернов из книги он не смог, но вот вот какие темы у него раскрыть получилось
- Введение в распределённые системы - современные системы включают облачные сервисы (cloud services), Kafka, Kubernetes и многие другие распределённые технологии.
- Самоподобие шаблонов - паттерны (patterns) применимы на разных уровнях абстракции и часто демонстрируют свойства самоподобия (self-similarity). Мне это напомнило фракталы:)
- Изучение открытого кода - для выявления шаблонов Unmesh использует "правило трёх реализаций", анализируя open source проекты распределенных систем (Kafka, K8s, Cassandra, ...)
- Каталог из 30 шаблонов - созданный автором каталог шаблонов помогает понять внутреннее устройство распределённых систем, с примерами из реальных продуктов.
- "Симпатия к платформе" - концепция, аналогичная "механической симпатии" (mechanical sympathy) в автогонках, помогающая эффективно использовать системы.
Mechanical sympathy is when you use a tool or system with an understanding of how it operates best. You don't have to be an engineer to be be a racing driver, but you do have to have Mechanical Sympathy. Jackie Stewart, racing driver.
- Важность практического опыта - реальный код устраняет двусмысленность и превращает абстрактные концепции в конкретные решения. У автора на Github есть репозитории с примерами распределенных систем для оркестрации контейнеров (аля K8s), messaging system (аля Kafka), nosql database (аля Cassandra)
- Структурирование через шаблоны - паттерны помогают организовать информацию и сделать код более понятным, устраняя неясности в документации. Я бы добавил, что они позволяют использовать инженерам общий язык при проектировании сложных систем
- Архитектура как последовательность паттернов - знание шаблонов упрощает понимание сложных архитектур, а также проектирование собственных систем
- Согласованное ядро и управление метаданными - пример паттерна, где небольшой кластер с высокой степенью согласованности (high consistency) управляет метаданными (metadata), что позволяет основному кластеру масштабироваться до тысяч узлов (nodes). По-факту, это стандартная концепция с разделением control plane и data plane.
- Применение шаблонов в реальных системах - у автора есть демонстрация реализации паттернов на примере мнииатюрных версий Kubernetes и Kafka для обучения (можно поискать на Github аккаунте автора, который я приводил выше)
Ну и финальная мысль выступления в том, что эти шаблоны помогают уменьшить случайную сложность (accidental complexity) и прояснить существенную сложность (essential complexity) распределённых систем (distributed systems), что помогает разобраться с таким сложной темой:)
#Software #Architecture #DistributedSystems #SystemDesign #Patterns #Sofware
YouTube
Understanding Distributed Architectures - The Patterns Approach • Unmesh Joshi • YOW! 2024
This presentation was recorded at YOW! Australia 2024. #GOTOcon #YOW
https://yowcon.com
Unmesh Joshi - Principal Consultant at Thoughtworks & Author of "Patterns of Distributed Systems"
RESOURCES
https://twitter.com/unmeshjoshi
https://www.linkedin.com/in/unmesh…
https://yowcon.com
Unmesh Joshi - Principal Consultant at Thoughtworks & Author of "Patterns of Distributed Systems"
RESOURCES
https://twitter.com/unmeshjoshi
https://www.linkedin.com/in/unmesh…
👍13🔥8❤2
Конференция T-Observability Day 2025 (Рубрика #SRE)
19 мая в Москве пройдет конференция для обмена опытом и обсуждения современных практик в области наблюдаемости, мониторинга и управления инцидентами в сложных распределённых системах. Доступно как оффлайн, так и онлайн участие. В программе будут три отдельных сессии
1) 10:30—12:00 - Сессия лидеров-визионеров
Здесь пройдет дискуссия о том, как повысить операционную устойчивость и эффективность бизнеса. Участники обсудят как в условиях 2025 года эффективно развиваться, какую роль в этом играют платформы наблюдаемости и аналитики операционных данных и что за горизонтом: какие технологические тренды ближайшего будущего важно отслеживать уже сегодня
2) 12:30–14:15 - Сессия практиков
Здесь пройдет дискуссия о том, как совмещать два в одном: наблюдаемость и непрерывную аналитику операционных данных. Участники поговорят о сценариях использования платформ наблюдаемости в разных отраслях: как расти, масштабировать бизнес, становиться ближе к клиентам с помощью лучшего опыта и проактивного сервиса. Обеспечивать надежность, безопасность цифровых продуктов и быстрее внедрять инновации
3) 15:00–16:45 - Сессия разработчиков и пользователей
Здесь пройдет дискуссия о том, как выглядит технологический вектор развития платформ наблюдаемости и связанных с ними компонентов. Участники разберут какие подходы, платформы и инструменты актуальны для решения задач наблюдаемости, мониторинга и инцидент-менеджмента.
А кроме выступлений будут еще зоны для прямого общения с инженерами и разработчиками платформ, где можно узнать о решениях FineDog (управление жизненным циклом инцидентов) и Sage (наблюдаемость инфраструктуры, кросс-кластерный поиск, алертинг и дашборды). Кроме этого будет рассказ про Технологический радар Observability на базе радаров от Thoughtworks, куда входят 80+ практик, платформ, фреймворков и инструментов по наблюдаемости за последние 15 лет — для внедрения и развития современных практик и инструментов SRE, DevOps, ITOps, NetOps
Сама конференция ориентирована на разработчиков, SRE-инженеров, специалистов по DevOps и ITOps, заинтересованных в современных подходах к мониторингу, анализу инцидентов и повышению надёжности сервисов. А для участия надо зарегестрироваться на сайте и дождаться подтверждения участия.
#SRE #DevOps #Architecture #Software #Processes #Metrics #Engineering
19 мая в Москве пройдет конференция для обмена опытом и обсуждения современных практик в области наблюдаемости, мониторинга и управления инцидентами в сложных распределённых системах. Доступно как оффлайн, так и онлайн участие. В программе будут три отдельных сессии
1) 10:30—12:00 - Сессия лидеров-визионеров
Здесь пройдет дискуссия о том, как повысить операционную устойчивость и эффективность бизнеса. Участники обсудят как в условиях 2025 года эффективно развиваться, какую роль в этом играют платформы наблюдаемости и аналитики операционных данных и что за горизонтом: какие технологические тренды ближайшего будущего важно отслеживать уже сегодня
2) 12:30–14:15 - Сессия практиков
Здесь пройдет дискуссия о том, как совмещать два в одном: наблюдаемость и непрерывную аналитику операционных данных. Участники поговорят о сценариях использования платформ наблюдаемости в разных отраслях: как расти, масштабировать бизнес, становиться ближе к клиентам с помощью лучшего опыта и проактивного сервиса. Обеспечивать надежность, безопасность цифровых продуктов и быстрее внедрять инновации
3) 15:00–16:45 - Сессия разработчиков и пользователей
Здесь пройдет дискуссия о том, как выглядит технологический вектор развития платформ наблюдаемости и связанных с ними компонентов. Участники разберут какие подходы, платформы и инструменты актуальны для решения задач наблюдаемости, мониторинга и инцидент-менеджмента.
А кроме выступлений будут еще зоны для прямого общения с инженерами и разработчиками платформ, где можно узнать о решениях FineDog (управление жизненным циклом инцидентов) и Sage (наблюдаемость инфраструктуры, кросс-кластерный поиск, алертинг и дашборды). Кроме этого будет рассказ про Технологический радар Observability на базе радаров от Thoughtworks, куда входят 80+ практик, платформ, фреймворков и инструментов по наблюдаемости за последние 15 лет — для внедрения и развития современных практик и инструментов SRE, DevOps, ITOps, NetOps
Сама конференция ориентирована на разработчиков, SRE-инженеров, специалистов по DevOps и ITOps, заинтересованных в современных подходах к мониторингу, анализу инцидентов и повышению надёжности сервисов. А для участия надо зарегестрироваться на сайте и дождаться подтверждения участия.
#SRE #DevOps #Architecture #Software #Processes #Metrics #Engineering
website
T Observability Day 2025
Обсудим наблюдаемость и операционную эффективность
🔥11❤4⚡2👍1