fa
Feedback
Pattern Guru. Шаблоны проектирования. Архитектура ПО

Pattern Guru. Шаблоны проектирования. Архитектура ПО

رفتن به کانال در Telegram

Патерны программирования. Архитектура ПО. Микросервисы @anothertechrock

نمایش بیشتر
3 150
مشترکین
-124 ساعت
+17 روز
-1830 روز
آرشیو پست ها
Вопрос с собеседования
Что такое Interface segregation principle?
Ответ: Interface segregation principle - принцип разделения интерфейса (много специализированных интерфейсов лучше, чем один универсальный). Иными словами, большие, объемные интерфейсы надо разбивать на мелкие. При этом клиенты маленьких интерфейсов должны знать только о тех методах, которые необходимы им в работе. Также при изменении метода интерфейса не должны меняться клиенты, которые этот метод не используют. #interview

Когда система падает под нагрузкой, виноват не язык и не фреймворк. Почти всегда проблема в архитектуре. 🔔 Курс «Highload Ar
Когда система падает под нагрузкой, виноват не язык и не фреймворк. Почти всегда проблема в архитектуре. 🔔 Курс «Highload Architect» учит строить системы, которые выдерживают сотни тысяч и миллионы запросов в секунду. Вы разберёте весь путь запроса — от клиента до базы данных и обратно — и поймёте, какие архитектурные решения действительно работают под высокой нагрузкой, а какие ломаются первыми. Программа ориентирована на веб-разработчиков, тимлидов и архитекторов ПО. Вы научитесь: - оптимизировать серверы - эффективно использовать существующие инструменты - проектировать отказоустойчивые системы - аргументированно защищать архитектурные решения перед командой и бизнесом. На курсе рассмотрим типовые и нетривиальные кейсы, с которыми сталкиваются крупные сервисы. 🎁Закрываем набор до 5.03.2026 в группу февраля со скидкой 🔤 . Подробности у менеджера. Пройти короткое вступительное тестирование: https://vk.cc/cV1fb5 ❗Практическое обучение проводится в прямом эфире — вебинары не являются предзаписанными. Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Какой паттерн инкапсулирует запрос в виде объекта, позволяя тем самым параметризовывать клиентов типом запроса, устанавливать очередность запросов, протоколировать их и поддерживать отмену выполнения операций?
Anonymous voting

Оффер на 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-а
👩‍💻 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 → например, просто запустить два независимых процесса для расчёта матриц на разных ядрах. А вместе они дают и удобную структуру, и прирост производительности.

Как вам такие шпаргалки?
Anonymous voting

🚩 Шаблон проектирования Фасад 🟣 Подробное описание паттерна Структурный паттерн Фасад (англ. Facade) помогает скрыть способ
+3
🚩 Шаблон проектирования Фасад 🟣 Подробное описание паттерна Структурный паттерн Фасад (англ. Facade) помогает скрыть способ реализации сложной системы и предоставляет клиенту простой интерфейс взаимодействия с ней. Другими словами, данный паттерн проектирования используется в качестве “обертки”, скрывающей детали реализации. Фасад полезен, если вы используете какую-то сложную библиотеку со множеством подвижных частей, но вам нужна только часть её возможностей. 🗂 Код на Python

Получая формальный язык, определяет представление его грамматики. О каком паттерне идёт речь?
Anonymous voting

🔥 Последний шанс: набор на курс Highload Architect в этом году завершается! 🚀 Если хотите перейти от разработки к архитекту
🔥 Последний шанс: набор на курс 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 мск — открытый вебинар в
🧠 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 Шаблон Абстрактная фабрика относится к классу порождающих паттернов. Его основное назн
Шаблон проектирования Abstract Factory Шаблон Абстрактная фабрика относится к классу порождающих паттернов. Его основное назначение - предоставить интерфейс для создания семейства взаимосвязанных объектов, не указывая конкретные классы этих объектов. Этот шаблон стоит использовать, если: - ваша система должна быть независимой от способа создания новых объектов - создаваемые объекты должны использоваться вместе и быть взаимосвязанными. Классы абстрактной фабрики часто реализуются фабричными методами, но могут быть реализованы и с помощью паттерна Prototype. Смотреть реализацию

💻 Асинхронная обработка данных в высоконагруженных системах 🚀 🔥 16 декабря в 20:00 мск — открытый урок в OTUS. 📌 На вебин
💻 Асинхронная обработка данных в высоконагруженных системах 🚀 🔥 16 декабря в 20:00 мск — открытый урок в OTUS. 📌 На вебинаре вы узнаете: — Как использовать асинхронную обработку данных для масштабирования сервисов — Как работают очереди сообщений, веб-сокеты и другие инструменты асинхронного взаимодействия — Как выглядит архитектура реального проекта: от веб-сервера до брокера сообщений и базы данных — Какие узкие места чаще всего встречаются в асинхронных системах и как их устранять 🎓 После занятия вы: — Разберётесь в принципах асинхронной архитектуры и её влиянии на производительность — Научитесь применять асинхронные подходы — Получите реальные примеры архитектурных решений 👉 Регистрация: https://vk.cc/cS8l2M Бесплатный урок приурочен к старту курса Highload Architect, на котором вы освоите архитектуры, выдерживающие миллионы запросов в секунду, и научитесь проектировать системы без узких мест. 🚀 Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🔍 Что такое MVC? MVC (Model-View-Controller) — это популярный архитектурный паттерн, который разделяет приложение на три ком
🔍 Что такое MVC? MVC (Model-View-Controller) — это популярный архитектурный паттерн, который разделяет приложение на три компонента: Model — отвечает за бизнес-логику и управление данными. Это сердце приложения, где происходит взаимодействие с базой данных, выполнение бизнес-правил и другие операции. View — представляет собой интерфейс пользователя. Он отвечает за отображение данных и взаимодействие с пользователем, но не содержит бизнес-логики. Controller — посредник между Model и View. Он получает запросы от пользователя, передает их Model и возвращает результаты во View. 💡 MVC позволяет четко разделить обязанности между компонентами, облегчая поддержку и масштабирование кода.