Как стать автором
Обновить
115.76

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Spring Cloud OpenFeign и авторизация (OAuth2). Ещё проще

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 1.6K
Программирование *Java *
Recovery mode
Из песочницы

Несколько дней назад была поставлена задача сделать запросы между сервисами с токеном. У нас используется Keycloak в качестве SSO. В силу того,что нужно всё на базовом уровне (ничего специфического),то имеет смысл использовать Feign Client (OpenFeign) для Spring Boot.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Руководство по возможностям языка Java версий 8-19

Уровень сложности Простой
Время на прочтение 18 мин
Количество просмотров 12K
Java *
Обзор
Перевод

Вы можете использовать это руководство для получения практической информации о том, как найти и установить последнюю версию Java, понять различия между дистрибутивами Java (Adoptium, AdoptOpenJdk, OpenJDK, OracleJDK и т. д.), а также получить обзор функций языка Java, включая версии 8–19.

Читать далее
Всего голосов 39: ↑37 и ↓2 +35
Комментарии 8

Spring Data JPA и upsert

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 3.5K
Java *
Туториал

Всем привет! Есть достаточно распространенная задача: нужно вставить новую запись в БД, но если она уже там есть, то её следует обновить. Эта ситуация может встретиться, например, если у вас есть 2 источника данных, каждый из которых передает половину информации об объекте, и ваш сервис должен склеить части вместе по какому‑то внешнему идентификатору. Но вы не знаете, в каком порядке к вам попадут эти половинки. Предлагаю посмотреть, как это можно сделать, если сервис использует Spring Data JPA.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 12

Анализ дампа кучи Java: разбираем на примерах

Уровень сложности Сложный
Время на прочтение 6 мин
Количество просмотров 2.9K
Блог компании Timeweb Cloud JavaScript *Java *
Обзор
Перевод
image

Я увлекаюсь управлением памятью в Java и в этой статье попробую объяснить, как взять и проанализировать дамп кучи – разберём на примерах. Но для начала давайте вспомним, что известно об этой предметной области. Немного освежив теорию, мы возьмем дамп кучи и проанализируем, каким он получится в простом приложении.
Читать дальше →
Всего голосов 25: ↑17 и ↓8 +9
Комментарии 6

Истории

Instagram* сможет работать без VPN?

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 11K
Java *C++ *GitHub *Реверс-инжиниринг *IT-компании
Из песочницы

Популярная социальная сеть была запрещена в России в 2022 году. Для многих поклонников приложения это стало настоящим ударом, а трафик Instagram* понес огромные потери: по данным Brand Analytics на октябрь 2022 года, количество авторов (блогеров) сократилось с 38 млн до 17 млн за год, а количество отправленных сообщений упало со 135 млн до 40 млн за тот же период. Теперь, вероятно, владельцы соцсети ищут новые способы вернуть свою аудиторию. Одним из них может стать работа Instagram* с уже встроенным модулем обхода блокировок в странах-цензорах.

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 12

Не придумывайте данные для интеграционных тестов — генерируйте их

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 5.6K
Тестирование IT-систем *Java *
Туториал


Если вы разработчик и когда-либо писали интеграционные тесты — скорее всего, вы использовали TestContainers. Появившись в 2015 году, эта библиотека изменила то, как мы производим автоматизацию тестирования, позволив разработчикам запускать интеграционные тесты с участием баз данных на локальных машинах, что существенно сократило сложность интеграционных тестов и время, необходимое для их запуска и прогона.


Testcontainers "по щелчку пальцев" запускают базы данных, но для того, чтобы тесты начали проходить, нужно кое-что ещё: начальные данные внутри базы. Их необходимо подготовить перед запуском тестов, а по мере того, как схема растёт и усложняется, делать это становится всё труднее.


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

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 5

Репликация между SQL- и NoSQL-базами данных: туда и обратно

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.3K
Блог компании VK Oracle *PostgreSQL *Java *Tarantool *


Часто при построении высоконагруженных проектов задействуют несколько хранилищ. При этом нередко одновременно используют как SQL-, так и NoSQL-базы данных. Такая реализация оправдана, но для её корректной работы надо правильно настроить репликацию данных в одну из сторон. 

Меня зовут Александр Горякин, я разработчик высоконагруженных систем хранения данных в пресейле Tarantool. Не так давно наша команда столкнулась с необходимостью репликации между SQL- и NoSQL-базами данных и успешно решила эту задачу. Я расскажу, что нам нужно было от репликации, какие механизмы и инструменты мы рассматривали, с какими проблемами столкнулись и что получили в итоге.

Статья написана по моему выступлению на HighLoad++ 2022. Вы можете посмотреть его здесь.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 8

Spring Security и архитектура наследования ролей в не плоской модели

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 3K
Программирование *Java *ООП *Промышленное программирование *
Туториал
Перевод

Когда речь заходит об авторизации, роли вступают в игру. Если модель плоская, то все просто. Пользователь обладает определенным набором привелегий и при запросе достаточно лишь проверить, что нужное право доступа присутствует в коллекции. Но как быть, если у пользователя могут быть разные наборы ролей для разных сущностей? Например, я обладаю ролью EDITOR в посте в социальной сети, но имею только VIEWER в другом. Также могут быть определены правила наследования. Если админ выдает дает мне роль EDITOR, то я автоматически приобретаю привилегию VIEWER. При этом, если я EDITOR, роль ADMIN у меня не появляется.

Как увязать все эти детали в коде и при этом не превратить продукт в большую кучу грязи? В рамках этой статьи я расскажу вам:

1. Как реализовать наследование ролей в Java?

2. Как протестировать полученную иерархию?

3. Как применить решение в рамках Spring Security?

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 5

Основы OkHttp в Android-разработке

Уровень сложности Простой
Время на прочтение 17 мин
Количество просмотров 2.9K
Java *Разработка под Android *Kotlin *
Туториал

OkHttp — библиотека и по совместительству HTTP-клиент с открытым исходным кодом для Java и Kotlin, разработанная Square, которая также создала Retrofit.

Порой стоит использовать не вездесущий Retrofit, а OkHttp из-за его производительности и большего функционала.

В статье подробно рассмотрены основные объекты и методы библиотеки и представлены основы работы с ней в Android-разработке.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 3

Самодостаточный системный подход с применением мультиплатформенного Kotlin

Время на прочтение 7 мин
Количество просмотров 1.6K
Блог компании Издательский дом «Питер» Java *Профессиональная литература *Kotlin *Микросервисы *
Перевод
Готов ли мультиплатформенный Kotlin для создания полностековых (веб-)сервисов? Как такая разработка воспринимается с точки зрения тех, кто уже имеет опыт работы с Kotlin? Поделюсь моим опытом по созданию веб-UI для JVM-микросервиса при помощи Kotlin Multiplatform.

image

Введение


Не буду здесь вдаваться в детали о том, с какой целью применяется микросервисный подход, а также не стану углубляться в теорию микросервисов. Начнём этот пост с допущения, что вы хотите улучшить микросервисный ландшафт, имеющийся у вас в настоящий момент, либо собираетесь мигрировать на микросервисную систему, чтобы улучшить удобство использования и/или администрирования – предоставив для этого веб-UI. Идеально, если при этом вы уже знакомы с Kotlin.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Spring Cloud DataFlow overview

Время на прочтение 6 мин
Количество просмотров 1.1K
Блог компании OTUS Java *
Обзор

Хабр, добрый день! Что первое приходит в голову, когда вы слышите «ETL»? Скорее всего airflow?

По сути airflow — это стандарт де‑факто в мире обработки и трансформации данных. Но в случае если в разработка ведется на java, то тогда придется либо переучивать разработчиков на python, либо нанимать еще python разработчиков. В большинстве случаев хочется вносить минимум изменений в процесс разработки и тех. стек. Решение есть! Фреймворк Spring Cloud предоставляет DataFlow — фреймворк для организации ETL в spring среде.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 2

Деплой Telegram бота на VPS | Webhooks + Java + Spring Boot

Время на прочтение 4 мин
Количество просмотров 2.7K
Хостинг Программирование *Java *Серверное администрирование *API *
Из песочницы

Привет, Хабр!

В процессе работы над проектом мне понадобилось выгрузить telegram-бота на VPS. Я не нашёл источника, в котором были бы собраны все детали этого процесса под мой конкретный случай. Поэтому в этой статье я бы хотел поделиться опытом с теми, кто столкнулся с такой же задачей.

Читать далее
Всего голосов 10: ↑2 и ↓8 -6
Комментарии 12

Топ вопросов на Junior собеседованиях

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 5.7K
Python *Программирование *Java *Разработка под iOS *Разработка под Android *
Дайджест

Процесс прохождения собеседований – важный навык, который нужно прокачивать, как и все остальные. С таким запросом часто приходят и наши ученики, а мы знаем, как решить это: зачастую вопросы на собеседованиях повторяются, поэтому для вас мы решили собрать подборку популярных вопросов, которые вам могут задать на собеседовании на Junior позиции по популярным технологиям.

Так что, если вам интересно, какие вопросы задают на собеседовании, то эта статья для вас. А если хотите узнать ответы на них, то переходите по ссылкам на наш YouTube канал и смотрите записи трансляций моковых собеседований с менторами Solvery. Там можно было узнать, как проходят реальные интервью и задать вопросы менторам Solvery.

Читать далее
Всего голосов 18: ↑2 и ↓16 -14
Комментарии 29

ChatGPT и Java Back-End Spring Boot

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 3.1K
Java *
Из песочницы

Ускорение Back-End Java Spring Boot разработки с помощью Chat GPT.

При создании обычного CRUD контроллера разработчик обычно делает несколько вещей.

1. Создает Entity

2. Пишет миграцию в БД

3. Создает DTO для Entity

4. Создает слой Repository

5. Создает слой Service

6. Создает слой Controller

Многие из этих вещей можно сделать автоматически с помощью ChatGPT. И так сразу к делу, и посмотрим на что способен ChatGPT. В качестве Entity будем использовать простой класс.

Читать далее
Всего голосов 11: ↑4 и ↓7 -3
Комментарии 2

Spring Cloud OpenFeign и авторизация

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 1.9K
Программирование *Java *Kotlin *
Из песочницы

В статье я хочу показать, каким образом можно реализовать отправку запросов с авторизацией при использовании Spring Cloud OpenFeign клиента для работы с АПИ.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Радиотелефончик на смартфоне

Уровень сложности Простой
Время на прочтение 15 мин
Количество просмотров 17K
Java *Беспроводные технологии *DIY или Сделай сам Лайфхаки для гиков Звук
Туториал
image

Немало воды утекло со времени публикации цикла про стриминг видео на Андроид устройствах, но вот ручки добрались и до аудио потоков. Не то, чтобы это была какая-то более заковыристая тема про сравнению с видео, даже наоборот, сложно придумать что-то проще, ибо Audio API не менялось, дай бог памяти, с 2012 года, если не раньше. И не стоило бы, ради этого пилить короткий пост, если бы не зудящая мысля — а на какое расстояние и каким образом можно передать сей аудио поток, если мы будем использовать для этого только два смартфона без всякой мобильной связи и внешних точек доступа.

Если вам интересно узнать, что из этого получилось, то прошу проследовать под кат…
Читать дальше →
Всего голосов 60: ↑60 и ↓0 +60
Комментарии 65

Java-сертификация: как мы заняли место ушедшего из РФ Oracle

Время на прочтение 5 мин
Количество просмотров 3.1K
Блог компании IBS Java *

Привет, Хабр! Oracle ушел, а сертифицироваться Java‑разработчикам где‑то нужно. Мы с партнерами решили занять освободившуюся нишу, и у нас это получилось. В этой статье расскажем о том, как мы создали аналог сертификации для джавистов, докрутили концепцию, а также дадим рекомендации, как подготовиться к тестированию, и поделимся полезными материалами.

Под катом много интересного и полезного!
Всего голосов 24: ↑13 и ↓11 +2
Комментарии 17

Spring Boot. Настройка профилирования времени выполнения

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 3.9K
Блог компании АльфаСтрахование Java *
Из песочницы

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

Т.к. речь шла о сервисе, который был написан довольно давно, и в него многие месяцы не вносились изменения, повинуясь принципу “работает - не трогай”, я решил постараться сделать это, не прикасаясь к самому коду сервиса.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 13

Создание мобильного приложения для рисования на Android Studio

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 2.8K
Java *Разработка под Android *
Из песочницы

Java, Android Studio и приложение для рисования, сделанное на них для самых "маленьких".

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 4

Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования. Часть 2

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 1.5K
Блог компании Команда Госуслуг Тестирование IT-систем *Java *
Кейс

Это вторая часть статьи «Мессенджеры на работе — это не прокрастинация, или как мы сделали сервис для автотестирования». Как и обещали, в данной статье мы расскажем о том, как масштабировали наш сервис, как развивали функциональность автотестов и как в итоге вышли за рамки обычного репорт-бота. 

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 0

Вклад авторов

Работа

Java разработчик
439 вакансий