Обновить
156.31

Java *

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

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

JNI, часть 3: производительность Java/JNI/NDK

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

Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу замеры производительности, достаточно тривиальные, но отображающие суть. И если вы не знакомы с JNI, но тема интересна, то советую ознакомиться с первой и второй частью этой серии статей.

Читать далее

JNI Часть 2: Примеры

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

Всем привет! Меня зовут Роман Аймалетдинов, я разрабатываю клиентское приложение Ситимобил. Продолжаю свою серию статей по JNI, так как технология используется редко, но иногда она бывает очень полезной (или просто интересной). В этот раз я покажу примеры решений на JNI, которые совсем немного сложнее, чем hello world. И если вы не знакомы с JNI, то советую начать с первой части.

Читать далее

Мониторинг приложения Spring Boot с помощью Micrometer, Prometheus и Grafana, используя пользовательские метрики

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

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

В этой статье я покажу, как можно мониторить веб-приложение Spring Boot с помощью Micrometer, который отображает метрики нашего приложения, Prometheus, который хранит их, и Grafana для визуализации этих данных в виде графиков.

Читать далее

JNI Часть 1: Введение

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

Всем привет! Меня зовут Роман Аймалетдинов и я разрабатываю клиентское приложение Ситимобил. Решил написать небольшую серию из трех статей по JNI, так как технология используется редко, но иногда она бывает очень полезной. Несмотря на то, что я разрабатываю классические приложения под Android, иногда хочется посмотреть технологии рядом со своей специализацией.

Читать далее

Уж+ёж: реактивные компоненты в сервлетном окружении (3/3)

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

В предыдущей заметке было подробно рассмотрено одно из решений для обеспечения повсеместной доступности текущего обрабатываемого HTTP-запроса. В отличие от неё, нынешняя заметка посвящена не одному большому пункту, а двум компактным: поддержке AOP-аспектов и работе OpenFeign-клиентов в «гибридных» приложениях.

Читать далее

Java 18. Что нового добавили, и почему вам это пригодится

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

Выход Java 18 назначен на 22 марта 2022 года, ждать осталось недолго. Релиз уже несколько дней находится во второй фазе стабилизации, а значит, список фич уже финализирован, а значит настало время обратить на них наше внимание.

Сейчас у нас есть возможность попробовать новый функционал и понять, насколько он полезен. А пробовать есть что, несмотря на то, что это не LTS релиз!

В этой статье мы рассмотрим новые JEP и объясним, что они делают, и для чего они нужны. 

Хочу попробовать!

Публикуем проект с помощью Gradle и Sonatype в Maven Central без рук

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

Это такое приятное чувство, когда ты закончил какую-то задачу. А особенно когда твой проект уже готов к релизу. Остался лишь последний шаг.

Публикация проекта в Maven Central, имеено об этом я расскажу в этой статье. Как настроить Gradle, чтобы потом без труда настроить CI.

Читать далее ->

TINKOFF-INVEST. Разработка торгового робота на JAVA. Часть 2

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

Как же быстро летит время... Прошло почти 2 месяца с момента публикации моей первой статьи о работе с TINKOFF INVEST API – Разработка торгового робота на JAVA. Часть 1, в которой мы начали свое знакомство с инструментарием автоматизации торговли, предоставляемым брокером ТИНЬКОФФ.

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

Если нет желания вникать в код и читать статью, то можете сразу мотать к разделу "Демонстрация работы приложения".

Читать далее

5 лаконичных синтаксисов Java, которых мне не хватает в Kotlin

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

С 2016 года, после того, как я начал использовать Kotlin в Android-разработке, то ни разу не скучал по Java. В целом, Kotlin дал мне большее удовлетворение от разработки, чем Java для Android.

Тем не менее, время от времени я натыкаюсь на такие вещи, которых мне очень не хватает; того, как они были реализованы в Java. Ниже представлены 5 из них.

Читать далее

Как я отказался от миллионных RSU или опыт собеседования в Ozon

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

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

Читать далее

Как я запускал Spring Cloud

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

Меня зовут Аксёнов Вячеслав, я старший бэкенд Java/Kotlin разработчик в крупном энтерпрайзе. Однажды я попал на проект, полный микросервисов, в котором за конфигурацию отвечала такая штука как Spring Cloud. Чтобы разобраться как именно это работает я исследовал и прикрутил этот диковенный элемент к одному своему пет проекту. И в этой статье я пошагово покажу как я это сделал

Читать далее

Java: есть ли жизнь на десктопе?

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

Привет! Я Виктор Барсуков, Java-разработчик в Lamoda. В этой статье хочу рассказать о своем опыте разработки десктопного Java-приложения в рамках пет-проджекта. Что из этого получилось и что можно было бы сделать иначе.

Читать далее

Уж+ёж: реактивные компоненты в сервлетном окружении (2/3)

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

В предыдущей заметке было показано несколько подходов к управлению зависимостями в «гибридных» приложениях (использующих части сервлетного и реактивного стеков), а также вариант реализации универсального механизма для поддержки MDC-меток в логах. А в этой заметке речь пойдёт о том, как обеспечить доступность текущего обрабатываемого HTTP-запроса из любой точки бизнес-логики.

Читать далее

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

Агрегация данных во времени с Kafka Streams

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

В FunBox мы делаем продукты для мобильных операторов: различные порталы, геосервисы, платежи, мобильную рекламу и многое другое.  Один из наших проектов построен на микросервисной архитектуре. Основная функциональность связана с обработкой потоков событий, поэтому мы выбрали событийно-ориентированную архитектуру. Для организации централизованного, масштабируемого и быстрого механизма обмена сообщениями используем Apache Kafka. Это популярная платформа для решения подобных задач, плюс у неё есть интерфейс для организации потоковой обработки событий.

Читать далее

Да что это такое, ваше качество кода?

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

Салют, коллеги.

Лично я, очень люблю поговорить про качество, поддерживаемость и выразительность кода (эти умные слова, часто звучат на код ревью)

К сожалению, такие разговоры часто и быстро скатываются в холивар. Но, кажется, я нашел способ "вести разговоры о высоком без боли".

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

Читать далее

Подведение итогов первого года от JPA Buddy

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

2021-й год закончился, уже почти прошел первый месяц 2022-го. Прошлый год стал знаменательным для JPA Buddy: первый публичный релиз, встреча с первым пользователем и рост до одного из самых высокорейтинговых плагинов на IntelliJ IDEA Marketplace. А еще завтра у Баддика первая годовщина — ровно год назад вышел первый публичный релиз! В этой статье мы решили поделиться историей, которая стоит за JPA Buddy, достижениями 2021-го года, некоторыми интересными фактами, которые получили от нашего комьюнити, и планами на 2022-й.  

Читать далее

Введение в Maven Toolchain

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

Java развивается гораздо быстрее, чем раньше. Но не все проекты, над которыми мы работаем, поспевают за этим темпом.

У меня есть проекты на Java 8, 11 и 17, и иногда я хочу поиграть с имеющимися сборками более новых версий.

Как обеспечить их создание без необходимости постоянно переключать среды выполнения Java?

Toolchain спешит на помощь!

Читать далее

Собираем многомодульный Gradle проект в Gitlab CI

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

Что может быть проще? Пишем команду сборкиgradle clean buildи все готово. На первый взгяд все действительно так, и займет это немного время. Но со временем кодовая база и, соответственно, количество тестов (ну я очень на это надесь) будет расти, вы не успеете опомниться как сборка будет у вас занимать уже 10 или больше минут

Читать далее

Как улучшить межсерверное взаимодействие и сэкономить время разработчика

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

Привет! Я Алексей, Java-разработчик. В статье поделился опытом внедрения подхода Contract-First в backend. 

Под катом подробности:

— что такое Code-First и зачем переходить на Contract-First,

— как перестать писать API-объекты руками и сэкономить 12 человеко-недель в спринт,

— как поддерживать однотипный код и API, если у вас 100+ микросервисов и 60 бэкендеров.

Читать о внедрении Contract-First

Уж+ёж: реактивные компоненты в сервлетном окружении (1/3)

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

Когда рассказывают о прелестях реактивного фреймворка Spring WebFlux и его подкапотном Project Reactor, для примера чаще всего показывают новые, создаваемые с нуля приложения. Однако на практике приходится строить из готовых блоков, в том числе из собственных прикладных и инфраструктурных модулей, которые уже написаны в императивном стиле и опираются на сервлетный стек. Как правило, такие модули нельзя/некогда/неохота (нужное подчеркнуть) переписывать, поэтому надо как-то адаптировать их к создаваемому реактивному приложению с минимумом правок (а лучше без них вовсе). О некоторых подходах к такой задаче и пойдёт речь в этой серии заметок.

Читать далее

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