Обновить
166.5

Java *

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

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

Как мы выбирали процессный движок: месяц мучений ради идеала

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

Хабр, привет! Меня зовут Артем Терзьян, я Java-разработчик в IBS. Именно на мои плечи пала нелегкая задача выбора идеального BPMN-движка для реализации с его помощью бизнес-процессов в рамках нашей собственной платформы. Надеюсь, приведенный обзор поможет кому-то сэкономить время при столкновении с аналогичной задачей.

Подробнее о моих экспериментах

Как работают сервисы карт и маршрутизации

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

В период моей жизни, когда я работал в Санкт-Петербурге, пришла мне интереснейшая задача — создать и интегрировать в один проект функционал карт. По ограничениям бизнес требований, карта должна работать в условиях отсутствия интернета, при этом удовлетворять требования визуального отображения и построения маршрутов. Значит не было возможности использовать готовый API Яндекса или Google, так что пришлось реализовывать механизмы самому.

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

Как работают сервисы карт и маршрутизации?

От «Hello World» до включения программы в реестр российского ПО

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

В 2017 году я начал изучать Java. И, чтобы как-то визуализировать результат трудов, я решил сделать десктопное приложение (функционал продублирован в Telegram боте).

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

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

Читать далее

Строим свой SSO сервер используя Spring Authorization Server

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

На днях я решил сделать под все свои pet-проекты собственный SSO сервис, дабы не заморачиваться каждый раз с авторизацией и аутентификацией. Возиться с этим особо долго мне не хотелось. Все таки это для pet-проектов. Поэтому выбор пал на Spring Security. Мне давно уже было интересно посмотреть в действии как на Spring Boot 3, так и новый Spring Authorization Server версии 1.x.x. В данной статье речь пойдёт о проблемах и их решениях при построении собственного SSO. А также я поставил себе ряд интересных требований, с которыми я постараюсь справиться и рассказать о своём опыте.

Читать далее

Python или Java: что выбрать родителю для школьника?

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

Кто-то выберет Python, потому что в нем начало и конец класса или функции обозначается простым отступом (табуляцией), а в Java для разделения блоков кода применяют надоевшие круглые скобки. А кому-то друзья-инсайдеры в программировании посоветуют учить Java. Среди программистов популярно мнение, что новичку лучше сначала освоить компилируемый язык. Скорее всего, категорический ответ на вопрос: «что лучше java или python» дать нельзя. У каждого свои цели и своя ситуация. Поговорим об особенностях двух языков программирования, которые делают их предпочтительными в тех или иных обстоятельствах.

Читать далее

Как не превратить корпоративный GitHub в склад старого опенсорса

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

Всем привет, меня зовут Таня Хомякова, я Java-разработчик в Lamoda Tech. Моя команда отвечает за автоматизацию и поддержку процессов на двух складах Lamoda. Обычно наш код не покидает пределов внутренних репозиториев, так как это исключительно внутренняя разработка, но бывают и исключения. 

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

Читать далее

Сам себе игровая консоль: превращаем планшет с нерабочим тачскрином в игровой девайс из 8 кнопок и микроконтроллера

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

К сожалению, в наше время многие старые, но весьма неплохие по характеристикам гаджеты отправляются напрямую в помойку, и их владельцы не подозревают, что им можно найти применение. Сервер, мультимедийная-станция, да даже просто как TV-приставка — люди в упор не замечают сфер, где старенький планшет мог бы быть полезен. Но как быть, если посвящаешь жизнь портативным гаджетам, кодингу и копанию в железе? Правильно: сделать довольно мощную игровую консоль из старого планшета самому! Сегодня вам расскажу, как я сделал свою портативную приставку из планшета с нерабочим тачскрином, Raspberry Pi Pico и 8 кнопок! За рабочим результатом прячется несколько дней работы: поиск UART на плате, разработка контроллера геймпада на базе RPi Pico, написание приложения-сервиса, которое слушает события и отправляет их в подсистему ввода Linux в обход Android. Интересно? Тогда жду вас под катом!
Читать дальше →

Введение в GitHub Actions. Делаем пайплайн для деплоя Spring Boot проекта на VPS с помощью Docker

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

В этой статье я расскажу как построить простой пайплайн для деплоя Spring Boot проекта на сервере используя GitHub Actions и Docker.

Читать далее

Интеграция с 1С: то, о чем не рассказывают в книгах

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

Привет всем гуру всемогущих языков программирования! Меня зовут Иван, я возглавляю backend-направление в компании SimbirSoft. Для своей первой статьи на Хабр решил поднять вопрос, как правильно сделать интеграцию с любой платформой 1С, используя Java, С# и другие языки программирования. 

Пару слов обо мне и моем опыте работы с вышеупомянутым стеком. В свое время я писал всевозможные интеграции со стороны 1С. Около трех лет приходилось решать интеграционные вопросы по взаимодействию с производственными системами (MES), системами управлениями складом (WMS), системами управления транспортом и даже со счетчиками учета электроэнергии. Но судьба забросила меня в мир Java, и мои взгляды на разные аспекты интеграции с 1С-платформами сильно изменились.

В этой статье я расскажу о своем опыте интеграции и сложностях, которые могут при этом возникнуть. Я искренне считаю, что множества проблем можно избежать, если специалист представляет, как работают механизмы интеграций в обеих платформах. Рассмотрим на примере Java, но эти подходы доступны и для других языков. Про интеграцию подробно рассказано в книге «Технологии интеграции 1С:Предприятия 8.3» Елены Хрусталевой. В этом материале я приведу несколько методов взаимодействия, плюсы и минусы подходов и их применимость для разных компаний. Помимо этого, рассмотрю самый удобный, на мой взгляд, метод, который не представлен в этой книге.

Статья будет полезна специалистам 1С, Java-разработчикам, а также проджект-менеджерам и владельцам продуктов.

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

Jakarta Faces и Spring Boot

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

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

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

Читать далее

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

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

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

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 мин
Охват и читатели23K

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

Читать далее

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 мин
Охват и читатели80K

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

Читать далее

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

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

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

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

Читать далее

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