Maison >Java >javaDidacticiel >Dans quelle mesure Jakarta EE a-t-il répondu aux besoins des développeurs ?

Dans quelle mesure Jakarta EE a-t-il répondu aux besoins des développeurs ?

Patricia Arquette
Patricia Arquetteoriginal
2024-09-27 06:11:03825parcourir

How well did Jakarta EE respond to the needs of developers?

Ed Burns ブログにクロスポストされています。

エグゼクティブサマリー

Jakarta Steering Committee は、EE 11 の開発に開発者のフィードバックを組み込むことを目的として、Jakarta Platform プロジェクトを認可しました。このブログ投稿では、プラットフォーム プロジェクトのパフォーマンスをレビューし、これを達成する 4 段階評価で GPA 3.43 を獲得しました。ゴール。

導入

私は、Jakarta EE の次のイテレーションの提供を支援する立場にいることを恐縮し、光栄に思っています。私は数十年にわたり、J2EE/Java EE/Jakarta EE で、実装者、仕様リーダー、提唱者、作成者、テスターなど、多くの役割を果たしてきました。しかし、私の現在の役割は、リリース共同コーディネーターという新しい役割です。

この役割において、私は Jakarta Platform プロジェクトを (Arjan Tijms とともに) 共同主導しています。このプロジェクトは、完成した Jakarta EE 仕様 (およびコンポーネント仕様)、対応する TCK の提供、および少なくとも互換性のある実装の承認を担当します。すべての仕様。重要なのは、すべてのコンポーネント TCK を同時に満たす単一のモノリシック実装が存在する必要はありませんが、プラットフォーム TCK を通過する単一のモノリシック実装が存在する必要があることです。

私が幸運にも 20 年以上前に開始できた透明性の精神に基づいて、このブログ投稿では、Jakarta Platform プロジェクトが EE 11 中に、運営委員会によってプラットフォーム プロジェクトに設定された目標の 1 つをどのように達成したかを検証します。開発者のフィードバックを取り入れます。

過少約束と過剰納品

制度的記憶は、人間の集団が間違いから学び、同じことを繰り返さないようにする方法です。この定義によれば、制度上の記憶は重要であり、保存する価値があるということに私たち全員が同意できると思います。ソフトウェアは実行可能な知識であるため、非常に長期間にわたって実行されているオープンソース ソフトウェア プロジェクトは、特別な種類の組織の記憶となります。長期にわたって実行されているオープンソース プロジェクトの長期にわたるエコシステムであるプロジェクトは、まさに特別なものの頂点です。このような特殊性を念頭に置いた上で、開発者のフィードバックを取り入れるとは何を意味するのでしょうか?

間違いを犯した場合に発生する可能性のあるコストが 1 つのプロジェクト内に収まっている場合、開発者のフィードバックに応答することがはるかに簡単になります。コストが高くなる可能性を考慮して、Jakarta EE 11 プラットフォーム プロジェクトでは、開発者のフィードバックを取り入れるという目標を意図的に控えめにしました。これは、「過少約束と過剰納品」という実証済みの戦略の実装です。

Jakarta EE 11 に先立って、Jakarta EE 11 の要件に関するオープン コミュニティ ディスカッションを実施し、それをこの Jakarta EE 11 ディスカッション ドキュメントにまとめました。主に開発者主導で受け取ったコミュニティからの意見を確認し、EE11 での成果を見てみましょう。

過小約束

  • ジャカルタデータ

  • ジャカルタ NoSQL

  • Java SE 11、17、21 の新機能と重大な変更を採用

  • 仮想スレッド

  • TCK リファクタリング

  • CDI セントリック

    • マネージド Bean に代わる CDI
    • EJB を置き換える CDI
  • 冗長な HTTP スタックの解決: サーブレットと REST

  • マイクロプロファイルとジャカルタの連携

  • CORS サポート

  • ジャカルタ構成

  • あるベンダーから別のベンダーへの移行を容易にします

混合配送

配信を 4 つのバケット (超過配信、配信済み、ある程度配信済み、配信なし) にグループ化します。

過剰納品

  • Jakarta Persistence -persistence.xml の代わりにプログラムによる構成など、Gavin King のブログ投稿
  • Jakarta Security - 認証メカニズムを動的に選択します security-311

納品済み

  • ジャカルタのデータ

    • はい、この新しい仕様はプラットフォームに存在します。
  • Java SE 11、17、21 の新機能と重大な変更を採用します。

    • はい、11 から 21 までの新しい言語機能を利用する仕様が多数あります。
  • TCK リファクタリング (これを提供します。リリースは保留中です)。

    • Jakarta EE Platform TCK は、数十年規模の IT 投資の安定性という価値提案を提供するために不可欠なソフトウェア コンポーネントです。 TCK のソフトウェアは、保守投資の不足により技術的負債を抱えています。 Jakarta EE 11 では、最先端のテスト ツールを使用して TCK を最新の状態にしています。この投資により、互換性テストの改善が可能になり、Jakarta EE プラットフォームの進化に応じてテストを追加する障壁が低くなります。
  • API の柔軟性。つまり、Umbrella JAR は不要です。

    • Plus de questions du type « dois-je attendre Jakarta EE xx » pour avoir cette fonctionnalité ?
    • Les API de la plateforme Jakarta EE ne sont désormais qu'un ensemble d'API par défaut.
    • Les spécifications individuelles peuvent être exclues ou mises à niveau par les utilisateurs à leur guise,
    • De nouvelles spécifications peuvent également être ajoutées.
    • Cela rend la plateforme Jakarta EE aussi flexible que Spring Boot, mais sans avoir le bagage d'implémentation dans votre application, le meilleur des deux mondes !

Un peu livré

  • Fils virtuels

    • La spécification de concurrence a rigoureusement spécifié l'attribut d'annotation qui nécessite que les implémentations tirent parti des threads virtuels s'ils sont disponibles dans le runtime. Si vous utilisez Java 21 ou une version ultérieure, vous obtenez des threads virtuels lorsque vous utilisez l'attribut d'annotation. Si vous courez le 17, vous ne le faites pas.
  • CDI Centré

    • CDI remplaçant les beans gérés.

      • Nous l'avons fait
        • supprimez l'annotation @ManagedBean.
        • Déplacez les parties « intégration » de CDI de la spécification CDI vers la spécification de plate-forme.
        • Jakarta Concurrency ajoute la planification à l'annotation @Asynchronous pour remplacer l'annotation @Scheduled sur la concurrence des EJB-271
        • Injecter des ressources de concurrence dans des beans CDI au lieu d'utiliser @Resource dans une concurrence EJB-348.
        • Suppression de la prise en charge des beans gérés dans Jakarta REST.
        • Qualificateurs pour les unités de persistance dans Persistence - permettent d'injecter un contexte de persistance de manière idiomatique CDI.
  • Nouvelles fonctionnalités Java

    • enregistrements sous forme d'éléments intégrables et d'identifiants dans Jakarta Persistence.
    • enregistrements en langage d'expression.
    • enregistrements dans Validation (anciennement Bean Validation) validation-275.
    • API Flow dans Concurrency concurreny-368.
  • MicroProfile et alignement de Jakarta

    • Nous l'avons fait
      • Créez la spécification du pont de sécurité Jakarta Security MicroProfile.

N'a pas livré

  • Jakarta NoSQL

    • Cela n'a pas été voté au début du cycle de développement de l'EE 11. À mon avis, les raisons n'étaient pas techniques et peuvent donc être résolues pour EE 12.
  • Résoudre les piles HTTP redondantes : Servlet et REST

    • C'est un très gros problème. À mon avis, il faudrait qu'un fournisseur majeur soutienne cette idée et consacre des ressources importantes pour la concrétiser, probablement en faisant don de travail à des concurrents afin qu'ils puissent également faire de même.
  • Support CORS

    • Celui-ci n'est même pas apparu sur mon radar.
  • Configuration de Jakarta

    • Celui-ci semble être coincé dans une "configuration MicroProfile est assez bonne", et passe donc entre les mailles du filet. Je pense que nous devrons convaincre le projet MicroProfile de permettre à cela de passer de MicroProfile à la spécification Jakarta EE Core Profile.
  • Facilitez la migration d'un fournisseur à un autre

    • Celui-ci est contraire aux intérêts commerciaux de chaque fournisseur, donc je ne pense pas que celui-ci retienne beaucoup d'attention.

Résumé

Passons au quantitatif. Pour chaque élément de la liste Underpromise, je nous donnerai une note alphabétique. A pour sur-livré ou livré, B pour quelque peu livré, D pour n'a pas livré.

Feedback to incorporate Grade
Jakarta Data A
Jakarta NoSQL D
Adopt Java SE 11, 17, 21 new features and Breaking Changes A
Virtual Threads A
TCK Refactoring A
CDI Centric A
Resolve redundant HTTP stacks: Servlet and REST D
MicroProfile and Jakarta Alignment B
CORS support D
Jakarta Config D
Make it easier to migrate from one vendor to another D

Avec cette liste, nous n'avons obtenu qu'un GPA de 2,54. Pas si génial. Si nous supprimons de la liste les demandes de commentaires des développeurs que je juge peu réalistes d'inclure (CORS, piles HTTP redondantes, configuration Jakarta, faciliter la migration d'un fournisseur à un autre), nous obtenons une meilleure note : 3,43. Pas mal, mais nous avons de la marge pour grandir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn