Обновить
512K+

Java *

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

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

Jakarta Faces и Spring Boot

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

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

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

Читать далее

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

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

Inline Event Sourcing

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

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

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

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

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

Читать далее

Weekend Offer для QA Automation в Sportmaster Lab

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

Привет!

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

Кто нам нужен

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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


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

Данное руководство создано для администраторов БД, с помощью него можно продемонстрировать возможность использования доменной аутентификации для разработчиков Java и DevOps.
Читать дальше →

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

Не согласен! ...

Реализация авторизации на основе ролей в Spring Boot с помощью Keycloak

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

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

Читать далее

О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования

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

Цель настоящей статьи - изучить лямбда функции: чем они отличаются от обычных функций и изучить, как они реализованы в С++, Python 3 и Java.

На протяжении этой статьи я буду использовать godbolt.org, чтобы компилировать код и изучать машинный код или байт код. Я думаю, что при чтении статьи может быть удобнее смотреть не на приведённый машинный код в статье, а на этом сайте.

Читать далее

Как за полчаса написать простую читалку книг FB2 для десктопа на Java

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

Недавно мне для личных целей понадобилось написать читалку FB2. И сразу я столкнулась с тем, что информации по теме минимум. Палочка-выручалочка под названием ChatGPT выдал что-то невразумительное в ответ на довольно подробный запрос. К тому же, никаких готовых библиотек, чтобы по-быстренькому наваять ридер, я также не смогла обнаружить. Хотя искала долго и упорно, как Чубакка расческу.

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

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

Читать далее