Java News
4.38K subscribers
96 photos
5 videos
1 file
1.48K links
Все новости связанные с Java!

По всем вопросам: @NadikaKir

Мы на бирже: https://telega.in/c/java_newss
Download Telegram
Echo Layer: как я пытался встроить приватность в обычную клавиатуру

Меня давно не отпускала одна мысль: почти все разговоры о приватной переписке в какой‑то момент упираются не в шифрование, не в криптографию, не в архитектуру, а в банальную человеческую инерцию. Можно сколько угодно строить красивую систему, можно делать open source, end‑to‑end encryption, писать про zero knowledge и отсутствие серверных логов, но потом ты возвращаешься в реальную жизнь и видишь, что люди всё равно сидят там, где им удобно. В Telegram, в WhatsApp, в VK, сейчас уже и MAX, в корпоративных чатах, в почте, в комментариях, где угодно. И если для приватности нужно сначала всех пересадить в новое приложение, то задача почти обречена.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Эксперименты с распараллеливанием Java-автотестов

За годы работы сначала разработчиком, а потом автоматизатором сталкивался с необходимостью запускать тесты параллельно. Действовал в основном интуитивно и шёл строго по документации. Недавно закралась мысль поставить серию экспериментов и посмотреть фактам в глаза. Результаты оказались предсказуемые, но тем не менее интересными.

Эта статья для тех, кто делает первые шаги в распараллеливании тестов на Java. Будет полезна как автотестерам, так и начинающим разработчикам.

Будем анализировать выводы полученные в ходе эксперимента, а не голую теорию из документации. После прочтения сможете повторить все самостоятельно как на готовом примере из статьи, так и на своих проектах.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Легаси и минус 99% времени: пошаговый разбор оптимизации

Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему.

Разберем всё по шагам, с замерами производительности. Поехали!

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Cказ о том, как мы с Oracle на PostgreSQL переехали

Меня зовут Даша Александрова, я Java‑разработчик. Хочу поделиться опытом миграции данных из Oracle в PostgreSQL без простоя сервисов.

Причина миграции — импортозамещение.

Теперь немного про сам проект. В его основе — микросервисная архитектура на Java 11/17 и Spring Boot 2/3. В качестве основной базы данных использовалась Oracle с несколькими схемами. В коде сочетаются нативные SQL‑запросы и Hibernate, вся бизнес‑логика живет на уровне приложения — без процедур, триггеров и другой логики в базе. Идентификаторы генерируются через sequence. Проект активно развивается, регулярно выпускаются релизы. Система ориентирована на клиентские приложения — мобильное и веб, при этом нагрузка остается умеренной и не относится к highload‑сценариям.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
Скучный Рефакторинг: борьба с искушениями

Рефакторинг должен быть скучный и надежный. Надо держаться от искушения обновить библиотеку, починить баг, улучшить стиль. Под катом разбор почему именно такой путь сможет вытянуть тяжелый legacy рефакторинг, а шаг вправо и влево ведет к откату релиза.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
Мой 14-летний путь отказа от ORM: череда инсайтов, приведшая к созданию SQL-First кодогенератора для PostgreSQL

История о том, как я выпустил популярный ORM в 2012 году… потом похоронил его… потом осознал, что база данных должна быть единственным источником правды. И к чему это привело.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Требования в Agile: полный гайд с работающими практиками

Почему «собрать требования» невозможно, а итеративный подход — единственный рабочий вариант и чем Agile-требования на самом деле отличаются от классических.

А также:
▫️ Почему фраза «создайте мне систему» — это красный флаг.
▫️ Как постепенное уточнение спасает от «аналитического паралича» и переписывания кода.
▫️ User Story vs Use Case: в чём настоящая разница и что выбрать.
▫️ Схемы итеративного процесса и ролей в Agile-проекте.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Database-клиент для GigaIDE

Продолжая тему инструментов, интегрированных в среду разработки, сегодня мы рассмотрим клиент для работы с базами данных, доступный пользователям GigaIDE. Для пользователей Community-версии доступен open source-плагин DB Navigator. Пользователям PRO-версии доступна пара расширений:

SQL — синтаксическая поддержка и форматирование SQL-кода;

Database — клиент баз данных с широким набором возможностей.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Как не выгорать и к чему я пришел

Я работаю программистом 15 лет. За это время чего я только не делал и у меня скопилась статистика. Если на первом месте я работал 5 лет на втором 3 года, то на последующих год полтора и я выгорал и менял работу. Я не мог понять почему так происходило. Только в одной фирме мне действительно нравилось работать. Хотя когда я там работал мне тоже хотелось в определенный моменты уйти, но все же сейчас я вспоминаю коллег и проекты с теплотой.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
GRASP: почему настоящая архитектура начинается не с SOLID

Хочу начать с личной предыстории. Давным‑давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.

Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.

Безусловно, это всё важные и фундаментальные вещи.

Но однажды на горизонте появилось DDD — предметно‑ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.


Читать статью

Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Базовый обзор @TempDir в Java

Сегодня разберемся с @TempDir — мощным, но часто недооценённым инструментом JUnit 5 для работы с временными файлами и директориями в тестах.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Лучшие практики реализации equals() и hashCode() на примере JPA сущности

Всем привет!
Рано или поздно при работе с объектами и хэш-коллекциями мы сталкиваемся с вопросами: «Где моя сущность?» или «Почему они не равны?».
В контексте работы с важными данными эти вопросы становится еще более актуальными.
А самое что страшное, что нет единого ответа на вопрос: «А как сделать мне в моём проекте?».


Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Spring Reactor. Эволюция сервисов. На пути к реактивности

Это статья описывает опыт миграции традиционного приложения java spring на Spring reactor стек. О специфике разрабатываемой информационной системы, уже подробно рассказывал. Кратко о системе - смешанная сервисно-микросервисная архитектура. Чтобы получить бизнес результат, требуется вызвать микросервис, который вызывает сервис, который вызывает набор микросервисов для формирования ценностного набора данных. Получается цепочка вызовов. Сервисы и микросервисы разрабатывались на традиционном технологическом стеке, без использования реактивного подхода.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Очереди в микросервисах: 5 ошибок, которые приводят к дублям и потерям

Почему добавление второго consumer«а в очередь может привести к двойным списаниям? Разбираем на реальном кейсе: как один Topic стоил компании 312 дублей за час. »

Сравниваем поведение JMS, Kafka и RabbitMQ, показываем, почему ни одна очередь не даёт exactly‑once из коробки, и как идемпотентность, Dead Letter Queue и правильный выбор канала (команды vs события) делают интеграции надёжными.“

Готовые схемы, продакшен‑код на Java и чек‑лист, который стоит применить прямо сейчас!

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Развертывание безопасных Java-приложений на AWS EKS с GitLab CI/CD, Maven, Trivy и SonarQube

В современном DevOps для эффективного, надежного и последовательного развертывания программного обеспечения важна автоматизация. Весь процесс разработки и выпуска ПО оптимизируется при помощи мощного инструмента GitLab CI/CD. Развернем с ним приложение Java в мультикластере Kubernetes, управляемом на AWS и настраиваемом в eksctl. Рассмотрим процесс от создания кластера Kubernetes до развертывания контейнеризованного приложения Java, попутно интегрируя инструменты DevOps Trivy и SonarQube.

Читать статью

Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Реализации Microkernel архитектуры с помощью Java OSGI

Я хотел бы поделиться опытом реализации микроядерной архитектуры (microkernel) на Java с помощью OSGI (Open Service Gateway Initiative). Этот подход является промежуточным вариантом между микро-сервисной и монолитной архитектурой. С одной стороны присутствует разделение между компонентами на уровне VM с другой - межкомпонентное взаимодействие происходит без участия сети, что ускоряет запросы.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Секреты в Java-сервисах на Spring: где брать и как обновлять

Меня зовут Андрей Чернов, я Java‑архитектор в СберТехе, где разрабатываю архитектуру микросервисов. Сейчас я расскажу про нюансы работы с секретами в Java‑сервисах на всеми любимом Spring Boot и про наш опыт такой работы. В современном мире практически не осталось автономных, ни с чем не интегрированных, сервисов. А секреты в первую очередь нужны для безопасных интеграций.

Статья будет состоять из двух частей. В первой расскажу про особенности работы с секретами в Java на Spring Boot — где их брать и как применять к вашему сервису на примере того, как мы делаем это в Platform V Sessions Data (распределенный in‑memory кеш для клиентских сессий, который позволяет снизить нагрузку на внешние сервисы и базу данных). Также расскажу про стандартные варианты обновления секретов «на горячую» (не останавливая, не перезапуская сервисы, и даже не снимая с них нагрузку) и что с ними не так.

Во второй части подробно разберу, как мы обновляем секреты «на горячую». Эти советы помогут вам улучшить работу с секретами, а значит сделать сервисы более защищёнными. Ведь если секреты попадут в руки злоумышленников, те смогут атаковать ваш сервис — вывести его из строя, украсть конфиденциальные данные и т. п. А любая успешная атака чревата для компаний потерей денег, нервов, времени и репутации.


Читать статью

Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
JForge: Создаем свою мини-IDE на Java Swing с нуля (с темной темой и подсветкой синтаксиса!)

Каждый из нас, Java-разработчиков, хоть раз задумывался: "А что, если взять и написать свою IDE?". Ну, может, не полноценную замену IntelliJ IDEA, но что-то компактное, для души, для изучения Swing или просто для фана. Сегодня я хочу поделиться именно таким проектом – JForge, простой IDE для Java, написанной полностью на Swing, с акцентом на приятный темный интерфейс и базовые, но необходимые фичи.

Читать статью


Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Spring, kafka, неблокирующий retry, лаги

История об особенностях использования механизмов retry, которые дает spring-kafka из коробки и проблемах с производительностью.

Есть нужно сделать асинхронный retry сообщений на топике, который бы не блокировал основной поток сообщений «легко и быстро» — вам сюда😊

(А потом после «легко и быстро» несколько дней дебажить 🤔)

Читать статью

Наш канал в Макс 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
👩‍💻 Системы счисления и побитовые операторы в Java

Приглашаем на открытый урок.

🗓 02 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java разработчик. Продвинутый уровень».

Понимание систем счисления и побитовых операторов важно для разработчиков, особенно при работе с данными на низком уровне и оптимизации алгоритмов.

О чем поговорим:

✔️ О системах счисления
✔️ Перевод чисел из одной СС в другую
✔️ Представление целых чисел в памяти компьютера
✔️ Побитовые операторы в Java

Вебинар будет полезен:
Опытным и начинающим Java-разработчикам.

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

🔗 Ссылка на регистрацию: https://vk.cc/cXWPEa

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2