Обновить
512K+

Java *

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

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

Предположим, нам дали два целых числа, но не примитивы, а Integer-объекты…

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

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

Итак, один из подвопросов, традиционно выносимых на экзамен — будь это сертификация Oracle или сертификации для Java‑разработчиков от Учебного центра IBS, — интересуется разработкой кода с использованием классов‑оболочек, в частности, Boolean, Double или, скажем, Integer.

Задача и ее решение

Многопоточность в мобильной разработке

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

Всем привет! На связи Сергей, Android-разработчик Студии Олега Чулакова на проектах Сбера.

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

Читать далее

Консолидация отображения данных с использованием протокола OData

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

Появилась у нас тут задачка, вывести на портале Incomand данные из разных подсистем (1С, Тезис…) . Конечно можно было бы написать плагины, каждый из которых слазил бы в подсистему, получил данные и показал их на портале - НО - мы бы получили p2p и спагетти, порталу пришлось бы разбираться с форматами и протоколами работы каждой системы….

Читать далее

Работа Apache Kafka на примерах. Поднимаем Kafka Cluster используя docker-compose

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

В этой статье продемонстрирую и объясню работу Kafka, используя как можно меньше определений и больше практики. Мы рассмотрим 3 сценария работы с Kafka. Для последнего сценария мы поднимем Kafka Cluster в Docker и с помощью UI увидим, как происходит общение между сервисами.

Читать далее

Что такое абстрактные классы и методы в Java

Время на прочтение7 мин
Охват и читатели40K
Абстрагирование – это процесс, в ходе которого от пользователя скрываются многие детали реализации, а предоставляются только те детали, которые действительно важны. Так удаётся сфокусироваться на том, что делает объект, а не как он это делает.

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

Если вы новичок в Java или хотите освежить знания о том, чем отличаются абстрактные классы или интерфейсы, то можете почитать руководство и на эту тему: Difference Between Interface and Abstract class in Java.
Читать дальше →

Spring Data JPA: разница между методами findById, getOne, getById и findOne

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

JpaRepository Spring Data предоставляет огромный набор методов, упрощающих реализацию операций над базой данных. С их помощью вы можете сохранять, удалять и считывать объект сущности (entity object). Однако одна из немногих проблем, являющаяся следствием изобилия возможностей, которые дают нам эти интерфейсы, — это выбор правильного метода для вашего конкретного случая. И иногда это совсем не так просто, как могло бы показаться с первого взгляда. Хорошим примером этой проблемы являются методы findById, getOne, getById, и findOne. Судя по их именам, все они делают одно и то же. Так когда и какой из них вы должны использовать?

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

Читать далее

Как в 3 раза снизить затраты на отказоустойчивую инфраструктуру, переехав с Hazelcast на Redis

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

Redis на хайпе. Но мы переехали на него с Hazelcast не из-за этого, а потому, что в какой-то момент осознали, что не замечать сколько инцидентов у нас возникает из-за Hazelcast, дальше невозможно. Сегодня расскажу вам замечательную историю как мы всем Альфа-Мобайлом сменяли одну технологию на другую.

Читать далее

Telegram клиент. TDLib и Spring Boot

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

Всем привет! В данной статье я хотел бы рассмотреть процесс создания Telegram клиента с помощью кроссплатформенной библиотеки TDLib, Java и Spring Boot.

Читать далее

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

На днях я решил сделать под все свои 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 мин
Охват и читатели4K

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

Jakarta Faces и Spring Boot

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

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

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

Читать далее