Обновить
172.3

Java *

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

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

АОП в автоматизации тестирования

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

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

Создаем проект 'Gradle'

Читать далее

Page Object Model и Page Factory в Selenium

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

Автоматизированное тестирование веб-приложений невозможно представить без грамотной организации кода, позволяющей упростить поддержку тестов и минимизировать дублирование. В Selenium для этого широко применяются паттерны Page Object Model (POM) и Page Factory. Они помогают структурировать тестовую архитектуру, отделяя логику взаимодействия с UI от самих тестов. В этой статье разберём, как работают POM и Page Factory, в чём их различия, а также как их реализовать в Selenium с использованием Java.

Читать далее

Docker для начинающих: простое развертывание приложения за несколько шагов

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

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

Начну, пожалуй, с самого сервиса. Я написал достаточно простое веб-приложение на стеке - Java, Spring, Maven, REST, HTTP, Hibernate, Postgresql, JSP/JSTL. Пока приложение представлено достаточно в сыром виде, но для понимания, как оно упаковывается в контейнер, вполне подойдет. Если вкратце, то это сервис для голосования за лучший ресторан, где можно зарегистрироваться, добавить ресторан, его описание, оставить отзыв и проставить рейтинг. Также, в зависимости от роли, можно посмотреть информацию о пользователях и редактировать ее. 

Читать далее

Платформа OpenBPM, или как я научился не волноваться и полюбил бизнес-процессы

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

Компания Haulmont представляет новый продукт для разработки процессных приложений — OpenBPM. 

Что это — очередная BPMS-платформа? Чем OpenBPM отличается от других решений на рынке? Что входит в её состав? Когда ожидается релиз? Ответы на эти и другие вопросы вы найдёте в данной статье.

Читать далее

OpenIDE: первый взгляд

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

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

Ниже небольшой обзор и скриншоты в работе под FreeBSD, что наверное создателей немного удивит. Но я предупреждал ;-)

Читать далее

Рецензия на книгу “Spring и Spring Boot. Разработка облачных приложений на Java”

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

Spring и Spring Boot — это фундаментальные технологии для современных Java-разработчиков. С их помощью создаются сложные и гибкие корпоративные приложения, при этом минимизируются рутинные задачи. Если вы действующий разработчик на Java или пока учитесь на ИТ-курсах / в ВУЗе и только планируете им стать, знание Spring будет “must have” скиллом. Ведь практически все новые проекты ведутся с его использованием. Более того, Spring Boot существенно упрощает работу с Spring Framework, автоматизируя настройку и позволяя разработчикам сосредоточиться на логике приложения.

Читать далее

За кулисами JIT: Секреты HotSpot JVM C2 компилятора (Часть 2)

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров1.9K

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

Во второй части мы рассмотрим:

— Инлайнинг GVN (global value numbering) во время синтаксического анализа (parsing).
— Использование IGV (Ideal Graph Visualizer) и rr (отладчик), чтобы посмотреть на IR и его трансформации.
— Простая “идеализация” 101 * a + 202 * a в 303 * a.
— Упражнения для читателя: несколько дополнительных трансформаций, которые читатель сможет проанализировать.

Читать далее

3200% нагрузки на процессор

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

Совсем недавно моя машина была в таком запущенном состоянии, что я едва мог подключиться к ней через ssh. 3200% нагрузки на CPU — полностью использовались все 32 ядра хоста! Сравните это с моим последним багом, когда использовалось всего одно ядро, то есть 100%

К счастью, я использовал среду выполнения Java 17, у которой были дампы потоков с указанием времени CPU!

Читать далее

Реализация постквантовых алгоритмов на Java и Go

Время на прочтение4 мин
Количество просмотров4.1K


В последнее время в СМИ много публикаций о новых квантовых компьютерах, которые представляют угрозу для современной криптографии. Например, недавно Google сообщила о разработке квантового процессора Willow, который в специально сформулированной задаче превышает производительность самого мощного суперкомпьютера в септиллион раз (септиллион = 1025).

Хотя квантовая криптография быстро развивается, ей ещё далеко до того, чтобы угрожать современной криптографии. Более того, разработан ряд постквантовых алгоритмов и шифров, которые устойчивы к квантовым вычислениям.
Читать дальше →

Spring Now 2025 – Главная конференция про Spring на русском языке

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

6 марта 2025 года состоится бесплатная онлайн-конференция Spring Now 2025

В ней примут участие не только эксперты сообщества Spring АйО, но и приглашенные лидеры индустрии.

Предлагаем более подробно ознакомиться с программой мероприятия и спикеров конференции. Зарегистрироваться на мероприятие можно по ссылке.

Читать далее

Утренний рефакторинг с Дженной Ортегой*

Уровень сложностиСложный
Время на прочтение15 мин
Количество просмотров9K

На относительно простом примере показываю как можно сделать программу «снова великой». Ключевые стадии рефакторинга, Java, эмулятор и Jenna Ortega в нейросетевом исполнении.

Читать далее

Исследуем возможности ИИ писать код. Часть 1

Уровень сложностиСредний
Время на прочтение68 мин
Количество просмотров4.9K

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

Читать далее

История о том, как мы в ОК упрощали процесс создания API

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

Представьте ситуацию: у вас есть большой «зрелый» ИТ-продукт, но специалистов, способных его поддерживать, крайне мало. Что делать, в такой ситуации — продолжать «тянуть чемодан без ручки» или искать способ перехода на понятные и распространенные технологии?

Не так давно команда ОК столкнулась с подобной дилеммой: исторически для отображения страниц мы использовали server-side рендеринг на базе GWT (Google Web Toolkit) и RDK (наша внутренняя разработка), так как разработка первой версии ОК началась более 20 лет назад. Такой набор технологий «под капотом» был оптимален в те времена, но сейчас он, мягко говоря, не самый желательный. Поэтому нам было важно перейти на более распространенную библиотеку, а точнее — на React. Это мы и начали делать итеративно, шаг за шагом для каждого раздела сайта.

Меня зовут Александр Косницкий, я разработчик в компании ОК. В этой статье я расскажу, как мы переводили на React раздел «Обсуждения»: с чего начинали, с чем сталкивались и как в результате смогли получить то, что поможет не только нам, но и остальным командам с переводом на новую библиотеку их собственных разделов.

Читать далее

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

Что на радаре в Java: программа JPoint 2025

Время на прочтение12 мин
Количество просмотров2.9K

Конференцию JPoint мы проводим уже 12 лет. За это время немало оперативки утекло, и актуальные для Java-разработчиков темы ощутимо изменились: например, когда мы всё начинали, ещё толком не было Kotlin. Какие-то понятия можно назвать «вечными» (например, о базах данных говорят из года в год), но и там конкретные темы докладов меняются.

А что будет на новом JPoint в апреле? Какие инструменты и подходы актуальны для разработчиков в 2025-м?

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

А во-вторых, у нас есть просьба. Чтобы делать программу как можно актуальнее, мы затеяли инициативу TechRadar. Если вы Java-разработчик, по возможности пройдите опрос о том, какими технологиями пользуетесь. Так и доклады получатся максимально соответствующими запросам сообщества, и без результатов опроса вас тоже не оставим — сможем позже все их как следует обсудить!

Читать далее

За каким чертом нам SpringExtension?

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

Новый перевод от команды Spring АйО расскажет вам, что такое SpringExtension, как правильно пользоваться этим расширением и когда его надо (или не надо) регистрировать вручную.

Читать далее

Можно ли спасти LinkedList? Пишем быстрый List на связном списке

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

Существует мнение, что LinkedList - неудачная коллекция и всегда и везде лучше использовать ArrayList. И так оно и есть =)

Давайте поможем LinkedList и сделаем его лучше и быстрее с помощью простой пластиковой бутылки кеширующего массива.
Вы увидите, как он обгонит ArrayList на 10 миллионах элементов и 100 тыс операциях в тестах, имитирующих реальную работу приложения.

Читать далее

Новые интересные диагностики в PVS-Studio 7.35

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров783

С релизом PVS-Studio 7.35 в анализаторе появилось много новых диагностических правил. Вас ждёт: много MISRA для C, новые Unity-диагностики для C# и покрытие OWASP Top 10 для Java и многое другое!
Подробности вы сможете узнать в этой заметке.

Читать далее >>>

Разработка приложения с oauth2Login авторизацией пользователя: Java 17 + SpringBoot 3.4 + Keycloak 26

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров6.4K

Столкнулась на проекте с задачей по настройке флоу auth2 для Java приложения с использованием Keycloak в качестве сервера авторизации.
Вроде бы информации много на разных ресурсах и документация есть, но встречаюсь с такими нюансами: версии Keycloak-а меняются так, что утсраевают старые примеры, никто уже не использует их адаптер, на который массу примеров; меняются версии Spring и их примеры тоже быстро устаревают и прошлые варианты реализации всё равно надо по новому переписывать в новых версиях. Плюс для меня это был новый опыт работы с auth2, потому, конечно, множество источников пришлось перелопатить.
Потому решила написать небольшую инструкцию как в общем я реализовывала эту задачу.

Версии на момент разработки:
Java Coretto 17,
SpringBoot 3.4.1,
Keycloak 26.0.7.


Репозиторий:https://github.com/ElenaSpb/keycloak-example


1. Настройка Keycloak для локальной разработки

1.1 Cкачиваем последнюю версию, запускаем.
У меня он скачен в c:\distr\keycloak, перехожу там в папку \bin и запускаю сервер Keycloak командой kc.bat start-dev --http-port 8085 . На порту 8085 в dev профиле делаю.
1.2 При первом запуске он просит создать пользователя temporary admin user, админа сервера то есть, задав логин и пароль, создаю lenas / lenas.
Вот логи:

Читать далее

Как правильно мигрировать БД в продакшене с использованием Liquibase и Flyway

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

Новый перевод от команды Spring АйО расскажет вам о вызовах, которые ставит перед разработчиками создание скриптов миграций баз данных и их организация, особенно при работе с большими системами.

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

Читать далее

За кулисами JIT: Секреты HotSpot JVM C2 компилятора (Часть 1)

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров3.7K

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

Читать далее

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