Обновить
512K+

Java *

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

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

Разбираемся с Vespa. Часть 1

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели2.9K

Эта статья открывает серию из трёх материалов, посвящённых работе с поисковой системой хранения данных Vespa.

Из этой статьи вы узнаете:

1) Как настроить конфигурацию Vespa.

2) Как запустить сервер конфигурации Vespa в Docker.

3) Как выглядит структура схемы данных.

4) Как выполнить фильтрацию полей в результатах поиска.

5) Как отключить валидацию схемы данных и файла конфигурации для локальной отладки.

Читать далее

Реактивный велосипед

Время на прочтение6 мин
Охват и читатели4.3K

На одном из проектов встретился Spring Reactor. Хорошая технология асинхронных потоков. Много копий сломано по поводу ее использования. Но сейчас не об этом. А о том, как я изобрел велосипед.

Читать далее

Как я настраивал платежи и реферальную систему продаж «Приведи друга» в Telegram боте

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели19K

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

Читать далее

Declarative Gradle: рывок или прорыв?

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели17K

Полгода назад команда Gradle представила новый продукт — Declarative Gradle. Команда Spring АйО, со своей стороны, провела исследование и готова поделиться результатами. 

TL;DR: технология всё ещё активно развивается, но пока что не поддерживается привычными инструментами, такими как IntelliJ IDEA. Несмотря на это, нам удалось запустить Spring Boot приложение!

Читать далее

Самый первый Android-смартфон в мире: каким был HTC Dream? Пишем приложения для Android 1.0 в 2024

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели32K


Друзья! А знаете ли вы, какой Android-смартфон был первым в мире и как он выглядел? А я теперь не просто знаю, но и могу физически пощупать настоящую легенду своих лет — HTC Dream, также известный как T-Mobile G1. Однако G1 был мне интересен не только как коллекционный девайс для гика, но и потенциально-диковинное устройство для разработки приложений: ведь в современном мире принято повышать минимальную версию Android для работы тех или иных программ, а я свои буду… понижать, чтобы они смогли заработать даже на самой первой версии Android! В сегодняшней статье мы с вами: посмотрим на Dream и постараемся понять, почему HTC выбрала именно Android, неудачно перепакуем аккумулятор, бэкпортируем мои клиенты ВК, YouTube и Telegram и посмотрим, правда ли старичок «бесполезен», как говорят в ретро-обзорах или что-то ещё да может! Интересно? Тогда добро пожаловать под кат!
Читать дальше →

Обзор GigaIDE от СБЕРа | Российская IntelliJ IDEA | Поддержка Spring вместе с Amplicode

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели125K

Недавно СБЕР выпустил GigaIDE — новую IDE для Java, Kotlin и не только. Это событие вызвало бурные обсуждения среди разработчиков. Чаще всего звучали следующие вопросы:

Чаще всего звучали следующие вопросы:

1. Это просто пересобранная версия IntelliJ IDEA Community Edition?
2. Если нет, что нового предлагает GigaIDE?
3. Поддерживает ли она работу с базами данных и Spring?

Сегодня отвечу на эти и другие вопросы, которые могут возникнуть у тех, кто заинтересовался GigaIDE.

Читать далее

7 основных способов оптимизировать кеширование в Spring Boot

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели25K

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

В новом переводе от команды Spring АйО вы узнаете про 7 основных техник оптимизации кеширования в Spring Boot, которые могут помочь значительно улучшить производительность. От выбора идеальных кандидатов для кеширования до реализации асинхронного кеша и мониторинга метрик кеша.

Читать далее

Неожиданности в авторизации. Что скрывает Keycloak?

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели22K

Авторизация и регистрация пользователей — важная часть приложения как для юзеров, так и для безопасности. Но какие неожиданности содержит исходный код популярного Open Source решения для авторизации, и как они могут повлиять на работу приложения?

Читать далее

Переписывая историю: от инструментов версионирования БД к практике

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели9.5K

Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.

В статье вас ожидает обзор ключевых особенностей Liquibase и Flyway, а также сравнение их возможностей. Расскажем, когда нужно создавать миграции, как облегчить этот процесс и уменьшить количество ошибок. Осветим некоторые малоизвестные возможности этих инструментов и развеем мифы о других.

Читать далее

Умножение Монтгомери

Уровень сложностиСложный
Время на прочтение11 мин
Охват и читатели33K

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

Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.

Про него я и хотел бы поговорить.

Читать далее

Как мы OpenAPI в приложениях используем (Spring Boot, Typescript)

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели9.5K

Хочу рассказать, как мы реализуем на практике контакты по спецификации OpenAPI, стараемся следовать подходу Contract First и в целом разрабатывать так, чтобы удобно было как разработчикам в команде, так и всем, кто использует наши сервисы. В статье описана генерация Java и typescript, а так же конфигурации maven.

Контракты OpenAPI — спецификация, которая позволяет описывать интерфейс взаимодействия с сервисом в виде REST. Или не REST, тут зависит от задачи и ее реализации.

Вдаваться в историю появления спецификации и ее развития не буду. Если кратко — эта спецификация позволяет описывать контракт взаимодействия с сервисом с помощью yaml‑синтаксиса. А с помощью OpenAPI generators можно генерировать из такого описания клиент‑серверные интерфейсы на различных языках. На данный момент последняя версия OpenAPI — 3.1.0 — является наиболее удобной и структурированной, позволяет описывать контракт с помощью JSON. Мы осознанно используем версию 3.0.3. Почему? Расскажу далее.

Читать далее

Работа с информерами Java kubernetes client

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели6.9K

Привет, меня зовут Сергей, старший разработчик 80 уровня компании DataBlend (группа компаний GlowByte). Наша команда занимается разработкой продукта ClusterManager, который управляет поведением и мониторит состояния таких продуктов, как GreenPlum, ClickHouse, DWH, Nova и т. д.

Около полутора лет назад у нас появилась необходимость собирать и отображать в удобном виде и разрезах метрики и данные об объектах кластеров Kubernetes, в которых развернут продукт Nova.

Для этих целей был выбран официальный kubernetes‑client для Java.

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

Лучше всего для этой цели подходит механизм информеров kubernetes‑client.

И сейчас мы посмотрим, с какой стороны их лучше начинать есть.

Читать далее

Устойчивость микросервисных Spring приложений: роль аннотации @Transactional в предотвращении утечки соединений

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели12K

В новом переводе от команды Spring АйО вы узнаете, как аннотация @Transactional помогла решить проблему с утечкой соединений и обеспечила стабильность системы.

Читать далее

Ближайшие события

Мониторинг бизнес-процессов в Camunda 8. Настраиваем дашборды и визуализируем данные

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели11K

Привет, Хабр. Я Вероника, java-разработчик, который юзает Camunda без слез. Здесь моя первая статья, в которой мы переложили BPMN диаграмму на java код и реализовали небольшой процесс. 

На этот раз пишу о мониторинге бизнес-процессов. Давайте представим: мы зарелизились в прод. Всё работает прекрасно. Но тут приходит бизнес, которому нужны графики, диаграммы и отчеты. Что делать?

Читать далее

Java Digest #14

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.9K

Всем привет! 👋 👋 👋 👋 Мы — Java-разработчики Т-Банка: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске — самые свежие новости из мира Java и сопутствующих технологий. JDK 23 изменяет политику обработки аннотаций, требуя дополнительной опции командной строки. Вышла новая версия Spring Framework 6.2.0-M4 с улучшениями в ядре, тестировании и поддержке Protobuf 4.x. Maven Central вводит ограничения на загрузку для крупных проектов. Новые сборки раннего доступа JDK 24 и Leyden, а также еще много всего интересного. Приятного чтения!

Читать выпуск 14

Liquibase + Spring Boot: настройка и написание миграций баз данных

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели32K

Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!

В этом гайде я расскажу как подключить и настроить Liquibase в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы БД, а также дополнить уже существующие changelog файлы новыми скриптами миграции вместе с Amplicode!

Читать далее

Markdown в IntelliJ IDEA как отдельный вид искусства. Рисуем диаграммы и вызываем bash команды

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели26K

Spring разработчики часто пишут документацию и README/HELP файлы к своим приложениям. Часто это делается в Markdown файлах. Markdown плагин в IntelliJ IDEA распознает файлы, предоставляет специальный редактор с подсветкой, автокомплитом и форматированием, а также дает визуальное отображение в панели предварительного просмотра в реальном времени. Кроме стандартной функциональности в IntelliJ IDEA есть пару уникальных фич, которые команда Spring АйО хотела бы выделить особенно.

Читать далее

Почему похудеть возможно только с помощью программирования?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели23K

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

Читать далее

Новый компилятор K2 в Kotlin. Часть 2. Гайд по миграции

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.9K

В этой статье эксперт сообщества Spring АйО – Михаил Поливаха рассмотрит процесс миграции с компилятора Kotlin старой версии на новый компилятор K2. В предыдущей статье Михаил рассмотрел компилятор K2, а здесь сфокусировался только на процедуре миграции.

Читать далее

Смена профессии в 33: стать разработчиком за 2 года

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели32K

Привет! Хочу поделиться своим опытом становления Java разработчиком.

Немного об авторе: на момент написания статьи мне 36 лет, в ИТ-сфере — с 2009 года и начинал я с системного администрирования продуктов Microsoft(сервера, БД, приложения) в компании АО «Национальный центр вертолётостроения им.М.Л.Миля и Н.И.Камова».

Программирования в моей работе не было, из отдалённо схожего могу отметить владение разве что скриптовыми языками типа PowerShell, Bat, vbs, которые активно использовал при работе с системой управления ИТ-инфраструктурой MS System Center Configuration manager (теперь Endpoint).

Работал я довольно эффективно и за 11 лет успел побывать и руководителем отдела, и заместителем начальника службы ИТ.

Профильное образование «Прикладная информатика» я получил только в 2017 году, зато во время работы в АО «НЦВ им.М.Л.Миля и Н.И.Камова» успел пройти более 20 курсов по вышеуказанным продуктам и не только.

Мысли стать программистом начали посещать году в 2018, но постоянное повышение по карьерной лестнице, вместе с увеличивающейся на глазах зарплатой делали своё дело и оставляли меня в зоне комфорта — так мне тогда казалось.

Довольно быстро пришло осознание, что моя основная работа — это бесконечные совещания и тонна документооборота, при этом по настоящему я испытывал удовольствие только производя программный продукт, приносящий пользу.

В конце 2020 года такое положение дел меня перестало устраивать и я нашёл себе самый «жирный», как мне показалось на тот момент, курс по разработке на языке Java.

Что я нашёл?