🤘🏻Задачи, головоломки, книги и другие радости программиста. Оглавление канала: telegra.ph/UniLecs-FAQ-09-30 Чат: @unilecs_chat Бот: @unilecsBot VK: vk.com/unilecs Админ, сотрудничество: @dashalvv Редактор: @amdavletov
Заметки по архитектуре: повышение отказоустойчивости и наблюдаемости приложения
Читать
#architecture #monitoring #observability
Заметки по архитектуре: Построение микросервисного лендскейпа
О микросервисной архитектуре
● Статья Джеймса Льюиса и Мартина Фаулера «Microservices: a definition of this new architectural term»
● Раздел сайта Криса Ричардсона, посвящённый паттернам микросервисной архитектуры
● The Twelve-Factor App — документация о методологии для создания SaaS-приложений
Паттерн Saga
● Saga и Event Sourcing с Axon. Первое знакомство
● SAGA на golang
● Паттерн Saga в микросервисной архитектуре
API Gateway
● Простой API gateway на базе PHP и Lumen
● Use API gateways in microservices
● Building an API Gateway to Get Out of the Monoliths
Разные подходы к визуализации архитектуры
● Сайт, посвящённый модели C4
● Официальный сайт UML
● Обзорная статья про ERD от Lucidchart
Инструменты для визуализации архитектуры
● Официальный сайт PlantUML
● Официальный сайт MkDocs
Инструменты для реализации API Gateway
● Netflix Zuul
● Amazon API Gateway
● Kong
● NGINX API Gateway
Облачные технологии
● Интерактивный инструмент https://landscape.cncf.io/ от Cloud Native Computing Foundation (CNCF). Позволяет пользователями исследовать экосистему облачных технологий
#architecture #cloud
Заметки по архитектуре: масштабирование с репликацией и шардированием
Статьи
● Паттерны и антипаттерны шардирования
● Готовая реализация примера шардирования Mongo с использованием docker-compose на 15 инстансов
● Подробное описание устройства распределённого кеша
Инструменты, паттерны и фреймворки
● Cтатья на Хабре с архитектурой Redis и принципами его работы
● Статья на Хабре с опытом реализации кеширования на базе другой технологии — Hazelcast
#architecture #replication #sharding
Заметки по архитектуре: Микрофронтенды
Статьи
● Статья про микрофронтенды от Майкла Гирса, автора книги "Микрофронтенды в действии"
● Пример онлайн-магазина от Майкла Гирса
Фреймворки и инструменты
Webpack Module Federation
● Раздел документации Webpack про Module Federation
● Статья про Webpack на SurviveJS
● Репо с примерами реализации Module Federation для разных фреймворков
Single SPA
● Официальный репозиторий Single SPA
● Официальная документация Single SPA
Другие фреймворки для микрофронтендов в порядке популярности: Piral, Luigi, OpenComponents, Voltran, Qiankun, Bit, PuzzleJs
#architecture #yandex
Может ли средний балл всего класса по математике быть больше 4?
#puzzle_269
🧩 Задача на оптимизацию!
У вас есть мешки с камнями и несколько дополнительных камней. Нужно определить, максимальное количество мешков, которые можно заполнить до предела.
Сможете найти решение? 🤔
#task_367
Сможет ли Карлсон отремонтировать пропеллер, если у него с собой только 360 крон?
#puzzle_268
💣 Дешифруй код и обезвредь бомбу! 💻
Особенность задачи в том, что массив круговой, так что тебе нужно учитывать это при расчетах.
Анонс
#task_366
Друзья! Поздравляю всех с наступающим Новым годом!
Желаю вам в новом году прежде всего здоровья, счастья, любви, удачи и благополучия 🎄
Развивайтесь, обучайтесь и не останавливайтесь на достигнутом!
... С 22 по 26 сентября они написали в общей сложности 30 произведений.
Сколько стихотворений они напишут 27 сентября?
#puzzle_267
5 декабря пройдет онлайн-митап для java-разработчиков от Naumen. Спикеры поделятся опытом в промышленной java-разработке, реальными кейсами и рекомендациями.
В программе три доклада:
🔸 Как приручить JSON — Максим Осипов, руководитель группы разработки Naumen SMP
🔸 Прагматика микросервисов: строим большую систему с помощью пачки монолитов — Дмитрий Черкасов, DevRel Jmix
🔸 Бэкэнд изображений в ОК — Руслан Измайлов, ведущий java-разработчик в ОК, VK
Старт митапа 5 декабря в 16:00 мск | 18:00 екб.
Участие как всегда бесплатное, нужна только регистрация.
→ Зарегистрироваться на митап.
Реклама, АО «Нау-сервис», ИНН 6671116364
https://www.naumen.ru/
Разработчик бэкенда на Scala в
Яндекс Вертикали
Яндекс Вертикали — это сервисы Авто.ру, Аренда, Недвижимость, Путешествия и Услуги. Их ежедневная аудитория превышает пять миллионов человек, а моментальная нагрузка составляет десятки тысяч RPS.
Какие задачи вас ждут
— Продуктовая проработка задач вместе с продакт-менеджерами
Наши разработчики плотно взаимодействуют с владельцами сервисов и влияют на развитие продуктов;
— Проектирование архитектуры, прохождение и проведение дизайн-ревью
Мы расширяем кругозор сотрудников, предотвращаем разработку «велосипедов» и следим за описанием архитектуры проекта;
— Оценка трейд-оффов
Находим оптимальное решение между скоростью продуктовых изменений сейчас и сложностью развития системы в будущем;
— Написание кода на Scala
Проводим тестирование и делаем релиз в продакшн на миллионы реальных пользователей, а также поддерживаем производительность и работоспособность сервисов: предотвращаем и решаем проблемы в продакшне.
Мы ждем, что вы
— Готовы не просто писать код, а отвечать за весь жизненный цикл разработки продукта;
— Умеете конструктивно дискутировать о решениях коллег или выставлять на общее обсуждение свои идеи;
— Быстро изучаете новое, открыты к освоению новых технологий и подходов, включая Scala и другие инструменты, которые мы используем.
Узнать подробности и откликнуться
💥 Как вычесть интервал из списка интервалов: пошаговое руководство на C#
Смотрим разбор
#task_364
Делаем реверс подстрок в каждой паре скобок...
Смотрим разбор
#task_363
Заметки по архитектуре: Создание конвейера обновления микросервисов в продакшн
Полезные разделы в документации Docker
● Команды Docker
● Cписок инструкций Dockerfile
● Рекомендации, как сделать Dockerfile легче
● Docker Compose overview
Про структуру Helm-чарта
● Документация про чарты в Helm
● Документация про файл конфигурации
● Раздел документации о директории templates
● Раздел документации про директорию для зависимых чартов
● Раздел документации о файле requirements.yaml
#architecture #docker #helm
Заметки по архитектуре: Использование геораспределённых решений облаков
Статьи
● Cтатья про балансировку и проксирование
● Статья с подробностями об устройстве CDN
● Документация про бакеты в Yandex Cloud
● Документация про хостинг статических сайтов в Yandex Cloud
● L7-балансировщик нагрузки из Yandex Application Load Balancer
● Документация о CDN в Yandex Cloud
Фреймворки и инструменты
● Статья про балансировщики в Yandex Cloud и их выбор в случае использования Облака
#architecture #cloud
Заметки по архитектуре: Разбивка монолитной системы на микросервисы
Методы приоритизации для выделения функций из монолита
● Модель Кано
● Модель взвешенного оценивания (Weighted Scoring Model)
● ICE Scoring
● Value vs. Effort
● Cost of Delay
Паттерны проектирования для создания Anti-Corruption Layer
● Статья про Facade с примерами кода
● Статья про Adapter с примерами кода
● Большой обзор Service Mesh: часть первая
● Большой обзор Service Mesh: часть вторая
Материалы о паттерне Saga
● Вводная статья, где автор рассматривает преимущества оркестрации
● Статья о паттерне в блоге Temporal
● Репозиторий на GitHub с примерами хореографической Saga
Инструменты и фреймворки для паттерна Saga: Long Running Actions for MicroProfile, Axon, Eventuate Tram Sagas, Oracle Database, Seate Saga Mode.
#architecture #patterns #saga
Может ли средний балл всего класса по математике быть больше 4?
Смотри разбор
#puzzle_269
Как думаете, какой алгоритм здесь подойдёт? Пишите свои идеи в комментариях!
Смотрите разбор
#task_367
Сможет ли Карлсон отремонтировать пропеллер, если у него с собой только 360 крон?
● Карлсон может купить 2 лопасти и 2 винтика, заплатив 2*120 + 2*9 = 258 крон.
● Тогда он может получить 3ю лопасть со скидкой 20%, т.е. 120 * 0.8 = 96 крон.
Карлсон заплатит 258 + 96 = 354 крон.
#puzzle_268
💣 Расшифруем код вместе!
Разбираем интересную задачу на работу с круговым массивом 🚀
Решение
#task_366
... С 22 по 26 сентября они написали в общей сложности 30 произведений.
Сколько стихотворений они напишут 27 сентября?
● Каждый из 6ти поэтов, которые пишут по одному стиху раз в два дня, напишет по 3 стиха (по одному в каждую пару дней 22–23, 24–25 и 26–27).
● Каждый из 8ми поэтов, которые пишут по одному стиху раз в три дня — по 2 стиха (по одному в каждую тройку дней 22–23–24 и 25–26–27).
Суммарно поэты напишут 6 * 3 + 8 * 2 = 34 стиха. Поскольку по условию с 22 по 26 сентября они написали 30 стихов, 27 сентября они напишут 34 − 30 = 4 стиха.
#puzzle_267
Станьте аналитиком данных за 5 месяцев
Основная проблема обучений – оторванность от задач реального бизнеса. На курсе учился складывать 2+2, а на работе – сразу отправляют считать интегралы.
Курс-симулятор от Simulative построен таким образом, что вы сразу погружаетесь в настоящую работу: работаете над 25+ проектами из реального бизнеса, учитесь не только писать код, но и думать как аналитик.
Вы изучите Python, SQL, Power BI, Metabase, A/B-тесты, статистику, продуктовые метрики, а также подготовитесь к любому собеседованию – в курс включены тестовые задания, пробные интервью (технические и с HR) и многое другое.
С трудоустройством поможем: 87% наших студентов находят работу своей мечты в течение двух месяцев с момента начала поиска. А на VIP тарифе преподаватели и HR спроектируют вам персональный трек обучения и за руку доведут до оффера. Часть стоимости курса вы оплачиваете только, когда найдёте работу.
Успейте присоединиться к текущему потоку обучения
По промокоду UNILECS дарим скидку 12%.
Сжимаем строки: эффективный алгоритм работы с повторяющимися символами
Узнайте, как реализовать эту задачу!
#task_365
● Да. Например, произведение всех нечётных чисел от 1 до 99.
● Такое число делится на все нечётные числа (их как раз 50) от 1 до 100.
● В то же время ни на одно чётное не делится, так как не делится даже на 2.
#puzzle_266
Сжимаем строки, учитывая повторения
Дана строка, и вам нужно применить алгоритм, который удаляет префикс максимальной длины, состоящий из одного символа, повторяющегося не более 9 раз. Затем результат добавляется в новую строку в формате длина + символ.
Смотрим примеры
#task_365
Задача на пересекающиеся интервалы...
Смотрим анонс
#task_364
Станьте BI-аналитиком,
за которым работодатели будут выстраиваться в очередь.
⚡️За 5 месяцев вы не просто изучите аналитику — вы будете решать рабочие задачи, что равноценно прохождению стажировки начинающим специалистом и уже на курсе сделаете большое количество заготовок, которые пригодятся и для портфолио, и во время работы.
⚡️Еще одна особенность курса – подбор персонального трека обучения под ваши задачи — например, устроиться в крупную IT-компанию или релоцироваться.
Кстати, 87% выпускников находят работу в течение двух месяцев, а школа Simulative помогает с прохождением собеседований и трудоустройством.
⚡️Преподавать курс будут практикующие специалисты с огромным опытом работы в таких компаниях, как Ozon, Сбер, SkillFactory.
Записывайтесь по специальным условиям второго потока до 25 октября
Реверс подстрок в каждой паре скобок...
Смотрим анонс
#task_363