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

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

Відкрити в Telegram

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

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

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

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

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

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

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

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

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

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

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

11 775
Підписники
-224 години
-437 днів
-15430 день
Архів дописів
Docker-ошибка, которую я вижу почти в каждом junior Dockerfile: COPY . . RUN npm install должно быть: COPY package*.json ./ R
Docker-ошибка, которую я вижу почти в каждом junior Dockerfile:
COPY . .
RUN npm install
должно быть:
COPY package*.json ./
RUN npm install
COPY . .
почему это важно? docker кэширует каждую инструкцию как отдельный слой исходный код меняется с каждым коммитом поэтому COPY . . ломает кэш, и всё после него (включая npm install) пересобирается с нуля при каждой сборке если поменять порядок, слой с установкой зависимостей остаётся в кэше даже при изменении кода, потому что он зависит только от package.json одна перестановка строк. экономит 40+ секунд на каждой пересборке. кэшируй зависимости, а не код. 👉 Java Portal

Spring Boot 4.1 приносит с собой много новых фич, включая автоконфигурацию job repository для Spring Batch на базе MongoDB. \ Читай об этом здесь 👉 Java Portal !

💡 Java tip: Use the Stream API для работы с коллекциями в декларативном стиле. List names = users.stream() .filter(User::isA
💡 Java tip: Use the Stream API для работы с коллекциями в декларативном стиле.
List<String> names = users.stream()
    .filter(User::isActive)
    .map(User::getName)
    .sorted()
    .toList();
Пиши, что тебе нужно получить из данных. Не расписывай цикл вручную. Stream сделает это короче и чище. 👉 Java Portal

Как создаются продукты, которыми пользуются миллионы? Покажут на «Сезоне кода» в Казани — летнем ИТ-фесте, где объединяют раз
Как создаются продукты, которыми пользуются миллионы? Покажут на «Сезоне кода» в Казани — летнем ИТ-фесте, где объединяют разработку, аналитику и продукт в одном пространстве. В программе: — прикладные доклады команд Т-Банка и других компаний; — демо-зоны с продуктами и платформами: можно посмотреть, как все работает изнутри и пообщаться с разработчиками; — новая секция «Продуктовая кухня»: поговорим о развитии продуктов через инсайты, data-driven-подход и продуманный дизайн. И конечно, живое общение, интерактивы и афтепати с диджеем в конце дня. Количество мест ограничено — успейте зарегистрироваться

SQLBolt - изучайте SQL с помощью простых интерактивных упражнений. https://sqlbolt.com/ 👉 Java Portal

Java-паттерны: Builder Паттерн Builder помогает создавать сложные объекты более гибким и понятным способом. На примере выше х
Java-паттерны: Builder Паттерн Builder помогает создавать сложные объекты более гибким и понятным способом. На примере выше хорошо видно проблему длинных конструкторов:
new Order("Mario", "Laptop", 2, true, "Leave at door");
Через несколько месяцев уже сложно понять, что означает true, а при добавлении новых параметров конструктор быстро становится неудобным. Builder решает эту проблему:
Order order = Order.builder()
    .customer("Mario")
    .product("Laptop")
    .quantity(2)
    .express(true)
    .note("Leave at door")
    .build();
Преимущества: ✅ Именованные параметры делают код читаемее ✅ Можно задавать значения в любом порядке ✅ Удобно работать с необязательными полями ✅ Значения по умолчанию задаются в Builder ✅ Валидацию можно выполнять один раз в build() ✅ Нет путаницы с конструкторами из 5–10 аргументов Builder особенно полезен для DTO, конфигураций, запросов к API и объектов с большим количеством параметров. Поэтому его часто можно встретить в Java-проектах и библиотеках вроде Lombok, где достаточно добавить аннотацию @Builder. 👉 Java Portal

Spring Boot 4.1 добавляет всего одно свойство:
spring.datasource.connection-fetch=lazy
По умолчанию методы с @Transactional получают соединение с БД сразу при открытии транзакции, даже если запрос в итоге так и не выполняется. Попадание в кэш, ранний return, долгий вызов внешнего API перед сохранением данных — во всех этих случаях соединение просто простаивает без дела. Режим lazy откладывает получение соединения до момента, когда действительно выполняется SQL-запрос. Dan Vega собрал демо, которое показывает это на метриках HikariCP. Количество захватов соединений (acquire count) падает примерно со 100 до почти 0. 👉 Java Portal

Java: отдавай предпочтение неизменяемым объектам (immutable), чтобы упростить потокобезопасность. ❌ Изменяемое состояние, раз
Java: отдавай предпочтение неизменяемым объектам (immutable), чтобы упростить потокобезопасность.Изменяемое состояние, разделяемое между потоками
public class Balance {
    private BigDecimal amount = BigDecimal.ZERO;

    public void deposit(BigDecimal v) {
        amount = amount.add(v);
    }

    public BigDecimal get() {
        return amount;
    }
}
Если два потока одновременно вызовут deposit(), возможны потерянные обновления (lost updates), гонки данных (race conditions) и чтение неконсистентного состояния. ✅ Неизменяемый объект — обновление через создание нового экземпляра
public record Balance(BigDecimal amount) {

    public Balance deposit(BigDecimal v) {
        return new Balance(amount.add(v));
    }
}
Вместо изменения существующего объекта создаётся новый. Потоки могут безопасно работать со своими снимками состояния (snapshot), а каждый вызов deposit() возвращает новый объект. ✅ Неизменяемые коллекции
List<String> roles = List.of("READ", "WRITE");

Map<String, Integer> limits =
        Map.of("free", 10, "pro", 100);
Такие коллекции можно безопасно передавать между потоками без дополнительной синхронизации. ✅ Защитная копия (defensive copy) Если исходная коллекция всё ещё изменяемая:
List<String> snapshot = List.copyOf(mutableRoles);
Создай неизменяемую копию перед публикацией другим частям приложения. На практике immutable-подход позволяет существенно сократить количество synchronized, блокировок и ошибок многопоточности. Поэтому современные API Java (record, List.of(), Map.of(), Optional, LocalDateTime) активно используют неизменяемые объекты по умолчанию. 👉 Java Portal

🔥VPS + ISPmanager со скидкой до 100% на Waicore Запускаете сайты на VPS? Сейчас самое время попробовать ISPmanager практически бесплатно. Наши акции: — 100% скидка на первый месяц лицензии ISPmanager при заказе VPS из категории «Веб-хостинг» — Скидка 60% на лицензии ISPmanager при отдельной покупке Также доступны: 🛡 SSL-сертификаты 🛡 BitNinja для защиты серверов от атак, спама и вредоносного ПО. Получаете готовый VPS с установленной панелью управления и можете сразу приступать к работе с сайтами, почтой, базами данных и другими сервисами. ⚡️Акция действует месяц. Подробнее на сайте WAICORE.

Java: используйте полиморфизм вместо цепочек instanceof. Проверки типов часто приводят к разрастающимся if/else, нарушают при
Java: используйте полиморфизм вместо цепочек instanceof. Проверки типов часто приводят к разрастающимся if/else, нарушают принцип Open/Closed и заставляют изменять существующий код при добавлении новых сущностей. ❌ До:
public String describe(Animal animal) {
    if (animal instanceof Dog) {
        return "Woof";
    } else if (animal instanceof Cat) {
        return "Meow";
    } else if (animal instanceof Cow) {
        return "Moo";
    }

    throw new IllegalArgumentException("Unknown animal");
}
Каждый новый тип требует правки метода. ✅ После:
public interface Animal {
    String sound();
}

public final class Dog implements Animal {
    public String sound() {
        return "Woof";
    }
}

public final class Cat implements Animal {
    public String sound() {
        return "Meow";
    }
}

public final class Cow implements Animal {
    public String sound() {
        return "Moo";
    }
}

public String describe(Animal animal) {
    return animal.sound();
}
Преимущества: → нет цепочек instanceof и приведения типов → меньше условной логики → проще расширять систему новыми типами → соблюдается принцип Open/Closed → поведение находится внутри самого объекта, а не размазано по коду Добавить новое животное теперь можно без изменения существующей логики:
public final class Sheep implements Animal {
    public String sound() {
        return "Baa";
    }
}
Клиентский код останется прежним:
describe(new Sheep());
Пусть объекты сами решают, как себя вести. Именно для этого и существует полиморфизм. #Java #OOP 👉 Java Portal

DBeaver уже 15 лет остаётся де-факто стандартом среди SQL-клиентов. Инструмент мощный, но это ещё и тяжёлый Java-монолит, который может запускаться по 20 секунд. Кто-то решил переписать его с нуля на Rust и добавить возможности, которых в DBeaver никогда не было. Проект называется Tabularis. 2.5 тыс. звёзд. Лицензия Apache 2.0. Последняя активность — 17 часов назад. Самое интересное: Tabularis создал один разработчик — Debba — как эксперимент по AI-assisted разработке. Цель была простой: проверить, насколько далеко AI-агенты способны зайти при создании реального продукта. В итоге получилось 55 релизов, 1192 коммита и SQL-клиент, который уже конкурирует с продуктами компаний, где над подобными инструментами работают десятки инженеров. Что есть в Tabularis, а в DBeaver нет: ✅ Встроенный MCP-сервер — Claude, Cursor и Windsurf могут читать схему БД и выполнять запросы прямо из чата ✅ SQL Notebooks с графиками внутри ячеек и общими переменными между ними ✅ Визуальный EXPLAIN с AI-анализом плана выполнения ✅ Визуальный конструктор запросов с drag-and-drop JOIN'ами ✅ Автоматическая генерация ER-диаграмм ✅ Поддержка PostgreSQL, MySQL/MariaDB, SQLite и ClickHouse через плагины ✅ Редактор на базе Monaco с интеллектуальным автодополнением ✅ Без телеметрии, аккаунтов и подписок Чего пока нет в Tabularis, но есть в DBeaver: ❌ SQL Server ❌ Oracle Если работаешь с ними, DBeaver пока остаётся более очевидным выбором. Во всех остальных случаях Tabularis запускается примерно за 2 секунды, занимает меньше ресурсов и позволяет AI-агентам работать с базой напрямую. https://github.com/TabularisDB/tabularis 👉 Java Portal

Совет по Spring: ставь circuit breaker на удалённые вызовы Если сервис ходит в другой сервис через Feign, этот вызов может за
Совет по Spring: ставь circuit breaker на удалённые вызовы Если сервис ходит в другой сервис через Feign, этот вызов может зависнуть, упасть или начать возвращать ошибки.
@CircuitBreaker(name = "CircuitBreakerService")
String getInstance();
Circuit breaker временно «размыкает цепь», когда ошибок слишком много. Вместо бесконечных ретраев и просадки всего приложения ты отдаёшь fallback:
public String getAuthorServiceInstanceFallback(Exception ex) {
    return "Fallback content";
}
В application.yml можно задать порог ошибок и время ожидания:
failure-rate-threshold: 50
wait-duration-in-open-state: 5s
Идея простая: внешний сервис упал — твоё приложение деградирует контролируемо, а не валится следом. 👉 Java Portal

Совет по Java: не ловите Exception на всякий случай Плохая практика: catch (Exception e) Такой код скрывает реальные проблемы
Совет по Java: не ловите Exception на всякий случай Плохая практика:
catch (Exception e)
Такой код скрывает реальные проблемы. Для приложения одинаково начинают выглядеть ошибки бизнес-логики, NullPointerException, проблемы с памятью и другие сбои. Ловите только те исключения, которые действительно можете обработать:
catch (IOException e) { ... }
catch (JsonProcessingException e) { ... }
catch (DuplicateKeyException e) { ... }
Тогда становится понятно: что именно пошло не так; какие ошибки ожидаемы; какие нужно логировать; какие должны прерывать выполнение. И ещё одно правило:
catch (Throwable t)
Почти никогда не используйте. Так можно перехватить OutOfMemoryError, StackOverflowError и другие критические ошибки, после которых приложение зачастую уже не способно нормально продолжать работу. Лови только то, что умеешь исправить. Остальное пусть поднимается выше по стеку вызовов. 👉 Java Portal

gRPC в Java раньше означал proto-файлы, codegen, build-плагины, настройку сервера и client channels. Куча возни ещё до первого hello world. Spring Boot 4.1 закрывает большую часть этой рутины. Если ты умеешь писать REST-приложение, базовые шаги уже знакомы: → описать контракт → добавить bean с @GrpcService → заинжектить stub на клиенте Полный сервер, клиент и in-memory тест с нуля 👇 https://github.com/danvega/hello-grpc 👉 Java Portal

Наткнулся на хороший репозиторий со Skills для Spring Boot-агентов. Стоит посмотреть. https://github.com/rrezartprebreza/spring-boot-skills 👉 Java Portal

В чем разница между балансировщиками нагрузки, обратными прокси и API-шлюзами? 🍩Балансировщик нагрузки распределяет клиентские запросы между серверами, выбирая их по алгоритму, чтобы равномерно распределять нагрузку, избегать перегрузок и обеспечивать стабильную работу системы. Он получает запрос, перенаправляет его на сервер, принимает ответ и отправляет его обратно клиенту. Это увеличивает пропускную способность, снижает задержки и оптимизирует использование ресурсов. 🍩Обратные прокси работают как посредники между клиентами и серверами, обрабатывая запросы и передавая данные, скрывая серверы и повышая их безопасность. Они обеспечивают контроль за сетевым трафиком, снижая риски атак и угроз. Дополнительно, они могут кэшировать контент для уменьшения нагрузки на сервер, сжимать данные для ускорения передачи и управлять SSL/TLS-шифрованием, разгружая веб-серверы. 🍩API-шлюзы работают как единая точка входа для всех API-запросов, направляя их к нужным микросервисам и собирая результаты. Они упрощают взаимодействие клиентов с разными сервисами, добавляют защиту, применяют правила, переводят между веб-протоколами и агрегируют данные. Идеально подходят для работы с микросервисной архитектурой. 👉 @BackendPortal

💡 Совет по Java: всегда закрывайте ресурсы вроде BufferedReader, InputStream и OutputStream через try-with-resources, чтобы
💡 Совет по Java: всегда закрывайте ресурсы вроде BufferedReader, InputStream и OutputStream через try-with-resources, чтобы избежать утечек памяти и ресурсов. #Java #BestPractices 👉 Java Portal

До сих пор вручную собираешь шаблон проекта каждый раз, когда начинаешь что-то новое? Я недавно наткнулся на Better-Fullstack — генератор, который помогает быстро поднять основу приложения и не тратить время на однотипную настройку. Что умеет: 1️⃣ Поддерживает четыре основных экосистемы: TypeScript, Rust, Python и Go. 2️⃣ Более 270 комбинаций технологий, которые можно свободно комбинировать. 3️⃣ Позволяет выбрать фронтенд, бэкенд, базу данных, аутентификацию, платежи, AI-интеграции и DevOps-компоненты в одном месте. 4️⃣ Автоматически генерирует готовый каркас проекта, который можно использовать сразу после создания. Главная польза не столько в экономии времени, сколько в том, что тебе не приходится снова и снова заниматься настройкой окружения. Вместо этого можно сосредоточиться на бизнес-логике и функциональности продукта. Подойдёт для соло-разработчиков, команд с типовыми стек-требованиями и проектов с жёсткими сроками. GitHub: https://github.com/Marve10s/Better-Fullstack 👉 Java Portal

Circuit Breaker — это паттерн отказоустойчивости, который предотвращает постоянные попытки выполнить операцию, если она с высокой вероятностью завершится ошибкой. В этом подробном руководстве Джессика показывает, как реализовать собственный Circuit Breaker в Spring Boot. Из статьи ты узнаешь: - зачем нужны Circuit Breaker; - как обеспечиваются гарантии конкурентного доступа и переходов между состояниями; - как отслеживать и учитывать ошибки; - как устроена логика срабатывания Circuit Breaker; - и многое другое. Источник: https://freecodecamp.org/news/how-to-build-your-own-circuit-breaker-in-spring-boot-and-really-understand-resilience4j/ 👉 Java Portal

🤖 Как создать B2B CRM с ИИ на Джеймикс и не потерять контроль над разработкой? ➡️ 2023 — попробуй ChatGPT ➡️ 2024 — генериру
🤖 Как создать B2B CRM с ИИ на Джеймикс и не потерять контроль над разработкой? ➡️ 2023 — попробуй ChatGPT ➡️ 2024 — генерируй код ➡️ 2025 — используй агентов ➡️ 2026 — пора разобраться, как встроить ИИ в управляемый процесс разработки 16 июня в 16:00 МСК — практический воркшоп от Джеймикс (Java-платформа с ИИ для разработки корпоративных систем), Kodacode и OpenIDE. Покажем, как пройти путь от постановки задачи до рабочего контура корпоративной CRM. Не в теории — в коде. Что разберём: 🔹 как сформировать спецификацию для разработки с ИИ 🔹 как удержать агента в рамках проекта 🔹 как создать модель данных, экраны и бизнес-логику 🔹 типичные ошибки агентного режима и как их исправлять 🔹 чем управляемая ИИ-разработка отличается от вайб-кодинга Заберёте с собой:готовый код open-source B2B CRM на Java со встроенным ИИ-ассистентом — можно сразу брать за основу в своих проектах. 👉 Регистрируйтесь #реклама О рекламодателе