Как стать автором
Обновить
132.12

Java *

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

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

Генерация OpenAPI из Spring Boot MVC

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

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

Наше API будет включать:
- валидацию тела и параметров с помощью JSR-303
- различные коды ответа с помощью ControllerAdvice и без него
- работа с Page и Pageable
- авторизация запросов

Читать далее
Рейтинг0
Комментарии2

Новости

Криптография на службе у stateless

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

Всем привет! Я – Кирилл, и я работаю в команде Мир Plat.Form.

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

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

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

Почему крипта иногда позволяет экономить
Всего голосов 3: ↑4 и ↓-1+5
Комментарии0

5 библиотек и фреймворков Java, крайне полезных для разработчика

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

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

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии4

Паттерн Poison Pill в Java

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

Сегодня поговорим о паттерне Poison Pill и его реализацию в Java.

Poison Pill, или «ядовитая пилюля», — это шаблон, используемый для мягкой остановки потока или процесса. Суть его заключается в отправке специального, заранее определенного сообщения, которое сигнализирует о необходимости завершения работы. Это сообщение обрабатывается в рамках нормального потока сообщений и позволяет потоку корректно завершить работу, освободить ресурсы и закрыть все активные соединения.

Читать далее
Всего голосов 5: ↑5.5 и ↓-0.5+6
Комментарии8

Истории

Сложности перевода: баг, который говорил по-русски и ломал моё приложение

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

Шпион всматривается в экраны

Несколько лет назад я работал над Lipo Manager, добавляя кое-какие долгожданные функции. Это довольно простое приложение, но вполне достаточное для управления батареями LiPos. Некоторые из вносимых мной изменений отвечали запросу сообщества. Это были визуальные доработки, оптимизация, мультиязычность, обновления зависимостей и исправление периодически возникавших исключений нулевого указателя.

Со всеми этими задачами я справился за день и, проведя несколько тестов, выпустил новую версию…
Читать дальше →
Всего голосов 50: ↑55 и ↓-5+60
Комментарии16

Как создать свой сборщик проектов

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

В данной статье предлагаю рассмотреть историю создания мной сборщика Java проектов под названием Conveyor (https://github.com/maximtereshchenko/conveyor): опыт написания проекта сложности выше средней, различные проблемы, причины принятия технических решений, примеры использования шаблонов проектирования

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии4

Как аналитик учился java log читать. Часть вторая: простые ошибки

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

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

Приложения на GreenData (какие и многие другие приложения) имеют фронтовую часть и бэковую часть. Соответственно ошибки у нас тоже могут возникать как на фронте, так и на бэке.

Как понять относится ошибка к «фронту» или к «бэку»?

Об этом нам скажет сама ошибка, давайте рассмотрим 2 примера ошибок.

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии2

Безработные айосники, мертвый PHP и бесполезные “саперы”: топ-5 мифов о будущем российского IT

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

Мы в hitch занимаемся аутстаффингом – выводим опытных IT-специалистов на бигтех-проекты. Поэтому непрерывно следим за любыми изменениями на рынке, а еще с удовольствием слушаем экспертов — но не во всём с ними соглашаемся. Сегодня разберем прогнозы и обещания, которые всколыхнули рынок, но показались нам нереалистичными.

Читать далее
Всего голосов 20: ↑17 и ↓3+14
Комментарии79

Unit-тестирование Flink-операторов, Job: Flink MiniCluster

Время на прочтение10 мин
Количество просмотров571

Привет, Хабр! С вами вновь Александр Бобряков, техлид в команде МТС Аналитики. И я с очередной статьёй из цикла про фреймворк Apache Flink.

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

В этой статье напишем тесты на всю джобу с использованием мини-кластера Flink и при помощи JUnit Extension. Ещё мы начнём выделять удобные вспомогательные абстракции для тестов, которые понадобятся позже.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Java Digest #12

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

Всем привет! 👋 👋 👋👋

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

В этом месяце в меню обновления: Intellij Idea с модным терминалом и AI-подсказками, миграции на новые версии Spring Boot за пару кликов в новой версии Java on VS Code, не забыли обновить и Micronaut, GraalVm, PMD и JMC. На горячее JEPы: Exception handling in switch, Derived Record Creation, Stream Gatherers, Vector API, String Templates. Не забыли и про бесплатный сыр — доступ к Spring Academy Pro. 

Утоляем голод по новым знаниям интересными статьями и видео, для любителей экзотики — новые инструменты сборки, если не пробовали bld. А на десерт стоит присмотреться презентациям с прошедшего Jpoint 2024. 

Читать двенадцатый выпуск
Всего голосов 20: ↑20.5 и ↓-0.5+21
Комментарии5

Быстрое нахождение чисел Фибоначчи

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

Описание способа нахождения значения произвольного элемента последовательности Фибоначчи за логарифмическое время.

Читать далее
Всего голосов 27: ↑28.5 и ↓-1.5+30
Комментарии20

Когда переключаются потоки в Spring WebFlux

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

Работа с библиотекой WebFlux вызывает затруднения у многих Java/Kotlin разработчиков

Код выглядит непривычно, непонятно в каких потоках выполняется логика и как этим управлять

Сегодня я попытаюсь объяснить простым языком такой важный аспект, как момент переключения потоков в WebFlux, это поможет вам допускать меньше ошибок и писать более производительный код

Также другие материалы от меня вы сможете найти в моем телеграм блоге

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

Расширение Функциональных Интерфейсов Java

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

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

Читать далее
Всего голосов 13: ↑13.5 и ↓-0.5+14
Комментарии38

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Перевод Spring Boot приложения с HTTP на HTTPS без ругани браузера

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

Актуальный способ перевода вашего Spring Boot приложения с HTTP на HTTPS.

Текущие способы и гайды в интернете на эту тему мне не понравились, поэтому написал свой.

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии20

Lombok — как с ним жить, а не страдать или вариант best practics для lombok

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

Когда я впервые увидел - lombok, у меня возникло, дикое сопротивление. Было очевидное ощущение, что что-то не так. Я думаю, у многих консервативных разработчик возникло такое же ощущение. Однако, lombok популярен. Люди его любят, люди его используют. А значит, есть и будут появляться проекты с ним. А значит нам с этим всем придется как-то жить.

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии27

Как аналитик учился java log читать. Часть первая: логи бывают разные

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

Когда я пришёл работать в компанию GreenData шесть лет назад, мои задачи были достаточно стандартными для аналитика, который работает с low-code решениями. Работа с объектной моделью, написание алгоритмов, настройка визуалов - всё что обычно выполняет начинающий специалист в данной области. Однако в процессе моей работы и роста иногда я сталкивался с необходимостью разбираться в тонкостях работы Java, а именно с ошибками, которые возникали в процессе её исполнения.

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

Читать далее
Всего голосов 6: ↑6.5 и ↓-0.5+7
Комментарии0

SOLIDно знать…

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

SOLID. Принципы и Паттерны. Паттерны и Принципы.
Что может быть ближе друг другу чем эти субстанции ?! Эта статья проведет параллель между ними, она не собирается объяснить суть каждой, вместе или отдельно, а желает показать как одна другой помогает.
То есть, статья в некотором роде перекрестный бой между паттернами и SOLID принципами.

Читать далее
Всего голосов 15: ↑10 и ↓5+5
Комментарии21

Как начать писать на Java в VSCode

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

Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно интегрируется с Spring Framework и знает его особенности.

Тогда зачем пробовать что‑то другое?

Привет, Хабр! Меня зовут Константин Шибков, я Java‑разработчик в CDEK.

В какой‑то мере все Java‑разработчики стали заложниками IDEA. Она так привычна, что нет желания пробовать другое. Ведь всё такое удобное и знакомое за столько лет использования.

Но если у вас есть трудности с доступом к Ultimate версии, а Community вариант не достаточно функционален — самое время попробовать современную альтернативу — Visual Studio Code.

В статье делюсь опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».

Перейти на VSCode
Всего голосов 65: ↑66 и ↓-1+67
Комментарии56

Что такое Java Spring и как с ним работать

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

«Фреймворк фреймворков» — так часто называют Java Spring. Зачем он нужен и какие у него есть плюсы и минусы, рассказывает специалист по Java, техлид в финтех-проекте Егор Воронянский.

Читать далее
Всего голосов 18: ↑6 и ↓12-6
Комментарии3

Spring Boot Starter: практически, принципиально и подробнее. Часть 1

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

Всем привет, меня зовут Сергей Соловых, я Java-разработчик в команде МТС Digital. За последние 2 года я написал и выпустил в продакшен более 30 микросервисов. Выдержать столь высокий темп помогло применение общепроектных решений и паттернов разработки.

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

В этом цикле статей я поделюсь выжимкой из материалов, накопленных мною в процессе создания микросервисов. Это будет полезно тем, кто только начинает разбираться, что же такое Spring Boot Starter и с чем его едят.

Первую часть мы посвятим созданию принципиального решения, которое позволит запустить стартер как подключаемую к другому Spring Boot-приложению библиотеку.

Читать далее
Всего голосов 12: ↑13 и ↓-1+14
Комментарии3
1
23 ...

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

Работа

Java разработчик
327 вакансий