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

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

@java_iibrary

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

12 023подписчиков
Ежедневно🇷🇺

Похожие каналы

Все →

Последние посты

Java Portal | Программирование — пост в ТГ канале

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

18 июн. 2026 г.1 080В Telegram

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

18 июн. 2026 г.1 150В Telegram

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

17 июн. 2026 г.1 160В Telegram

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

17 июн. 2026 г.1 240В Telegram
Java Portal | Программирование — пост в ТГ канале

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

16 июн. 2026 г.1 220В Telegram

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

16 июн. 2026 г.1 410В Telegram

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

15 июн. 2026 г.1 360В Telegram
Java Portal | Программирование — пост в ТГ канале

💡 Java: Ловите ошибки ещё на этапе компиляции, помечая переопределённые методы аннотацией @Override. #Java #Annotations// ❌ Опечатка в имени метода — код компилируется,// но вы НЕ переопределили toString()public class User { private final String name; public User(String name) { this.name = name; } public String toStrng() { // хотели toString() return name; }}// Баг остаётся незамеченным — println(user)// не будет использовать ваш метод// ✅ @Override превращает опечатку в ошибку компиляцииpublic class User { private final String name; public User(String name) { this.name = name; } @Override public String toString() { return "User(" + name + ")"; }}// @Override// public String toStrng() { ... }//// Ошибка компиляции:// method does not override or implement a method from a supertype👉 Java Portal

15 июн. 2026 г.1 240В Telegram

Сегодняшняя концепция: Consistent Hashing (согласованное хеширование)Обычное хеширование:Добавили 1 сервер↓Почти все ключи перераспределяютсяСогласованное хеширование:Добавили 1 сервер↓Перемещаются только ключи, находящиеся рядом с нимЭта простая идея лежит в основе таких систем, как:• Redis Cluster• Apache Cassandra• Amazon DynamoDB• MemcachedОдна из самых важных концепций, на которых строятся масштабируемые распределённые системы.👉 Java Portal

14 июн. 2026 г.1 340В Telegram

Твой бэкенд теперь умеет говорить.Вышла open-source платформа: AI-агент подключается через MCP, сам находит ошибку и предлагает фикс, пока ты смотришь не на тот дашборд.Неделю назад это был твой таск.Называется Maple.https://github.com/Makisuo/maple👉 Java Portal

14 июн. 2026 г.1 410В Telegram
Java Portal | Программирование — пост в ТГ канале

💡 Java: Используйте default-методы в интерфейсах для сохранения обратной совместимости (начиная с Java 8).Если добавить новый default-метод в интерфейс, существующие реализации не придётся менять. Они автоматически получат реализацию по умолчанию.#Java #Interfaces👉 Java Portal

8 июн. 2026 г.1 190В Telegram

Лучшие практики Spring Boot REST API Часть 1: Реализация API Get Collection Часть 2: Реализация API Create и UpdateЧасть 3: Реализация FindById и DeleteById APIЧасть 4: Обработка исключений в REST API👉 Java Portal

8 июн. 2026 г.1 200В Telegram

Spring Boot 4.1 получит поддержку ленивого получения JDBC-соединений DataSource будет оборачиваться в LazyConnectionDataSourceProxy, а физическое соединение из пула станет запрашиваться только в тот момент, когда приложению действительно потребуется выполнить JDBC-запрос. 🔥https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.1.0-RC1-Release-Notes👉 Java Portal

7 июн. 2026 г.1 370В Telegram
Java Portal | Программирование — пост в ТГ канале

Два backend-разработчика решали одну и ту же задачу.Вариант A:SELECT *FROM usersWHERE email = ?Вариант B:SELECT *FROM usersWHERE LOWER(email) = LOWER(?)Какой запрос отправится в прод?Многие выбирают B, потому что он выглядит надёжнее. Пользователь может ввести John@Example.com, а в базе лежит john@example.com.Но есть нюанс.В большинстве СУБД вызов LOWER() над колонкой ломает использование обычного индекса. Вместо быстрого Index Seek база часто уходит в полный скан таблицы.На 100 строках разницы не видно.На 10 миллионах пользователей разница становится очень заметной.Поэтому в проде обычно используют один из вариантов:• хранить email в нормализованном виде (например, всегда lowercase);• использовать case-insensitive collation;• создать функциональный индекс на LOWER(email).Самая опасная часть запроса часто выглядит как самая безобидная.👉 Java Portal

7 июн. 2026 г.1 420В Telegram
Java Portal | Программирование — пост в ТГ канале

В Docker можно поднять полноценный Android-эмулятор одной командой.Без установки Android Studio, ручной настройки AVD и прочей возни.Что есть из коробки:• аппаратное ускорение через GPU• поддержка KVM для более высокой производительности• headless-режим для CI/CD и автоматизации• запуск полностью внутри Docker-контейнераУдобная штука для тестирования Android-приложений, мобильной автоматизации и агентных сценариев.Бесплатно и с открытым исходным кодом https://github.com/HQarroum/docker-android👉 Java Portal

6 июн. 2026 г.1 250В Telegram
Java Portal | Программирование — пост в ТГ канале

Многие пишут SQL-запросы сверху вниз и думают, что СУБД выполняет их в том же порядке.Но SQL работает иначе.Фактический порядок выполнения выглядит так:1. FROM2. JOIN3. WHERE4. GROUP BY5. HAVING6. SELECT7. ORDER BY8. LIMITИменно поэтому алиасы из SELECT нельзя использовать в WHERE, а ошибки в агрегатах часто оказываются не там, где их ищут.Понимание порядка выполнения помогает:• быстрее отлаживать запросы;• правильно использовать агрегации;• избегать логических ошибок;• писать более предсказуемый SQL.Если запрос ведёт себя странно, проверь не то, как он написан, а то, как его выполняет движок базы данных.👉 Java Portal

6 июн. 2026 г.1 300В Telegram
Java Portal | Программирование — пост в ТГ канале

Паттерн Circuit Breaker не пытается бесконечно достучаться до упавшего сервиса. Он понимает, когда пора остановиться.Closed → Open → Half-Open → ClosedКак работает:• Closed — запросы проходят нормально, ошибки отслеживаются.• Open — после достижения порога ошибок новые запросы сразу отклоняются без попытки обратиться к сервису.• Half-Open — через некоторое время пропускается несколько тестовых запросов.• Closed — если сервис восстановился, трафик возвращается в штатный режим.Что это даёт:• защищает систему от каскадных сбоев;• снижает нагрузку на проблемный сервис;• уменьшает задержки для клиентов;• ускоряет восстановление после инцидентов.Защищай. Быстро отказывай. Восстанавливайся. Повторяй. #SystemDesign #SoftwareArchitecture #Microservices #DevOps #BackendDevelopment👉 Java Portal

5 июн. 2026 г.1 280В Telegram
Java Portal | Программирование — пост в ТГ канале

Большинство команд, которые делают data-агентов, городят целый зоопарк из роутеров, fine-tune моделей и RAG-пайплайнов поверх нескольких LLM.OpenAI сделала иначе.Их data-агент работает на одной модели и всего с 13 инструментами, при этом умеет ориентироваться в 1,5 эксабайта данных и 90 000 таблиц.По словам команды, архитектура получилась на удивление простой.Недавно OpenAI рассказала, как всё устроено под капотом:• архитектура data-агента• 6 уровней контекста, которые позволяют одной LLM уверенно работать с 90 000 таблиц• 3 реальных сценария использования Codex внутри OpenAI• 5 практических выводов для тех, кто строит собственных агентов под конкретную предметную область• куда будет развиваться дата-платформа OpenAI дальшеИнтересно, что главный вывод не про очередной сложный агентный фреймворк, а скорее про то, как далеко можно зайти с одной моделью, если правильно организовать контекст и инструменты.👉 Java Portal

5 июн. 2026 г.1 310В Telegram
Java Portal | Программирование — пост в ТГ канале

Совет по Java: используйте StringBuilder вместо String для конкатенации строк в циклах.String является неизменяемым (immutable), поэтому его использование в циклах, особенно больших, работает неэффективно.StringBuilder является изменяемым (mutable) и оптимизирован для многократного добавления строк.#SoftwareDevelopment👉 Java Portal

4 июн. 2026 г.1 300В Telegram
Java Portal | Программирование — пост в ТГ канале

Java-совет: старайтесь избегать статических переменных, если они не хранят действительно глобальные значения.Они усложняют тестирование, поскольку общий изменяемый state затрудняет изоляцию классов и делает тесты более зависимыми друг от друга.👉 Java Portal

4 июн. 2026 г.1 340В Telegram