Обновить
124.05

Java *

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

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

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

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

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

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

Читать далее

Kafka Streams ч2: DSL, Processor API

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

Про auto.offset.reset в Spring Kafka

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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