Pattern Guru. Шаблоны проектирования. Архитектура ПО – Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО
3.97K subscribers
222 photos
4 videos
126 links
Патерны программирования.
Архитектура ПО.
Микросервисы

@anothertechrock
Download Telegram
🧠 Polyglot Persistence: как современные системы живут с десятками баз данных

🔥 23 декабря в 20:00 мск — открытый вебинар в OTUS.

Одна база данных больше не справляется с требованиями современного мира. Сегодня компании вроде Avito, Yandex, Ozon и Spotify объединяют PostgreSQL, ClickHouse, Redis, Kafka, Elasticsearch и десятки других инструментов в единую экосистему, где каждая БД отвечает за свой кусочек производительности.

📌 На вебинаре разберём:
— Принципы Polyglot Persistence и как распределять роли между СУБД
— Как связать PostgreSQL, ClickHouse, Redis и Kafka без потери согласованности
— Как работают event-driven архитектуры, CDC и outbox-паттерн в боевых системах
— Как проектировать отказоустойчивые data-платформы

👉 Регистрация: https://vk.cc/cSpWXK

Бесплатное занятие приурочено к старту курса Highload Architect, где вы научитесь проектировать системы, выдерживающие миллионы запросов.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
☁️ Топ-6 паттернов обмена сообщения между сервисами в облачной инфраструктуре

🔹 Asynchronous Request-Reply
🔹 Pub-Sub
🔹 Claim Check
🔹 Priority Queue
🔹 Saga
🔹 Competing Consumers

👉 Источник

#инфографика
🔥 Последний шанс: набор на курс Highload Architect в этом году завершается! 🚀

Если хотите перейти от разработки к архитектуре высоконагруженных систем — действуйте сейчас.
Чтобы попасть в поток и зафиксировать спеццену, нужно успеть пройти вступительное тестирование до закрытия набора.

Вы сможете прокачать:
- Проектирование масштабируемых систем под миллионы запросов
- Оптимизацию производительности и отказоустойчивые архитектуры
- Практику с современными инструментами highload-разработки
- Применение проверенных паттернов и подходов в продакшене

🗓 Старт уже совсем скоро, места ограничены. Формат — онлайн, реальные кейсы, проект с защитой и детальный фидбек от практиков.

👉 Пройдите вступительное тестирование прямо сейчас: https://vk.cc/cSx0HU

Подтвердите уровень и поступайте в группу со спецценой. Подробности по скидке уточняйте у менеджера.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🤣2
Получая формальный язык, определяет представление его грамматики. О каком паттерне идёт речь?
Anonymous Quiz
86%
Интерпретатор
7%
Прототип
4%
Итератор
3%
Строитель
🚩 Шаблон проектирования Фасад

🟣 Подробное описание паттерна

Структурный паттерн Фасад (англ. Facade) помогает скрыть способ реализации сложной системы и предоставляет клиенту простой интерфейс взаимодействия с ней.

Другими словами, данный паттерн проектирования используется в качестве “обертки”, скрывающей детали реализации.

Фасад полезен, если вы используете какую-то сложную библиотеку со множеством подвижных частей, но вам нужна только часть её возможностей.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👎1
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Concurrency vs Параллелизм — БАЗА для каждого разраба

👉 Concurrency → про то, как организовать программу, чтобы она умела работать с несколькими задачами (структура, управление, планирование).

👉 Parallelism → про то, как реально ускорить выполнение, используя больше процессорных ресурсов (ядра, потоки).

Можно иметь concurrency без параллелизма → например, кооперативная многозадачность на одном ядре (таски в Go, async/await в JS, coroutines в Python).

Можно иметь параллелизм без concurrency → например, просто запустить два независимых процесса для расчёта матриц на разных ядрах.

А вместе они дают и удобную структуру, и прирост производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
5👌2
👩‍💻 PostgreSQL давно перестал быть просто хранилищем данных
В высоконагруженных системах он всё чаще становится частью AI-архитектуры — с векторами, семантическим поиском и RAG-паттернами прямо на уровне БД.

На открытом уроке разберём, как PostgreSQL может:
- работать вместе с AI-моделями: хранить эмбеддинги, участвовать в семантическом поиске,
- быть частью RAG-архитектур и выполнять ML-логику внутри базы.
- отдельно обсудим расширения pgvector, pgai и lantern
- обсудим реальные сценарии для production-систем.

Вы увидите где AI в базе данных действительно оправдан, а где создаёт риски по латентности, масштабированию и поддержке.
Разберём архитектурные trade-off’ы, работу с kNN-поиском и подходы к интеграции AI в бизнес-логику через триггеры и функции.

📍Встречаемся 27 января в 20:00 МСК в преддверии старта курса «Highload Architect».

Регистрация открыта: https://vk.cc/cTNllI

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 Основы алгоритмов на одной шпаргалке

Хочешь разобраться, чем массив отличается от хеш-таблицы? Этот шпаргалка — для тебя.

✍️ 9 ключевых структур данных:
🟢Массив
🟢 Стек
🟢 Очередь и дек
🟢 Хеш-таблица
🟢 Связанный список
🟢 Двоичное дерево поиска
🟢 Граф

✔️ Для каждой:
🟣 Простое объяснение
🟣 Примеры
🟣 Основные задачи и особенности
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3
Микросервисы часто обещают масштабируемость, но на практике превращаются в сложную и хрупкую систему.

Причина почти всегда одна — неверная декомпозиция. Слишком мелкие сервисы, плотные связи, распределённые транзакции и постоянные проблемы с данными.

На открытом уроке:
- разберём, как правильно делить систему на сервисы - поговорим о границах микросервисов, ключевых шаблонах декомпозиции, подходах к взаимодействию и управлению согласованностью данных
- вы увидите, как принимать архитектурные решения не по шаблону, а с учётом бизнес-контекста, нагрузки и эволюции системы
- разберём типовые ошибки, из-за которых микросервисы теряют автономность и становятся сложнее монолита

📌 Встречаемся 18 февраля в преддверии старта курса «Highload Architect».

Зарегистрируйтесь, чтобы не пропустить: https://vk.cc/cUxkxP

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Назовите поведенческие шаблоны и кратко опишите их.


Ответ:

Поведенческие шаблоны характеризуют способы взаимодействия классов или объектов между собой.

К поведенческим шаблонам относятся:

🔎 Chain of Responsibility (Цепочка Обязанностей). организует независимую от объекта-отправителя цепочку не знающих возможностей друг друга объектов-получателей, которые передают запрос друг другу (object that can fulfill a request).

🔎 Command (Команда). Используется для определения по некоторому признаку объекта конкретного класса, которому будет передан запрос для обработки (when and how a request is fulfilled).

🔎 Iterator (Итератор). Позволяет последовательно обойти все элементы коллекции или другого составного объекта, не зная деталей внутреннего представления данных (how an aggregate's elements are accessed, traversed).

🔎 Mediator (Посредник). Позволяет снизить число связей между классами при большом их количестве, выделяя один класс, знающий все о методах других классов (how and which objects interact with each other).

🔎 Memento (Хранитель). Сохраняет текущее состояние объекта для дальнейшего восстановления (what private information is stored outside an object, and when).

🔎 Observer (Наблюдатель). Позволяет при зависимости между объектами типа «один ко многим» отслеживать изменения объекта (number of objects that depend on another object; how the dependent objects stay up to date).

🔎 State (Состояние). Позволяет объекту изменять свое поведение за счет изменения внутреннего объекта состояния (states of an object).

🔎 Strategy (Стратегия). Задает набор алгоритмов с возможностью выбора одного из классов для выполнения конкретной задачи во время создания объекта (an algorithm).

🔎 Template Method (Шаблонный Метод). Создает родительский класс, использующий несколько методов, реализация которых возложена на производные классы (steps of an algorithm).

🔎 Visitor (Посетитель). Представляет операцию в одном или нескольких связанных классах некоторой структуры, которую вызывает специфичный для каждого такого класса метод в другом классе (operations that can be applied to object(s) without changing their class(es)).

🔎 Interpreter (Интерпретатор). Для определенного способа представления информации определяет правила (grammar and interpretation of a language).

#interview
Please open Telegram to view this post
VIEW IN TELEGRAM
5👎1
Оффер на 300к без программирования

До такого уровня можно вырасти примерно за 2 года работы бизнес-аналитиком в  IT. А если ты еще новичок, то стартануть от сотки в месяц.

Если не планируешь заниматься программированием или тестированием, рекомендую посмотреть видос в закрепе канала IT с Юлей

В нем Юля, ведущий бизнес-аналитик простым языком объясняет:
— чем занимается бизнес-аналитик и почему это лучшее направление для входа в IT
— как с нуля зайти в профессию в 2026 году и зарабатывать от 100к
— ее путь и реальные истории трудоустройства новичков в IT

Плюс дает сборник с разбором самых частых вопросов от HR с правильными ответами и разбором логики.

Посмотри, потом будешь рад, что не пролистал: https://news.1rj.ru/str/+ZBBh1Ssqc5IwZTEy
🤡13🔥2💊2😁1
Какой паттерн инкапсулирует запрос в виде объекта, позволяя тем самым параметризовывать клиентов типом запроса, устанавливать очередность запросов, протоколировать их и поддерживать отмену выполнения операций?
Anonymous Quiz
34%
Chain of Responsibility (Цепочка обязанностей)
21%
Composite (Компоновщик)
38%
Command (Команда)
7%
Посмотреть результаты
2
Шаблон проектирования Strategy

Стратегия относится к поведенческим шаблонам проектирования. Цель этого паттерна - выделить схожие алгоритмы, решающие конкретную задачу. Реализация алгоритмов выносится в отдельные классы и предоставляется возможность выбирать алгоритмы во время выполнения программы.

Давайте рассмотрим принципы и суть шаблона Стратегия на примерах.

Читать статью
🔥3
Когда система падает под нагрузкой, виноват не язык и не фреймворк. Почти всегда проблема в архитектуре.

🔔 Курс «Highload Architect» учит строить системы, которые выдерживают сотни тысяч и миллионы запросов в секунду. Вы разберёте весь путь запроса — от клиента до базы данных и обратно — и поймёте, какие архитектурные решения действительно работают под высокой нагрузкой, а какие ломаются первыми.

Программа ориентирована на веб-разработчиков, тимлидов и архитекторов ПО.

Вы научитесь:
- оптимизировать серверы
- эффективно использовать существующие инструменты
- проектировать отказоустойчивые системы
- аргументированно защищать архитектурные решения перед командой и бизнесом.

На курсе рассмотрим типовые и нетривиальные кейсы, с которыми сталкиваются крупные сервисы.

🎁Закрываем набор до 5.03.2026 в группу февраля со скидкой 🔤 . Подробности у менеджера.

Пройти короткое вступительное тестирование: https://vk.cc/cV1fb5

Практическое обучение проводится в прямом эфире — вебинары не являются предзаписанными.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
Вопрос с собеседования

Что такое Interface segregation principle?


Ответ:

Interface segregation principle
- принцип разделения интерфейса (много специализированных интерфейсов лучше, чем один универсальный).

Иными словами, большие, объемные интерфейсы надо разбивать на мелкие. При этом клиенты маленьких интерфейсов должны знать только о тех методах, которые необходимы им в работе. Также при изменении метода интерфейса не должны меняться клиенты, которые этот метод не используют.


#interview
Please open Telegram to view this post
VIEW IN TELEGRAM