🏗 Курс “Software Architect” от OTUS — набор заканчивается. Успейте пройти вступительный тест и занять место в группе!
Почему стоит присоединиться прямо сейчас:
• 100% практики на реальных проектах
• Проектирование гибких архитектур
• Микросервисы, интеграции, Big Data
• Современные паттерны: CQRS, Event Sourcing и др.
💡 Кому подойдёт:
• Разработчикам, готовым выйти на новый уровень
• Архитекторам, углубляющим экспертизу
• Тимлидам и менеджерам
✅ После курса вы сможете:
• Проектировать масштабируемые архитектуры
• Оптимизировать взаимодействие сервисов
• Повышать качество и устойчивость систем
Места в группе ограничены — пройдите вступительное тестирование сегодня, чтобы успеть!
https://vk.cc/cPCgpi
Почему стоит присоединиться прямо сейчас:
• 100% практики на реальных проектах
• Проектирование гибких архитектур
• Микросервисы, интеграции, Big Data
• Современные паттерны: CQRS, Event Sourcing и др.
💡 Кому подойдёт:
• Разработчикам, готовым выйти на новый уровень
• Архитекторам, углубляющим экспертизу
• Тимлидам и менеджерам
✅ После курса вы сможете:
• Проектировать масштабируемые архитектуры
• Оптимизировать взаимодействие сервисов
• Повышать качество и устойчивость систем
Места в группе ограничены — пройдите вступительное тестирование сегодня, чтобы успеть!
https://vk.cc/cPCgpi
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576❤4👍2🔥2
Forwarded from Java Guru 🤓
Что будет результатом кода?
Anonymous Quiz
14%
Статус заказа изменится на PROCESSING
6%
Произойдет LazyInitializationException
64%
Транзакция откатится полностью, и статус заказа не изменится
11%
Метод завершится с ошибкой, но заказ останется в статусе COMPLETED
6%
Ошибка компиляции
👍11🔥3❤🔥1
— Statement используется для
— PreparedStatement
Поэтому в реальных проектах почти всегда используют
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥14👍6❤5🎄1
⚡️Тест по мониторингу архитектуры
Ответьте на 15 вопросов и проверьте, насколько вы готовы к обучению на курсе — "Observability: мониторинг, логирование, трейсинг" от Отус.
Научитесь строить эффективные системы мониторинга и логирования. Курс идеально подойдет администраторам Linux, DevOps-инженерам и разработчикам, которые хотят повысить квалификацию и увеличить доход.
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cPFPO8
🤝 Бонусом за успешно пройденный тест, получишь доступ к записям лучших вебинаров курса.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Ответьте на 15 вопросов и проверьте, насколько вы готовы к обучению на курсе — "Observability: мониторинг, логирование, трейсинг" от Отус.
Научитесь строить эффективные системы мониторинга и логирования. Курс идеально подойдет администраторам Linux, DevOps-инженерам и разработчикам, которые хотят повысить квалификацию и увеличить доход.
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cPFPO8
🤝 Бонусом за успешно пройденный тест, получишь доступ к записям лучших вебинаров курса.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍4❤3🔥2
Чёткая схема API помогает наладить диалог между провайдером и клиентом, а единый формат ошибок — избавить потребителей от хаоса в коде и лишних поводов для «боли».
{
"timestamp": "2021-15-08T14:32:17.947+0000",
"status": 500,
"error": "Internal Server Error",
"path": "/test"
}
Такая форма ответа не всегда содержит тип ошибки для обработки на клиенте, а также предоставляет мало контекста для формирования пользовательских сообщений.
{
"error": {
"type": "USER_NOT_FOUND",
"message": "User with ID 12345 not found.",
"status": 500,
"path": "/integration/apps",
"timestamp": "2021-15-08T14:32:17.947+0000",
"data": {
"userId": "12345"
}
}
}
public final class AppException extends RuntimeException {
private final ErrorType type;
private Map<String, Object> data;
// конструктор и геттеры...
}
public enum ErrorType {
USER_NOT_FOUND(404), AUTHENTICATION_FAILED(401), …;
private final int status;
// геттеры...
}
Используем @ControllerAdvice с @ExceptionHandler(AppException.class) для перехвата ошибок и возвращения QErrorResponse, содержащего нужную структуру
Создаём свой ErrorController, заменяющий BasicErrorController, и возвращаем данные в таком же формате QErrorResponse:
@RestController
@RequestMapping("${server.error.path:${error.path:/error}}")
public class RestErrorController extends AbstractErrorController {
// логика формирования QErrorResponse…
}
Это гарантирует, что любые ошибки возвращаются в одинаковом формате .
— Унификация ответа облегчает обработку ошибок на клиенте.
— Контекст в data позволяет выдавать более понятные сообщения пользователю.
— Расширяемость дает возможность добавлять новые типы ошибок при сохранении консистентности.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥13👍8
❓Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
👩💻 Android Developer - канал для андроид разработчиков! Статьи, вопросы и задачи с собеседований, лайфхаки.
👩💻 Kotlin Developer - самый топовый канал для котлин разработчика!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
📰 Java News - канал с последними новостями из мира Java!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥2
Media is too big
VIEW IN TELEGRAM
TCP Log-appender на java (NIO)
В предыдущем видео TCP Log-сервер на java (NIO) был разработан TCP Log-сервер.
Сейчас для него сделаем appender для отправки логов.
🌐 🗣 СМОТРЕТЬ VKVIDEO
📺 🗣 СМОТРЕТЬ RUTUBE
✅ Java библиотека #java
В предыдущем видео TCP Log-сервер на java (NIO) был разработан TCP Log-сервер.
Сейчас для него сделаем appender для отправки логов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3👍2
Задача с собеса: Потокобезопасный LRU-кэш с TTL (middle)
Интересная задачка с реального собеседования:
🔘 Условия
1. put(k, v) кладёт значение с TTL (единый для экземпляра).
2. get(k) возвращает значение или null, если пары нет или истёк TTL.
3. При переполнении удаляется «наименее недавно использованный» элемент.
4. Решение должно быть неблокирующим по чтению или, как минимум, с короткими критическими секциями.
5. Допустимо ленивое удаление устаревших записей (на чтении/записи).
💡 Ключевые моменты:
— Выбор структуры: LinkedHashMap с accessOrder=true даёт LRU «из коробки».
— TTL: храните expireAt на элемент; чистите лениво и/или периодически.
— Потоки: короткие секции под ReentrantReadWriteLock (или один ReentrantLock) вокруг критичных операций.
— Амортизация O(1): не делайте полных проходов по карте на каждом вызове.
❓ Возможная реализация в комментариях. Пишите также ваши реализация и способы оптимизации.
✅ Java библиотека #java
Интересная задачка с реального собеседования:
Компания хочет снизить нагрузку на БД и внешние API. Реализуйте in-memory кэш, который:
— хранит не более N элементов (LRU-политика вытеснения)
— истекает срок действия записей по TTL
— потокобезопасен и работает за O(1) на get/put
1. put(k, v) кладёт значение с TTL (единый для экземпляра).
2. get(k) возвращает значение или null, если пары нет или истёк TTL.
3. При переполнении удаляется «наименее недавно использованный» элемент.
4. Решение должно быть неблокирующим по чтению или, как минимум, с короткими критическими секциями.
5. Допустимо ленивое удаление устаревших записей (на чтении/записи).
— Выбор структуры: LinkedHashMap с accessOrder=true даёт LRU «из коробки».
— TTL: храните expireAt на элемент; чистите лениво и/или периодически.
— Потоки: короткие секции под ReentrantReadWriteLock (или один ReentrantLock) вокруг критичных операций.
— Амортизация O(1): не делайте полных проходов по карте на каждом вызове.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5❤4😁1
🔥 25 сентября в 20:00 мск — открытый вебинар в OTUS!
О чём?
В мире высоконагруженных систем с сотнями сервисов управление конфигурацией, сервис-дискавери и координация компонентов — это настоящий вызов. Apache ZooKeeper — проверенное решение для создания надёжных и управляемых распределённых систем.
Что разберём:
- ZooKeeper: что это и зачем он нужен в распределённых системах.
- Архитектура: ZNode, лидер-выборы, механизмы согласованности.
- Применение: сервис-дискавери, управление конфигурацией, координация задач.
- Ограничения: сравнение ZooKeeper с Etcd и Consul.
- Практика: реальные кейсы использования в highload-системах.
🎓 После вебинара вы:
- Поймёте, как ZooKeeper решает задачи координации и конфигурации.
- Узнаете, когда использовать ZooKeeper, а когда выбрать Etcd или Consul.
🔧 Присоединяйтесь, чтобы освоить мощный инструмент для построения масштабируемых и отказоустойчивых систем!
👉 Зарегистрироваться https://vk.cc/cPItpe
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
О чём?
В мире высоконагруженных систем с сотнями сервисов управление конфигурацией, сервис-дискавери и координация компонентов — это настоящий вызов. Apache ZooKeeper — проверенное решение для создания надёжных и управляемых распределённых систем.
Что разберём:
- ZooKeeper: что это и зачем он нужен в распределённых системах.
- Архитектура: ZNode, лидер-выборы, механизмы согласованности.
- Применение: сервис-дискавери, управление конфигурацией, координация задач.
- Ограничения: сравнение ZooKeeper с Etcd и Consul.
- Практика: реальные кейсы использования в highload-системах.
🎓 После вебинара вы:
- Поймёте, как ZooKeeper решает задачи координации и конфигурации.
- Узнаете, когда использовать ZooKeeper, а когда выбрать Etcd или Consul.
🔧 Присоединяйтесь, чтобы освоить мощный инструмент для построения масштабируемых и отказоустойчивых систем!
👉 Зарегистрироваться https://vk.cc/cPItpe
Бесплатное занятие приурочено к старту курса Highload Architect, обучение на котором позволит освоить решения, которые выдерживают большое количество запросов в секунду и правильно оптимизировать работоспособность серверов
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤4👍3🔥2
Forwarded from Java Guru 🤓
Какой потенциальный риск присутствует?
Anonymous Quiz
23%
Код работает корректно, проблем нет
26%
future.get() может зависнуть навсегда
9%
Высокая нагрузка на потокобезопасные ресурсы, нужен synchronized
18%
CompletableFuture.supplyAsync() блокирует основной поток
24%
future.get() может выбросить NullPointerException
👍7🔥2😁2
В новой версии Spring Boot 4, которая выйдет в ноябре 2025 года, разработчики получат ряд значительных улучшений, включая поддержку Jakarta EE 11, интеграцию с GraalVM 24 и улучшенную совместимость с Kotlin 2.2.
Spring Boot 4 перейдёт на Jakarta EE 11, что обеспечит поддержку Servlet 6.1, JPA 3.2 с Hibernate ORM 7.0 и Bean Validation 3.1. Это улучшит работу с веб-API и базами данных, а также обеспечит лучшую поддержку Kotlin и Java records.
Поддержка GraalVM 24 позволит создавать нативные образы с улучшенной производительностью и меньшим временем запуска, что особенно важно для микросервисной архитектуры и облачных приложений.
Spring Boot 4 улучшит работу с Kotlin 2.2, включая поддержку новых возможностей языка и улучшенную интеграцию со сборкой Gradle, что упростит разработку на Kotlin.
Улучшенные Buildpacks и более эффективная сборка Docker-образов обеспечат лучшую поддержку облачных технологий и контейнеризации, что упростит развертывание приложений.
Spring Boot 4 будет основан на Spring Security 7, обеспечивая улучшенную интеграцию с OAuth 2.2 и OIDC, а также улучшенные криптографические настройки по умолчанию для повышения безопасности приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤8🔥3
🏗 Курс “Архитектура и шаблоны проектирования” от OTUS — набор заканчивается. Успейте занять место в группе обучения!
Почему стоит записаться сейчас:
• 50% практики: вебинары, задания, проекты
• Онлайн-занятия 2 раза в неделю + записи навсегда
• Поддержка опытных менторов
💡 Кому подойдёт:
• Fullstack/Backend разработчикам
• DevOps-инженерам
• Desktop-разработчикам
✅ После курса вы сможете:
• Применять архитектурные шаблоны и SOLID
• Рефакторить и писать чистый код
• Выбирать оптимальные решения
⏳ Места ограничены. Пройдите вступительный тест
👉 Пройти тест и записаться:
https://vk.cc/cPLfhg
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Почему стоит записаться сейчас:
• 50% практики: вебинары, задания, проекты
• Онлайн-занятия 2 раза в неделю + записи навсегда
• Поддержка опытных менторов
💡 Кому подойдёт:
• Fullstack/Backend разработчикам
• DevOps-инженерам
• Desktop-разработчикам
✅ После курса вы сможете:
• Применять архитектурные шаблоны и SOLID
• Рефакторить и писать чистый код
• Выбирать оптимальные решения
⏳ Места ограничены. Пройдите вступительный тест
👉 Пройти тест и записаться:
https://vk.cc/cPLfhg
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❤2👍2🔥2🎅1
Архитектура микросервисного приложения, оптимизированная для продакшн-окружения
Основные компоненты:
1️⃣ API Gateway — точка входа, которая маршрутизирует запросы и балансирует нагрузку
2️⃣ Service Registry — централизованный реестр для обнаружения сервисов
3️⃣ Service Layer — набор независимых микросервисов с четким разделением задач
4️⃣ Authorization Server — безопасность через авторизацию
5️⃣ Database Layer — репликация для надежности
6️⃣ Distributed Cache — ускорение доступа к данным
7️⃣ Distributed Messaging — асинхронное взаимодействие
8️⃣ Queue Management Interface — мониторинг очередей
9️⃣ ELK Stack — сбор и анализ логов
Подписывайся на наш канал в Max🟪
Основные компоненты:
Подписывайся на наш канал в Max
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍9🔥7
Forwarded from Java Guru 🤓
Что будет результатом кода?
Anonymous Quiz
70%
5
22%
10
6%
Ошибка компиляции
1%
null
2%
UnsupportedOperationException
👍9🔥6❤1
Forwarded from Книги для Java программиста
Modern Concurrency in Java: A Deep Dive into Virtual Threads, Structured Concurrency, and Scoped Values (2025) PDF
Welcome to the future of Java. With this book, you'll explore the transformative world of Java 21's key feature: virtual threads. Remember struggling with the cost of thread creation, encountering limitations on scalability, and facing difficulties in achieving high throughput? Those days are over. This practical guide takes you from Java 1.0 to the cutting-edge advancements of Project Loom.
You'll learn more than just theory. Author A N M Bazlur Rahman equips you with a toolkit for taking real-world action. Take a deep dive into the intricacies of virtual threads and complex topics such as ForkJoinPool, continuation, rate limiting, debugging, and monitoring. You'll not only learn how they work, but you'll also pick up expert tips and tricks to help you master these concepts. And you'll learn about structured concurrency and scoped values—critical skills for building Java applications that are scalable and efficient.
Welcome to the future of Java. With this book, you'll explore the transformative world of Java 21's key feature: virtual threads. Remember struggling with the cost of thread creation, encountering limitations on scalability, and facing difficulties in achieving high throughput? Those days are over. This practical guide takes you from Java 1.0 to the cutting-edge advancements of Project Loom.
You'll learn more than just theory. Author A N M Bazlur Rahman equips you with a toolkit for taking real-world action. Take a deep dive into the intricacies of virtual threads and complex topics such as ForkJoinPool, continuation, rate limiting, debugging, and monitoring. You'll not only learn how they work, but you'll also pick up expert tips and tricks to help you master these concepts. And you'll learn about structured concurrency and scoped values—critical skills for building Java applications that are scalable and efficient.
❤10
Хотите ускорить написание кода и избежать повторений? Используйте Live Templates для создания шаблонов кода, которые можно вставлять за пару кликов.
— Позволяет создавать шаблоны кода для часто используемых конструкций
— Поддерживает параметры и автозамену (например, поля и методы)
— Работает для Java, Kotlin, HTML, и других языков
— Сокращает время на написание повторяющихся конструкций
— Уменьшает количество ошибок за счёт предсказуемых шаблонов
— Улучшает производительность и помогает не забыть важные моменты
— Ctrl+J (или Cmd+J на macOS) — откроет список шаблонов
— Можно создать свой шаблон в Settings → Editor → Live Templates
— Настройте шаблон под ваши нужды, и используйте его с удобным сокращением
Подписывайся на наш канал в Max
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤5🔥5
Podlodka Crew 29 сентября запускает новую конференцию — Podlodka AI Crew 🥳
Если вы ищете практические знания без воды — это оно. Подлодка собрала экспертов, которые покажут, что реально работает в коде, пайплайнах и командных процессах.
В программе:
📊«AI, ML, DS, нейросети: без хайпа в терминах» — разберём границы применимости подходов, чтобы отличать пользу от шума (Алексей Шаграев, ex-Google, ex-Yandex).
👥 Круглый стол «AI-культура в команде» — инструменты и практики, сопротивление/принятие, влияние на эффективность и безопасность (Макс Сальников / Microsoft, Владимир Иванов / Supplied, Михаил Левченко / Яндекс Вертикали, Павел Герасимов / Wrike).
💻 Мастер-класс «Project-aware ассистенты: RAG + MCP» — живая документация, контекст кода для LLM и интерфейс запросов в мессенджере; как это ускоряет онбординг и разработку (Григорий Сухоруков, Яндекс).
⚡«Эффективный промптинг» — техники, которые убирают типовые страхи и реально ускоряют разработку (Евгений Сатуров, Surf).
Почему это важно: AI уже часть рабочего стека — от IDE до CI/CD. Здесь — практики с измеримым эффектом: меньше рутины, быстрее процессы.
Кому будет полезно: разработчикам, архитекторам и техлидам, платформенным/DevOps-инженерам - всем, кто внедряет AI-процессы и ждёт измеримого результата.
🗓 29 сентября - 3 октября
🔗 Подробности и регистрация: https://podlodka.io/aicrew
Если вы ищете практические знания без воды — это оно. Подлодка собрала экспертов, которые покажут, что реально работает в коде, пайплайнах и командных процессах.
В программе:
📊«AI, ML, DS, нейросети: без хайпа в терминах» — разберём границы применимости подходов, чтобы отличать пользу от шума (Алексей Шаграев, ex-Google, ex-Yandex).
👥 Круглый стол «AI-культура в команде» — инструменты и практики, сопротивление/принятие, влияние на эффективность и безопасность (Макс Сальников / Microsoft, Владимир Иванов / Supplied, Михаил Левченко / Яндекс Вертикали, Павел Герасимов / Wrike).
💻 Мастер-класс «Project-aware ассистенты: RAG + MCP» — живая документация, контекст кода для LLM и интерфейс запросов в мессенджере; как это ускоряет онбординг и разработку (Григорий Сухоруков, Яндекс).
⚡«Эффективный промптинг» — техники, которые убирают типовые страхи и реально ускоряют разработку (Евгений Сатуров, Surf).
Почему это важно: AI уже часть рабочего стека — от IDE до CI/CD. Здесь — практики с измеримым эффектом: меньше рутины, быстрее процессы.
Кому будет полезно: разработчикам, архитекторам и техлидам, платформенным/DevOps-инженерам - всем, кто внедряет AI-процессы и ждёт измеримого результата.
🗓 29 сентября - 3 октября
🔗 Подробности и регистрация: https://podlodka.io/aicrew
👍3🔥3❤2