fa
Feedback
Java Portal | Программирование

Java Portal | Программирование

رفتن به کانال در Telegram

Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

نمایش بیشتر

📈 تحلیل کانال تلگرام Java Portal | Программирование

کانال Java Portal | Программирование (@java_iibrary) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 12 121 مشترک است و جایگاه 10 397 را در دسته فناوری و برنامه‌ها و رتبه 54 492 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 12 121 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 08 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -138 و در ۲۴ ساعت گذشته برابر -5 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 11.21% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 6.34% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 360 بازدید دریافت می‌کند. در اولین روز معمولاً 769 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 4 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند boot, string, void, архитектура, resttemplate تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 09 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

12 121
مشترکین
-524 ساعت
-307 روز
-13830 روز
آرشیو پست ها
Представь, что ты на собеседовании по Spring. Тебя спрашивают: Dependency Inversion vs Inversion of Control vs Dependency Injection. Это одно и то же? Как бы ты ответил? Dependency Inversion Principle (DIP) это принцип из SOLID. Суть в том, что высокоуровневые модули не должны зависеть от низкоуровневых. Оба должны зависеть от абстракций. Это делает код гибким и удобным для тестирования. Inversion of Control (IoC) это архитектурный стиль. Обычно твой код сам управляет созданием и связями объектов. При IoC этот контроль передаётся фреймворку или контейнеру. Он решает, когда и как связать объекты. Dependency Injection (DI) это конкретный способ реализовать IoC. Фреймворк подсовывает нужные зависимости в класс, чаще всего через конструктор или сеттер. Можно представить это как уровни: - DIP задаёт правило проектирования - IoC меняет то, кто управляет созданием объектов - DI это инструмент, которым фреймворки делают этот перенос Итог для собеседования: DIP = принцип, IoC = стиль, DI = техника. 👉 Java Portal

Нашёл бесплатный кроссплатформенный обозреватель кода. Это опенсорс-инструмент, который работает автономно без интернета. Под
Нашёл бесплатный кроссплатформенный обозреватель кода. Это опенсорс-инструмент, который работает автономно без интернета. Поддерживает C, C++, Java и Python. Может быть полезен для изучения чужого кода или анализа своих проектов. GitHub: Sourcetrail 👉 Java Portal

Сколько денег ты уже потерял на собесах?? Если ты боишься назвать сумму на собесе, то потом недополучаешь 10-100к руб каждый
Сколько денег ты уже потерял на собесах?? Если ты боишься назвать сумму на собесе, то потом недополучаешь 10-100к руб каждый месяц. В IT выигрывает не тот, кто пишет лучший код, а тот, кто умеет грамотно продавать свои скилы и круто вести переговоры. В канале «Развитие в IT» Лид ML-инженер Олег Андриянов делится практикой, которая работает:
— Как выбить +20-30% к офферу с помощью «door-in-the-face»! (Читать) — Какие софт скилы реально влияют на рост твоей зарплаты. (Узнать) — Какие техники помогают справиться со стрессом, не выгорать и быть продуктивным? (Ссылка)
Что будет, если зайдешь в канал: ✅ Научишься уверенно вести переговоры и просить столько, сколько стоишь ✅ Ускоришь карьерный рост без бесконечных переработок ✅ Прокачаешь навыки, которые реально приносят деньги Читай закреп прямо сейчас и перестань недополучать деньги: 👇 https://t.me/+SpHulJ29ZpY0NjQy

Ваша бизнес-логика должна быть чистой. Но сквозные задачи, такие как логирование и безопасность, быстро её загромождают. Как
Ваша бизнес-логика должна быть чистой. Но сквозные задачи, такие как логирование и безопасность, быстро её загромождают. Как это исправить? Вот как: Spring AOP (аспектно-ориентированное программирование) позволяет отделить сквозные задачи —> логирование, транзакции, безопасность от бизнес-логики. Aspect = задача/область заботы Advice = действие (@Before, @AfterReturning, @AfterThrowing, @After, @Around) Pointcut = место применения Spring AOP использует прокси-базированное runtime-вплетение (JDK-прокси или CGLIB), чтобы перехватывать вызовы методов на Spring-бинах и применять advice. Ключевые моменты: • Join points это только выполнения методов • Вызовы через this.foo() обходят advice • Финальные/приватные методы и классы часто не поддаются советам Для полной функциональности, такой как перехват полей или конструкторов, используйте AspectJ weaving. В Spring Boot добавьте spring-boot-starter-aop или включите через @EnableAspectJAutoProxy. Результат → более чистый и поддерживаемый код, при этом повторяющиеся задачи остаются консистентными. 👉 Java Portal

Если вы инженер-программист и хотите лучше разбираться в алгоритмах и проектировании систем, прочитайте эти 12 статей: ↓ 1. Ч
Если вы инженер-программист и хотите лучше разбираться в алгоритмах и проектировании систем, прочитайте эти 12 статей: ↓
1. Что должен знать каждый инженер при работе с распределёнными системами. — > ссылка 2. Лучшие практики управления изменениями в API без потери доверия пользователей. — > ссылка 3. Как быстро считать диапазонные запросы по массивам с помощью префиксных сумм и разрежённых таблиц. — > ссылка 4. Как овладеть алгоритмами с возвратом : пошаговое руководство для решения любой задачи. — > ссылка 5. Всё, что нужно знать, чтобы сделать базу данных масштабируемой, быстрой и доступной — с помощью шардинга. — > ссылка 6. Разница между задержкой и пропускной способностью . И как их оптимизировать при проектировании систем. — > ссылка 7. Как эффективно применять метод двух указателей для задач с массивами и строками (с шаблонами кода). — > ссылка 8. Всё, что разработчику нужно знать о том, как работает система доменных имён. — > ссылка 9. Как эффективно использовать множества и хеш-таблицы для решения задач на собеседованиях. — > ссылка 10. Углублённый разбор Redis: архитектура, типы данных и операции, модель персистентности, кейсы использования и многое другое. — > ссылка 11. Как проектировать отказоустойчивые системы и измерять доступность системы. — > ссылка
👉 Java Portal

VK проводит Weekend Offer для бэкенд-разработчиков и ML-инженеров. Это отличная возможность получить офер за 2 дня и не прохо
VK проводит Weekend Offer для бэкенд-разработчиков и ML-инженеров. Это отличная возможность получить офер за 2 дня и не проходить много этапов. Ищут бэкендеров со знанием Java, Go, Python или C++. И MLщиков, с навыками в Classic ML, RecSys, NLP/LLM, CV, Speech. Важный момент: ищут коллег с опытом коммерческой разработки от трех лет. Совпадает? Тогда у вас есть все шансы получить приглашение на работу за 2 дня: технические собеседования 4 октября, а финалы, знакомство с командами и офер 5 октября. Отправляйте заявку до 2 октября и станьте частью VK! Подробнее — на сайте.

Да можно уже заранее на Java 29 😈 👉 Java Portal
Да можно уже заранее на Java 29 😈 👉 Java Portal

Как опытный Java-разработчик/бэкенд-инженер, ты должен разбираться в отказоустойчивости и паттерне Circuit Breaker. Вот сцена
Как опытный Java-разработчик/бэкенд-инженер, ты должен разбираться в отказоустойчивости и паттерне Circuit Breaker. Вот сценарий ненадёжного платёжного шлюза 💳 , чтобы проверить знания кандидата: Сценарий: Твоё приложение интегрируется со сторонним платёжным API. При пиковых нагрузках этот API стабильно даёт сбой примерно в 2% запросов. Это приводит к неудачным оплатам и ухудшает пользовательский опыт. Вопрос: Как ты спроектируешь интеграцию так, чтобы она была устойчива к этим сбоям и при этом сохраняла хороший UX? Объясни, какие именно паттерны (например, Circuit Breaker или Retry с экспоненциальной задержкой) ты бы применил и почему. Как бы ты обработал возможные дубликаты транзакций, возникающие из-за повторных запросов? → Что я оцениваю: Понимание паттернов устойчивости и отказоустойчивости. Кандидат должен уметь объяснить такие концепции, как повторные запросы, Circuit Breaker (например, с использованием Resilience4j), fallback-механизмы, а также критическую важность идемпотентности при проектировании интеграций с платёжными системами. В примере показано как реализовать Resilience4j с fallback-методом в Spring Boot 👉 Java Portal

Пагинация это способ разбивки большого набора данных на части (страницы), чтобы API не возвращал всё сразу одним огромным ответом, а отдавал результат порциями. Это снижает нагрузку на сервер и ускоряет работу клиента. Если у нас тысячи пользователей, то отдавать их всех за один запрос неэффективно. Вместо этого API выдаёт данные по частям. Основные подходы к пагинации в API 1. Offset-based (смещение)
GET /users?page=3&limit=20
Пример ответа
{
  "page": 3,
  "limit": 20,
  "totalPages": 50,
  "data": [ ... ]
}
Плюсы —> простая реализация, можно прыгнуть сразу на любую страницу Минусы —> при очень больших смещениях работает медленнее 2. Cursor-based (a.k.a. Keyset — по курсору/ключу)
GET /users?after=125&limit=20
Пример ответа
{
  "nextCursor": 145,
  "data": [ ... ]
}
Плюсы —> отлично подходит для больших наборов данных, работает быстро, удобно для бесконечной прокрутки и лент Минусы —> нельзя сразу перейти к произвольной странице, например к 50-й 3. Token-based (токены вместо ID)
GET /users?cursor=eyJpZCI6MTI1fQ==&limit=20
Вместо открытых ID сервер возвращает непрозрачный токен, который клиент подставляет в следующий запрос Плюсы —> безопасно, не раскрываются реальные ID, больше гибкости для реализации 👉 Java Portal

Приглашаем на Java Jam — бесплатный митап ЮMoney для Java-разработчиков 🔥 Спикеры из ЮMoney и главный эксперт по технологиям
Приглашаем на Java Jam — бесплатный митап ЮMoney для Java-разработчиков 🔥 Спикеры из ЮMoney и главный эксперт по технологиям Сбера расскажут о своём опыте и пообщаются с аудиторией. Вот какие темы будут на митапе: 🟣 Как мы уменьшали нагрузку на базы данных в очередях задач. Расскажем, как реализовать надёжное асинхронное и отложенное исполнение задач. 🟣 Советы по производительному коду. Поговорим про время выполнения программ, работу со строками и коллекциями, вещественную и битовую арифметику, алгоритмические трюки и многое другое. 🟣 Уязвимости не пройдут. Обсудим, как повысить безопасность разработки с помощью SAST и SCA. 25 сентября, в четверг, в 18:30 (мск) — приходите на митап в Санкт-Петербурге или подключайтесь онлайн. Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа Java Jam™️

Java 25 уже доступна! Это важнейшее событие этого года в экосистеме Java ⌨️ Особенность этого выпуска в том, что у некоторых производителей он представлен как LTS-версия, а значит обновления для неё будут выходить минимум 5 лет с момента релиза и до сентября 2030 года. Ниже приведены ключевые нововведения I. Компактные сорс-файлы и instance-методы main() Теперь можно писать код без полного объявления класса и метода main
String greeting = "Hello, World!";

void main() {
    System.out.println(greeting);
}
JVM автоматически создаёт неявный класс, в который помещает метод main() и другие верхнеуровневые объявления. II. Module Import Declarations Инструкция import module M равнозначна импорту всех экспортируемых пакетов из модуля M и его транзитивных зависимостей в текущий модуль. III. Flexible Constructor Bodies Позволяет писать инструкции в конструкторе до вызова super() или this(). IV. Удалён 32-битный x86-порт OpenJDK Из исходников исключены все части, отвечающие за поддержку 32-bit x86. Сборка JDK под эту архитектуру теперь невозможна. V. Scoped Values Класс ScopedValue позволяет обмениваться неизменяемыми данными без передачи их через аргументы методов. Это альтернатива ThreadLocal. Оба механизма решают одну задачу — перенос значения переменной внутри потока или дерева потоков без явного параметра. VI. Key Derivation Function API Функции выработки ключей (KDF) позволяют создавать криптографически стойкие секретные ключи (например, AES) на основе исходного материала (например, пароля) и дополнительных данных (например, соли). Полный список изменений доступен здесь - https://jdk.java.net/25/release-notes 👉 Java Portal

GPU обрабатывают тысячи пикселей параллельно, но что происходит, когда мы записываем всего один пиксель в буфер кадра? Как это реализуется? Посмотри, как CPU "рисует" каждый пиксель в этом наглядном визуальном симуляторе RISC-V (загрузи пример с bitmap): https://eseo-tech.github.io/emulsiV/ 👉 Java Portal

🔍Тестовое собеседование с Java-разработчиком из МТС уже завтра 17 сентября(уже завтра!) в 19:00 по мск приходи онлайн на отк
🔍Тестовое собеседование с Java-разработчиком из МТС уже завтра 17 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Илья Аров, старший разработчик в МТС, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Илье Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. О рекламодателе.

Ты всё ещё перебираешь списки в Java с помощью for или forEach? Потоки позволяют писать короче, чище и читаемее. Давай разбер
Ты всё ещё перебираешь списки в Java с помощью for или forEach? Потоки позволяют писать короче, чище и читаемее. Давай разберёмся, как они работают. Streams в Java дают декларативный способ обработки данных. Вместо того чтобы писать внешние циклы, ты описываешь конвейер операций, который выполняется внутри потока. Конвейер потока состоит из трёх частей: I. Источник — начальная точка, обычно это коллекция, массив или I/O-канал. Пример: numbers.stream() II. Промежуточные операции — преобразуют поток и возвращают новый поток. Популярные: • filter → оставляет элементы, удовлетворяющие условию • map → применяет функцию к каждому элементу • sorted → сортирует поток Эти операции ленивые — они не выполняются, пока не вызвана терминальная операция. III. Терминальная операция — даёт финальный результат или побочный эффект. Примеры: • collect → собирает элементы в коллекцию • reduce → сводит элементы к одному значению • forEach → перебирает элементы и выполняет действие Потоки могут быть последовательными и параллельными. Последовательные обрабатывают элементы один за другим, а параллельные разбивают работу на несколько потоков. Это мощный инструмент для больших данных, но параллельные потоки стоит использовать осторожно — они добавляют накладные расходы. К примеру, найти все чётные числа, возвести их в квадрат и собрать в новый список. 👉 Java Portal

Пять эффективных схем кэширования, которые ускорят ваш микросервис В современных микросервисных архитектурах кэширование игра
Пять эффективных схем кэширования, которые ускорят ваш микросервис В современных микросервисных архитектурах кэширование играет ключевую роль в обеспечении высокой скорости работы, масштабируемости и устойчивости систем. Грамотное использование схем кэширования позволяет существенно снизить нагрузку на базы данных, сократить время отклика и повысить общую производительность системы. Читать: habr.com 👉 Java Portal

Ты опытный Java-разработчик. Что дальше? Дальше — искать новые пути развития и обмениваться знаниями. Это можно сделать на Jo
Ты опытный Java-разработчик. Что дальше? Дальше — искать новые пути развития и обмениваться знаниями. Это можно сделать на Joker — крупнейшей Java-конференции в России. 📍 17–18 октября, Санкт-Петербург Тебя ждут хардкорные доклады о современных практиках Java-разработки, новых фичах Java, нюансах Spring, работе JVM под капотом, Kotlin и Scala, ORM и о базах данных. Еще там будут обсуждать архитектуру и backend, нагрузки и производительность, DevOps — выбирай, что ближе по духу.  Помимо докладов будут дискуссии со спикерами, зоны нетворкинга, а в конце первого дня — вечеринка! Подробности и билеты — на сайте Joker. С промокодом JP10 персональный билет стоит дешевле.  Реклама. ООО "ДЖУГ РУ ГРУП". ИНН 7801341446.

Стратегия в Java —> уходим от нагромождения if-else Очень часто, когда начинаем писать код и описывать бизнес-логику, мы обклеиваем методы условными конструкциями. Со временем, при изменении требований или росте сложности, таких условий становится всё больше. В итоге код становится трудным для поддержки, его тяжело воспринимать, и он теряет черты объектно-ориентированного подхода. Стратегия —> это поведенческий шаблон проектирования, позволяющий вынести изменяющееся поведение в отдельные классы и подставлять нужную реализацию во время исполнения программы. То есть вместо длинных if-else мы просто передаём объект с требуемой логикой. Проблема -> громоздкие if-else
public double calculateDiscount(String customerType, double amount) {
    if (customerType.equals("regular")) {
        return amount * 0.05;
    } else if (customerType.equals("vip")) {
        return amount * 0.1;
    } else if (customerType.equals("super-vip")) {
        return amount * 0.2;
    } else {
        return 0;
    }
}
Такой код: . трудно читать . неудобно расширять . легко сломать при добавлении новых веток Решение через стратегию: 1. Описываем общий интерфейс:
public interface DiscountStrategy {
    double applyDiscount(double amount);
}
2. Создаём реализации под разные типы клиентов:
public class RegularDiscount implements DiscountStrategy {
    public double applyDiscount(double amount) {
        return amount * 0.05;
    }
}

public class VipDiscount implements DiscountStrategy {
    public double applyDiscount(double amount) {
        return amount * 0.1;
    }
}

public class SuperVipDiscount implements DiscountStrategy {
    public double applyDiscount(double amount) {
        return amount * 0.2;
    }
}
3. Контекст, который применяет выбранную стратегию:
public class DiscountService {
    private final DiscountStrategy strategy;

    public DiscountService(DiscountStrategy strategy) {
        this.strategy = strategy;
    }

    public double getDiscountedPrice(double amount) {
        return strategy.applyDiscount(amount);
    }
}
4. Подбор реализации во время выполнения:
DiscountStrategy strategy = new VipDiscount(); 
DiscountService service = new DiscountService(strategy);

double price = service.getDiscountedPrice(1000); // 100.0
Теперь каждая логика скидки инкапсулирована в своём классе. Если появляются новые условия, меняется только реализация конкретной стратегии, а не весь метод. Даже выбор стратегии можно полностью отвязать от if-логики:
Map<String, DiscountStrategy> strategies = Map.of(
    "regular", new RegularDiscount(),
    "vip", new VipDiscount(),
    "super-vip", new SuperVipDiscount()
);

DiscountStrategy strategy = strategies.getOrDefault(customerType, amount -> 0.0);
double result = strategy.applyDiscount(1000);
Таким образом, мы избавляемся от условных блоков и делаем код чище, гибче и проще в сопровождении. 👉 Java Portal

Находка для тех, кто учит SQL sqlzap.com это онлайн-платформа для практики SQL-запросов прямо в браузере. По сути, интерактивный тренажёр, где можно отрабатывать навыки написания запросов. Идеально, чтобы «набить руку» — что-то вроде LeetCode, только для SQL. 👉 Java Portal

Когда вы становитесь опытным Java-разработчиком, на собеседованиях нам уже недостаточно просто задавать фактические вопросы. На первое место выходят сценарные вопросы. Посмотрим на один такой сценарий и попробуем дать ответы. Сценарий: Ваш сервис выступает как оркестратор, вызывая несколько downstream-сервисов для выполнения запроса. Один из этих сервисов известен своей ненадёжностью -> он медленный и иногда возвращает ошибку 503 Service Unavailable. Вопросы: I. Как сделать ваш сервис устойчивым к ненадёжности downstream-сервиса? Объясните, как вы бы реализовали паттерн Circuit Breaker с помощью библиотеки вроде Resilience4j. Какие ключевые состояния у Circuit Breaker (Closed, Open, Half-Open)? II. Какой fallback-механизм вы бы реализовали для случая, когда цепь открыта? Например, вернёте ли вы кэшированные данные, дефолтный ответ или поставите запрос в очередь на последующую обработку? III. Как вы бы спроектировали глобальную стратегию обработки исключений в приложении с использованием @RestControllerAdvice? Покажите, как сопоставить конкретное бизнес-исключение (например, ProductNotFoundException) с HTTP-статусом 404 Not Found и вернуть чистый JSON-ответ с ошибкой. 👉 Java Portal

«В Algorithms Illuminated Тим Раффгарден объясняет основы алгоритмов максимально доступным способом.» – https://algorithmsill
«В Algorithms Illuminated Тим Раффгарден объясняет основы алгоритмов максимально доступным способом.» – https://algorithmsilluminated.org От умножения целых чисел до NP-полноты — 4 части, 100+ видео, каждое синхронизировано с разделами книги для глубокого погружения. 👉 Java Portal