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

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

TL; DR Firebase от Google получает новые функции, бесплатное профилирование производства Java куда подальше,… Помеченный как java, bpf.

TL;DR

Firebase от Google получает новые функции, бесплатное профилирование производства Java для whither away, Sonatype Lift объединяет статические анализаторы кода, Quarkus 2.0.0, Apache Camel 3.11 и IntelliJ IDEA 2021.1.3.

ПРОЧИТАЙ МЕНЯ

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

Если вам нравится моя рассылка новостей, то подпишитесь на нее на Substack |/! Или прочтите это на dev.to , Java Cafe или |/Medium . Еще лучше: поделитесь им с людьми, которые могут быть заинтересованы.

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

Раньше я думал, что мозг – самый замечательный орган в моем теле. Потом я понял, кто мне это говорит.‌ Эмо Филлипс , американский комик (родился в 1956 году) , напоминает нам не доверять слепо нашему внутреннему голосу. Или голос нашего партнера, когда он говорит нам, какой он замечательный человек!

Стендап

Я надеюсь, что мои читатели в США (или “колониях”, как некоторые до сих пор называют их здесь, в веселой старой Англии) хорошо провели День независимости! У меня тоже были напряженные выходные с двумя моими статьями в InfoQ получение публикации . К счастью, здесь меня не так уж сильно отвлекает летняя погода. 🌧 Вы прочтете об одной статье в основном разделе ниже.

Я также забронировал еще одно выступление на конференции . И да, это еще раз “Как разработчики Java должны создавать интерфейсы сегодня?”. Это тот, где я снял тизерное видео с – как сказал хороший друг – ужасным светом. 😔 В любом случае, учитывая, что предположительно 90% из нас, разработчиков Java , работают в back-end , мой front-end talk вызывает огромный интерес – 5 конференций в этом году и считать!

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

Выпуск 42 от 28 июня 2021 года

Java-приложения в Windows 11 App Store

Прошлая неделя Я писал о том, как приложения Java могут появляться в Windows 11 app store. Теперь предварительный просмотр Windows 11 доступен для загрузки , но остается много вопросов: Каковы требования ? Появится ли синий экран смерти действительно почернеет/| ? И есть ли в Windows 11 все еще слои пользовательского интерфейса, как в Windows 10 , которые возвращаются к Windows 8/7/Vista/XP/2000/95? Только время покажет.

Но мы знаете ли вы , что Константин Терзиев является заядлым и полезным читателем этого небольшого информационного бюллетеня! Он обнаружил опечатки уже в четырех выпусках. На прошлой неделе, например, я написал “Visual J+++”. Возможно, этот инструмент не заслужил даже двух “+”. Но третий был точно неправ! Так что спасибо тебе, Константин, за то, что ты мой редактор!

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

Фреймворки и библиотеки

Firebase от Google “Сервер как услуга” Получает Новые функции

Firebase предлагает множество бесплатных сервисов для Java, веб- и мобильных приложений: аутентификацию, настройку, push-уведомления, аналитику, мониторинг производительности, распространение мобильных приложений и многое другое. Мы платим за хранение данных в базах данных и файлах. Но вам должны нравиться и облако, и Google!

В моем текущем проекте используется Backend-as-a-Service Firebase. Firebase – это частично новый сервис, частично тонкий слой поверх существующих облачных сервисов Google. Если ваша организация разрешает облачные сервисы и позволяет вам использовать сервисы Google, я могу порекомендовать Firebase. Вот продукты, которые я использую или планирую использовать в своем проекте:

  • Firebase обрабатывает аутентификацию , поэтому мое приложение Spring Boot не хранит пароли, только токены. Пока я использую только электронную почту и пароль, но планирую включить социальные логины (Facebook, Google, Microsoft, …) в будущем.
  • Облачное хранилище хранит файлы. Я могу определить списки контроля доступа (ACL), которые ссылаются на свойства аутентификации. Это единственная услуга, которую я плачу, когда объем файла превышает мой бесплатный Облачный уровень Google .
  • Я распространяю свои собственные версии тестов приложений для iOS и Android с помощью App Distribution . Получателям моих тестовых версий нужна учетная запись Google.
  • Я анализирую сбои приложений iOS и Android с помощью Crashlytics .
  • Я планирую отправлять push-уведомления с помощью Firebase Cloud Обмен сообщениями позже в этом году. Из того, что я вижу , это бесплатно, независимо от того, сколько уведомлений я отправляю.
  • Я надеюсь использовать Удаленная конфигурация для флагов функций.

Большим недостатком Firebase является модель затрат на ее базу данных NoSQL Огненный камень . Мы платим не только за хранение данных (1 ГБ в месяц бесплатно), но и за/| чтение, запись и передачу данных . Наихудший случай: счет в размере 30 тысяч долларов США через 3 дня !

На выставке Google I/O в середине мая Firebase получила новый продукт ( App Check ) и некоторые улучшения. Проверка приложения проверяет как приложение, так и устройство с помощью токенов, в то время как аутентификация проверяет право пользователя на доступ к определенным ресурсам. Вы можете прочитать больше в моей статье InfoQ .

Firebase, похоже, определенно набирает обороты: Google утверждает, что три миллиона приложений в месяц активно используют Firebase. Это больше, чем 2,2 миллиона приложений в App Store от Apple! И хотя потребовалось 13 месяцев (с сентября 2019 по октябрь 2020 ), чтобы перейти от 2 миллионов приложений к 2,5 миллионам приложений, потребовалось всего 7 месяцев, чтобы добавить еще 500 тыс.

Моя информационная статья

Инструменты

Бесплатное Профилирование Производства Java Куда Делось?

Java Flight Recorder (JFR) – это несовершенный, но бесплатный инструмент для профилирования приложений Java в производстве. Предстоящий проект Loom усилит его недостатки. Кто вмешается, чтобы исправить их?

В выпуске № 25 я писал о “Профилировании в производстве” с помощью JDK Flight Recorder . Oracle утверждает, что JFR просто добавляет 1% накладных расходов к отслеживаемому Java-приложению. А в Java 16 он мог бы более эффективно записывать распределение памяти. Так что все хорошо, верно?

Нет: Маркус Хирт, один из основателей JRockit JVM , который в конечном итоге слился с Sun JVM, бьет тревогу. JRockit – это место, где родился JFR (как “Бортовой самописец JRockit”). Маркус, который сейчас работает в Datadog , выделяет четыре слабых места JFR:

  • Первый – это контекст записи, связывающий данные, записанные JFR, с “потоком выполнения”. При современном реактивном программировании многие соединения совместно используют поток Java, так что эта связь уже разорвана. И виртуальные потоки Project Loom (см. выпуск # 39 ) также не будут подключаться к JFR из коробки.
  • Маркус также считает, что JFR нуждается в профилировании настенных часов. Это способ сброса стеков потоков с низкими накладными расходами. Опять же, виртуальные потоки Project Loom делают это еще сложнее.
  • Текущее профилирование ЦП в JFR не включает собственные библиотеки или собственные потоки JVM. По словам Маркуса, так и должно быть.
  • JFR может производить “миллионы событий в минуту” на 96-ядерном компьютере, “что приводит к размеру записи в сотни мегабайт в минуту”. Теперь это, конечно, не похоже на накладные расходы в размере 1%, которые обещает Oracle! Datadog уже исправил это для выделения памяти с помощью профилировщика с ограниченной скоростью в Java 16. Но Маркус считает, что это необходимо и в других областях.

Эта статья – крик о помощи, потому что Маркус и его работодатель Datadog не могут выполнить всю эту работу самостоятельно. Но его призывы к действию довольно расплывчаты (основные моменты мои): “Чтобы JFR оставалась премиальной, лучшей в своем классе платформой для профилирования производства, потребуются некоторые инвестиции. […] Необходимо будет привлечь сообщество OpenJDK . ” Так кто же что делает, когда здесь?! Я не знаю. Но я надеюсь что будут предприняты надлежащие действия!

Запись в блоге

Sonatype Lift Объединяет статические анализаторы кода для Java и других языков

Статические анализаторы кода обнаруживают ошибки, которых часто не обнаруживают тесты. Sonatype Lift объединяет множество анализаторов с открытым исходным кодом для Java и других языков. Lift бесплатен для общедоступных репозиториев Git, но не для частных.

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

Во всяком случае, я использую два распространенных статических анализатора: PMD и FindBugs преемник Обнаруживают ошибки . Они оба являются отдельными целями Gradle, которые я запускаю при сборке выпуска не позднее. В отличие от этих двух, Подверженный ошибкам Google всегда запускается во время компиляции Java, поэтому он дает мне гораздо более непосредственную обратную связь.

Sonatype объединяет 25 статических анализаторов для Java, JavaScript, C++ и других языков программирования в продукте под названием Lift . Lift работает с репозиториями Git в GitHub, GitLab и Atlassian BitBucket и создает запросы на извлечение с исправлениями. Вы знаете, как Snyk делает для уязвимостей в зависимостях.

Звучит заманчиво, так сколько же это стоит? Это ” бесплатно навсегда в общедоступных репозиториях ” и стоит 25 долларов в месяц/разработчик для частных репозиториев.

Прелесть объединения статических анализаторов с открытым исходным кодом заключается в том, что мы можем сами интегрировать эти анализаторы! Вот те, которые остались в настоящее время используются для Java: Вывод Facebook , Подверженный ошибкам, плагин Spot Bugs ” Найти ошибки безопасности “, Затруднительное положение , Semgrep и PMD (по умолчанию отключен). Так что, если мне будет скучно в течение следующих нескольких месяцев, я мог бы теперь добавить больше статических анализаторов в свой проект! 👍 🏻

Если Lift не для вас, я бы сказал: Начните с ошибок, подверженных ошибкам, и выявляйте ошибки. Между этими двумя вы найдете много ошибок!

Информационная статья

Освободить

Кварки 2.0.0

Самый скромный конкурент Spring Boot добавляет непрерывное тестирование, интерфейс командной строки и клиент GraphQL в версии 2.0. JDK11 теперь является минимальной версией, и зависимости были обновлены.

“”Кварки делают Java сверхзвуковой, субатомной”, цитирую веб-сайт Quarks 2.0 . Другими словами: это современная микросервисная платформа, которая создает небольшие и быстрые собственные изображения с помощью GraalVM. Насколько популярны кварки?

Snyk “Отчет об экосистемах JVM за 2021 год” делает Quarkus лидером “Пакета Hip Framework в погоне за Spring Boot” с шириной 11% (см. выпуск №41 ). “Отчет о Java-технологиях JRebel 2021” (см. выпуск №27 ) отдает эту честь DropWizard (9%), за которым следуют Quarks (6%).

Теперь вернемся к версии 2.0. Несмотря на большой скачок по сравнению с 1.x, в приведенном выше резюме уже сказано почти все, что вам нужно знать: три новые функции, JDK11 и обновления зависимостей. Эти обновления включают GraalVM 21.1, Eclipse Vert.x 4 , Eclipse MicroProfile 4 и Hibernate ORM 5.5.

Примечания к выпуску

Apache Camel 3.11

Apache Camel – это платформа интеграции, которая реализует ” Шаблоны интеграции предприятия ” из одноименной книги . Эта версия является выпуском LTS с 101 новыми функциями, улучшениями и исправлениями .

Частью этого выпуска является Camel Quarks 2.0.0 это – вы, наверное, уже догадались – объединяет Camel с Quarks 2.0.0.

Объявление

IntelliJ IDEA 2021.1.3

Если вы использовали IntelliJ IDEA, то, вероятно, она уже заставила вас перейти на эту новую версию.

Когда я прочитал, что он исправил “зависания пользовательского интерфейса”, я на мгновение подумал, что он исправил те, которые Я иногда испытываю . Но, к сожалению, это другие зависания . 😒

Объявление

О

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

Карстен работал в Европе и США. В 2004 году он стал соучредителем стартапа по разработке программного обеспечения в США. Карстен руководил разработкой продукта в течение 13 лет и ушел после того, как компания была успешно продана. Он стал соучредителем британского SaaS-стартапа ” Ваш дом в надежных руках ” в качестве технического директора в 2020 году. С 2019 года Карстен также работает подрядчиком в Великобритании.

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

Оригинал: “https://dev.to/ksilz/how-to-build-java-applications-today-july-5-2021-4pkf”