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

Java *

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение19 мин
Количество просмотров570

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

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

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

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

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

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

Истории

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

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров658

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 42: ↑35 и ↓7+40
Комментарии124

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

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

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

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

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

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

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

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

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

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

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

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

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

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Про auto.offset.reset в Spring Kafka

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

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

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

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

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

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

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

Безопасный Docker в продакшене

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

В новом переводе от команды Spring АйО вы узнаете, как минимизировать риски и обеспечить безопасность Docker-контейнеров с помощью CIS Benchmark рекомендаций и автоматизированных инструментов вроде Docker Bench for Security.

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

10 миллиардов целых чисел входят в массив

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

Неожиданные результаты эксперимента с хранением большого количества числе в массиве в 64-битным Pharo Smalltalk, которые меня удивили.

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

Скажем нет «Превращению», или анализ Kafka

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

Бывало ли вам интересно, какие баги может таить исходный код проектов, которыми пользуются большие компании по всему миру? Не упустите шанс познакомиться с интересными ошибками, которые нашёл статический анализатор PVS-Studio в исходном коде Open Source проекта Apache Kafka.

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

Как спроектировать библиотеку для Spring Boot

Время на прочтение10 мин
Количество просмотров2.9K
image


Принцип DRY (Не повторяйся) – это важная составляющая цикла разработки программного обеспечения. Его цель – избежать ненужной повторяемости в коде. В частности, имеется множество приложений, которые могут находиться в составе одной и той же микросервисной архитектуры и использовать один и тот же компонент. В результате код становится неудобно поддерживать, поскольку всякий раз, когда требуется внести изменение в этот компонент, с каждым из этих приложений приходится разбираться отдельно.
В этой статье давайте рассмотрим, как можно вынести такие компоненты из приложений в отдельный модуль. Тем самым мы одновременно стремимся упростить поддержку кода и сократить в нём количество повторов.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+15
Комментарии0

Траст-менеджер здорового человека

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

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

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

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

Работа

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