Паттерны
В одном репозитории собрано 111 паттернов проектирования. На данный момент это самый популярный репозиторий на языке Java, у него почти 50k звёзд.
Для каждого паттерна есть подробное описание и примеры реализации на Java: https://github.com/iluwatar/java-design-patterns
#паттерны #java
В одном репозитории собрано 111 паттернов проектирования. На данный момент это самый популярный репозиторий на языке Java, у него почти 50k звёзд.
Для каждого паттерна есть подробное описание и примеры реализации на Java: https://github.com/iluwatar/java-design-patterns
#паттерны #java
🚀Как построить отказоустойчивый и надежный кластер с RabbitMQ ?
🔥26 марта в 20.00 (мск) приглашаем на открытый вебинар “Отказоустойчивый и высокодоступный кластер RabbitMQ”, на котором разберем:
✔️запуск и настройку кластера с Quorum Queues, Mirrored Queues (синхронная репликация), синхронизация очередей
✔️dead letter queue, настройки duralibility
✔️баланс при отправке: настройки гарантий для Producer
✔️asynchronous cluster-to-cluster message routing - exchange federation and shovels
🎁Все участники получат шаблон, который позволит быстро запустить и настроить кластер RabbitMQ
Присоединяйтесь и делайте свои сервисы надежными и масштабируемыми!
👉 Регистрируйтесь по ссылке
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥26 марта в 20.00 (мск) приглашаем на открытый вебинар “Отказоустойчивый и высокодоступный кластер RabbitMQ”, на котором разберем:
✔️запуск и настройку кластера с Quorum Queues, Mirrored Queues (синхронная репликация), синхронизация очередей
✔️dead letter queue, настройки duralibility
✔️баланс при отправке: настройки гарантий для Producer
✔️asynchronous cluster-to-cluster message routing - exchange federation and shovels
🎁Все участники получат шаблон, который позволит быстро запустить и настроить кластер RabbitMQ
Присоединяйтесь и делайте свои сервисы надежными и масштабируемыми!
👉 Регистрируйтесь по ссылке
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍2👎1
Шаблоны проектирования простым языком
В этой серии статей читайте о разных видах паттернов. Каждый паттерн объясняется простыми словами, приводится пример из жизни, кейсы для уместного использования и, конечно, код.
Порождающие: https://tprg.ru/patterns-1
Структурные: https://tprg.ru/patterns-2
Поведенческие: https://tprg.ru/patterns-3
#паттерны
В этой серии статей читайте о разных видах паттернов. Каждый паттерн объясняется простыми словами, приводится пример из жизни, кейсы для уместного использования и, конечно, код.
Порождающие: https://tprg.ru/patterns-1
Структурные: https://tprg.ru/patterns-2
Поведенческие: https://tprg.ru/patterns-3
#паттерны
Transaction Outbox: как избежать потери данных в распределённых системах
В распределённых системах потеря данных — это не редкость. Как гарантировать целостность информации и обеспечить надёжную передачу сообщений? Transaction Outbox — шаблон, который решает проблему согласованности данных.
📅 7 апреля в 20:00 (мск)
🎓 Открытый вебинар с Олегом Мифле
💡 Что разберём?
✅ Проблемы согласованности данных в распределённых системах
✅ Как работает Transaction Outbox
✅ Как связать локальные базы данных с брокерами сообщений (Kafka, RabbitMQ)
✅ Реальные примеры внедрения шаблона в микросервисную архитектуру
🎯 Что получите?
✔️ Понимание принципов согласованности данных в распределённых системах
✔️ Практические навыки работы с Transaction Outbox
✔️ Готовые решения для построения надёжной микросервисной архитектуры
👉 Регистрация
Занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
В распределённых системах потеря данных — это не редкость. Как гарантировать целостность информации и обеспечить надёжную передачу сообщений? Transaction Outbox — шаблон, который решает проблему согласованности данных.
📅 7 апреля в 20:00 (мск)
🎓 Открытый вебинар с Олегом Мифле
💡 Что разберём?
✅ Проблемы согласованности данных в распределённых системах
✅ Как работает Transaction Outbox
✅ Как связать локальные базы данных с брокерами сообщений (Kafka, RabbitMQ)
✅ Реальные примеры внедрения шаблона в микросервисную архитектуру
🎯 Что получите?
✔️ Понимание принципов согласованности данных в распределённых системах
✔️ Практические навыки работы с Transaction Outbox
✔️ Готовые решения для построения надёжной микросервисной архитектуры
👉 Регистрация
Занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
This media is not supported in your browser
VIEW IN TELEGRAM
Паттерны ООП — это методики, позволяющие эффективно решать определенные проблемы в определенных ситуациях
В этой статье разобрали паттерн, называемый «Хранитель». Он позволяет определять, сохранять и восстанавливать предыдущие состояния объектов без нарушения принципа инкапсуляции:
https://tprg.ru/Ep8H
#ооп #паттерны
В этой статье разобрали паттерн, называемый «Хранитель». Он позволяет определять, сохранять и восстанавливать предыдущие состояния объектов без нарушения принципа инкапсуляции:
https://tprg.ru/Ep8H
#ооп #паттерны
❤1👌1
🛠 Patroni + PostgreSQL: как обеспечить высокую доступность?
Когда база данных — это сердце системы, её отказ может стоить дорого. Как сделать PostgreSQL отказоустойчивым и управляемым? Решение есть — Patroni!
📅 14 апреля в 20:00 (мск)
🎓 Открытый вебинар с Сергеем Кирьяковым
💡 Что разберём?
✅ Как работает Patroni и зачем он нужен для PostgreSQL
✅ Основные компоненты и архитектуру Patroni
✅ Как правильно настроить и конфигурировать Patroni
✅ Практические примеры управления кластером PostgreSQL
✅ Оптимизация, мониторинг и лучшие практики работы
🎯 Что получите?
✔️ Понимание работы Patroni и его роли в HA-кластерах PostgreSQL
✔️ Готовые практические решения по настройке и оптимизации
✔️ Навыки мониторинга и управления отказоустойчивыми базами
Присоединяйтесь и узнайте, как обеспечить PostgreSQL надёжностью!
👉 Регистрируйтесь по ссылке
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Когда база данных — это сердце системы, её отказ может стоить дорого. Как сделать PostgreSQL отказоустойчивым и управляемым? Решение есть — Patroni!
📅 14 апреля в 20:00 (мск)
🎓 Открытый вебинар с Сергеем Кирьяковым
💡 Что разберём?
✅ Как работает Patroni и зачем он нужен для PostgreSQL
✅ Основные компоненты и архитектуру Patroni
✅ Как правильно настроить и конфигурировать Patroni
✅ Практические примеры управления кластером PostgreSQL
✅ Оптимизация, мониторинг и лучшие практики работы
🎯 Что получите?
✔️ Понимание работы Patroni и его роли в HA-кластерах PostgreSQL
✔️ Готовые практические решения по настройке и оптимизации
✔️ Навыки мониторинга и управления отказоустойчивыми базами
Присоединяйтесь и узнайте, как обеспечить PostgreSQL надёжностью!
👉 Регистрируйтесь по ссылке
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Что почитать на выходных: «Паттерны программирования игр» Роберта Нистрема
Автор — программист из Electronic Arts. В своей книге он собрал действенные советы про разрастание кода, оптимизацию и построение надёжной архитектуры.
Каждая глава — набор эффективных паттернов программирования. И их можно использовать как в готовом виде, так и улучшать/комбинировать на свой лад для собственной игры.
#gamedev #книги
Автор — программист из Electronic Arts. В своей книге он собрал действенные советы про разрастание кода, оптимизацию и построение надёжной архитектуры.
Каждая глава — набор эффективных паттернов программирования. И их можно использовать как в готовом виде, так и улучшать/комбинировать на свой лад для собственной игры.
#gamedev #книги
💩1
#вопрос_для_самопроверки
Паттерн ___ предоставляет интерфейс для создания семейств, связанных между собой, или независимых объектов, конкретные классы которых неизвестны.
Паттерн ___ предоставляет интерфейс для создания семейств, связанных между собой, или независимых объектов, конкретные классы которых неизвестны.
Anonymous Quiz
15%
Bridge (мост)
10%
Builder (строитель)
74%
Abstract Factory (абстрактная фабрика)
1%
Посмотреть результаты
👌3❤1
Это точно поможет тебе в проектировании API
— Если ты только начинаешь, советую стартовать с этого интерактивного роадмапа: Он удобен и на каждом этапе содержит ссылки для изучения подтем.
— 6 самых популярных стилей архитектуры API: которые вам нужно знать (с плюсами, минусами и примерами использования)
— Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)
— Руководство по проектированию сетевых API от Google: Его использовали внутри компании с 2014 года, и оно служит основой при разработке облачных и других API.
— Книга «Паттерны проектирования API: Сотрудник того же Google Джей Гивакс рассказывает о том, как в компании создают масштабируемые и гибкие сервисы. Вы узнаете, как улучшить дизайн самых распространённых API и как действовать в сложных пограничных случаях. Сопровождается иллюстрациями и примеры кода.
С вас лойс 👍
#api
— Если ты только начинаешь, советую стартовать с этого интерактивного роадмапа: Он удобен и на каждом этапе содержит ссылки для изучения подтем.
— 6 самых популярных стилей архитектуры API: которые вам нужно знать (с плюсами, минусами и примерами использования)
— Проектирование REST API: спорные вопросы с проектов и собеседований на системного аналитика (и не только)
— Руководство по проектированию сетевых API от Google: Его использовали внутри компании с 2014 года, и оно служит основой при разработке облачных и других API.
— Книга «Паттерны проектирования API: Сотрудник того же Google Джей Гивакс рассказывает о том, как в компании создают масштабируемые и гибкие сервисы. Вы узнаете, как улучшить дизайн самых распространённых API и как действовать в сложных пограничных случаях. Сопровождается иллюстрациями и примеры кода.
С вас лойс 👍
#api
This media is not supported in your browser
VIEW IN TELEGRAM
🔥8😁2👍1
#вопросы_для_самопроверки
Какой паттерн определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы, и позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры?
Какой паттерн определяет скелет алгоритма, перекладывая ответственность за некоторые его шаги на подклассы, и позволяет подклассам переопределять шаги алгоритма, не меняя его общей структуры?
Anonymous Quiz
8%
Visitor (посетитель)
44%
Template Method (шаблонный метод)
8%
State (состояние)
35%
Prototype (прототип)
5%
Посмотреть результаты
Old but gold: подборка статей, которые простым языком объяснят 3 вида паттернов
С примерами из жизни, кейсами для использования и кодом.
Порождающие: https://tprg.ru/patterns-1
Структурные: https://tprg.ru/patterns-2
Поведенческие: https://tprg.ru/patterns-3
#паттерны
С примерами из жизни, кейсами для использования и кодом.
Порождающие: https://tprg.ru/patterns-1
Структурные: https://tprg.ru/patterns-2
Поведенческие: https://tprg.ru/patterns-3
#паттерны
😁4
Горизонтальное масштабирование СУБД на примере Greenplum
Современные приложения работают с огромными объёмами данных, и рано или поздно классические СУБД перестают справляться с нагрузкой. Выход — горизонтальное масштабирование, позволяющее эффективно распределять запросы и хранение по нескольким узлам.
На вебинаре вы:
— Познакомитесь с концепцией горизонтального масштабирования и почему оно критически важно в высоконагруженных системах.
— Разберёте архитектуру СУБД Greenplum — одного из самых мощных решений на базе PostgreSQL для работы с Big Data.
— Узнаете, как устроены шардирование, партиционирование, репликация и управление кластерами в Greenplum.
— Посмотрите реальные кейсы использования Greenplum в распределённых системах.
👉 Регистрация и подробности о курсе Highload Architect: https://vk.cc/cMbi2d
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Современные приложения работают с огромными объёмами данных, и рано или поздно классические СУБД перестают справляться с нагрузкой. Выход — горизонтальное масштабирование, позволяющее эффективно распределять запросы и хранение по нескольким узлам.
На вебинаре вы:
— Познакомитесь с концепцией горизонтального масштабирования и почему оно критически важно в высоконагруженных системах.
— Разберёте архитектуру СУБД Greenplum — одного из самых мощных решений на базе PostgreSQL для работы с Big Data.
— Узнаете, как устроены шардирование, партиционирование, репликация и управление кластерами в Greenplum.
— Посмотрите реальные кейсы использования Greenplum в распределённых системах.
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#вопросы_для_самопроверки
Какой паттерн определяет между объектами зависимость типа один-ко-многим, так что при изменении состояния одного объекта все зависящие от него получают извещение и автоматически обновляются.
Какой паттерн определяет между объектами зависимость типа один-ко-многим, так что при изменении состояния одного объекта все зависящие от него получают извещение и автоматически обновляются.
Anonymous Quiz
18%
Prototype (прототип)
78%
Observer (наблюдатель)
3%
Singleton (одиночка)
1%
Посмотреть результаты
Балансировка и геораспределение: как создать быстрое и надёжное приложение для всего мира
На вебинаре разберём, как крупные компании — такие как Netflix, Amazon и другие — делают свои сервисы доступными для пользователей по всему миру без задержек и сбоев.
На вебинаре вы:
— Как работают балансировщики и «умные» прокси.
— Что такое геораспределение и зачем оно критично для масштабируемых сервисов.
— Как грамотно распределять трафик между дата-центрами.
— Частые ошибки при проектировании глобальных систем — и как их избежать.
👉 Регистрация и подробности о курсе Highload Architect: https://vk.cc/cMN37v
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
На вебинаре разберём, как крупные компании — такие как Netflix, Amazon и другие — делают свои сервисы доступными для пользователей по всему миру без задержек и сбоев.
На вебинаре вы:
— Как работают балансировщики и «умные» прокси.
— Что такое геораспределение и зачем оно критично для масштабируемых сервисов.
— Как грамотно распределять трафик между дата-центрами.
— Частые ошибки при проектировании глобальных систем — и как их избежать.
👉 Регистрация и подробности о курсе Highload Architect: https://vk.cc/cMN37v
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Какой паттерн использует разделение для эффективной поддержки большого числа мелких объектов?
Anonymous Quiz
50%
Flyweight (приспособленец)
30%
Memento (хранитель)
14%
Interpreter (интерпретатор)
6%
Посмотреть результаты
Что почитать программисту: «Паттерны объектно-ориентированного проектирования»
Изначально паттерны появились потому, что разработчики искали пути повышения гибкости и степени повторного использования своих программ. В книге максимально простым и доступным языком дают принципы использования шаблонов проектирования для вашего кода.
После прочтения вы сможете быстро и эффективно создавать собственные приложения с учетом всех ограничений, возникающих при разработке больших проектов. Все шаблоны взяты из реальных систем и основаны на реальной практике. Для каждого паттерна приведен код на C++, но принцип работы смогут понять разработчики и на других языках.
#книги #ооп #паттерны
Изначально паттерны появились потому, что разработчики искали пути повышения гибкости и степени повторного использования своих программ. В книге максимально простым и доступным языком дают принципы использования шаблонов проектирования для вашего кода.
После прочтения вы сможете быстро и эффективно создавать собственные приложения с учетом всех ограничений, возникающих при разработке больших проектов. Все шаблоны взяты из реальных систем и основаны на реальной практике. Для каждого паттерна приведен код на C++, но принцип работы смогут понять разработчики и на других языках.
#книги #ооп #паттерны
👍2
💣 Большая сила - большая ответственность.
А ты справишься с тестом по HighLoad?
🏆 Пройди тест из 29 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Highload Architect» от OTUS!
Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене!
🎫 Курс можно приобрести в рассрочку
👉 Пройти тест и забрать скидку: https://vk.cc/cMWovj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
А ты справишься с тестом по HighLoad?
🏆 Пройди тест из 29 вопросов, проверь свой уровень знаний и получи скидку на онлайн-курс «Highload Architect» от OTUS!
Если успешно пройдешь тест, сможешь забронировать место в группе по выгодной цене!
🎫 Курс можно приобрести в рассрочку
👉 Пройти тест и забрать скидку: https://vk.cc/cMWovj
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👾2
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО
🚩 Шаблон проектирования Singleton
🟣Подробное описание паттерна
Лучшие методы:
1. Декоратор
2. Базовый класс
3. Метакласс
4. Декоратор возвращает класс с тем же именем
5. Модуль
🗂 Код на Python
🟣Подробное описание паттерна
Лучшие методы:
1. Декоратор
2. Базовый класс
3. Метакласс
4. Декоратор возвращает класс с тем же именем
5. Модуль
🗂 Код на Python
TOGAF — один фреймворк, чтобы управлять архитектурой.
Звучит почти как легенда. Но в мире корпоративных архитекторов — это реальный инструмент: системный, признанный, масштабируемый.
Если вы работаете на уровне enterprise-решений — без TOGAF 10 сегодня сложно говорить на одном языке с бизнесом и ИТ.
📍 Приходите на бесплатный вебинар от OTUS:
«TOGAF: зачем он нужен и как поможет вашей карьере?»
Поговорим:
— чем отличается TOGAF 10 и как его применяют на практике
— какие компетенции важны архитектору нового уровня
— как сертификация открывает новые карьерные треки
🎓 Вебинар ведёт сертифицированный эксперт.
💡Понравится вебинар - приходите учиться на онлайн-курс «Архитектура корпорации. Togaf 10». Курс — с доступом к материалам Open Group.
Пока действует скидка по промокоду TOGAF_7
👉 Регистрируйтесь — напомним перед началом: регистрация: https://vk.cc/cN8VNU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Звучит почти как легенда. Но в мире корпоративных архитекторов — это реальный инструмент: системный, признанный, масштабируемый.
Если вы работаете на уровне enterprise-решений — без TOGAF 10 сегодня сложно говорить на одном языке с бизнесом и ИТ.
📍 Приходите на бесплатный вебинар от OTUS:
«TOGAF: зачем он нужен и как поможет вашей карьере?»
Поговорим:
— чем отличается TOGAF 10 и как его применяют на практике
— какие компетенции важны архитектору нового уровня
— как сертификация открывает новые карьерные треки
🎓 Вебинар ведёт сертифицированный эксперт.
💡Понравится вебинар - приходите учиться на онлайн-курс «Архитектура корпорации. Togaf 10». Курс — с доступом к материалам Open Group.
Пока действует скидка по промокоду TOGAF_7
👉 Регистрируйтесь — напомним перед началом: регистрация: https://vk.cc/cN8VNU
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤1
Фабричный метод — это порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.
from __future__ import annotations
from abc import ABC, abstractmethod
class Creator(ABC):
"""
Класс Создатель объявляет фабричный метод, который должен возвращать объект
класса Продукт. Подклассы Создателя обычно предоставляют реализацию этого
метода.
"""
@abstractmethod
def factory_method(self):
"""
Обратите внимание, что Создатель может также обеспечить реализацию
фабричного метода по умолчанию.
"""
pass
def some_operation(self) -> str:
"""
Также заметьте, что, несмотря на название, основная обязанность
Создателя не заключается в создании продуктов. Обычно он содержит
некоторую базовую бизнес-логику, которая основана на объектах Продуктов,
возвращаемых фабричным методом. Подклассы могут косвенно изменять эту
бизнес-логику, переопределяя фабричный метод и возвращая из него другой
тип продукта.
"""
# Вызываем фабричный метод, чтобы получить объект-продукт.
product = self.factory_method()
# Далее, работаем с этим продуктом.
result = f"Creator: The same creator's code has just worked with {product.operation()}"
return result
"""
Конкретные Создатели переопределяют фабричный метод для того, чтобы изменить тип
результирующего продукта.
"""
class ConcreteCreator1(Creator):
"""
Обратите внимание, что сигнатура метода по-прежнему использует тип
абстрактного продукта, хотя фактически из метода возвращается конкретный
продукт. Таким образом, Создатель может оставаться независимым от конкретных
классов продуктов.
"""
def factory_method(self) -> Product:
return ConcreteProduct1()
class ConcreteCreator2(Creator):
def factory_method(self) -> Product:
return ConcreteProduct2()
class Product(ABC):
"""
Интерфейс Продукта объявляет операции, которые должны выполнять все
конкретные продукты.
"""
@abstractmethod
def operation(self) -> str:
pass
"""
Конкретные Продукты предоставляют различные реализации интерфейса Продукта.
"""
class ConcreteProduct1(Product):
def operation(self) -> str:
return "{Result of the ConcreteProduct1}"
class ConcreteProduct2(Product):
def operation(self) -> str:
return "{Result of the ConcreteProduct2}"
def client_code(creator: Creator) -> None:
"""
Клиентский код работает с экземпляром конкретного создателя, хотя и через
его базовый интерфейс. Пока клиент продолжает работать с создателем через
базовый интерфейс, вы можете передать ему любой подкласс создателя.
"""
print(f"Client: I'm not aware of the creator's class, but it still works.\n"
f"{creator.some_operation()}", end="")
if __name__ == "__main__":
print("App: Launched with the ConcreteCreator1.")
client_code(ConcreteCreator1())
print("\n")
print("App: Launched with the ConcreteCreator2.")
client_code(ConcreteCreator2())
❤3👌1
💣 Как настроить отказоустойчивое хранилище данных? Дарим гайд за прохождение теста по HighLoad!
🏆 Пройди тест из 29 вопросов, проверь свой уровень знаний и получи файл “Как настроить отказоустойчивое хранилище данных“! Тест проводится в рамках курса Highload Architect
👉 Пройти тест и забрать файл: https://vk.cc/cN8YR3
Если успешно пройдешь тест, то так же сможешь забронировать место в группе по выгодной цене!
🎫 Курс можно приобрести в рассрочку
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🏆 Пройди тест из 29 вопросов, проверь свой уровень знаний и получи файл “Как настроить отказоустойчивое хранилище данных“! Тест проводится в рамках курса Highload Architect
👉 Пройти тест и забрать файл: https://vk.cc/cN8YR3
Если успешно пройдешь тест, то так же сможешь забронировать место в группе по выгодной цене!
🎫 Курс можно приобрести в рассрочку
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🔥1