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

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

Відкрити в Telegram

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

Показати більше

📈 Аналітичний огляд Telegram-каналу Java Portal | Программирование

Канал Java Portal | Программирование (@java_iibrary) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 12 130 підписників, посідаючи 10 402 місце в категорії Технології та додатки та 54 525 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 12 130 підписників.

За останніми даними від 07 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -138, а за останні 24 години на 2, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 11.37%. Протягом перших 24 годин після публікації контент зазвичай збирає 6.26% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 1 379 переглядів. Протягом першої доби публікація в середньому набирає 760 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 4.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як boot, string, void, архитектура, resttemplate.

📝 Опис та контентна політика

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

Завдяки високій частоті оновлень (останні дані отримано 08 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

12 130
Підписники
+224 години
-287 днів
-13830 день
Архів дописів
Java-совет : избегай преждевременной оптимизации. Сначала сосредоточься на чистом, рабочем коде. Пиши код, который корректно работает, и в первую очередь закрывает функциональные требования.
// Простейший пример
String helloThere = "Hello " + "there" + "!";
System.out.println(helloThere);

// Эта строка кода читаемая и работает как задумано

// Позже можно подумать об оптимизации через StringBuilder
StringBuilder sb = new StringBuilder();
sb.append("Hello ");
sb.append("there");
sb.append("!");
System.out.println(sb.toString());
👉 Java Portal

У платформенных потоков в Java есть 6 состояний. У виртуальных потоков их около 20, но они скрыты от нас. Держите свежий выпуск, где автор показывает, как с помощью глубокой рефлексии можно разобраться, как это вообще устроено: Узнаем здесь! 🤭 👉 Java Portal

Принцип открытости/закрытости (OCP): это принцип из SOLID, который говорит, что классы должны быть открыты для расширения, но закрыты для модификации. Вместо правки существующей реализации стоит добавлять новое поведение через интерфейсы и наследование в Java, не трогая уже написанный код.
// Плохой способ реализовать генератор отчётов
class ReportGenerator {
    public void generateReport(String type) {
        if (type.equals("PDF")) {
            System.out.println("Generating PDF Report...");
        } else if (type.equals("CSV")) {
            System.out.println("Generating CSV Report...");
        } else if (type.equals("EXCEL")) {
            System.out.println("Generating Excel Report...");
        }
    }
}

// Более правильный вариант

// Определяем интерфейс
interface Report {
    void generate();
}

// Реализации
class PdfReport implements Report {
    public void generate() {
        System.out.println("Generating PDF Report...");
    }
}

class CsvReport implements Report {
    public void generate() {
        System.out.println("Generating CSV Report...");
    }
}

// Используем конкретную реализацию
public class ReportApp {
    public static void main(String[] args) {
        Report report = new PdfReport();
        report.generate();
    }
}
👉 Java Portal

Spring Boot Istio 1.2.0 вышел Что подтянули в обновлении: 🍃авто-генерация fault-ов 🍃 авто-создание и инжект gateway 🍃 авто
Spring Boot Istio 1.2.0 вышел Что подтянули в обновлении: 🍃авто-генерация fault-ов 🍃 авто-создание и инжект gateway 🍃 авто-генерация HTTP matches Детали тут : https://github.com/piomin/spring-boot-istio 👉 Java Portal

Spring Boot: дорогие по времени API-вызовы можно кешировать через @Cacheable и Redis. Первый запрос с конкретным ключом идет
Spring Boot: дорогие по времени API-вызовы можно кешировать через @Cacheable и Redis. Первый запрос с конкретным ключом идет в реальный API. Все повторные — из Redis за миллисекунды.
<!-- Добавляем зависимости -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-b
# Базовая настройка в application.yml
spring:
  redis:
    host: localhost
    port: 6379

  cache:
    type: redis

server:
  port: 8080
// Конфигурация Redis (TTL 10 минут)
@Bean
public RedisCacheConfiguration cacheConfig() {
    return RedisCacheConfiguration.defaultCacheConfig()
        .entryTtl(Duration.ofMinutes(10))
        .disableCachingNullValues();
}
// Кэшируем метод сервиса
@Cacheable("users")
public User getUserById(Long id) {
    return userService.fetchUserFromRemoteApi(id);
}
Вот ссылка на демо-проект на Spring Boot (для работы нужен запущенный Redis на порту 6379) 👉 Java Portal

Подсказка по Spring Boot: если нужно, чтобы DTO спокойно игнорировали лишние поля в JSON от клиента и не ломали API, можно по
Подсказка по Spring Boot: если нужно, чтобы DTO спокойно игнорировали лишние поля в JSON от клиента и не ломали API, можно повесить @JsonIgnoreProperties(ignoreUnknown = true) Дано DTO:
public class UserDTO {
    private String name;
    private int age;

    // геттеры и сеттеры
}
Если с клиента прилетает такой JSON:
{
    "name": "Alice",
    "age": 25,
    "extraField": "not expected"
}
Получим ошибку:
UnrecognizedPropertyException: Unrecognized field "extraField"
Эту ситуацию решаем через аннотацию @JsonIgnoreProperties:
@JsonIgnoreProperties(ignoreUnknown = true)
public class UserDTO {
    ...
}
👉 Java Portal

LATENCY VS THROUGHPUT Когда пользователи говорят что приложение «тормозит», причина может быть в двух плоскостях: * проблема
LATENCY VS THROUGHPUT Когда пользователи говорят что приложение «тормозит», причина может быть в двух плоскостях: * проблема latency (каждый запрос обрабатывается медленно) * проблема throughput (система забита и не тянет нагрузку) Иногда это вообще смесь обоих. Latency — время, которое сервер тратит на выполнение одного запроса от начала до ответа. Throughput — сколько запросов сервер способен обработать за единицу времени. Представим, что ты инженер в сервисе доставки пиццы. Сценарий 1: Пользователь нажимает «Отправить заказ» и ответ долго крутится — значит высокий latency. Для пользователя это воспринимается как «всё лагает». Низкий latency = быстрый отклик для каждого конкретного запроса. Сценарий 2: Ответы идут примерно по 100 мс — вроде норм. Но если система способна держать только 10 запросов в секунду, а одновременно приходит тысяча, всё разваливается. Это низкий throughput. Высокий throughput = возможность обслуживать много пользователей одновременно. Обе метрики критичны, особенно когда система растёт по нагрузке. * Ответы быстрые, но при всплеске трафика сыпятся таймауты — проблема в throughput. * Каждый запрос тормозит даже при маленьком трафике — проблема в latency. » Как чинят проблемы с latency (ускоряем отдельные запросы) Причины: медленные SQL-запросы, тяжёлые внешние API, прожорливая логика, геолокация сервера и так далее. Обычно помогают индексы в БД, кэширование, оптимизация кода, CDN, профилирование узких мест. » Как фиксят проблемы с throughput (увеличиваем пропускную способность) Обычно упирается в ресурсы. Масштабирование: больше серверов, балансировка нагрузки, кэширование, горизонтальное расширение и т. п. P.S. Для пользовательских API чаще гонятся за низким latency, а для фоновых задач типа batch-процессинга чаще важнее throughput, чем скорость каждого отдельного задания. Всё упирается в то, под что именно ты оптимизируешься. 👉 Java Portal

Spring Boot совет В тестах на Spring Boot можно без лишних настроек использовать RestTestClient через аннотацию @AutoConfigur
Spring Boot совет В тестах на Spring Boot можно без лишних настроек использовать RestTestClient через аннотацию @AutoConfigureRestTestClient Для TestRestTemplate есть аналогичная аннотация — @AutoConfigureTestRestTemplate
@SpringBootTest
@AutoConfigureRestTestClient
public class PersonControllerTests {

    private static final String API_PATH = "/persons";

    @Test
    void add(@Autowired RestTestClient restTestClient) {
        restTestClient.post().uri(API_PATH)
                .body(Instancio.create(Person.class))
                .exchange()
                .expectStatus().is2xxSuccessful()
                .expectBody(Person.class)
                .value(person -> assertNotNull(person.getId()));
    }
}
👉 Java Portal

Hidden классы в Java. Что скрывают Lambda выражения С переходом Java на более безопасные и стандартизированные подходы к дина
Hidden классы в Java. Что скрывают Lambda выражения С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe, они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK. Подробнее 👉 Java Portal

На Stepik вышел курс по Linux Внутри 20+ модулей: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой) Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами. После прохождения вы получите сертификат, который можно добавить в резюме. Есть бесплатные демо-уроки для ознакомления. В ближайшие 48ч курс доступен со скидкой 25% по промокоду «HNY_LINUX»: открыть курс на Stepik P.S. Курс можно купить в подарок на Новый год

Git worktree — отличный способ поднять песочницу, куда можно запустить агентов искать решение, пока ты спокойно продолжаешь р
Git worktree — отличный способ поднять песочницу, куда можно запустить агентов искать решение, пока ты спокойно продолжаешь работу на master или другой ветке. На фото баш-скрипт, который : создаёт новый worktree/ветку под задачку с префиксом ga fix (типа fizzy--fix), а потом gd можно снести всё к чертям, когда закончил. Если хочешь потыкать у себя — есть удобный gist для копипасты. 👉 Java Portal

Понимание Git worktree. Отличная фича Git, особенно актуальная в эпоху агентных ИИ. Подробнее 👉 Java Portal
Понимание Git worktree. Отличная фича Git, особенно актуальная в эпоху агентных ИИ. Подробнее 👉 Java Portal

Java-лайфхак: record — это не только про данные. В них можно добавить свои конструкторы или методы для валидации. // Конструк
Java-лайфхак: record — это не только про данные. В них можно добавить свои конструкторы или методы для валидации.
// Конструкторы, статические методы и методы экземпляра:

public record Email(String address) {

    // Конструктор с валидацией
    public Email {
        if (address == null || !address.matches("^[\\w-.]+@([\\w-]+\\.)+[\\w-]{2,4}$")) {
            throw new IllegalArgumentException("Некорректный email: " + address);
        }
    }

    // Метод экземпляра
    public String domain() {
        return address.substring(address.indexOf('@') + 1);
    }

    // Статический метод
    public static Email from(String raw) {
        return new Email(raw.trim().toLowerCase());
    }
}
👉 Java Portal

Может пригодится: самохостящаяся система uptime-мониторинга, которую можно развернуть у себя и следить за тем, работают ли тв
Может пригодится: самохостящаяся система uptime-мониторинга, которую можно развернуть у себя и следить за тем, работают ли твои HTTP/S сервисы. Приложение показывает статус, считает аптайм, умеет проверять SSL, есть публичные статус-страницы, уведомления и прочее. Забираем здесь 👉 Java Portal

Java совет: по возможности не возвращай из методов изменяемые внутренние коллекции. Это дает плюсы: 1. Не светишь внутреннее состояние, меньше рисков и утечек 2. Можно спокойно менять реализацию под капотом, не ломая остальной код Если всё же нужно возвращать коллекции напрямую, можно сделать так: - Вернуть глубокие копии коллекций (сложнее в реализации) - Вернуть только read-only представление, например:
Collections.unmodifiableList(items)
👉 Java Portal

Spring Boot: все важные аннотации 👉 Java Portal
Spring Boot: все важные аннотации 👉 Java Portal

Какие фичи C++ реально стоят того, чтобы ими пользоваться каждый день — а какие живут только в докладах и спорах на форумах? Во втором выпуске «АйТир Листа» встретились два практикующих разработчика — Данил Черепанов (МойОфис) и Антон Полухин (Яндекс) — и разобрали любимые и спорные возможности C++. Где-то всё было однозначно, а местами мнения разошлись кардинально 🙂 👉 Выпуск ЗДЕСЬ Реклама ООО "НОВЫЕ ОБЛАЧНЫЕ ТЕХНОЛОГИИ" ИНН: 7703807270 erid: 2W5zFJaQXLt

Spring Boot: аккуратно задавайте границы @ComponentScan, чтобы случайно не просканировать целиком весь пакет. Предположим, вы пишете что-то вроде @ComponentScan("com.mycompany"), хотя на самом деле нужно сканировать только часть подпакетов com.mycompany: - Увеличивается время сканирования classpath - Замедляется старт приложения - Подтягиваются классы, которые вообще не должны регистрироваться как Spring-бины Лучшие практики: Полагайтесь на дефолты:
@SpringBootApplication
public class MyApplication { }
По умолчанию Spring сканирует только подпакеты пакета, в котором лежит MyApplication. Сканируйте конкретные подпакеты:
@ComponentScan({
    "com.mycompany.myapp.product",
    "com.mycompany.myapp.order"
})
👉 Java Portal

Типы Серверов в Современных Системах 👉 Java Portal
Типы Серверов в Современных Системах 👉 Java Portal

⭐️ Road To Highload: Крупноблочная архитектура В видеопроекте Road to Highload Сергей Трегуб, руководитель бэкенд‑разработки
⭐️ Road To Highload: Крупноблочная архитектура В видеопроекте Road to Highload Сергей Трегуб, руководитель бэкенд‑разработки продуктовых сервисов Яндекс 360, рассказывает, как крупноблочная архитектура упрощает коммуникацию между разными командами разработки и помогает быстро принимать решения: в каком компоненте разместить новую бизнес‑логику и какие дополнительные блоки потребуются для её поддержки.
Road to Highload — это цикл видеоматериалов от Яндекс 360 о том, как строятся системы, которыми ежедневно пользуются миллионы людей и тысячи компаний. Здесь обсуждаются high‑load и отказоустойчивость не по учебникам, а на основе многолетнего практического опыта.
Смотрите проект, чтобы узнать, как создаются одни из крупнейших облачных сервисов в России: ➕ Сайт проекта VK Видео Ютуб