Рубрики
Без рубрики

Как создавать Java-приложения Сегодня: 3 мая 2021 года

Флаг TLDR javac “—выпуск”, обновления безопасности Java 8 до 2030 года, ТВЕРДЫЕ принципы, Jira для… Помеченный java, bpf.

Как создавать Java-приложения Сегодня (Серия из 29 частей)

ДВУ

флаг javac “—выпуск”, обновления безопасности Java 8 до 2030 года, принципы SOLID, Jira для всех, Micronaut 2.5 и Spring Data 2021.0.

ЧИТАЙ МЕНЯ

Это выпуск 34 моего еженедельного информационного бюллетеня “Как создавать Java-приложения сегодня”. Я читаю все информационные бюллетени Java, так что вам не нужно! И я стараюсь немного развлечь вас, представляя новости Java.

Если вам нравится моя рассылка новостей, то подпишитесь на нее в Substack !

Цитата недели

Вселенная – это жестокая, безразличная пустота. Ключ к счастью – это не поиск смысла. Это значит просто занять себя несущественной ерундой, и в конце концов ты будешь мертв. Мистер Арахисовый Баттер , персонаж анимационного телешоу ” Всадник Боджека “, упускает возможность написать еще одну жизнеутверждающую книгу о самопомощи.

Стендап

Для меня это была спокойная неделя: Никаких бесед, никаких конференций, никаких статей, просто работаю над моими веб- и мобильными приложениями .

Проверка кода

Выпуск 33 от 26 апреля 2021 года

Я писал о выпуске Graal VM 21.1 в прошлом выпуске и сказал это о его многоуровневой компиляции:

Поскольку некоторые оптимизации теперь выполняются позже, мы также получаем “более позднюю пиковую производительность”.

Олег Шелаев ( @shelajev ) ответил в Твиттере :

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

Он также указал на это видео Twitch для подробных объяснений.

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

Тем не менее, мы видим, что многоуровневые подходы достигают пика быстрее, особенно на ранних стадиях.

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

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

Таким образом, некоторые длительно работающие программы достигают максимальной производительности позже . То же самое относится и к программе под названием Трюфельный писк, которую цитировала статья :

В качестве ожидаемого компромисса для достижения максимальной производительности требуется немного больше времени.

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

Спасибо тебе, Олег, за то, что указал на это!

Книжные закладки

Ява

Флаг javac “—освободить”

Компиляторы Java могут создавать байт-код, который выполняется в более ранних версиях Java. Но что произойдет, если наш код использует Java API, недоступный в более ранней версии Java?

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

  • Напишите код, вызывающий List.of() (который доступен только в Java 9).
  • Скомпилируйте это с Java 9 или более поздней версией и используйте —исходный код 1.8 и — задача 1.8 . для создания байт-кода для Java 8.
  • Затем запустите скомпилированный код на Java 8. Бум – java.язык. Ошибка noSuchMethod !

Исправить это можно, используя вместо этого флаг компилятора —выпуск 8 . Теперь это приведет к ошибке во время компиляции в List.of() . Да, я тоже не знал этого флага!

Откуда Java 9 знает о Списке методах Java 8? Прочтите эту замечательную статью, чтобы узнать! Я украл там свой пример.

КСТАТИ: В моем текущем проекте я работаю наоборот: я компилирую с Java 14 и запускаю с Java 15. Я бы с удовольствием скомпилировал и запустил с Java 16. Но это все, что я получил без ошибок компиляции или выполнения, с которыми я просто не хотел иметь дело.

Статья

Oracle Предоставляет Обновления Безопасности Java 8 До 2030 Года

Вот статья, которую вы хотите скрыть от своего босса. Плохо: Java 8 по-прежнему является наиболее используемой версией Java (доля рынка 69%, согласно JRebel – см. выпуск 27 , “Отчет о технологии Java JRebel 2021”). Хуже того: мы можем запускать Java 8 до 2030 года, если заплатим Oracle за “Расширенную поддержку”!

По правде говоря, Oracle объявила об этом в прошлом году . Но эй, я начал эту рассылку только в сентябре прошлого года , так что для меня это новость. 😀

Итак, зачем я тебе это показываю? Потому что вам лучше узнать плохие новости до того, как ваш босс скажет вам: “Не нужно переходить на Java 17, потому что мы можем оставаться на Java 8 еще десять лет!”

Дорожная карта поддержки Oracle Java SE

Разработка программного обеспечения

ТВЕРДЫЕ принципы в Java

ТВЕРДЫЙ – это аббревиатура, за которую можно умереть:

  • S Принцип единой ответственности
  • O принцип Замкнутого пера
  • L Принцип замещения Лискова
  • I принцип разделения интерфейсов
  • D Принцип Инверсии зависимостей

Если вы никогда не слышали о SOLID или нуждаетесь в обновлении, то эта статья для вас.

Как и во многих из этих законов и принципов, я иногда нарушаю их. Например, мои классы иногда несут более одной ответственности, нарушая букву “S” в “SOLID”. Мне хотелось бы думать, что за эти годы я стал лучше (Джонатан, если ты это читаешь, я ужасно извиняюсь за Бизнес-методы ). Но опять же, может быть, я просто обманываю себя, и никто мне не говорит, потому что в наши дни я пишу один…

Статья

Инструменты

Джира Для Всех?

Jira – это лучший трекер проблем, который я когда-либо использовал. И я говорю это не только потому, что много лет был администратором Jira/Confluence. По крайней мере, я так думаю.

Что ж, Jira не хочет быть средством отслеживания проблем только для разработчиков больше нет. Вместо этого теперь он хочет организовать работу ” всех команд внутри организации”. So Atlassian , создатели Jira, выпустили “Управление работой Jira для бизнес-команд, таких как маркетинг, отдел кадров, финансы, операции, дизайн, юриспруденция, продажи и многое другое”. Они также обновили представление о проблеме . Это здорово, потому что представление о проблеме уже сбивало с толку ничего не подозревающих разработчиков, не говоря уже о простых смертных.

Почему Atlassian делает это? Вот мой ответ, и это чистое предположение с моей стороны.

Прежде всего, всегда хорошо, если вы можете значительно расширить рынок сбыта своего продукта/услуги, как это только что сделал Atlassian.

Во-вторых, Jira сталкивается с большей конкуренцией на своем крупнейшем рынке – разработчиках. Как я сообщал в январе о Проблемы с миграцией Spring Data из Jira в GitHub , когда ваш код находится в GitHub, проблемы с GitHub дают несколько преимуществ по сравнению с Jira:

  • Один вход в систему
  • Больше никаких дополнительных проблем с запросами на извлечение
  • Автоматическое связывание ссылок на проблемы, запросы на извлечение, исходный код и фиксации во всех проектах GitHub
  • Упомянуть и уведомить любого пользователя GitHub

Это, вероятно, также относится к Gitlab , но у них меньшая доля рынка, чем у GitHub.

Для Atlassian прелесть “Управления работой Jira” заключается в том, что GitHub, вероятно, не будет копировать это: GitHub принадлежит Microsoft , а Microsoft продает Microsoft 365 для совместной работы на предприятии.

Объявление Atlassian

Освободить

Микронавт 2,5

Это было быстро: всего через семь недель после Micronaut 2.4 (см. выпуск 27 , раздел “Выпущен Micronaut 2.4”) мы уже получили версию 2.5. Но я думаю, что это один из способов отличия от Spring Boot – они выпускаются только каждые шесть месяцев.

Итак, сколько вы можете сделать за семь недель?

Как оказалось, функций не так много: данные Micronaut теперь поддерживают записи Java 16, неизменяемые классы данных Kotlin, реактивные источники данных с R2DBC и оптимистичную блокировку. “Отдел по борьбе с зависимостями” вносит свой вклад в Java 16, Gradle 7 и GraalVM 21.1. И это самые дорогие товары.

Неплохо для семи недель, но немного “микро” по масштабу для крупного релиза. Я знаю, немного дешевый снимок, но я не называл фреймворк “Микронавтом”, это сделали они!

Объявление

Весенние данные 2021.0

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

Нет: Запрос на примере теперь работает с реактивными источниками данных JDBC , поддерживаются подготовленные операторы Cassandra, и мы можем использовать аннотации Дизайн, основанный на домене (DDD) из jMolecules .

Но опять же – это весенний проект, он действующий (JRebel оценивает долю рынка Spring Boot в 62% – см. выпуск 27 , “Отчет о Java-технологиях JRebel 2021”). Так что он не обязательно должен быть лучшим или самым быстрым. Это просто должно быть не намного хуже, чем, скажем, данные микронавтов.

Объявление

О

Карстен Силц является автором этого информационного бюллетеня. Он является полнофункциональным веб- и мобильным разработчиком с 22-летним опытом работы на Java, автором, докладчиком и предпринимателем. Карстен получил степень магистра компьютерных наук в Дрезденском технологическом университете (Германия) в 1996 году.

Карстен разработал программное обеспечение в пяти европейских странах и США. В 2004 году он стал соучредителем стартапа по разработке программных продуктов в США. Во время перебоев в подаче электроэнергии программное обеспечение защищало услуги телевидения, Интернета и телефонной связи для 50 миллионов североамериканских домохозяйств с кабельным телевидением. Карстен руководил разработкой продукта в течение 13 лет и ушел после того, как компания была успешно продана.

Карстен работает подрядчиком с 2017 года. Он стал соучредителем британского стартапа SaaS ” Ваш дом в надежных руках ” в качестве технического директора в 2020 году.

У Карстена есть этот информационный бюллетень , веб-сайт разработчика и сайт подрядчика . Он в LinkedIn , Твиттер и GitHub .

Как создавать Java-приложения Сегодня (Серия из 29 частей)

Оригинал: “https://dev.to/ksilz/how-to-build-java-applications-today-may-3-2021-5879”