Java Portal | Программирование
12.6K subscribers
1.28K photos
106 videos
38 files
1.24K links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
Download Telegram
Совет по Spring Boot: ускорить приложение можно с помощью @EnableCaching и @Cacheable.

🟢Позволяет избежать повторных вызовов к БД и API
🟢 Снижает задержки
🟢 По умолчанию Spring использует in-memory map, но в проде можно подключить внешний провайдер кеша

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
API Gateway, если по-человечески:

Клиент не должен ходить в 6 разных сервисов.
Он должен ходить в одну точку.

Gateway стоит перед всей системой и берёт на себя:

- маршрутизацию входящих запросов в нужный сервис
- валидацию токенов, например JWT и OAuth, ещё до того, как запрос вообще дойдёт до сервисов
- rate limiting, чтобы API не абьюзили
- логирование, чтобы наблюдаемость была в одном месте
- балансировку нагрузки между инстансами сервисов

Без gateway каждый сервис заново городит у себя аутентификацию, логирование и rate limiting.
С gateway всё это решается один раз, централизованно.

Вот и вся суть: одна точка входа и единый слой контроля.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
Не используйте ELSE 0 вместе с COUNT и CASE

Использование ELSE 0 - очень частая ошибка у новичков, когда они комбинируют функцию COUNT с выражением CASE. Обычно это происходит из-за непонимания того, как именно COUNT работает при применении к столбцу.

Когда используется COUNT(column), функция считает все значения, которые не равны NULL, включая нули. Это значит, что если в выражении CASE указан ELSE 0, каждая строка, не попавшая под условие, превращается в значение 0. В результате такие строки тоже попадают в подсчёт.

Вот наивный пример:

sql id="g4suvd"
SELECT
Department,
COUNT(CASE
WHEN Status = 'Active' THEN EmployeeID
ELSE 0
END) AS ActiveEmployees
FROM Employees
GROUP BY Department;


В этом запросе каждая строка, которая не удовлетворяет условию, превращается в 0, а это валидное значение, поэтому оно тоже учитывается в COUNT. Из-за этого результат может получиться вводящим в заблуждение.

Лучше всего вообще убрать ELSE. Когда ветка ELSE опущена, выражение CASE возвращает NULL для строк, которые не соответствуют условию. А так как COUNT() игнорирует NULL, будут посчитаны только строки, которые действительно удовлетворяют условию. Вот правильный вариант:

sql id="vxa5np"
SELECT
Department,
COUNT(CASE
WHEN Status = 'Active' THEN EmployeeID
END) AS ActiveEmployees
FROM Employees
GROUP BY Department;


В этой версии строки, не подходящие под условие, возвращают NULL, и COUNT() естественным образом исключает их из подсчёта. В итоге запрос получается чище, а подсчёт корректно отражает только те значения, которые реально соответствуют условию.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
Java tip: используйте ThreadLocal.withInitial(...), чтобы у каждого потока было свое безопасное значение по умолчанию.

Значение создается лениво

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
Вопрос на Java-собеседовании:

Что такое Spring Bean Scope?

Spring Bean Scope определяет жизненный цикл и область видимости бина в контейнере.

Основные типы:

- singleton (по умолчанию) — один экземпляр на весь контейнер.
- prototype — новый экземпляр для каждого запроса.
- request — бин живет в рамках одного HTTP-запроса.
- session — бин живет в рамках одной HTTP-сессии.
- application — бин живет в рамках всего веб-приложения.
- websocket — бин живет на протяжении сессии WebSocket.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
🔥 Подписка на easyoffer PRO на 1 год со скидкой 70%

easyoffer – сайт для подготовки к собеседованию на программиста, тестировщика и другие IT-профессии становится еще доступнее со скидкой 70% до 10 марта.

⚙️ Актуальные функции:
1. База вопросов из реальных технических собеседований с вероятностью встречи и примерами ответов.
2. База задач с этапа live-coding.
3. База видеозаписей 1100+ реальных собеседований, в том числе в топовые компании (Сбер, Авито, Яндекс, WB, OZON, МТС и др.) на позиции Junior/Middle/Senior.
4. База 400+ тестовых заданий от компаний.
5. Аналитика ТОП-требований из вакансий для лучшего написания резюме по ключевым словам.
6. Тренажеры для подготовки к собеседованию. В том числе тренажер «Реальное собеседование» со сценарием вопросов под конкретную компанию.

Акция до 10 марта (включительно) на PRO-тариф.
– Подписка действует 1 год
– Доступ ко всем профессиями сразу

👉 Смотри подробности тарифа и покупай на easyoffer
Гайд для новичков по созданию HTTP-сервера с нуля.

Хочешь своими руками написать HTTP-сервер и потом отправлять на него запросы и получать ответы?
Если да, вот как раз гайд, по которому можно пройтись.

Что нужно знать заранее

Нужно знать Java.
Если не знаешь, не страшно: шаги из гайда можно перенести почти на любой язык, с которым тебе удобно работать, просто используя семантически эквивалентные конструкции в коде.

Примечание: JS/TS для этого гайда я бы не рекомендовал.


Базовое понимание программирования и OOP.

Текстовый редактор и, возможно, много кофе. Как пойдет. 🤭

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Java: List.reversed() возвращает неизменяемое (unmodifiable) представление исходного списка в обратном порядке.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
3
В заповедной Карелии, среди сотен озёр и густой северной тайги, на берегу Онежского озера расположился бутик-отель «Заонежье». Здесь архитектура деликатно вписана в ландшафт: фасады из северного дерева и лемех, вырубленный вручную, перекликаются с традициями древнего зодчества Русского Севера. Каждое окно обращено к воде, позволяя бесконечному озёрному горизонту стать частью интерьера.

Тринадцать видовых номеров и четыре гостевых дома с дровяными каминами создают атмосферу приватности и спокойствия, а ресторан «Руна» предлагает авторскую гастрономию из локальных продуктов — от свежевыловленной рыбы до дичи и северных ягод. Пространство отеля продумано для размеренного отдыха: пирс, панорамный зал, экотропы и уединённые места для медитации среди леса.

Заонежье — край редкого шунгита, чистейшей воды и нетронутых лесов, где можно встретить орлана-белохвоста и увидеть северное сияние. Гостям доступны экспедиции на снегоходах и катерах, путешествия к острову Кижи, рыбалка, прогулки на каяках, сапах и тишина безкрайних пейзажей.

Здесь легко устроить digital detox или, напротив, провести частное гастрономическое событие у костра на берегу озера. Баня по-чёрному в соседней деревне, чаепитие из самовара, пикники на необитаемых островах.
«Заонежье» — это не просто отдых, а глубокое погружение в первозданную природу, где комфорт и культура соединяются с силой земли и воды.

Наш телеграм канал: @hotelzaonezhie

Забронировать номер: https://zaonezhie.com
3
This media is not supported in your browser
VIEW IN TELEGRAM
Трюк, чтобы сэкономить место на диске и время при клонировании репозиториев из GitHub.

👉 Java Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
2