Pattern Guru. Шаблоны проектирования. Архитектура ПО
Открыть в Telegram
Патерны программирования. Архитектура ПО. Микросервисы @anothertechrock
Больше3 144
Подписчики
Нет данных24 часа
-47 дней
-2430 день
Архив постов
Хотите стать востребованным разработчиком? 🚀
Крупные компании переходят на микросервисную архитектуру, и это открывает огромные возможности для специалистов, владеющих этой технологией.
Представляем вам курс «Microservice Architecture» от OTUS, который поможет вам освоить эту технологию.
В процессе обучения вы:
✅ рассмотрите множество нетривиальных задач проектирования backend-приложений и их дальнейшего сопровождения;
✅ изучите не только паттерны проектирования новых сервисов, но и подходы к работе с legacy-сервисами;
✅ научитесь решать проблемы с согласованностью изменений или с оркестрацией сервисов;- как разработчик научитесь базовым навыкам работы с Kubernetes.
Курс подходит для архитекторов, разработчиков, системных аналитиков, администраторов и DevOps-инженеров.
🔥 После обучения вы получите практическую помощь в трудоустройстве и карьерную консультацию от эксперта.
Проверьте свой уровень — пройдите вступительный тест и займите место в группе по спец.цене: https://otus.pw/POyE/
Какие из перечисленных паттернов относятся к поведенческим?
🔥 Хардкордный тест для разработчиков, тимлидов и архитекторов!
💻 Ответьте на 11 вопросов и узнайте, достаточно ли у вас знаний, чтобы пройти онлайн-курс «Software Architect» в OTUS по спец.цене.
➡️ Пройти тестирование
🦾 Пройдите тест и получите:
— Доступ к настоящей проектной работе студента
— Живое общение с экспертами-практиками
— Лучшие открытые уроки прошлых наборов курса
— Продвинутые темы и практика на «боевых» задачах уровня Middle+
— Скидка на прохождение онлайн курса «Software Architect».
💎 А также доступ к 2 живым вебинарам курса «Software Architect» от OTUS:
— Big Data и ML архитектуры пайплайнов» - 23 августа в 22:00 мск.
— Масштабирование приложения и деление на сервисы» - 7 сентября в 22:00 мск.
🚀 Курс поможет прокачать весь арсенал навыков, необходимых архитектору ПО. Возможна рассрочка.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Благодаря совместному использованию, поддерживает эффективную работу с большим количеством объектов. О каком паттерне идёт речь?
🔥 Работаешь с Архитектурой ПО?
🦾 Стань крутым Android-разработчиком вместе с OTUS
У нас есть отличный онлайн-курс "Android developer. Professional"с крутыми условиями и рассрочкой, но сначала пройди небольшой тест и проверь достаточно ли у тебя знаний для обучения на курсе.
👉 Пройти тест
➡️ Что ждёт тебя в рамках курса 👩💻:
• Глубокое погружение в промышленную Android-разработку
• Весь курс построен на языке Kotlin
• Много практики и живого общения с преподавателями
• Глубокое изучение Gradle, Dagger 2, Kotlin coroutines, а также процесса тестирования Android-приложений
• Выстраивание инфраструктуры «с нуля»
• Проектирование архитектуры приложений
• Тестирование приложений
• Глубокий разбор Android SDK
• Использование современных библиотек и фреймворков
🚀 Стартуем уже 28 сентября!
👉 Пройти тест
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ruГарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
🔥 Хардкордный тест для разработчиков, тимлидов и архитекторов!
💻 Ответьте на 11 вопросов и узнайте, достаточно ли у вас знаний, чтобы пройти онлайн-курс «Software Architect» в OTUS по спец.цене.
➡️ Пройти тестирование
🦾 Пройдите тест и получите:
— Доступ к настоящей проектной работе студента
— Живое общение с экспертами-практиками
— Лучшие открытые уроки прошлых наборов курса
— Продвинутые темы и практика на «боевых» задачах уровня Middle+
— Скидка на прохождение онлайн курса «Software Architect».
💎 А также доступ к 2 живым вебинарам курса «Software Architect» от OTUS:
— Big Data и ML архитектуры пайплайнов» - 23 августа в 22:00 мск.
— Масштабирование приложения и деление на сервисы» - 7 сентября в 22:00 мск.
🚀 Курс поможет прокачать весь арсенал навыков, необходимых архитектору ПО. Возможна рассрочка.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Почему я использую паттерн "Шина событий" в проде
Всем привет!
Автор видео рассказывает о паттерне шина событий. Если вы с ним не знакомы то за 9 минут вы поймете что это и для чего нужно, а если знакомы то узнаете какие нюансы есть при работе с этим паттерном и на что стоит обратить внимание при проектировании приложений.
Смотреть видео
ОН применяется для создания объектов с определенным интерфейсом, реализации которого предоставляются потомками.
Вопрос с собеседования
Для чего нужен Decorator паттерн в Javascript? Приведите пример.
Ответ:
Javascript предоставляет удивительно гибкие возможности по работе с функциями: их можно передавать, в них можно записывать данные как в объекты, у них есть свои встроенные методы.
Шаблон декоратора динамически расширяет (украшает) поведение объекта. Возможность добавления нового поведения во время выполнения достигается с помощью объекта Decorator, который «оборачивается» вокруг исходного объекта. Несколько декораторов могут добавлять или переопределять функциональность исходного объекта.
Примером декоратора является управление безопасностью, где бизнес-объектам предоставляется дополнительный доступ к привилегированной информации в зависимости от привилегий аутентифицированного пользователя. Например, менеджер по персоналу приступает к работе с объектом сотрудника, к которому добавлена (то есть украшена) запись о зарплате сотрудника, чтобы можно было просматривать информацию о зарплате.
Декораторы обеспечивают гибкость статически типизированных языков, позволяя вносить изменения во время выполнения, а не наследование, которое происходит во время компиляции. Однако JavaScript - это динамический язык, и возможность расширения объекта во время выполнения встроена в сам язык.
Пример использования декоратора в JavaScript:
function User(name) {
this.name = name,
this.print = () => console.log(this.name)
}
const jane = new User ('Jane Doe')
jane.print() // 'Jane Doe'
function DecorateWithCity(user, city) {
user.city = city
user.print = function() {
console.log (${this.name} from ${this.city})
}
}
DecorateWithCity(jane, 'NewYork')
jane.print(); //'Jane Doe from New York'
#interviewВопрос с собеседования
Для чего нужен Decorator паттерн в Javascript? Приведите пример.
Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!
#interview
Это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Паттерн Singletone с примером на JavaScript
Несмотря на то что в последнее время все больше задач мы обычно решаем в функциональном стиле я хотел бы сегодня вам рассказать о одном из самых распространенных классовых паттернов - синглтон.
И так что это:
Паттерн
Singleton означает создание только одного экземпляра класса и доступ к нему через методы-геттеры.
Пример использования:
class Singleton {
constructor() {
if (!Singleton.instance) {
Singleton.instance = this;
}
return Singleton.instance;
}
someMethod() {
console.log('Hello from Singleton!');
}
}
const instance1 = new Singleton();
const instance2 = new Singleton();
instance1.someMethod(); // "Hello from Singleton!"
console.log(instance1 === instance2); // true
В данном примере класс Singleton будет создавать только один экземпляр и все вызовы конструктора будут возвращать ссылку на этот экземпляр. Таким образом, мы можем быть уверены, что где бы ни встретились вызовы методов класса Singleton, они всегда будут работать с одним и тем же экземпляром.Это паттерн поведения, который определяет группу алгоритмов, инкапсулирует их и делает взаимозаменяемыми. Позволяет изменить алгоритм независимо от клиентов, их использующих.
Этот паттерн определяет основу алгоритма и позволяет подклассам переопределять некоторые шаги алгоритма, не изменяя его структуры в целом.
💻 Открытый урок от архитектора AI/ML в Сбербанке
⁉️ Хотите разобраться в stream processing, batch processing, Kappa и Lambda архитектурах и обзоре технологического домена?
📌 Ждём вас 23 августа в 22:00 мск на открытом уроке Big Data и ML архитектуры пайплайнов в рамках курса «Software Architect» от OTUS!
🔥 От мощных инструментов хранения и обработки данных до инструментов для разработки и управления пайплайнами машинного обучения – вы получите полное представление о современных возможностях и инновациях в этой области.
💣 Регистрация здесь https://otus.pw/VYsT/
⏳ Торопитесь, количество слотов для регистрации на урок ограничено.
Нативная интеграция. Информация о продукте www.otus.ru
Вопрос с собеседования
Назовите поведенческие шаблоны и кратко опишите их.
Ответ:
Поведенческие шаблоны характеризуют способы взаимодействия классов или объектов между собой.
К поведенческим шаблонам относятся:
- 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
Вопрос с собеседования
Назовите поведенческие шаблоны и кратко опишите их.
Ответ опубликуем вечером, а пока пишите свои варианты в комментариях!
#interview
В современных масштабируемых архитектурах системы могут быть составлены из множества сервисов, которые взаимодействуют друг с другом. При этом возникает сложная задача поддержания согласованности данных и обработки ошибок в случае сбоев.
Чтобы научиться обеспечивать надежность приложений, распределять транзакции и получить опыт работы с высоконагруженными проектами приходите 🗓 16 августа в 20:00 на открытый урок «Распределенные транзакции в System Design» онлайн курса «Highload Architect» от OTUS. Занятие проведет преподаватель 👨💻 Антон Цитульский — ведущий backend-разработчик в Тинькофф, спикер на конференции Codefest 2023.
На открытом уроке обсудим:
- Распределенные транзакции в System Design;
- Поддержание согласованности данных и обработки ошибок в случае сбоев;
- Паттерн Saga, чтобы управлять последовательностью транзакций, обеспечивая их атомарность и надежность.
Этот вебинар будет полезен разработчикам, архитекторам и техническим специалистам, заинтересованным в создании надежных и масштабируемых распределенных систем.
👉 Регистрируйтесь на занятие — https://otus.pw/P9Sn/
Открытый урок приурочен к старту онлайн-курса «Highload Architect» в OTUS. После урока полный курс вы сможете приобрести удобным для вас способом.
Нативная интеграция. Информация на сайте www.otus.ru.
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
