{ между скобок }
{ между скобок }
  • 145
  • 404 181
Архитектурная Ката / Максим Чернухин , Глеб Гончаров
#softwareengineer #systemdesign #softwarearchitecture #kata
Что это такое? "Архитектурная ката" - это практика, которая поможет нам улучшить наши навыки и процессы в разработке программного обеспечения. Мы в командах решали реальные архитектурные задачи, изучали новые методы и подходы, а также совершенствовали наши навыки в командной работе.
Канал с анонсами t.me/megdu_skobok
Ламповый чат t.me/backend_megdu_skobkah
Boosty boosty.to/megdu_skobok
Полезные ссылки
- ИТ-сообщество игр «Архитектурные ката» architecturalkatas.ru
- Event Storming www.eventstorming.com
- Migrate from Nginx to Envoy dropbox.tech/infrastructure/how-we-migrated-dropbox-from-nginx-to-envoy
- How to implement a distributed and auto-scalable WebSocket server architecture on Kubernetes medium.com/lumen-engineering-blog/how-to-implement-a-distributed-and-auto-scalable-websocket-server-architecture-on-kubernetes-4cc32e1dfa45
Таймкоды
00:00 Введение в архитектурную кату
26:18 Сохраняем динамику для Event Storming
28:42 Рекомендации по завершению каты
29:50 Разница между архитектурной катой и system design
30:36 Идеи по улучшению каты
37:40 Начало презентации решений
39:32 Аутентификация
54:55 Хранение перс данных
01:05:52 Поиск
01:17:09 Мэтчинг
01:29:33 Чат
มุมมอง: 2 234

วีดีโอ

Ян Чикнизов: Чем занимается ваш Engineering Manager
มุมมอง 8862 หลายเดือนก่อน
#softwareengineer #management #agile #architecture Взял интервью у Engeenering Manager - чтобы понять, кто такой EM и за что он отвечает. Мы обсудили ключевые качества и навыки, которые необходимы для этой роли, а также выяснили, что EM - это не только про работу с людьми, но и про технологии. Ян рассказал, что его привлекает в этой работе и когда компании принимают решение, что им нужен Engeen...
Поздравляем с наступающим Новым Годом 2024!
มุมมอง 6237 หลายเดือนก่อน
Поздравляем с наступающим Новым Годом 2024!
Игорь Пересунько: работа в Startup vs Faang, какой путь выбрать
มุมมอง 1.4K7 หลายเดือนก่อน
Игорь Пересунько: работа в Startup vs Faang, какой путь выбрать
Distributed Systems Глава 9 Безопасность в распределенных системах | Михаил Курзин Александр Пахомов
มุมมอง 6718 หลายเดือนก่อน
Distributed Systems Глава 9 Безопасность в распределенных системах | Михаил Курзин Александр Пахомов
Maarten van Steen: interview with the author of Distributed Systems
มุมมอง 1.7K8 หลายเดือนก่อน
Maarten van Steen: interview with the author of Distributed Systems
Distributed Systems Глава 8 Отказоустойчивость | Илья Казначеев, Валерий Жила
มุมมอง 9599 หลายเดือนก่อน
Distributed Systems Глава 8 Отказоустойчивость | Илья Казначеев, Валерий Жила
Блокчейн как распределенная система | Игорь Корсаков, Сергей Тихомиров
มุมมอง 4509 หลายเดือนก่อน
Блокчейн как распределенная система | Игорь Корсаков, Сергей Тихомиров
Distributed Systems Глава 7 Согласованность и репликация данных | Антон Жуков, Николай Ижиков
มุมมอง 7169 หลายเดือนก่อน
Distributed Systems Глава 7 Согласованность и репликация данных | Антон Жуков, Николай Ижиков
Distributed Systems Глава 5 Координация распределенного приложения | S0ER, Дмитрий Константинов
มุมมอง 7609 หลายเดือนก่อน
Distributed Systems Глава 5 Координация распределенного приложения | S0ER, Дмитрий Константинов
Виталий Лихачев, Наталья Саушкина: Публичное собеседование Senior Golang Engineer
มุมมอง 10K9 หลายเดือนก่อน
Виталий Лихачев, Наталья Саушкина: Публичное собеседование Senior Golang Engineer
Distributed Systems Глава 4 Межсервисное взаимодействие | Виктор Гамов, Андрей Ребров
มุมมอง 98610 หลายเดือนก่อน
Distributed Systems Глава 4 Межсервисное взаимодействие | Виктор Гамов, Андрей Ребров
Distributed Systems Глава 3 Процессы и Виртуализация | Евгений Козлов, Вячеслав Горюнов
มุมมอง 63210 หลายเดือนก่อน
Distributed Systems Глава 3 Процессы и Виртуализация | Евгений Козлов, Вячеслав Горюнов
Максим Суркиз: Как успешно запустить свой Startup
มุมมอง 88210 หลายเดือนก่อน
Максим Суркиз: Как успешно запустить свой Startup
Гриша Скобелев, Саша Бармин: Публичное собеседование Senior Software Engineer
มุมมอง 17K10 หลายเดือนก่อน
Гриша Скобелев, Саша Бармин: Публичное собеседование Senior Software Engineer
Distributed Systems Глава 2 Архитектура распределенных систем | Фрол Крючков, Иван Богатырёв
มุมมอง 1.1K11 หลายเดือนก่อน
Distributed Systems Глава 2 Архитектура распределенных систем | Фрол Крючков, Иван Богатырёв
Distributed Systems Глава 1 Введение в распределенные системы | Юрий Бабак, Алексей Гончарук
มุมมอง 2.7K11 หลายเดือนก่อน
Distributed Systems Глава 1 Введение в распределенные системы | Юрий Бабак, Алексей Гончарук
Владимир Абазов, Александр Сальников: АБ-тесты, ограничения и альтернативы
มุมมอง 83511 หลายเดือนก่อน
Владимир Абазов, Александр Сальников: АБ-тесты, ограничения и альтернативы
Ярик Астафьев, Аксель Ткачев: публичное собеседование тимлида
มุมมอง 2.9Kปีที่แล้ว
Ярик Астафьев, Аксель Ткачев: публичное собеседование тимлида
Валерий Бабушкин, Арсений Кравченко: Интервью с авторами Machine Learning System Design
มุมมอง 3.1Kปีที่แล้ว
Валерий Бабушкин, Арсений Кравченко: Интервью с авторами Machine Learning System Design
Ольга Елисеева: Как стать лучшим teamlead-ом
มุมมอง 1.5Kปีที่แล้ว
Ольга Елисеева: Как стать лучшим teamlead-ом
Валерий Бабушкин: Почему Data Scientist-oв не существует
มุมมอง 13Kปีที่แล้ว
Валерий Бабушкин: Почему Data Scientist-oв не существует
ChatGPT в помощь архитектору / Николай Голов, Иван Шумов
มุมมอง 2.6Kปีที่แล้ว
ChatGPT в помощь архитектору / Николай Голов, Иван Шумов
Саша Пшеборовская - Успех через менторство
มุมมอง 1.5Kปีที่แล้ว
Саша Пшеборовская - Успех через менторство
Основы архитектуры ПО. Глава 18 Выбор подходящего стиля архитектуры / Сергей Баранов
มุมมอง 1.3Kปีที่แล้ว
Основы архитектуры ПО. Глава 18 Выбор подходящего стиля архитектуры / Сергей Баранов
Основы архитектуры ПО. Глава 17 Микросервисная архитектура / Филипп Дельгядо, Кирилл Ветчинкин
มุมมอง 2.8Kปีที่แล้ว
Основы архитектуры ПО. Глава 17 Микросервисная архитектура / Филипп Дельгядо, Кирилл Ветчинкин
Николай Голов, Николай Марков, Филлип Уваров: Big Data is Dead
มุมมอง 1.6Kปีที่แล้ว
Николай Голов, Николай Марков, Филлип Уваров: Big Data is Dead
Основы архитектуры ПО. Глава 16 Orchestration-Driven Service-Oriented архитектура / Иван Шумов
มุมมอง 1Kปีที่แล้ว
Основы архитектуры ПО. Глава 16 Orchestration-Driven Service-Oriented архитектура / Иван Шумов
Тагир Валеев: интервью с автором 100 Java Mistakes and How to Avoid Them
มุมมอง 3.3Kปีที่แล้ว
Тагир Валеев: интервью с автором 100 Java Mistakes and How to Avoid Them
Основы архитектуры ПО. Глава 15 Space-based архитектура / Евгений Кузовлев
มุมมอง 1.2Kปีที่แล้ว
Основы архитектуры ПО. Глава 15 Space-based архитектура / Евгений Кузовлев

ความคิดเห็น

  • @AlexZdanevich
    @AlexZdanevich 4 วันที่ผ่านมา

    Выпуск просто бомба! 💣💥

  • @errandir
    @errandir 7 วันที่ผ่านมา

    Tempóral же )) UPD не дослушал до конца первой минуты, спасибо Антону за правильное ударение )))

  • @user-fz3ve8mo2f
    @user-fz3ve8mo2f 8 วันที่ผ่านมา

    Очень интересно

  • @arturdaukaev5673
    @arturdaukaev5673 10 วันที่ผ่านมา

    Time-коды было бы хорошо добавить

  • @edwardbaranetsky3005
    @edwardbaranetsky3005 11 วันที่ผ่านมา

    тяжело смотреть, каждый о своём, сплошной поток сознания не по теме

  • @user-tc4cx8hu1k
    @user-tc4cx8hu1k 11 วันที่ผ่านมา

    Несколько лет работал с аналогичным устройством внутренней архитектуры сервиса, хорошо знаю плюсы и минусы подхода. У рассказанного подхода есть большие проблемы с оптимизацией. Например, сохранение агрегата целиком грузит базу на порядок больше, чем обновление отдельных полей. А это блокировки таблиц, полей, IOPS, обновление кешей в базе. Кроме того, в указанном примере для query текст запроса отправляется по сети каждый раз, вызывая сначала свою сериализацию, потом десиарилизацию и синтаксический парсинг. Если нужна призводительность, уйти от хранимых процедур не получится. Подход можно докрутить, но придется отказаться от агрегатов и ряда других идей. На небольших приложениях работает хорошо, но в нагруженных системах, увы, не применимо. Кроме того, использование этой архитектуры в микросервисах маленького размера накладывает огромный оверхед на затраты времени на разработку и сильно усложняет сопровождение. Но единобразие архитектуры действительно полезная штука. Резюмируя свой опыт - внутренняя архитектура сервиса должна быть. Выбирайте наиболее удобную для себя и делайте просто. Единообразно где это возможно. Большая часть книжек презентует красивые концепции, которые сыплются при реализации. Пишут такие книжки для того, чтобы продать Вам идею. Не забывайте об этом. KISS и YAGNI самые важные аббревиатуры.

  • @AlexZdanevich
    @AlexZdanevich 12 วันที่ผ่านมา

    Григорий, спасибо за интересное обсуждение! Не мог бы ты поделиться списком литературы, источников информации про моделирование? Может быть гости могут поделиться своими? Интересная тема!

  • @vladimirnazarov9033
    @vladimirnazarov9033 14 วันที่ผ่านมา

    @mezhdu_skobok не смог найти в плейлисте встречи по главам 6 и 7, они существуют?

  • @nightblure
    @nightblure 14 วันที่ผ่านมา

    и кстати промокод не работает

  • @nightblure
    @nightblure 14 วันที่ผ่านมา

    хороший выпуск! где-то на гитхабе код валяется?

  • @konstantinshilov3585
    @konstantinshilov3585 15 วันที่ผ่านมา

    Мне кажется собес был ненужным. Сразу было понятно, что он готов к такой работе.

  • @taksed0
    @taksed0 17 วันที่ผ่านมา

    Если со временем правила для value object поменялись, и некоторые значения в базе стали невалидными, то как их выгружать из базы? Если из 3-й системы, на которую ты никак не можешь повлиять, летит невалидная фигня, останавливать работу всех сервисов?

  • @artiomborisov6838
    @artiomborisov6838 20 วันที่ผ่านมา

    прошло 30 минут видео - на обсуждение темы главы давно забили

  • @alevadnaya
    @alevadnaya 21 วันที่ผ่านมา

    Интересный формат, спасибо за видео

  • @evseevav
    @evseevav 21 วันที่ผ่านมา

    Почему-то Георгий всегда намного тише, чем остальные. Звук нельзя выровнять?

    • @mezhdu_skobok
      @mezhdu_skobok 21 วันที่ผ่านมา

      Спасибо за обратную связь, сделаю микрофон громче

  • @dimarogov4687
    @dimarogov4687 22 วันที่ผ่านมา

    Было бы здорово если Геннадий поделился примерами статей с глубоким разбором кейсов по DDD

  • @rudolfsikorsky7900
    @rudolfsikorsky7900 23 วันที่ผ่านมา

    1. Кандидат слишком многословен. 2. Кандидат оцениватся как "выше синьора", но спрашивают у него базу по Java Core. Сусдизайн в "РиК" не творят? А если творят - кто эти монстры? И как вы тогда собесите джунов/мидлов?

  • @nailkh
    @nailkh 25 วันที่ผ่านมา

    О какой книге идет речь на 44 минуте?

    • @grigoriyskobelev992
      @grigoriyskobelev992 25 วันที่ผ่านมา

      Про какой ты конкретно тайм код. Например, так можно указать отметку времени 46:30

  • @SergeiPeshalov
    @SergeiPeshalov 26 วันที่ผ่านมา

    Этот DDD не нужОн ваш

  • @user-kq8nk5vj5r
    @user-kq8nk5vj5r 26 วันที่ผ่านมา

    Не так уж и плохо. Хорошо, что не похоже на популярные сейчас шаблоны аля Алекс Ксю. Но, кажется, было бы лучше, если бы интервьюер активнее контролировал и направлял отвечающего. Очень много говорильни, но мало чего зафиксировано на схемах. Надо выступающему посмотреть Курс молодого бойца от Олега Онтико(hightload++).

  • @user-xz7ps7hn1g
    @user-xz7ps7hn1g 29 วันที่ผ่านมา

    большой минус кандидату - он вообще никаких вопросов не задал про задачу. например, можно было бы узнать как будет использоваться система - больше записи или чтения, профиль нагрузки, объем данных, кол-во нод в системе и тд. а тут сразу начал реализовывать, а на 9.43 интервьювер сказал про инмемори БД...

  • @basimal-jawahery5688
    @basimal-jawahery5688 หลายเดือนก่อน

    Я так понимаю что описание workspace на языках Java, .Net, etc дает возможность определять архитектурные правила и праверять их соблюдение модульными тестами. Или есть еще какое-нибудь интересное использование описаний архитектуры на Java?

  • @user-gf6sc4xf4l
    @user-gf6sc4xf4l หลายเดือนก่อน

    Объясните пожалуйста, как это работает? MAU 20m, значит в день 670к???? Чоооо? У винды 365м пользователей, значит в день 1 Мио? Серьёзно?!?

  • @user-do4gc6ys5y
    @user-do4gc6ys5y หลายเดือนก่อน

    32:00 Если нет consistency, зачем делать систему, где есть лидер..? Просто взяли и не выбрали ничего из "CAP"...

  • @user-do4gc6ys5y
    @user-do4gc6ys5y หลายเดือนก่อน

    22:21 Плохой вариант. Для leader election нужен специальный алгоритм, наивный не сработает

  • @user-do4gc6ys5y
    @user-do4gc6ys5y หลายเดือนก่อน

    21:35 Ещё можно про Viewstamped Replication и про Zookeeper Atomic Broadcast почитать

  • @user-do4gc6ys5y
    @user-do4gc6ys5y หลายเดือนก่อน

    21:20 Multi Paxos, а не Paxos

  • @user-do4gc6ys5y
    @user-do4gc6ys5y หลายเดือนก่อน

    21:00 В etcd Raft, реплики тоже общаются по протоколу Raft... (Зачем..?)

  • @TheTmntmike
    @TheTmntmike หลายเดือนก่อน

    Это не проектирование базы данных. 10 минут про то, что это просто хэш-таблица и ссылки на файлик и дальше 50 минут стрелочки мастер->слэйв. Может надо было что-то про атомарность, какие-нибудь способы обработки отказов системы, больше про физическое представление данных. А база у нас однопоточная или нет?А какие данные храним? Только строки? Может спроектировать хранение сложных структур?

    • @user-do4gc6ys5y
      @user-do4gc6ys5y หลายเดือนก่อน

      Если у тебя есть protobuf, всё есть строка (aka если есть молоток, всё гвозди) Вообще так-то байты нужно хранить...

  • @jija5780
    @jija5780 หลายเดือนก่อน

    Спасибо

  • @get_out_it
    @get_out_it หลายเดือนก่อน

    Постгрес сжимает данные по умолчанию? Это точная инфа? Таплы это не про сжатие если что.

    • @mezhdu_skobok
      @mezhdu_skobok หลายเดือนก่อน

      Оговорился постгрес не сжимает, а использует таплы.

    • @alpawlov
      @alpawlov หลายเดือนก่อน

      @@mezhdu_skobokоговорился только в этом моменте или ещё были какие-то недочеты?

    • @krasninja
      @krasninja 29 วันที่ผ่านมา

      Наверное, TOAST имели в виду.

  • @get_out_it
    @get_out_it หลายเดือนก่อน

    В задаче описана функция получения данных по строке - зачем сюда стели лепить бинарное дерево? key-value сторадж аля Redis слишком просто использовать?

    • @user-do4gc6ys5y
      @user-do4gc6ys5y หลายเดือนก่อน

      Человек просто не знает LSM

  • @user-h2d7hd26
    @user-h2d7hd26 หลายเดือนก่อน

    Зачем джуна волка на собес позвал? Кандидату 18 лет и у него меньше года коммерческого опыта, в чем тут он нам поможет разобраться? Как делать точно не стоит?

    • @danil4095
      @danil4095 หลายเดือนก่อน

      вообще-то он старший разработчик в Озон) Хотя это уже не показатель, берут с рынка всех подряд)

    • @get_out_it
      @get_out_it หลายเดือนก่อน

      Тот случай когда ни интервюер ни интервьюируемый не знаю о чем говорят, не знают как проектировать бд но при этом делают вид что все круто и все работает)

    • @TheTmntmike
      @TheTmntmike หลายเดือนก่อน

      @@danil4095 Тот самый двадцатилетний сеньор-помидор-архитектор

  • @leomak7580
    @leomak7580 หลายเดือนก่อน

    Какая то ерунда )

  • @grigorii9019
    @grigorii9019 หลายเดือนก่อน

    Прикольно, как неограниченный бюджет превратился k8s в k9s. При увеличении количества денег все увеличивается.

    • @user-rl8fy6xe1t
      @user-rl8fy6xe1t 6 วันที่ผ่านมา

      😂 ну видимо k9s часто пользуется, вот и глаз замылился. k9s это tui для k8s

  • @ilyaglaz7632
    @ilyaglaz7632 หลายเดือนก่อน

    Спасибо за интервью. Можно ссылку на код который ревьюели.

  • @get_out_it
    @get_out_it หลายเดือนก่อน

    Девушка молодец

  • @94riv
    @94riv หลายเดือนก่อน

    Такой классный гость, интересные рассуждения, очень интересный опыт, и Николай его, даже не знаю, какое лучше слово подобрать, "прессует" что ли своими вопросами. Притом и гость в целом и без того в канве поставленного вопроса отвечает. Это же не экзамен в университете...

  • @graft7205
    @graft7205 หลายเดือนก่อน

    Вы говорите, про новые языки программирования. Вопрос Олегу: вы хоть один язык программирования выпустили для широкой публики?

  • @chris3748
    @chris3748 หลายเดือนก่อน

    Почему на 55:12 показана неэффективная реализация метода? А какая будет эффективная?

  • @bergshrundful
    @bergshrundful หลายเดือนก่อน

    Чего не спросили чтото за сети?

  • @slavanikulin8069
    @slavanikulin8069 หลายเดือนก่อน

    вместо броадкастера и мапы с каналами, который Виталий предложил, можно же было использовать один канал и закрытие канала в качестве сигнала. Потом из кэш-мапы забирать данные

  • @alexanderk3762
    @alexanderk3762 หลายเดือนก่อน

    Смотреть надо - оч правильное замечание..интервью окончено. Код+что он выведет = зло. Человек живет в парадигме ТДД, где он тест сначала пишет ваще))))

  • @best-of-the-best-1
    @best-of-the-best-1 หลายเดือนก่อน

    Игра в реальную жизнь: стартуем, а не стартует и дискуссия на час.

  • @xfg9183
    @xfg9183 หลายเดือนก่อน

    Двухфазовый коммит это strong/acid consistency, а EDA это eventual consistency. Здесь в кучу все смешали. Смысл как раз в том, что мы говорим, что система в конечном счете будет в согласованном состоянии, но не сейчас, а в будущем, когда долетят необходимые события. За это мы получаем производительность системы, так как у нас нет раздутых транзакций где лочится куча данных, которые также нужны другим параллельно выполняющимся транзакциям и все дружно сидят друг друга ждут, но за это мы расплачиваемся тем, что пользователь в разные моменты времени будет видеть устаревшее или странное состояние системы и может считать это багом и с этим нужно как-то жить. Простейший пример eventual consistency это перевод денег со счета в одном банке на счет в другом банке. В моменте мы как пользователь можем видеть, что деньги с нашего счета уже списали, но на счету в другом банке они еще не появились. Мы к этому привыкли, мы не ждем здесь strong consistency, то есть мгновенного зачисления и не считаем это багом, но конечно есть множество других юзкейсов, где eventual consistency будет выглядеть странно для конечного пользователя. Соответственно strong/acid consistency ведет к снижению производительности системы, а eventual consistency ведет к несогласованным данным в различные промежутки времени.

  • @artemdvoryadkin
    @artemdvoryadkin หลายเดือนก่อน

    Cмотрeл постановку задачи, меня только одного смутило что попугайчики могут регистрироваться в мобильном приложении имеют емайл и профиль в соц сетях и на них распространяется законодательство регионов распространения приложения? это сотка по паподанию в мем Да что ты черт побери такое несешь? Не представляют что это были за требования которые породили такую постановку задачи. Надеюсь требования были не соевые Вы сделали мой день ❤❤❤❤❤

  • @94riv
    @94riv หลายเดือนก่อน

    Я не понимаю, почему у этого классного интервью так мало просмотров и лайков. Очень круто! Вы - большие молодцы!

  • @KopoLPedov
    @KopoLPedov หลายเดือนก่อน

    21:13 ровно 1000, а не 1024

  • @TheGeneSIS4K
    @TheGeneSIS4K หลายเดือนก่อน

    nowait если перехватывать - полезная вещь. Например одновременно списывается сумма по счету на покупку билета. Сумма билета 1500 руб. Баланс 1500. Если в 2 транзакциях происходит списание, то мы можем отловить изменение в 1 транзакции и уведомить, что сумма уже списана, for key update nowait. А если очередность реализовать параллельную, то через skip locked, к примеру мы по 1000 записей через cte обновляем, нам важно пропускать то, что уже заблокировано и брать в работу следующую пачку из 1000 записей 😊 на своем проекте такое реализовывал

  • @koji6acbi4
    @koji6acbi4 หลายเดือนก่อน

    Спасибо, круто видеть каты онлайн, хотелось бы видеть чаще)

    • @mezhdu_skobok
      @mezhdu_skobok หลายเดือนก่อน

      Еще круче в них участвовать) В телеграмм канале будет анонс скоро следующей каты