Loom: зачем?

Недавно, 6 мая этого года, в OpenJDK вошёл JEP 425, который добавит к Java 19 в качестве превью-фичи Виртуальные треды. Пожалуй, этот JEP — самое большое изменение семантики языка после появления Дженериков. Его масштабы трудно оценить. Для начала попробуем прикинуть, как оно может отразиться на нашей зарплате. Читать далее from …

[recovery mode] Как я позавидовал начинающим Junior Java разработчикам

На просторах интернета можно найти множество курсов по Java разработке для начинающих разного уровня сложности. Большая часть из них вполне хороши для того, чтобы помочь вам стать неплохим Junior разработчиком (конечно, курсов мало, нужна достаточно длительная практика на продуктиве, но базу они дают). Но что делать, если основы вы уже …

Пример описания многослойной архитектуры, основанной на использовании наборов подслоёв и иерархии моделей данных

В статье рассмотрен подход, основанный на разбиении структуры приложения на слои и подслои, который позволяет с единой позиции подойти к описанию основных используемых типов архитектуры приложений. Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/hDIa6if

Тестирование интеграции веб сервиса на Kotlin с базой данных

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

gRPC — безопасность или жесть?

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

Что возможно стоит знать начинающему Spring java backend разработчику о работе с PostgreSQL

Дисклеймер: в данной статье много воды, отражены мысли и опыт воспаленного мозга, потому заранее предупреждаю, что можете потерять просто свое время зря. Из java тут вообще мало. Возможно данная статья будет полезна начинающим разработчикам. Данная заметка – микс различных приемов работы с базой данных, мейнтененса, встречающихся проблем. В общем это …

Рукопись моей первой книги о Java

Статья о том, как я просто писал статьи на ИТ-тематику в личный блог, как вдруг получил контракт от издательства. Много работал и страдал. Прошёл через кучу этапов и написал рукопись своей первой книги о Java и её изменениях от версии к версии. Как чуть не переделал все перед самым концом, …

Java библиотека для работы с внешним сервисом по протоколу RESTful API

Использование библиотеки-обертки для добавления функционала к RESTful API, предоставляемому внешним сервисом. Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/8mdtIjk

Разворачиваем проект серверов Minecraft

Minecraft – нечто большее, чем игра. До сих пор думаешь, что это очередная игра для детей? Вынужден опровергнуть твоё мнение. Эту игру используют, как в школах для развития детей, так и для воссоздания архитектурных объектов, улучшения безопасности на реальных улицах, изучения основ программирования, и, в конечном итоге, для простой релаксации. …

[Перевод] ORM — отвратительный анти-паттерн

От автора перевода: Написанный далее текст может не совпадать с мнением автора перевода. Все высказывания идут от лица оригинального автора, просьба воздержаться от неоправданных минусов. Оригинальная статья выпущена в 2014 году, поэтому некоторые фрагменты кода могут быть устаревшими или “нежелаемыми”. Содержание статьи: В статье приведены доводы, которые ставят под вопрос …

[Перевод] Как отлаживать коллекции Java с Lightrun на продакшене

К старту курса по разработке на Java делимся руководством о том, как отлаживать коллекции Java на продакшене с платформой Lightrun и избегать при этом неприятностей с методом list.toArray(). За подробностями приглашаем под кат. Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/MnK3ANR

[recovery mode] Как мы перевели API-модули микросервисного проекта с Feign на OpenFeign

Всем привет! Недавно мы решили задачу, как перейти на новую версию Spring + OpenFeign в мультимодульном проекте, в котором выделен API с навешенными аннотациями @[email protected] и @FeignClient. Я, Алексей Скакун, @hyragano ведущий разработчик ДОМ.РФ, поделюсь с вами этим кейсом. Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/TOCAjWL

Блеск и нищета фреймворков тестирования: используем Groovy для скриптинга end-to-end тестов

Безусловно, тестирование важный аспект разработки ПО. Наличие тестов – это хорошо, а удобное тестирование – еще лучше. В этой статье я расскажу как запускать тесты, написанные на groovy без gradle, maven и даже без предварительной компиляции этих тестов, а также почему JUnit 5 – это намного больше, чем просто хорошая …

Почему важен graceful shutdown в облачной среде (на примере Kubernetes + Spring Boot)

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

[Перевод] Thymeleaf + Spring WebFlux + Spring Security

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

Ускоряем java-рефлексию в 2022

После прочтения заголовка у среднестатистического читателя наверняка возникнет весьма логичный вопрос: «Кто такая эта ваша рефлексия и зачем её ускорять?» И если первая часть будет волновать только совсем уж откровенных неофитов (ответ тут), то вторая точно нуждается в пояснении. К текущему моменту рефлексия (и особенно рефлективные вызовы методов) так или …

Соревнование между спецами по .NET и Java: ищем золотые фрагменты кода

Представьте, что вы оказались в шахте: перед вами каменный монолит, в котором что-то поблёскивает — куски золота, не иначе. Блеск заманчивый, но вокруг грубый камень. В разработке часто возникает похожая ситуация: полезный юзерам код со всех сторон окружён камнем в виде инфраструктуры, конвертеров данных и легаси. На помощь приходит микросервисная …

Жил на свете добрый Jooq – как подружиться с хранимками в Oracle

Приветствую! Меня зовут Артём, я back-end разработчик на продукте WFM (Workforce Management). В компании наш продукт помогает в развитии процессов розничной сети, одна из основных наших задач — это построение рабочего графика для персонала розничного магазина. В данной статье я хотел бы познакомить вас (в очередной раз, так как на …

Посчитать запросы spring data jpa + hibernate на 1 rest запрос

Началось все с желания посчитать, сколько запросов в БД улетает на каждый rest запрос при использовании spring data jpa + hibernate.Гугл выдал интересное видео про xrebel, но так же сообщил, что xrebel платный.Дальнейший поиск привел к статье Counting Queries per Request with Hibernate and Spring Её и взял за основу …

Механизмы сериализации в Java и Kotlin

В этой статье Илья Гершман, ведущий разработчик Юзтех, рассматривает понятия сериализации и десериализации в сравнении между двумя языками программирования — Java и Kotlin. Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/uP8GmN5

Back to Top