10 принципов проектирования микросервисов, которые стоит изучить Java-разработчикам
🔵 CQRS
🔵 SAGA
🔵 База данных на каждый сервис
🔵 Circuit-breaker
🔵 API Gateway
🔵 Event Sourcing
🔵 Strangler
🔵 Внешняя конфигурация
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
😊 Что такое ETL
ETL расшифровывается как Extract, Transform, Load и означает процесс интеграции данных. Сначала данные извлекаются из разных источников, например из баз данных, файлов или API. Затем они преобразуются в удобный для аналитики или отчетности формат.
На этом этапе может выполняться очистка от дублей и ошибок, обогащение за счет других источников, агрегация и сведение, преобразование типов и форматов, применение бизнес-правил или вычислений.
После этого данные загружаются в целевую систему. Чаще всего это хранилище или витрина данных, где они используются для отчетности, BI и аналитики.
ETL применяют в разных задачах. Он лежит в основе построения хранилищ, помогает при миграции данных между системами, используется для интеграции данных из разных источников, обеспечивает корректность данных для BI и отчетов, а также загружает структурированные и неструктурированные данные в data lake.
Среди распространенных ETL-инструментов можно назвать Microsoft SSIS, Azure Data Factory, Talend, Oracle Data Integrator, Apache NiFi и AWS Glue.
Сегодня также популярен подход ELT, при котором данные сначала извлекаются и загружаются в хранилище или big data-платформу, а все трансформации выполняются уже внутри целевой системы.
👉 Новости 👉 База вопросов
ETL расшифровывается как Extract, Transform, Load и означает процесс интеграции данных. Сначала данные извлекаются из разных источников, например из баз данных, файлов или API. Затем они преобразуются в удобный для аналитики или отчетности формат.
На этом этапе может выполняться очистка от дублей и ошибок, обогащение за счет других источников, агрегация и сведение, преобразование типов и форматов, применение бизнес-правил или вычислений.
После этого данные загружаются в целевую систему. Чаще всего это хранилище или витрина данных, где они используются для отчетности, BI и аналитики.
ETL применяют в разных задачах. Он лежит в основе построения хранилищ, помогает при миграции данных между системами, используется для интеграции данных из разных источников, обеспечивает корректность данных для BI и отчетов, а также загружает структурированные и неструктурированные данные в data lake.
Среди распространенных ETL-инструментов можно назвать Microsoft SSIS, Azure Data Factory, Talend, Oracle Data Integrator, Apache NiFi и AWS Glue.
Сегодня также популярен подход ELT, при котором данные сначала извлекаются и загружаются в хранилище или big data-платформу, а все трансформации выполняются уже внутри целевой системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
😊 Vert.x — это набор инструментов для создания реактивных приложений на JVM
Ядро Vert.x содержит достаточно низкоуровневую функциональность, включая поддержку HTTP, TCP, доступ к файловой системе и различные другие возможности. Можно использовать Vert.x непосредственно в своих приложениях.
GitHub
Доки
👉 Новости 👉 База вопросов
Ядро Vert.x содержит достаточно низкоуровневую функциональность, включая поддержку HTTP, TCP, доступ к файловой системе и различные другие возможности. Можно использовать Vert.x непосредственно в своих приложениях.
GitHub
Доки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес #git
🤔 Что такое git reflog?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
git reflog показывает историю всех перемещений HEAD, включая коммиты, слияния и переключения веток. Эта команда полезна для восстановления потерянных коммитов или веток.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👋 А что если Java-приложение могло бы запускаться за миллисекунды и потреблять совсем немного памяти, как программы на Go или C++
GraalVM решает эту задачу. Он компилирует Java и Spring Boot напрямую в нативный исполняемый файл. Это происходит заранее на этапе сборки в отличие от стандартной JVM, которая компилирует код во время выполнения. В результате получается бинарь, который запускается без JVM
Преимущества заметные, почти мгновенный старт, сокращенное потребление памяти, меньший размер пакета. Такой подход особенно удобен для микросервисов и облачных приложений
Есть и минусы, время сборки увеличивается, а итоговый бинарь зависит от платформы. Для Linux и Windows нужны отдельные файлы в отличие от переносимого JAR
По производительности GraalVM нативные образы близки к C++. Старт сопоставим по скорости. При тяжелых вычислительных задачах преимущество может быть у C++ благодаря управлению памятью на низком уровне. Но для большинства сценариев GraalVM выводит Java в ту же лигу, что и C++, сохраняя при этом безопасность и удобство разработки
👉 Новости 👉 База вопросов
GraalVM решает эту задачу. Он компилирует Java и Spring Boot напрямую в нативный исполняемый файл. Это происходит заранее на этапе сборки в отличие от стандартной JVM, которая компилирует код во время выполнения. В результате получается бинарь, который запускается без JVM
Преимущества заметные, почти мгновенный старт, сокращенное потребление памяти, меньший размер пакета. Такой подход особенно удобен для микросервисов и облачных приложений
Есть и минусы, время сборки увеличивается, а итоговый бинарь зависит от платформы. Для Linux и Windows нужны отдельные файлы в отличие от переносимого JAR
По производительности GraalVM нативные образы близки к C++. Старт сопоставим по скорости. При тяжелых вычислительных задачах преимущество может быть у C++ благодаря управлению памятью на низком уровне. Но для большинства сценариев GraalVM выводит Java в ту же лигу, что и C++, сохраняя при этом безопасность и удобство разработки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#новости
🤯 Java25 уже на подходе!
В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:
🟠 JEP 502: Stable Values — новый способ работы со значениями, который делает код надёжнее и эффективнее.
🟠 JEP 514/515: Project Leyden — фокус на время запуска приложений и оптимизацию старта JVM.
Подробный разбор
👉 Новости 👉 База вопросов
В свежем релизе — важные улучшения, о которых стоит знать каждому Java-разработчику:
Подробный разбор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😱 MethodHandles.
lookup().findVirtual()
Документация
👉 Новости 👉 База вопросов
lookup().findVirtual()
MethodHandles.lookup().findVirtual() позволяет динамически получать и вызывать методы классов без рефлексии, обеспечивая лучшую производительность и безопасность. Это полезно для метапрограммирования и динамических вызовов.Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
Техническое собеседование. Осень 2024. Вилка: 300-350к. Опыт в резюме: 5 лет. Было код-ревью, обсуждали теорию и оптимизацию БД.
Вопросы:
- Решение проблемы N+1 для связанных сущностей
- Использование DTO вместо сущностей
- Почему внедрение зависимостей через конструктор (@RequiredArgsConstructor) предпочтительнее, чем @Autowired в поле? Какие проблемы решает?
- Как избежать перегрузки внешнего сервиса при синхронных вызовах из
высоконагруженной системы?
Все вопросы можно посмотреть на нашей платформе
#собес #коллекции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#статьи
😘 Java движется вперёд и готовится к выпуску версии 25
В новом релизе уменьшили количество шаблонного кода, переработали работу с конструкторами и полностью отказались от поддержки старых систем.
Все ключевые изменения и полезные фишки версии 25 — в этой статье
👉 Новости 👉 База вопросов
В новом релизе уменьшили количество шаблонного кода, переработали работу с конструкторами и полностью отказались от поддержки старых систем.
Все ключевые изменения и полезные фишки версии 25 — в этой статье
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#статьи
😜 Пять эффективных схем кэширования, которые ускорят ваш микросервис
В современных микросервисных архитектурах кэширование играет ключевую роль в обеспечении высокой скорости работы, масштабируемости и устойчивости систем. Грамотное использование схем кэширования позволяет существенно снизить нагрузку на базы данных, сократить время отклика и повысить общую производительность системы.
Читать habr
👉 Новости 👉 База вопросов
В современных микросервисных архитектурах кэширование играет ключевую роль в обеспечении высокой скорости работы, масштабируемости и устойчивости систем. Грамотное использование схем кэширования позволяет существенно снизить нагрузку на базы данных, сократить время отклика и повысить общую производительность системы.
Читать habr
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Что делает команда git stash?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Команда
git stash сохраняет текущие незавершённые изменения в специальное место (стек), чтобы вы могли переключиться на другую ветку или выполнить другие действия. Эти изменения можно позже восстановить с ПОМОЩЬЮ git stash apply или git stash pop .📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😬 Stateful vs Stateless дизайн
Stateless-дизайн сделал возможным простые, но при этом масштабируемые и быстрые приложения. Вместо хранения состояния в памяти сервера, каждый запрос несет все данные для своей обработки. Это убрало лишние накладные расходы и позволило легко масштабировать системы.
Stateful-приложения работают иначе. Они хранят данные вроде user ID, сессий и настроек, что дает персонализацию и избавляет от передачи повторяющейся информации. Но из-за этого тяжело масштабироваться горизонтально.
Stateless-подход стал основой для микросервисов, serverless и REST API. Он ускоряет работу CDN и повышает эффективность сервисов. Но у него есть минусы - - большие размеры запросов, избыточная передача данных и сложности в сценариях, где состояние критично.
На практике чаще выбирают гибрид — сочетание stateful и stateless. Баланс позволяет сделать систему масштабируемой, простой и быстрой, не жертвуя функциональностью
👉 Новости 👉 База вопросов
Stateless-дизайн сделал возможным простые, но при этом масштабируемые и быстрые приложения. Вместо хранения состояния в памяти сервера, каждый запрос несет все данные для своей обработки. Это убрало лишние накладные расходы и позволило легко масштабировать системы.
Stateful-приложения работают иначе. Они хранят данные вроде user ID, сессий и настроек, что дает персонализацию и избавляет от передачи повторяющейся информации. Но из-за этого тяжело масштабироваться горизонтально.
Stateless-подход стал основой для микросервисов, serverless и REST API. Он ускоряет работу CDN и повышает эффективность сервисов. Но у него есть минусы - - большие размеры запросов, избыточная передача данных и сложности в сценариях, где состояние критично.
На практике чаще выбирают гибрид — сочетание stateful и stateless. Баланс позволяет сделать систему масштабируемой, простой и быстрой, не жертвуя функциональностью
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #git
🤔 Перечислите команды для удаления ветки git
💬 Кратко:
Для удаления локальной ветки:
Если ветка содержит незавершённые изменения:
Для удаления удалённой ветки:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для удаления локальной ветки:
git branch -d ‹ branch_name>
Если ветка содержит незавершённые изменения:
git branch -D ‹ branch_name>
Для удаления удалённой ветки:
git push origin --delete ‹branch_name>
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
GPU обрабатывают тысячи пикселей параллельно, но что происходит, когда мы записываем всего один пиксель в буфер кадра? Как это реализуется?
Посмотри, как CPU "рисует" каждый пиксель в этом наглядном визуальном симуляторе RISC-V (загрузи пример с bitmap):
https://eseo-tech.github.io/emulsiV/
👉 Новости 👉 База вопросов
Посмотри, как CPU "рисует" каждый пиксель в этом наглядном визуальном симуляторе RISC-V (загрузи пример с bitmap):
https://eseo-tech.github.io/emulsiV/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😵💫 VarHandle.
compareAndExchange()
Документация
👉 Новости 👉 База вопросов
compareAndExchange()
VarHandle.compareAndExchange() позволяет атомарно обновлять значения переменной, только если текущее значение соответствует ожидаемому. Это полезно для реализации lock-free структур данных и многопоточной синхронизации.Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1😇1
Техническое собеседование. Лето 2025. Вилка: 240к+. Опыт в резюме: 3.9 года. Проект: разработка высоконагруженных систем для Сбербанк Онлайн
Вопросы:
- Какой жизненный цикл Spring Beans?
- Для чего используются BeanPostProcessor и BeanFactoryPostProcessor?
- Как достать бин из ApplicationContext?
- Стандартные способы управления потоками (ExecutorService, Future)
Все вопросы можно посмотреть на нашей платформе
#собес #коллекции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #java
🤔 Какие типы данных в Java? Чем отличается объект от простых типов данных?
💬 Кратко:
В Java есть 8 примитивных типов данных (
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
В Java есть 8 примитивных типов данных (
byte, short, int, long, float, double, char, boolean ), которые хранят значения в стеке. Объекты же создаются на основе классов, хранятся в куче и обладают методами. Примитивные типы проще, быстрее и используют меньше памяти, в то время как объекты более функциональны, но требуют больше ресурсов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
YeaHub
YeaHub — тренажер собеседований по IT
5000+ вопросов для подготовки к интервью. Фильтры, квизы, статистика!
❤1
#полезное
😊 Бесплатный кроссплатформенный обозреватель кода. Это опенсорс-инструмент, который работает автономно без интернета. Поддерживает C, C++, Java и Python. Может быть полезен для изучения чужого кода или анализа своих проектов.
GitHub: Sourcetrail
👉 Новости 👉 База вопросов
GitHub: Sourcetrail
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from YeaHub
😎 Реальные собеседования + тренажёр = комплексная подготовка
На нашей платформе мы собираем собеседования вместе с сообществом: Guru, участниками, менторами и партнёрами.
Один из наших партнёров — Аня и её проект «Авось Прорвёмся», экосистема чатов для кандидатов, которые ищут работу и готовятся к собеседованиям.
Прорвёмся вместе — анонимный канал для самостоятельной подготовки:
- 1000+ записей реальных собеседований с разбором задач и вопросов;
- контакты рекрутеров;
- гайды по резюме, трудоустройству и стратегиям поиска работы.
- задачи и вопросы с собеседований
📚 Сначала смотри записи реальных собеседований, а потом изучай эти же вопросы в нашем тренажёре.
Мы цифровизуем все собесы из чатов «Авось Прорвёмся» и добавляем их в текстовом виде в коллекцию. Так можно не только услышать, как это проходит вживую, но и отработать те же самые вопросы уже в интерактивном формате.
📌 Направления, которые доступны в чатах:
iOS, Android, Frontend, Python, Go, Java, C#, QA, Analytics.
👉 Обучайтесь, общайтесь, растите вместе с YeaHub и Авось Прорвемся
На нашей платформе мы собираем собеседования вместе с сообществом: Guru, участниками, менторами и партнёрами.
Один из наших партнёров — Аня и её проект «Авось Прорвёмся», экосистема чатов для кандидатов, которые ищут работу и готовятся к собеседованиям.
Прорвёмся вместе — анонимный канал для самостоятельной подготовки:
- 1000+ записей реальных собеседований с разбором задач и вопросов;
- контакты рекрутеров;
- гайды по резюме, трудоустройству и стратегиям поиска работы.
- задачи и вопросы с собеседований
📚 Сначала смотри записи реальных собеседований, а потом изучай эти же вопросы в нашем тренажёре.
Мы цифровизуем все собесы из чатов «Авось Прорвёмся» и добавляем их в текстовом виде в коллекцию. Так можно не только услышать, как это проходит вживую, но и отработать те же самые вопросы уже в интерактивном формате.
📌 Направления, которые доступны в чатах:
iOS, Android, Frontend, Python, Go, Java, C#, QA, Analytics.
Подключение — только по инвайту от действующего участника, или YeaHub.
👉 Обучайтесь, общайтесь, растите вместе с YeaHub и Авось Прорвемся
❤2👍2🔥1
Полный список самых важных и часто спрашиваемых аннотаций Spring Boot с точки зрения собеседований и их функциональное назначение.
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM