Обновить
256K+

Java *

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

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

API-Шлюз или опять тестировать

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

При разработке микросервисов рано или поздно возникает вопрос о специализированном микросервисе, через который проходят запросы и маршрутизируются в нужный. Это необходимо не только с точки зрения безопасности (в одной точке аудита можно увидеть все нужные события), но так же с точки зрения производительности. Ваш микросервис выполняющий важную функцию наверняка использует массу ресурсов, например подключения к БД - даже если обработка плохого запроса не требует подключения к БД, то она гарантированно ворует ресурс ЦП. Разумеется можно покупать все более производительные сервера, но такой путь ни к чему не приведет.

Если вас интересует эта тема, то добро пожаловать под кат.

В лунапарк

Подключение к GigaChat API на Java: пошаговое руководство

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

Подключение к GigaChat API на Java: пошаговое руководство.

В этой статье я расскажу о том, как подключиться к API GigaChat в IntelliJ IDEA на Java и настроить безопасное соединение с использованием SSL-сертификатов, чтобы получать ответы от GigaChat в своем приложении.

Читать далее

Git для самых маленьких

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

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

Итак, небольшое вступление. Когда мне впервые пришлось делать коммит на GitHub, я помню, что перерыла кучу источников, и везде все было как-то не так, как в итоге сделала я.

В этой статье я расскажу о том, как сделать первый коммит на GitHub, и как делать последующие. Только мой опыт и сочетание консоли и фич IntelliJ Idea + у меня mac os, поэтому здесь именно про него (важно для установки).

Погнали.

Читать далее

Главный метод Android-приложения

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

Если вы когда-нибудь писали «Hello World» на Java (или любом другом C-подобном языке), то наверняка делали это в статическом методе main. Этот метод вызывается в JVM и является точкой входа любой Java программы.

Но при разработке приложений для Android вы возможно, как и я до недавнего времени, ни разу метод main не встречали. Создается ощущение, что его вообще не существует, а при нажатии на иконку в лаунчере наши Application и Activity создаются какими-то волшебными гномами, спрятанными в устройстве.

Читать далее

Kafka Streams ч2: DSL, Processor API

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

DSL — это то, что делает Kafka Streams таким простым и позволяет подняться на более высокий уровень абстракции.

Читать далее

Действительно ли ИИ-помощники экономят время разработчиков?

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

Команда Spring АйО перевела статью об исследовании Uplevel, которое показало, что использование GitHub Copilot не улучшает производительность разработчиков, а наоборот — увеличивает количество ошибок в коде. 

Разработчики стали тратить больше времени на проверку ИИ-сгенерированного кода, что снижает ожидаемую экономию времени. Хотя компании активно внедряют ИИ-инструменты, их реальная польза для повышения продуктивности остается под вопросом.

Читать далее

Не играй в догонялки со Spring — Explyt Spring plugin для IDEA Community

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

Всем привет. После моей предыдущей статьи о Maven плагине, где я предложил новый подход к реализации и создал свою версию для IDEA (вместо того чтобы писать свой мини-мавен, я делегировал всю основную работу ему посредством Maven плагина), меня пригласили работать над Spring плагином в IT-стартап Explyt. Компания занимается автоматической генерацией тестов на базе AI и формальных методов. В процессе работы столкнулся с проблемами, похожими на те, которые решал в своем Maven плагине. У меня возникло некое дежавю, и я подумал: почему бы не использовать подобный подход, чтобы доработать и улучшить Dependency Injection Explyt Spring плагина? Текст для тех, кто работает со Spring-плагинами и хочет разобраться, как эффективно применять готовую логику Спринга для новых задач. Заходите под кат, подробно поделюсь своим кейсом, покажу код, расскажу про итерации и объясню логику.

Читать далее

Как жить без IntelliJ IDEA? Часть №2. Поддержка Spring

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

В первой статье из цикла «Как жить без IntelliJ IDEA» мы рассмотрели возможные альтернативы привычной многим IDE. 

Во второй статье из цикла команда Spring АйО выяснила, какие есть альтернативы Ultimate в части поддержки Spring и насколько хорошо они справляются со своей задачей.

Читать далее

Apache Flink: Unit и E2E-тестирование оператора с таймерами в Apache Flink

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

Привет, Хабр! На связи Александр Бобряков, техлид в команде МТС Аналитики. В предыдущей части я рассказал про создание Flink-джобы Kafka-to-Kafka с оператором на основе встроенных таймеров. Такой пайплайн позволяет создавать вызов через определенное время после обработки события.

В этом посте я расскажу, как можно протестировать операторы с таймерами и какие подводные камни могут возникнуть.

Весь разбираемый исходный код есть в репозитории AlexanderBobryakov/flink-spring. В master-ветке представлен итоговый проект по всей серии. Эта статья соответствует релизной ветке с названием release/8_Test_for_Trigger_Flink_Job.

Это мой девятый материал про Apache Flink. По мере выхода новых ссылки на них будут появляться ниже.

Список моих статей про Flink:

Читать далее

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

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

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

1) Что такое Document и Query Processing.

2) Как обрабатывается текст Vespa. Что такое токенизация и стемминг.

3) Какой из обработчиков текста лучше подходит для русского языка.

4) Как выполнить текстовый поиск.

5) Как происходит ранжирование результата.

Читать далее

Функциональные HTTP-эндпоинты с Spring MVC/WebFlux и Kotlin

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

Функциональные подходы к разработке в Spring становятся все более популярными благодаря своей гибкости и лаконичности. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, рассматривается, как можно эффективно определять HTTP-эндпоинты с использованием Spring MVC/WebFlux, применяя функциональный стиль программирования на языке Kotlin. Аналогичный подход можно реализовать и на Java, хотя использование Kotlin позволяет существенно упростить код.

Читать далее

Быстрее пули: как найти счастье с PostgreSQL

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

В этой статье мы расскажем о том, как эффективно реализовать полнотекстовый поиск с помощью PostgreSQL. Узнайте, как улучшить скорость и точность поиска по текстовым данным, используя такие инструменты, как tsvector, tsquery и индексы GIN, и как эти возможности могут значительно повысить производительность вашего приложения.

Читать далее

Да будет справедливость или как найти друзей на удалёнке

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

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

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

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

У участников этого коммьюнити была проблема, на которой они чаще всего жаловались. Это способ записи на еженедельную тренировку. Дело в том, что на каждое коммьюнити компания выделяла определенный бюджет. И конкретно в большом теннисе его хватало на 2 тренировки в неделю максимальной вместимости по 8 чел в группе. При этом желающих в зависимости от сезона было больше чем могла вместить группа.

Читать далее

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

Кратко о сетях

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

Этот материал продолжает серию статей, посвящённых семинарам внутреннего обучения, которые проводятся в IT-компании NAUKA и служат для развития кругозора её сотрудников. Надеемся, что сведения, представленные в ней, могут быть полезными для школьников старших классов, студентов младших курсов ВУЗов, сотрудников IT-компаний, не связанных в своей работе с IT-инфраструктурой.

Читать далее

Как жить без IntelliJ IDEA? Часть №1. Собери сам

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

На российском рынке сложилась сложная ситуация с IDE для Java-разработчиков. Новости, связанные с ограничением скачивания IntelliJ IDEA Ultimate, недоступностью JetBrains маркетплейса и блокировкой лицензий, которые использовались на территории РФ порождают огромное количество вопросов, на которые не у всех есть ответы.

Команда Spring АйО подготовила цикл статей, в которых постарается ответить на все вопросы, связанные с уходом IntelliJ IDEA из России.

Читать далее

Кластеры и мир: хроника высокодоступного Pub/Sub в Redis

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

В статье рассматриваются основные принципы и особенности использования Redis в режиме Pub/Sub для масштабируемых и высоконагруженных приложений. Описаны два подхода к обеспечению высокой доступности — Redis Sentinel и Redis Cluster, их преимущества, ограничения и примеры настройки. Приведены примеры использования Pub/Sub в реальных системах, а также практические конфигурации и код для настройки отказоустойчивого кластера Redis. Статья предназначена для разработчиков, которые ищут решения для создания надежных систем обмена сообщениями с высокой производительностью и отказоустойчивостью.

Читать далее

Kafka как хранилище справочников

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

Хочу поделиться тем, как мы используем kafka для организации оперативного хранилища справочной информации.

Читать далее

Пишем свой Http Kafka Sink Connector

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

В данной статье приведу реализацию своего kafka http sink connector. Он не претендует на универсальность, но возможно поможет разобраться как разработать свой connector.

Читать далее

Про auto.offset.reset в Spring Kafka

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

Так исторически сложилось, что Apache Kafka использует для своих сообщений смещения (или же offset). В зависимости от нужд для настроек консьюмера можно выставить в параметр auto.offset.reset три значения: earliest, latest, none. По умолчанию, если данный параметр не задан, используется значение latest.

Читать далее

Полнотекстовый поиск в java приложениях с помощью Elasticsearch

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

Рассмотрим, как использовать Elasticsearch в качестве поискового движка в приложениях на Spring Boot. Поговорим о стратегии реализации полнотекстового поиска, эффективной индексации сущностей JPA и их связей. Уделим внимание использованию аннотаций полей, настройке релевантности с помощью весовых коэффициентов и реализации нечёткого поиска для обработки вариаций запросов. Также обсудим методы настройки синонимических связей, многоуровневых фильтров и ранжирования результатов по релевантности для повышения качества поиска.

Читать далее