Pattern Guru. Шаблоны проектирования. Архитектура ПО
رفتن به کانال در Telegram
Патерны программирования. Архитектура ПО. Микросервисы @anothertechrock
نمایش بیشتر3 150
مشترکین
-124 ساعت
+17 روز
-1830 روز
آرشیو پست ها
❓ Вопрос с собеседования
Что такое Interface segregation principle?Ответ: Interface segregation principle - принцип разделения интерфейса (много специализированных интерфейсов лучше, чем один универсальный). Иными словами, большие, объемные интерфейсы надо разбивать на мелкие. При этом клиенты маленьких интерфейсов должны знать только о тех методах, которые необходимы им в работе. Также при изменении метода интерфейса не должны меняться клиенты, которые этот метод не используют. #interview
Когда система падает под нагрузкой, виноват не язык и не фреймворк. Почти всегда проблема в архитектуре.
🔔 Курс «Highload Architect» учит строить системы, которые выдерживают сотни тысяч и миллионы запросов в секунду. Вы разберёте весь путь запроса — от клиента до базы данных и обратно — и поймёте, какие архитектурные решения действительно работают под высокой нагрузкой, а какие ломаются первыми.
Программа ориентирована на веб-разработчиков, тимлидов и архитекторов ПО.
Вы научитесь:
- оптимизировать серверы
- эффективно использовать существующие инструменты
- проектировать отказоустойчивые системы
- аргументированно защищать архитектурные решения перед командой и бизнесом.
На курсе рассмотрим типовые и нетривиальные кейсы, с которыми сталкиваются крупные сервисы.
🎁Закрываем набор до 5.03.2026 в группу февраля со скидкой 🔤 . Подробности у менеджера.
Пройти короткое вступительное тестирование: https://vk.cc/cV1fb5
❗Практическое обучение проводится в прямом эфире — вебинары не являются предзаписанными.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Шаблон проектирования Strategy
Стратегия относится к поведенческим шаблонам проектирования. Цель этого паттерна - выделить схожие алгоритмы, решающие конкретную задачу. Реализация алгоритмов выносится в отдельные классы и предоставляется возможность выбирать алгоритмы во время выполнения программы.
Давайте рассмотрим принципы и суть шаблона Стратегия на примерах.
Читать статью
Какой паттерн инкапсулирует запрос в виде объекта, позволяя тем самым параметризовывать клиентов типом запроса, устанавливать очередность запросов, протоколировать их и поддерживать отмену выполнения операций?
Оффер на 300к без программирования
До такого уровня можно вырасти примерно за 2 года работы бизнес-аналитиком в IT. А если ты еще новичок, то стартануть от сотки в месяц.
Если не планируешь заниматься программированием или тестированием, рекомендую посмотреть видос в закрепе канала IT с Юлей
В нем Юля, ведущий бизнес-аналитик простым языком объясняет:
— чем занимается бизнес-аналитик и почему это лучшее направление для входа в IT
— как с нуля зайти в профессию в 2026 году и зарабатывать от 100к
— ее путь и реальные истории трудоустройства новичков в IT
Плюс дает сборник с разбором самых частых вопросов от HR с правильными ответами и разбором логики.
Посмотри, потом будешь рад, что не пролистал: https://t.me/+ZBBh1Ssqc5IwZTEy
❓ Вопрос с собеседования
Назовите поведенческие шаблоны и кратко опишите их.Ответ: Поведенческие шаблоны характеризуют способы взаимодействия классов или объектов между собой. К поведенческим шаблонам относятся: 🔎 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
❗Микросервисы часто обещают масштабируемость, но на практике превращаются в сложную и хрупкую систему.
Причина почти всегда одна — неверная декомпозиция. Слишком мелкие сервисы, плотные связи, распределённые транзакции и постоянные проблемы с данными.
На открытом уроке:
- разберём, как правильно делить систему на сервисы - поговорим о границах микросервисов, ключевых шаблонах декомпозиции, подходах к взаимодействию и управлению согласованностью данных
- вы увидите, как принимать архитектурные решения не по шаблону, а с учётом бизнес-контекста, нагрузки и эволюции системы
- разберём типовые ошибки, из-за которых микросервисы теряют автономность и становятся сложнее монолита
📌 Встречаемся 18 февраля в преддверии старта курса «Highload Architect».
Зарегистрируйтесь, чтобы не пропустить: https://vk.cc/cUxkxP
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576📚 Основы алгоритмов на одной шпаргалке
Хочешь разобраться, чем массив отличается от хеш-таблицы? Этот шпаргалка — для тебя.
✍️ 9 ключевых структур данных:
🟢Массив
🟢 Стек
🟢 Очередь и дек
🟢 Хеш-таблица
🟢 Связанный список
🟢 Двоичное дерево поиска
🟢 Граф
✔️ Для каждой:
🟣 Простое объяснение
🟣 Примеры
🟣 Основные задачи и особенности
👩💻 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
💡 Concurrency vs Параллелизм — БАЗА для каждого разраба
👉 Concurrency → про то, как организовать программу, чтобы она умела работать с несколькими задачами (структура, управление, планирование).
👉 Parallelism → про то, как реально ускорить выполнение, используя больше процессорных ресурсов (ядра, потоки).
✅ Можно иметь concurrency без параллелизма → например, кооперативная многозадачность на одном ядре (таски в Go,
async/await в JS, coroutines в Python).
✅ Можно иметь параллелизм без concurrency → например, просто запустить два независимых процесса для расчёта матриц на разных ядрах.
А вместе они дают и удобную структуру, и прирост производительности.+3
🚩 Шаблон проектирования Фасад
🟣 Подробное описание паттерна
Структурный паттерн
Фасад (англ. Facade) помогает скрыть способ реализации сложной системы и предоставляет клиенту простой интерфейс взаимодействия с ней.
Другими словами, данный паттерн проектирования используется в качестве “обертки”, скрывающей детали реализации.
Фасад полезен, если вы используете какую-то сложную библиотеку со множеством подвижных частей, но вам нужна только часть её возможностей.
🗂 Код на PythonПолучая формальный язык, определяет представление его грамматики. О каком паттерне идёт речь?
🔥 Последний шанс: набор на курс Highload Architect в этом году завершается! 🚀
Если хотите перейти от разработки к архитектуре высоконагруженных систем — действуйте сейчас.
Чтобы попасть в поток и зафиксировать спеццену, нужно успеть пройти вступительное тестирование до закрытия набора.
Вы сможете прокачать:
- Проектирование масштабируемых систем под миллионы запросов
- Оптимизацию производительности и отказоустойчивые архитектуры
- Практику с современными инструментами highload-разработки
- Применение проверенных паттернов и подходов в продакшене
🗓 Старт уже совсем скоро, места ограничены. Формат — онлайн, реальные кейсы, проект с защитой и детальный фидбек от практиков.
👉 Пройдите вступительное тестирование прямо сейчас: https://vk.cc/cSx0HU
Подтвердите уровень и поступайте в группу со спецценой. Подробности по скидке уточняйте у менеджера.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
☁️ Топ-6 паттернов обмена сообщения между сервисами в облачной инфраструктуре
🔹 Asynchronous Request-Reply
🔹 Pub-Sub
🔹 Claim Check
🔹 Priority Queue
🔹 Saga
🔹 Competing Consumers
👉 Источник
#инфографика
🧠 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
Шаблон проектирования Abstract Factory
Шаблон Абстрактная фабрика относится к классу порождающих паттернов. Его основное назначение - предоставить интерфейс для создания семейства взаимосвязанных объектов, не указывая конкретные классы этих объектов.
Этот шаблон стоит использовать, если:
- ваша система должна быть независимой от способа создания новых объектов
- создаваемые объекты должны использоваться вместе и быть взаимосвязанными.
Классы абстрактной фабрики часто реализуются фабричными методами,
но могут быть реализованы и с помощью паттерна Prototype.
Смотреть реализацию
💻 Асинхронная обработка данных в высоконагруженных системах 🚀
🔥 16 декабря в 20:00 мск — открытый урок в OTUS.
📌 На вебинаре вы узнаете:
— Как использовать асинхронную обработку данных для масштабирования сервисов
— Как работают очереди сообщений, веб-сокеты и другие инструменты асинхронного взаимодействия
— Как выглядит архитектура реального проекта: от веб-сервера до брокера сообщений и базы данных
— Какие узкие места чаще всего встречаются в асинхронных системах и как их устранять
🎓 После занятия вы:
— Разберётесь в принципах асинхронной архитектуры и её влиянии на производительность
— Научитесь применять асинхронные подходы
— Получите реальные примеры архитектурных решений
👉 Регистрация: https://vk.cc/cS8l2M
Бесплатный урок приурочен к старту курса Highload Architect, на котором вы освоите архитектуры, выдерживающие миллионы запросов в секунду, и научитесь проектировать системы без узких мест. 🚀
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔍 Что такое MVC?
MVC (Model-View-Controller) — это популярный архитектурный паттерн, который разделяет приложение на три компонента:
Model — отвечает за бизнес-логику и управление данными. Это сердце приложения, где происходит взаимодействие с базой данных, выполнение бизнес-правил и другие операции.
View — представляет собой интерфейс пользователя. Он отвечает за отображение данных и взаимодействие с пользователем, но не содержит бизнес-логики.
Controller — посредник между Model и View. Он получает запросы от пользователя, передает их Model и возвращает результаты во View.
💡 MVC позволяет четко разделить обязанности между компонентами, облегчая поддержку и масштабирование кода.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
