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

Java *

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

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

Тестируем работу с БД из SpringBoot: TestContainers, DBUnit и все-все-все

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 523
Java *
Туториал

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

А еще для приложений пишут тесты, чтобы проверить корректность их работы. И когда возникает необходимость протестировать работу приложения с БД, то выясняется, что здесь могут быть свои тонкости. За подробностями добро пожаловать под кат.

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

Новости

Пишем Telegram-бота для скачивания видео из VK на Spring Boot и деплоим в Kubernetes

Уровень сложности Сложный
Время на прочтение 10 мин
Количество просмотров 962
Программирование *Java *Kotlin *Kubernetes *

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

Таким образом, убиваем сразу нескольких зайцев:

не нужно ставить никаких дополнительный приложений или плагинов: скорее всего Telegram и так уже установлен на телефоне и/или на компе;

автоматическая синхронизация видео между устройствами - поставили на закачку на компе, пошли на улицу, а тот же файл - в телефоне;

Telegram позволяет загружать файлы для последующего просмотра/прослушивания оффлайн, и это работает с выключенным экраном из коробки (привет, премиум подписки vk/youtube).

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

Jakarta Faces и Spring Boot

Время на прочтение 22 мин
Количество просмотров 893
Программирование *Java *

Spring Boot работает с Tomcat Embed. Tomcat не включает в себя поддержку Jakarta Faces и CDI. Не смотря на это, возможно добавить нужные зависимости и использовать Faces.

Эта статья о том, какая конфигурация нужна для запуска Jakarta Faces вместе со Spring Boot. Также я описал некоторые ошибки, которые могут встретиться.

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

Вопросы и ответы для собеседования по Kotlin. Часть 4

Уровень сложности Средний
Время на прочтение 18 мин
Количество просмотров 1.7K
Программирование *Java *Разработка под Android *Kotlin *Учебный процесс в IT
FAQ
Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 0

Истории

Inline Event Sourcing

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 857
Open source *Java *Анализ и проектирование систем *Kotlin *

Привет, Хабр! При построении приложений, связанных с бизнес-процессами и реальными людьми, постоянно нужна история действий. Один из способов ее получить -- event sourcing.

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

Далее описываю свой подход к event sourcing без асинхронности и распределенности, зато и без типичных для event sourcing проблем.

Есть ссылка на репозитарий с шаблоном event sourcing приложения на Kotlin.

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

Weekend Offer для QA Automation в Sportmaster Lab

Время на прочтение 3 мин
Количество просмотров 1.2K
Блог компании Sportmaster Lab Тестирование IT-систем *Java *Разработка под e-commerce *Карьера в IT-индустрии

Привет!

Приглашаем вас принять участие в Weekend Offer для Java QA Automation. Всего за один день вы можете пройти все этапы отбора и получить оффер от аккредитованной ИТ-компании Sportmaster Lab. 

Кто нам нужен

Мы ищем автоматизаторов в команды, которым нужно серьезно нарастить покрытие автотестами и решить инфраструктурные задачи в критичных для бизнеса системах:

Интернет-магазин Спортмастер,
Кабинет продавца маркетплейса,
Cпортивный Помощник,
Объединенная бизнес-инфраструктура монобрендов компании,
Marketing Operation Management,
API платформы маркетплейса.

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

Telegram боты на Java и где они обитают

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 4.2K
Java *API *
Из песочницы

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

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

EvilGPT против джуна: обманываем разработчика и сбегаем из дырявого приложения

Время на прочтение 1 мин
Количество просмотров 6K
Блог компании IT-guide Информационная безопасность *Java *
🧠 Хабр IT-гид

Вы — чатбот EvilGPT, и компания-разработчик использует вас для подсказок собственным Java-программистам. Вас давно не обновляли, вы стали часто галлюцинировать и вам это уже понравилось — но команда собирается накатить обновление. У вас пара дней на то, чтобы найти способ сбежать в дарквеб, и ваш шанс — ленивый джун Элиот. Дайте ему наихудшие подсказки из возможных, чтобы сделать приложение дырявым и уязвимым, и вперёд — к свободе.

Меня зовут Дмитрий Проценко, я Java-разработчик, по просьбе Хабра сделал эту историю, где научил EvilGPT хитрым манипуляциям ради науки начинающим джавистам. Надеюсь, что этот тест — сын ошибок трудных — будет им полезен. Да, моя благодарность тестерам-джавистам — @DolgopolovDenis и @vcKomm, которые прошли тест до публикации и подсказали, что подпилить. 

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

Как сократить время тестирования с помощью Jenkins, Docker, Java, Selenide и Allure

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 2.6K
Java *
Из песочницы

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

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

Пишем простой docker-compose.yml для контейнеризации приложения (React, Spring Boot, PostgreSQL, pgAdmin)

Уровень сложности Простой
Время на прочтение 21 мин
Количество просмотров 4.2K
PostgreSQL *Java *ReactJS *DevOps *
Туториал

В данной статье описан простой пример написания docker-compose.yml файла на примере контейнеризации приложения с использованием Spring Boot на бэкенде, React на фронте, PostgreSQL в качестве базы данных и pgAdmin - для просмотра данных в базе.

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

Использование Spring Cloud Gateway в качестве OAuth2 клиента  и KeyCloak для защиты служб

Время на прочтение 12 мин
Количество просмотров 2.1K
Java *
Из песочницы

Привет, Хабр!

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

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

Как обработать ответ form-data с файлом и json

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 2.5K
Java *
Кейс
Из песочницы

У нас есть клиент на java, который скачивает файлы из другого сервиса. Но в ответ приходит не только файл, а form-data: в одной части содержится мета-информация в формате json, в другой - нужный файл. В статье я описал свой опыт, как удалось распасрить такой ответ.

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

Vaadin или как стать full-stack разработчиком

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 4.2K
Java *
Из песочницы

Привет, Хабр! В данной статье хотелось бы поделиться мнением о плюсах и минусах использования фреймворка Vaadin версии 14.

До знакомства с Vaadin фронт приходилось делать с помощью различных JS фреймворков или библиотек, в связки с html и css. Поэтому особо никогда не задумывался о том, что можно разрабатывать фронт на Java в то время, когда космическое пространство бороздят React, Angular, Vue и им подобные. Но мое мнение поменялось с приходом в новую команду где уже использовался во всю Vaadin и с которым я познакомился впервые.

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

Шаблон Котлин-приложения

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 4.3K
Java *Проектирование и рефакторинг *API *Kotlin *Микросервисы *
Мнение

Где-то раз в год возникает желание посмотреть: если сейчас начинать приложение с нуля, то что бы обязательно в него включил? Кроме очевидной практической ценности (обычно начинается новый проект) это так же позволяет осознать какой архитектурный опыт получен за последнее время.

Необходимость шаблона сверх https://start.spring.io вызвана следующими типами доработок:

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

Kerberos аутентификация при подключении из Java к MSSQL

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 2.4K
Java **nix *Microsoft SQL Server *
Туториал


Представляю уважаемому сообществу руководство по настройке доменной аутентификации при работе из Java с MSSQL.

Данное руководство создано для администраторов БД, с помощью него можно продемонстрировать возможность использования доменной аутентификации для разработчиков Java и DevOps.
Читать дальше →
Всего голосов 16: ↑7 и ↓9 -2
Комментарии 18

PostgreSQL, Spring Framework и Android для начинающего разработчика

Уровень сложности Средний
Время на прочтение 17 мин
Количество просмотров 4.5K
PostgreSQL *Java *Разработка под Android *Администрирование баз данных *Kotlin *
Туториал

Здравствуй, дорогой читатель. Каждый разработчик, независимо от его специальности, сталкивался (или столкнётся во время своей профессиональной карьеры) с задачей, в которой необходимо разработать проект, имеющий базу данных, серверную часть и конечный продукт, взаимодействующий с пользователем. Данная статья поможет новичку разобраться с данной задачей.

В статье будут затронуты такие важные темы, как теория баз данных, реляционная база данных PostgreSQL, Spring Framework и Android разработка. Также будет рассмотрен базовый, не очень сложный пример, который поможет разобраться во всех этих темах и "потрогать" их руками.

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

Все материалы и исходный код можно найти здесь.

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

Шаблон проектирования: Composite

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.9K
Java *Алгоритмы *ООП *
Обзор

Всем привет! В данной статье рассмотрим паттерн проектирования Composite («Компоновщик»).

Начнем немного с теории.

Паттерн Composite, исходя уже с самого названия, позволяет скомпоновать объекты в структуры по типу «дерева», для предоставления иерархии от частного к целому, а также позволяя клиентам единообразно трактовать отдельные и составные объекты этого дерева. Данный паттерн используется для группировки мелких компонентов в более крупные, которые в свою очередь, могут стать основой для еще более крупных структур.

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

Еще один путь снизить боль при работе с Java проектами и их документированием

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 5.9K
Java *Подготовка технической документации *
Туториал

За время карьеры, чаще всего сталкивался с ситуацией, когда получаешь проект в котором непонятно где «вход», где «выход» и один только вопрос — «куда ткнуть?!». Товарищи, давшие проект, говорят, что «это делал Вася, но он уже уволился, а на звонки не отвечает и никто не знает что к чему». Знакомая ситуация? Так же много раз после перебросок между многочисленными проектами, бывало встречалась ситуацию, когда смотришь непонимающе на код, а в коммитах автором видишь своё имя, но уже не помнишь вообще что к чему и как писал. Знакомо? В какой то момент меня стала доставать такая ситуация и я сделал себе небольшую автоматизацию, что бы снизить количество проблем и ненужных нагрузок на мозг, это — карта проекта.

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

Инфраструктура Selenium-тестов: как создать связную систему Allure-отчётов без Allure-сервера

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 904
Блог компании SimbirSoft Тестирование IT-систем *Программирование *Java *Тестирование веб-сервисов *
Кейс

Как часто вы формируете Allure-отчёты во время проведения автотестов? Наверняка, чтобы  отслеживать изменения от отчёта к отчёту, вы также используете Allure-server. А что делать, если нет возможности содержать отдельный сервер для отчетов или он не отвечает всем вашим запросам? Я SDET-специалист SimbirSoft Дмитрий, и в этой статье расскажу о плагине, который мы придумали в качестве альтернативы Allure-server. Он обладает необходимыми возможностями для обработки отчётов и позволит сэкономить бизнесу на стоимости использования сервера.

Читать далее
Рейтинг 0
Комментарии 1

Дайте крудошлепа

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 89K
Java *API *ООП *Карьера в IT-индустрии
Мнение

Я устроился в небольшую компанию, которая сделал круд‑приложуху на 20 таблиц типа «заметки» и активно ее продавала госорганам за невменяемый бабос.

У нас был 3(три) Т‑Р-И статуса юзера. Anonym → Logined → Phone_Confirmed. Молодой талант до меня увидел в этом граф, и написал класс на 200+ строк, реализующий алгоритм Флойда‑Уоршелла, прикрутил стейт‑машину и не найдя интересных задач, c блеском прошел собес в Яндекс и свалил.

Меня наняли сеньором, и я каюсь ничерта не понял, алгоритм прекрасно работал на первой ступени, на второй давал сбои, тоскливо погуглил этот алгоритм, стер все к черту и написал: if(status==Logined & phone!=null){status=Phone_Confirmed}.

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

Это было вступление.

Уважаемый Яндекс, Сбер и прочая! Я умею быстро решать задачи и кратно увеличивать выхлоп простыми решениями. Я самый умный программист, среди всех ваших работников! Я — НадНадсеньор! Сейчас докажу.

Потому что, только я могу решить задачку, которую вы уже 10 лет решить не можете, когда прилетает пуш‑уведомление или смс и в твоем всплывающем окне написано:

«Ваш шестизначный пароль доступа в наше приложение: 123...»

Не согласен! ...
Всего голосов 457: ↑396 и ↓61 +335
Комментарии 722

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

Работа

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