Рубрика «java» - 50

На сегодняшний день Java 8 является самой популярной версией Java и ещё довольно долго будет ей оставаться. Однако с тех пор уже выпущено пять новых версий Java (9, 10, 11, 12, 13), и совсем скоро выйдет ещё одна, Java 14. В этих новых версиях появилось гигантское количество новых возможностей. Например, если считать в JEP'ах, то в сумме их было реализовано 141:

Однако в этом цикле статей не будет никакого сухого перечисления JEP'ов. Вместо этого я хочу просто рассказать об интересных API, которые появились в новых версиях. Каждая статья будет содержать по 10 API. В выборе и порядке этих API не будет какой-то определённой логики и закономерности. Это будет просто 10 случайных API, не ТОП 10 и без сортировки от наиболее важного API к наименее важному. Давайте начнём.

Читать полностью »

Счастливого запоздалого Нового года, Spring коммьюнити!
Так как начинается очередной удивительный год разработки и улучшений в экосистеме Spring, хочу поделиться с вами обновленным примером приложения, демонстрирующего часть прогресса, достигнутого в портфеле проектов Spring в части поддержки Реактивной модели программирования.
Образец приложения BookStore Service Broker был обновлен для демонстрации интеграции нескольких различных проектов Spring, включая Spring Cloud Open Service Broker, Spring Data, Spring Security, Spring HATEOAS и, конечно, Spring WebFlux и Spring Boot. Все эти проекты имеют версии GA, включающие Реактивную поддержку и готовые к продакшену в ваших собственных приложениях и сервисах.

Переведено @middle_java
Читать полностью »

Пару дней назад вышел релиз Spring Boot 2.3.0.M1, в описании которого первой строкой упоминается поддержка проекта Cloud Native Buildpacks, который является попыткой упростить жизнь разработчика, позволяя максимально автоматизировать сборку образов из исходных кодов. Так как на моем текущем проекте нашим микросервисам так же предстоит жить в контейнерах, решил попробовать его и разобраться в чем преимущества. Короткое продолжение под катом.
Читать полностью »

Введение

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

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

Продолжаем разбираться с работой GraalVM, и на этот раз у нас перевод статьи Aleksandar Prokopec «Under the hood of GraalVM JIT optimizations», изначально опубликованной в блоге на Medium. В статье есть несколько интересных ссылок, позже мы постараемся перевести и эти статьи.

Что под капотом компиляторных оптимизаций GraalVM? - 1


В прошлый раз на Medium мы рассматривали вопросы производительности Java Streams API на GraalVM в сравнении с Java HotSpot VM. GraalVM отличается высокой производительностью, и в тех экспериментах мы достигли ускорения от 1.7 до 5 раз. Конечно, конкретные значения выигрыша в производительности всегда будут зависеть от запускаемого кода и нагрузочных данных, поэтому, прежде чем делать какие-то выводы, стоит самостоятельно попробовать запустить ваш код на GraalVM.

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

Читать полностью »

В мире JVM про корутины знают в большей степени благодаря языку Kotlin и Project Loom. Хорошего описания принципа работы котлиновских корутин я не видел, а код библиотеки kotlin-coroutines совершенно не понятен неподготовленному человеку. По моему опыту, большинство людей знает о корутинах только то, что это "облегченные потоки", и что в котлине они работают через умную генерацию байткода. Таким был и я до недавнего времени. И мне пришла в голову идея, что раз корутины могут быть реализованы в байткоде, то почему бы не реализовать их в java. Из этой идеи, впоследствии, появилась небольшая и достаточно простая библиотека, в устройстве которой, я надеюсь, может разобраться практически любой разработчик. Подробности под катом.

DIY Корутины. Часть 1. Ленивые генераторы - 1

Читать полностью »

В скором времени в грядущей Java 14 появится новая синтаксическая фича — записи (records). После изучения превью, в котором вкратце описано, как выглядят записи и с “чем их едят”, я осмелился адаптировать документ на русский для хабра. Кому интересно — добро пожаловать под кат.

Читать полностью »

Это первая часть серии статей по основам микросервисных архитектур.
В ней вы познакомитеь с концепцией микросервисов и узнаете, как создавать микросервисы с помощью Spring Boot и Spring Cloud.

Это руководство поможет вам изучить основы микросервисных архитектур. Мы также начнем рассматривать базовую реализацию микросервиса со Spring Boot.

Мы создадим пару микросервисов и заставим их общаться друг с другом с помощью сервера имен Eureka (Eureka Naming Server) и Ribbon для балансировки нагрузки на стороне клиента.
Читать полностью »

visual novel, engine and scripting language for 45 hours

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

В этой статье:

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

Интересно? Тогда добро пожаловать под кат.

Осторожно: тут много текста и ~3.5мб изображений

Читать полностью »

Java-дайджест за 17 января. Две первые недели нового года - 1

  • Появился шрифт JetBrains Mono — приятный и красивый шрифт для разработчиков

  • Вышел плагин для интеграции GitLab с IntelliJ IDEA. Теперь можно делать код-ревью прямо в вашей любимой IDE!

  • В Java-плагине для Visual Studio Code добавили кучу важных ништяков (действительно влияющих на качество жизни). Теперь в браузере файлов есть компактизация папок в привычный нам вид (как в Идее), у методов можно смотреть иерархию вызовов, в отладчике можно ставить брейкпоинты с условием (сработают, только если выполнилось условие), запускатор тестов визуально отображает статус теста (не нужно постоянно смотреть логи), и еще много всего.

  • Вышел Repeat 5.4, кроссплатформенный (Mac/Lin/Win) инструмент для хоткеев, макросов и автоматизации, на 70% написанный на Java. 442 коммита, 574 звездочки, проект пользуется массовой любовью и обожанием у своей узкой аудитории. Разрабатывается ровно одним человеком.

    Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js