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

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

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel Java Portal | Программирование

Channel Java Portal | Программирование (@java_iibrary) in the Russian language segment is an active participant. Currently, the community unites 12 130 subscribers, ranking 10 402 in the Technologies & Applications category and 54 525 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 12 130 subscribers.

According to the latest data from 07 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -138 over the last 30 days and by 2 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 11.37%. Within the first 24 hours after publication, content typically collects 6.26% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 379 views. Within the first day, a publication typically gains 760 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • Thematic interests: Content is focused on key topics such as boot, string, void, архитектура, resttemplate.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика Связь: @devmangx РКН: https://clck.ru/3H4WUg

Thanks to the high frequency of updates (latest data received on 08 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

12 130
Subscribers
+224 hours
-287 days
-13830 days
Posts Archive
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 Видео Ютуб