Как стать автором
Обновить
117.59
Рейтинг

Java *

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

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

Love, Spring and HTTP Bugs

Блог компании GlowByte Java *

Привет, Хабр! Мы команда Marketing Management GlowByte, занимаемся автоматизацией маркетинговых процессов в крупных компаниях. Решили написать небольшую статью, которая будет интересна неравнодушным к Java. Хотим поделиться на первый взгляд простыми особенностями поведения библиотек Spring Security, Spring Web, которые могут сбить с толку разработчиков, которые никогда не сталкивались с такими ситуациями.

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

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

Новости

Что Java-разработчикам расскажут на Joker 2022

Блог компании JUG Ru Group Высокая производительность *Java *Конференции

Какой способ бенчмаркать появился в 2022-м? Как эволюционировала вариантность типов от первых версий Java и до Kotlin? Как хранить JSON в базе данных, не привлекая внимания DBA?

В программе конференции Joker нашлось место и этим вопросам, и многим другим. Сейчас в эту программу вносят последние штрихи, и делимся с Хабром описаниями всех докладов, разбитыми по тематике.

Сам Joker пройдёт уже скоро. Дни 8 и 9 ноября будут полностью онлайновыми, а вот 19 ноября можно будет прийти на московскую площадку и как следует пообщаться (но для тех, кто не готов добираться до Москвы, в этот день тоже возможно удалённое участие).

Подробности вроде точного расписания — на сайте конференции, билеты там же.

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

Spring Data JPA: метод save и границы его применимости

Блог компании Росбанк Java *

Привет! Меня зовут Семён Киреков, я Java-разработчик и тимлид в Центре Big Data @МТС Digital и Java-декан в МТС Тета — образовательном стартапе в рамках МТС. На митапе Росбанка и Jug.ru я рассказывал о том, как устроен метод Save в Spring Data JPA, почему он может вызвать лишний select, как решить эту проблему и при чем здесь доменные события Spring. Здесь я поделюсь этой информацией с вами.

Читать далее
Рейтинг 0
Просмотры 337
Комментарии 0

Пайплайн gitlab для Spring REST приложения. Часть 1

Блог компании OTUS Java *
Recovery mode

В статье описан мой первый опыт подготовки нетривиального пайплайна gitlab ci/cd при разработке микросервиса.

Читать далее
Всего голосов 12: ↑7 и ↓5 +2
Просмотры 891
Комментарии 0

Пишем код без NPE. Настройка Intellij Idea и CI

Java *
Из песочницы

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

Читать далее
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 2.4K
Комментарии 3

Передача цифровых данных по рации с помощью мобильного приложения. Часть 1

Java *Разработка мобильных приложений *Разработка под Android *
Из песочницы

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

Читать далее
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 7.6K
Комментарии 34

Ускоряем Groovy скрипты

Java *Groovy & Grails *
Tutorial

AST (Abstract Syntax Tree) преобразование для исполнения Groovy скриптов с @CompileStatic


Введение


Предположим у Вас есть некоторый скрипт который работает с некоторым бизнес объектом, скажем Person.


Groovy script


    person.name = 'Peter'

У Groovy есть замечательная фича @CompileStatic, которая заставляет компилятор Groovy компилировать скриптовый код статически (как это делает компилятор Java), что значительно ускоряет исполнение скрипта, но к сожалению в нашем случае простого (plain) скрипта у нас просто нет места где мы можем применить эту аннотацию. Вы знаете что @CompileStatic применяется либо к методу или классу. Давай сначала попробуем решить эту проблему вручную.

Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 1.5K
Комментарии 0

Внутренний мир: Project Reactor

Java *

У многих из нас, при использовании какого-либо инструмента программирования, возникал вопрос: “Как? Как это работает?”. Часто при возникновении подобных вопросов я обращаюсь к гуглу, который популярным образом рассказывает общие принципы работы того или иного механизма. Но наверняка среди читателей есть те, которые, прочитав несколько статей, подумали: "Да, это интересно и, вроде, понятно. Но все таки, как оно работает?".

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

Оптимизация и кастомизация запросов с использованием Spring Cache и Scope Bean

Блог компании Росбанк Java *ECM/СЭД *

Привет! Меня зовут Алексей Салаев, я Java-разработчик команды Corp Digital в Росбанке. В этом посте я расскажу, как можно оптимизировать и кастомизировать запросы в Spring: опишу потенциальные проблемы, оценю возможные пути решения и проиллюстрирую всё примерами.

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

Декомпозируем регулярные выражения

PHP *JavaScript *Программирование *Java *Регулярные выражения *
Tutorial

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

Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стиля. Вот такая регулярка – совершенно обычное дело:

/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((19|20)\d\d)$/

А чо не так-то?
Всего голосов 24: ↑17 и ↓7 +10
Просмотры 4.3K
Комментарии 47

Синхронный «запрос-ответ» с использованием REST и Apache Kafka

Блог компании Иннотех Высокая производительность *Программирование *Java *Apache *

Подружить REST и Apache Kafka кажется нетривиальной задачей. Однако с ней удалось справиться экспертам Группы «Иннотех». Ведущий разработчик Кирилл Воронин рассказал подробности решения задачи перевода асинхронных запросов в синхронные.

Читать далее
Всего голосов 22: ↑12 и ↓10 +2
Просмотры 6.8K
Комментарии 11

Первые шаги в анализе безопасности мобильных приложений: разбираемся на примере Allsafe

Блог компании Ростелеком-Солар Информационная безопасность *Java *DevOps *

Allsafe — это приложение, намеренно спроектированное небезопасным. Для чего это нужно? Оно предназначено для обучения и поиска различных уязвимостей. В отличие от других подобных приложений для Android, оно использует современные библиотеки и технологии. Меньше похоже на CTF и больше похоже на реальное приложение. В этом посте мы разберем его уязвимости с точки зрения двух подходов: статического и динамического тестирования безопасности.

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

Как программист настроил автоматическое развертывание бекенда с базой данных

Java *DevOps *
Tutorial

Всем привет, хабровчане и гости сайта

Сегодня решил рассказать о своем опыте, как я при помощи docker-compose и bash скрипта настроил развертывание бекенд приложения с базой данных.

Какая была идея? Хотелось при помощи одной команды в терминале разворачивать Java приложение с базой данных так, чтобы можно было передать все необходимые переменные в момент запуска и нигде не хранить их.
Так, чтобы можно было развернуть новую версию приложения даже с телефона, просто заранее заготовив необходимую команду.

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

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

Дело было так...
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 7K
Комментарии 21

Выкуси, Telegram Premium — бот-конвертер голосовых сообщений для обхода ограничений (Java, Spring, вебхуки, ffmpeg)

Мессенджеры *Java *

Это третья статья в моей серии "для самых маленьких" - первая была посвящена "классическому" Telegram-боту, наследуемому от TelegramLongPollingBot, вторая - боту на вебхуках на Spring с блекджеком и ш БД Redis и клавиатурами.

Для кого написано

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

Я пытаюсь писать как для себя, а не сразу для умных — надеюсь, кому-нибудь это поможет быстрее въехать в тему.

Предыстория

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

Большинство преимуществ Telegram Premium не вызывают никаких вопросов, но запрет на отправку себе голосовых сообщений - это низко, Telegram.

К счастью, наш любимый мессенджер настолько хорош, что обойти эту несправедливость можно с помощью очень простого Voice4PremiumBot.

На дно!
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 5.6K
Комментарии 18

Java и низкая задержка

Блог компании RUVDS.com Высокая производительность *Java *Разработка под Linux *
Перевод
Источник

Я уже сбился со счёта, сколько раз мне говорили, что Java — неподходящий язык для разработки приложений, основным требованием к которым является высокая производительность. Обычно первым делом я прошу уточнить, что подразумевается под словом «производительность», поскольку две самые популярные метрики — пропускная способность и задержка — иногда конфликтуют друг с другом, а способы оптимизации одной из них существенно ухудшают вторую.

Существуют методики разработки Java-приложений, которые соответствуют требованиям к производительности (или даже превосходят их) приложений, созданных на языках, традиционно применяемых для этой цели. Однако даже этого может быть недостаточно, чтобы обеспечить наилучшую производительность с точки зрения задержек. Java-приложениям по-прежнему приходится полагаться на операционную систему в вопросе предоставления доступа к оборудованию. Обычно чувствительные к задержке приложения (часто называемые «приложениями реального времени») лучше всего работают, когда имеют практически прямой доступ к оборудованию, то же самое относится и к Java. В этой статье я познакомлю вас с методиками, которые можно применять, когда мы хотим, чтобы приложения максимально эффективно задействовали системные ресурсы.
Читать дальше →
Всего голосов 45: ↑41 и ↓4 +37
Просмотры 5.6K
Комментарии 29

Конструктор триггеров в Telegram. Или как мы сделали простейшего, но полезного бота

Java *API *
Из песочницы

Привет! Меня зовут Боровков Евгений и я предприниматель. В этой статье я расскажу про свой pet-проект. Или как я решил проблему вечного поиска информации прямо в уютном Телеграммчике.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 8.4K
Комментарии 30

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

Работа

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