Обновить
170.78

Java *

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

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

Как я перешёл на тёмную сторону: путь из Андроида в бэкенд

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

Привет, Хабр! Меня зовут Андрей. 7 лет я разрабатываю под Android. Год назад я писал код для мобильного приложения банка и особо не задумывался о переходе на другие задачи.

В один прекрасный день мне прилетела таска — добавить параметр в диплинк на Андроиде. Потом меня попросили добавить его ещё и на бэке. Я закоммитил, запушил, проверил — всё работает. Ребята в шутку предложили мне перейти в бэкендеры из Андроида. Тут я задумался, а шутка ли это, челлендж показался мне интересным.

Расскажу о своих экспериментах с бэком в формате дневника — вдруг вы решите повторить мой опыт или поделитесь, как проходили этот путь сами.

Читать далее

Простой, полезный проект интеграционных тестов

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

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

По отзывам моих ревьюеров, эта статья ‑ «Инструкция по входу в автоматизированное тестирование и настройка фрейма».

В статье приведена информация о специфике, мотивации создания интеграционных тестов, обосновании выбранных технологий. Как бонус, в конце будет ссылка на обезличенный проект, который с минимальной адаптацией, запускается в работу в краткие сроки. Но «подпилить» его придется.

Читать далее

Расширение PVS-Studio для Visual Studio Code: поиск ошибок в Java-коде

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

Java-разработчик и предпочитаешь работать в VS Code? Для тебя есть хорошая новость! Теперь ты можешь писать ещё более надёжный код вместе с расширением PVS-Studio, которое помогает находить ошибки в Java-проектах и не только.

Читать далее

MyBatis «на минималках»

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

Привет, Хабр! Меня зовут Пётр Гусаров, я Java‑программист в CDEK. В этой статье расскажу про не очень распространённый фреймворк MyBatis.

Почему MyBatis? Потому что мы в CDEK используем его в большинстве проектов, и в деле он весьма неплохо себя показал. Немного сложен и непривычен на этапе входа, но все эти минусы перекрываются его гибкостью. «Да есть Hibernate, Jooq, JDBC и еще что‑то», — скажут бывалые. Есть, но в данной статье речь пойдёт о MyBatis.

Статья будет полезна новичкам, которые хотели попробовать данный фреймворк или попробовали, но что‑то не получилось.

Читать далее

Интеграционное тестирование, если у вас R2DBC и liquibase

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

Уже немало копий поломали в поиске грааля идеального способа интеграционного тестирования с использованием БД.

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

Тестировать

Java Digest #9

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

Всем привет! ? ? ? Мы Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки — и решили делиться этим не только с коллегами, но и со всем сообществом.

Читать девятый выпуск

Как подружить нейросети и разработку: программируем с ChatGPT

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

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

Привет, Хабр! Меня зовут Егор Чичерин, я работаю ведущим Java-разработчиком в компании IBS и специализируюсь на разработке API в микросервисной архитектуре. В этой статье я расскажу о собственном опыте создания программы с помощью ChatGPT.

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

Копаемся в встроенном приложении камеры старого Xiaomi. Часть 1

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

Попытаемся портировать встроенные фильтры камеры Xiaomi Mi A1 на новенький Redmi Note 12 с восьмой попытки

[К первой попытке!]

Плагин для анализа планов PostgreSQL в Eclipse и DBeaver, и его разработка

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

Для пользователей explain.tensor.ru - нашего сервиса визуализации PostgreSQL-планов, в дополнение к плагину Jetbrains мы создали еще один - с возможностью форматировать запросы и анализировать планы в Eclipse IDE и DBeaver.

Читать далее

Рыночные данные в кармане: как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi

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

Если вы хотите написать проект, связанный с рыночными данными или торговлей на бирже, и вы знакомы с Java или Kotlin и слышали про Spring Boot, то эта статья для вас

Читать далее

Разбираемся с MavenGate, новой атакой на цепочку поставок для Java и Android-приложений

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

Всем привет!

Сегодня с вами Юрий Шабалин, генеральный директор «Стингрей Технолоджиз», и я хотел бы разобрать в этой статье новый тип атаки на цепочку поставок под названием «MavenGate».

А что в ней, собственно, такого? Ну хотя бы то, что ей подвержены более 18% всех Java-библиотек, соответственно, для Android это применимо в полной мере. Совершить эту атаку безумно просто. Суть ее основана на логике работы сборщиков Java/Android-проектов и разрозненности репозиториев, которые хранят эти библиотеки.

Если стало интересно и хочется проверить, уязвимы ли вы, добро пожаловать под кат!

Читать далее

ExamClouds: Бесплатные Уроки Java для Начинающих с Видео, Тестами и Практикой

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

В мире стремительно развивающихся технологий и программирования, найти надежный и обширный источник обучения может быть сложной задачей, особенно для тех, кто только начинает свой путь в программировании. Если вы в поиске идеального ресурса для освоения Java, то ваш ответ - ExamClouds!

ExamClouds: Ваш Путеводитель в Мире Java

На сайте www.examclouds.com мы предлагаем бесплатные уроки для начинающих по Java программированию, созданные с любовью к коду и стремлению делиться знаниями. Что делает ExamClouds уникальным и неотразимым источником обучения? Давайте рассмотрим несколько ключевых особенностей.

1. Обширные Учебные Материалы: Видео, Статьи, Тесты и Задания

Каждый урок на ExamClouds охватывает все аспекты Java программирования. Вы не просто читаете статьи или смотрите видео - вы получаете полноценный опыт благодаря разнообразным форматам контента. Видеоуроки помогут вам визуализировать концепции, статьи подробно разъясняют материал, тесты проверяют ваши знания, а практические задания закрепляют полученные навыки.

2. Подходит для Всех Уровней Навыков

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

3. Интерактивные Тесты и Практика

Что лучше, чем проверить свои знания? Пройдите тесты на ExamClouds, чтобы убедиться, что вы усвоили материал, и затем закрепите его на практике с нашими интересными заданиями.

4. Обновления и Расширения Ресурсов

Читать далее

Переходим на российскую Java. Что это такое и зачем нужно?

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

Одна из сложнейших задач этого года — адаптация под новые условия работы с зарубежными вендорами и с open-source сообществом в целом. Open-source не решает все проблемы; в некоторых случаях он их только создает. При этом в российской разработке есть особенности, связанные с импортозамещением. Все вместе это наложило отпечаток на большинство классических программных платформ и языков программирования.

В 2023 году ЕДИНЫЙ ЦУПИС перевел информационные сервисы на отечественную платформу Java с поддержкой ее поставщика. Сейчас в качестве среды разработки и исполнения Java в ЕДИНОМ ЦУПИС используется Axiom JDK Pro. Давайте посмотрим на проблемы этого года глазами разработчиков Java-платформы, а поможет нам в этом Олег Чирухин, деврел в команде этого дистрибутива.

Читать далее

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

Framework для автоматизации тестирования на Java

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

Привет, Хабр! В нашем сегодняшнем материале тестировщики Максим Жигарев и Артем Сенько из Блока ИТ‑развития инвестиционного бизнеса РСХБ‑Интех расскажут, как они автоматизировали тестирование в ИнвестБлоке с использованием Java. Материал основан на докладе, с которым Артем и Максим выступили в рамках внутреннего митапа для сотрудников РСХБ.

Читать далее

Весенние конференции JRG: онлайн и офлайн, новые и любимые

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

Этой весной мы проведём ряд конференций, и среди них целых три новых (про Go, ML и безопасность приложений). Одни мероприятия будут полностью онлайновыми, а другие пройдут в  Москве (но и к таким возможно подключиться удалённо).

Все билеты уже в продаже, а в случае с частью конференций ещё не поздно подать заявку на доклад. Лайфхак: тебе не понадобится покупать билет на конференцию, если сам на ней выступаешь! Хотя, конечно, для спикеров это обычно не главное: важнее, что пока объясняешь другим тему, сам её понимаешь куда лучше прежнего.

Этот пост — сразу обо всём конференционном сезоне:
Flow (системный и бизнес-анализ), 12 марта, онлайн
SafeCode (безопасность приложений), 13-14 марта, онлайн
GoFunc (разработка на Go), 14-15 марта, онлайн
TechTrain (профессиональный рост в IT), 6 апреля
HolyJS (JS-разработка), 15 апреля в онлайне и 26-27 апреля в Москве
Heisenbug (тестирование), 16 апреля в онлайне и 22-23 апреля в Москве
JPoint (Java-разработка), 17 апреля в онлайне и 24-25 апреля в Москве
Mobius (мобильная разработка), 14 мая в онлайне и 20-21 мая в Москве
C++ Russia (понятно что), 15 мая в онлайне и 22-23 мая в Москве
I'ML (работа с ML), в июне, онлайн

Читать далее

Без ручного нет автоматизированного. Простой тест на Java для начинающих QA

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

Теперь мы можем сделать вывод, что автоматизация - это ручные тесты, переведённые в автоматический процесс. И если нет ручных, то нет и автотестов.

Хочешь кататься, люби и саночки возить - это как раз про проектирование тест-кейсов. Мы конечно говорим не про автоматизаторов, которые пишут автотесты по ТК от ручных тестировщиков. Мы говорим про QA, который одновременно выполняет роль manual и automation engineer в команде.

Сегодня мы будем писать на Java

⚠️ Для того чтобы Яндекс не поставил капчу на наш парсинг сайта, нам необходимо сначала зайти на любую страницу, к примеру google translate и только после мы загружаем https://music.yandex.ru/home. Задача избежать прямого посещения сайта.

Шаг 1 Откроем https://music.yandex.ru/home в инкогнито
Шаг 2 Нажимаем на крестик для закрытия страницы онбординга

Написать автотест на Java

Apache Maven — введение в автоматизированную сборку проектов (часть 1)

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

Добрый день Хабр, в данной статье мы разберём один из сборщиков проектов Apache Maven. Начнём с установки, настройки и сборки нашего первого проекта.

Apache Maven - это фреймворк по автоматизации и сборки Java-проектов. Обычно просто называют Maven.

Самую подробную информацию вы всегда можете найти на официальном сайте Maven.

А также центральный репозиторий Maven где собрано всё самое необходимое для работы с Maven.

Читать далее

Spring Data JPA и Hibernate: решаем проблему динамически изменяемого запроса к базам данных

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

Привет, Хабр! Меня зовут Николай Пискунов, я ведущий разработчик в подразделении Big Data. В блоге beeline cloud мои коллеги уже знакомили вас с SOLID, заглядывали под капот Python. Я же расскажу о том, как с наименьшими затратами получить динамически изменяемый запрос к БД, используя Spring Data JPA и Hibernate. 

Самый простой пример — реализация эндпоинта, который обрабатывает запросы фильтра интернет-магазина. Например, когда вы задаете характеристики, согласно которым возвращаются определенные товары.

Читать далее

DataMaps. Рассказ о нашей ORM на Kotlin

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

Уже несколько лет мы с командой трудимся над платформой, которая официально называется БФТ.Платформа, а менее официально - Ice. В основном наша платформа используется в органах власти и государственных учреждениях.
Сегодня хотелось бы рассказать не обо всей платформе, а только об одном из ее компонентов - ORM (object-relational mapping) - фреймворке DataMaps.

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

Внутри БФТ-Холдинга Datamaps зарекомендовали с одной стороны, как легкий, наглядный и понятный для разработчиков фреймворк, с другой стороны, мощный по своим возможностям.

Ознакомиться

Туториал по нотификациям через RSocket: от концепции до запуска в продакшн

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

Однажды мы решали задачу разработки системы нотификаций для Альфа-Онлайн — мобильного банка в вебе. Нам было необходимо разработать инструмент по отправке сообщений (нотификаций) со стороны сервера в браузер в любой момент времени, пока клиент онлайн. На стороне Альфа-Онлайн каждый процесс самостоятельно определит дальнейшую судьбу сообщения.

После анализа различных вариантов, мы остановились на WebSocket в связке с RSocket.

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

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

Поэтому, когда мы закончили проект, то решили восполнить (или попытаться) этот пробел в русскоязычной среде на реальном примере. Надеемся, что эта статья поможет вам разобраться в применении RSocket over WebSocket и сократит время на погружение :) 

Читать далее

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