Обновить
128K+

Java *

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

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

Тестирование одного приложения в двух конфигурациях в рамках одного pipeline

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

Привет, Хабр! Меня зовут Михаил. Я занимаюсь тестированием с июня 2018 года. Начинал, как и все, с низов и «шарашкиных контор», затем вырос до серьезных компаний, как в хард-, так и в софт-скиллах. На данный момент работаю в М.Тех (аккредитованная IT-дочка МВидео - Эльдорадо). Состою в команде, отвечающей за сервисы по обработке заказов. Занимаюсь тест-дизайном, участвую в оценке задач, тестированием ТЗ и прочими «тестировщическими вещами». Пишу тест-кейсы на Cucumber-JVM и занимаюсь поддержкой тестового фреймворка, а также с сентября 2021 провожу собеседования новых сотрудников и их первичный onboarding. Возможно, я даже Вас собеседовал =)

Читать далее

Построение сложных маршрутов в Apache Camel с помощью компонента Direct

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

В данной статье я бы хотел раскрыть тему создания сложных маршрутов в Apache Camel с помощью компонента Direct.

Читать далее

Java Stream API #неОпятьАСнова #javaJunior #java8

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

Эта статья, как и все последующие – моя попытка структурировать полученные знания в процессе изучения Java. Здесь тезисно собрана вся основная информация по теме и те формулировки, которые показались мне наиболее удачными и понятными.
Это мой конспект, если хотите.

Статья будет полезна тем, кто изучает или повторяет основы Java Core.
И тем, кто готовится к собеседованию.

Читать далее

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

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

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

Ссылка на первую часть.

Читать далее

Love, Spring and HTTP Bugs

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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


Введение


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


Groovy script


    person.name = 'Peter'

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

Читать дальше →

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

А чо не так-то?

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

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

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

Читать далее

Многопоточность Java. #неОпятьАСнова #javaJunior #javaCore

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

Эта статья, как и все последующие – моя попытка структурировать полученные знания в процессе изучения Java. Здесь тезисно собрана вся основная информация по теме и те формулировки, которые показались мне наиболее удачными и понятными.
Это мой конспект, если хотите.

Статья будет полезна тем, кто изучает или повторяет основы Java Core.
И тем, кто готовится к собеседованию.

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

Дело было так...