#полезное
🏠 Совет по Java: используйте
✅
Но, он не потокобезопасен (используйте
👉 Новости 👉 База вопросов
HashMap
как реализацию Map
, когда нужна максимальная производительность общего назначения.HashMap
внутри реализован как хеш-таблица, и в среднем операции put(), get()
и remove()
работают за O(1).Но, он не потокобезопасен (используйте
ConcurrentHashMap
, если нужна потокобезопасность).Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
#полезное
🏕 Ссылки на методы и функциональные интерфейсы:
Познакомься с ссылками на методы — более чистым и умным способом передавать поведение в современной Java.
В связке с функциональными интерфейсами они позволяют писать лаконичный, читаемый и элегантный код без потери типобезопасности и выразительности.
👉 Новости 👉 База вопросов
Познакомься с ссылками на методы — более чистым и умным способом передавать поведение в современной Java.
В связке с функциональными интерфейсами они позволяют писать лаконичный, читаемый и элегантный код без потери типобезопасности и выразительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
#Собес #kubernetes
🤔 Что такое DNS в Kubernetes?
💬 Кратко:
Kubernetes DNS - это встроенный сервис, который автоматически назначает DNS-имена сервисам и Pod-ам в кластере. Он позволяет приложениям находить друг друга по доменным именам, а не по IP-адресам.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Kubernetes DNS - это встроенный сервис, который автоматически назначает DNS-имена сервисам и Pod-ам в кластере. Он позволяет приложениям находить друг друга по доменным именам, а не по IP-адресам.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
#полезное
🥄 Телеграфируем кодом Морзе через Java Stream API
Как с помощью Java Stream API реализовать кодирование и декодирование текста в азбуке Морзе. Объясняется история азбуки Морзе, принципы её работы и показано практическое применение функционального программирования в Java для преобразования текста в Морзе и обратно. Приятного изучения
Читать гайд
👉 Новости 👉 База вопросов
Как с помощью Java Stream API реализовать кодирование и декодирование текста в азбуке Морзе. Объясняется история азбуки Морзе, принципы её работы и показано практическое применение функционального программирования в Java для преобразования текста в Морзе и обратно. Приятного изучения
Читать гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Техническое собеседование. Зима 2025. Просил 250к+. Проект: несколько команд на выбор - обработка транзакций на зачисление и списание. Опыт в резюме 3 года. Сначала были вопросы по текущему месту работы: стек, архитектура, что за проект.
Вопросы:
- В чём разница между git rebase и git merge?
- Как протестировать сервис, который обращается к базе и внешним системам?
- Какие фреймворки используются для тестирования на Java?
- Как сделать кОллекцию потокобезопасной?
Все вопросы можно посмотреть на нашей платформе
#собес #коллеции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#Собес #git
🤔 Что такое команды git reset -mixed и git merge - abort?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
git reset --mixed
: отменяет изменения, которые были добавлены в индекс, но сохраняет изменения в рабочем каталоге.git merge --abort
: отменяет слияние, которое в данный момент находится в процессе, и возвращает репозиторий в состояние до начала слияния.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Вкратце как работает аутентификация через куки, сессии, токены, JWT, SSO и OAuth2
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Media is too big
VIEW IN TELEGRAM
#полезное
😊 Научись создавать проекты с нуля на любом языке программирования
Репо: https://github.com/practical-tutorials/project-based-learning
👉 Новости 👉 База вопросов
Репо: https://github.com/practical-tutorials/project-based-learning
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #git
🤔 Как вы находите коммит, который что-то нарушил после операции слияния?
💬 Кратко:
Для поиска коммита, который нарушил код после слияния, можно использовать команду git bisect . Этот инструмент помогает найти коммит, который вызывает проблему, путем бинарного поиска.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Для поиска коммита, который нарушил код после слияния, можно использовать команду git bisect . Этот инструмент помогает найти коммит, который вызывает проблему, путем бинарного поиска.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 Ресурс для разработчиков, чтобы создавать изометрические диаграммы своей инфраструктуры или софта.
Open-source: https://github.com/stan-smith/FossFLOW
👉 Новости 👉 База вопросов
Open-source: https://github.com/stan-smith/FossFLOW
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Первая статья из серии, где показывается как примеры AI-агентов из популярных Python-фреймворков можно переписать на Java и сделать гораздо лучше с помощью Embabel
Сегодняшняя цель CrewAI — читать
👉 Новости 👉 База вопросов
Сегодняшняя цель CrewAI — читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Второй пост в блоге показывает, как примеры AI-агентов из популярных Python-фреймворков можно переписать на Java и сделать лучше с помощью Embabel.
Сегодня в фокусе: Pydantic AI — читать
👉 Новости 👉 База вопросов
Сегодня в фокусе: Pydantic AI — читать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Техническое собеседование. Зима 2025. Просил 250к+. Проект: биллинг (сбор информации по поставщикам). Опыт в резюме: 3 года. Сначала было много вопросов об опыте, стеке, тестах, "почему уходишь с текущего места работы?" и т.д. Был лайкводинг.
Вопросы:
- Зачем нужен Spring Framework?
- Как реализовать базовое приложение на Spring Boot?
- Что такое чистый и поддерживаемый код?
- Есть ли разница между SELECT* и перечислением полей?
Все вопросы можно посмотреть на нашей платформе
#собес #коллекции
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #git
🤔 Что такое команда git cherry-pick?
💬 Кратко:
Команда
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
Команда
git cherry-pick
позволяет выбрать и применить отдельный коммит из другой ветки в вашу текущую ветку, минуя другие изменения, которые были сделаны в той же ветке. Это полезно, когда вам нужно перенести только один коммит, а не весь набор изменений.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
image_2025-08-22_08-09-28.png
587.6 KB
#полезное
😐 Наткнулся на такой пост от сеньора, про предварительные условия для System Design:
👉 Новости 👉 База вопросов
1. Понимание цели
Разберись, что именно ты строишь, кто будет пользоваться и для чего это нужно.
2. Профиль трафика (read-heavy vs write-heavy)
Если система в основном читает (много пользователей просматривают данные), делай упор на кэширование, индексацию, реплики для чтения. Пример: каталог Netflix, карточки товаров Amazon.
Если в основном пишут (много аплоадов, входящих данных), подойдут очереди, пакетная запись, eventual consistency. Пример: сообщения WhatsApp, данные IoT-датчиков.
3. Консистентность vs доступность
Строгая консистентность нужна там, где ошибка недопустима (банки, бронирование).
Eventual consistency подходит там, где можно жить с устаревшими данными (Instagram, аналитика).
4. Требования к задержке
Реалтайм — оптимизация под низкую задержку через кэш или предвычисления. Примеры: гейминг, Zoom, подтверждение платежей.
Асинхронно — очередь и фоновые воркеры. Примеры: e-mail рассылка, генерация отчётов.
5. Масштабируемость
Закладывай рост ×10. Пример: Google Docs начинался маленьким, но сейчас обрабатывает миллионы правок одновременно. Uber — тысячи поездок в минуту. Используй stateless-сервисы и горизонтальное масштабирование.
6. Паттерны доступа
Оптимизируй под то, какие данные и как часто читаются: поиск по гео/локации (geo-hash + ElasticSearch), быстрый доступ к часто используемым ID (Redis/Memcached).
7. Рост данных и партиционирование
Продумывай шардинг заранее (по пользователю, времени, гео). Пример: комментарии YouTube шардуются по ID видео.
Холодные данные сжимай или архивируй (Gmail, Google Drive).
8. Обработка отказов
Используй ретраи, фоллбэки, circuit breakers.
Если API падает по таймауту → повтор + настройка таймаута (пример: Amazon payment retry).
Если кэш недоступен → фоллбэк в БД (пример: Reddit загружает комментарии из БД).
9. Безопасность и авторизация
Авторизация: OAuth / JWT (пример: логин через Google или Spotify).
Защита от абузов и ботов: rate limiting, CAPTCHA (пример: Gmail signup, формы).
10. Нужно ли писать всё самому?
Некритичные фичи лучше вынести в SaaS или сторонние API:
Платежи — Stripe, PayPal.
Хранение медиа — Cloudinary, S3.
Уведомления — Firebase, SendGrid.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1👍1
#Собес #git
🤔 Как вы можете ввести слияние на стадии конфликта?
💬 Кратко:
При возникновении конфликта в Git нужно вручную разрешить расхождения в файлах, а затем завершить слияние с помощью команды
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
💬 Кратко:
При возникновении конфликта в Git нужно вручную разрешить расхождения в файлах, а затем завершить слияние с помощью команды
git merge -- continue
.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
🥱 Как Java передаёт объекты по сети или сохраняет их для последующего использования?
Для этого есть сериализация. Она преобразует объект в набор байтов, чтобы его можно было передать или сохранить. Обратная операция — десериализация, которая восстанавливает объект из этих байтов.
Каждый класс, поддерживающий
Что будет, если класс изменился после того, как некоторые объекты уже были сериализованы?
🟠 Добавлено поле → старые объекты работают, новое поле получает значение по умолчанию (0, null, false).
🟠 Удалено поле → старые данные для него игнорируются.
🟠 Изменён тип поля → ломается.
🟠 Изменён UID → ломается.
Если UID не определить явно, JVM сгенерирует его автоматически на основе деталей класса (поля, методы, модификаторы). Даже небольшое изменение, например переименование поля, изменит UID и сделает старые данные несовместимыми.
Рекомендую всегда задавать
👉 Новости 👉 База вопросов
Для этого есть сериализация. Она преобразует объект в набор байтов, чтобы его можно было передать или сохранить. Обратная операция — десериализация, которая восстанавливает объект из этих байтов.
Каждый класс, поддерживающий
Serializable
, имеет serialVersionUID
. Это идентификатор версии. При десериализации Java проверяет, совпадает ли UID в данных с тем, что в классе. Если совпадает — объект принимается. Если нет — выбрасывается InvalidClassException
.Что будет, если класс изменился после того, как некоторые объекты уже были сериализованы?
Если UID не определить явно, JVM сгенерирует его автоматически на основе деталей класса (поля, методы, модификаторы). Даже небольшое изменение, например переименование поля, изменит UID и сделает старые данные несовместимыми.
Рекомендую всегда задавать
serialVersionUID
вручную. Это даёт контроль над совместимостью и избавляет от неожиданных ошибок.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😵 Вышла неплохая статья про Big O
Big O помогает разобраться, как ведут себя алгоритмы, и показывает, где можно выжать кратный прирост производительности даже с мелкими правками в коде.
В статье есть наглядные визуализации, интерактив и простые объяснения.
👉 Новости 👉 База вопросов
Big O помогает разобраться, как ведут себя алгоритмы, и показывает, где можно выжать кратный прирост производительности даже с мелкими правками в коде.
В статье есть наглядные визуализации, интерактив и простые объяснения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#статьи
😵💫 В этой статье рассказывается, как внутри работает новый профайлер по CPU-времени в Java, включая обработку сигналов, устройство очередей и асинхронное сэмплирование. Подробный разбор основных компонентов, скрытых за кулисами.
Подробнее читайте здесь
После узнайте о том, как в новом CPU-тайм профайлере Java 25 устроена очередь для запросов на сэмплинг: зачем она нужна, почему её размер критичен для баланса между потерей сэмплов и расходом памяти, и по каким правилам JVM выбирает этот размер в зависимости от интервала сэмплинга.
Подробнее: читать
👉 Новости 👉 База вопросов
Подробнее читайте здесь
После узнайте о том, как в новом CPU-тайм профайлере Java 25 устроена очередь для запросов на сэмплинг: зачем она нужна, почему её размер критичен для баланса между потерей сэмплов и расходом памяти, и по каким правилам JVM выбирает этот размер в зависимости от интервала сэмплинга.
Подробнее: читать
Please open Telegram to view this post
VIEW IN TELEGRAM