Heim Java javaLernprogramm Wie gut hat Jakarta EE auf die Bedürfnisse der Entwickler reagiert?

Wie gut hat Jakarta EE auf die Bedürfnisse der Entwickler reagiert?

Sep 27, 2024 am 06:11 AM

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

Crossposted auf Ed Burns Blog.

Zusammenfassung

Das Jakarta-Lenkungskomitee hat das Jakarta-Plattformprojekt mit dem Ziel ins Leben gerufen, das Feedback der Entwickler in die Entwicklung von EE 11 einzubeziehen. In diesem Blogbeitrag wird die Leistung des Plattformprojekts bewertet und ein GPA von 3,43 auf einer 4-Punkte-Skala für die Erreichung dieses Ziels vergeben Ziel.

Einführung

Ich fühle mich geehrt und fühle mich geehrt, in der Lage zu sein, bei der Umsetzung der nächsten Version von Jakarta EE mitzuhelfen. Ich habe im Laufe der Jahrzehnte viele Rollen in J2EE/Java EE/Jakarta EE inne: Implementierer, Spezifikationsleiter, Befürworter, Autor, Tester und mehr. Meine aktuelle Rolle ist jedoch eine neue für mich: Release-Koordinator.

In dieser Rolle leite ich (zusammen mit Arjan Tijms) das Jakarta Platform-Projekt, das für die Bereitstellung der fertigen Jakarta EE-Spezifikation (und Komponentenspezifikationen), des entsprechenden TCK und zumindest für die Ratifizierung der kompatiblen Implementierung verantwortlich ist alle Spezifikationen. Wichtig ist, dass es nicht eine einzige monolithische Implementierung geben muss, die alle Komponenten-TCKs gleichzeitig erfüllt, sondern dass es eine einzige monolithische Implementierung geben muss, die den Plattform-TCK erfüllt.

Im Geiste der Transparenz, die ich vor über zwei Jahrzehnten starten durfte, untersucht dieser Blogbeitrag, wie gut das Jakarta-Plattform-Projekt während der EE 11 eines der vom Lenkungsausschuss für das Plattform-Projekt festgelegten Ziele erreicht hat: Entwickler-Feedback einbeziehen.

Zu wenig versprechen und zu viel liefern

Institutionelles Gedächtnis ist die Art und Weise, wie Gruppen von Menschen aus Fehlern lernen und vermeiden, sie zu wiederholen. Ich hoffe, dass wir uns alle darauf einigen können, dass das institutionelle Gedächtnis wichtig und bewahrenswert ist. Da es sich bei Software um ausführbares Wissen handelt, ist ein sehr lang laufendes Open-Source-Softwareprojekt eine besondere Art institutionellen Gedächtnisses. Ein Projekt, das ein langjähriges Ökosystem aus langjährigen Open-Source-Projekten darstellt, ist so ziemlich der Gipfel des Besonderen. Was bedeutet es angesichts all dieser Besonderheiten, Entwickler-Feedback einzubeziehen?

Es ist viel einfacher, auf Entwickler-Feedback zu reagieren, wenn die möglichen Kosten eines Fehlers in einem einzigen Projekt enthalten sind. Angesichts der möglichen hohen Kosten war das Jakarta EE 11-Plattformprojekt mit unseren Zielen zur Einbeziehung des Entwickler-Feedbacks bewusst zurückhaltend. Dies ist unsere Umsetzung der bewährten Strategie „Underpromise and Overdeliver“.

Im Vorfeld von Jakarta EE 11 haben wir eine offene Community-Diskussion über die Anforderungen für Jakarta EE 11 geführt und diese in diesem Diskussionsdokument zu Jakarta EE 11 festgehalten. Sehen wir uns die Community-Beiträge an, die wir erhalten haben und die hauptsächlich von Entwicklern stammten, und schauen wir uns an, wie wir in EE11 abgeschnitten haben.

Unterversprechen

  • Jakarta-Daten

  • Jakarta NoSQL

  • Übernehmen Sie Java SE 11, 17, 21 neue Funktionen und Breaking Changes

  • Virtuelle Threads

  • TCK-Refactoring

  • CDI-zentriert

    • CDI ersetzt Managed Beans
    • CDI ersetzt EJB
  • Redundante HTTP-Stacks auflösen: Servlet und REST

  • MicroProfile und Jakarta Alignment

  • CORS-Unterstützung

  • Jakarta-Konfiguration

  • Erleichtern Sie die Migration von einem Anbieter zum anderen

Gemischte Lieferung

Ich werde die Lieferung in vier Kategorien gruppieren: überliefert, geliefert, einigermaßen geliefert, nicht geliefert.

Überliefert

  • Jakarta Persistence – Programmatische Konfiguration statt persistence.xml und vieles mehr Gavin King Blogbeitrag
  • Jakarta Security – Wählen Sie dynamisch einen Authentifizierungsmechanismus security-311

Geliefert

  • Jakarta-Daten

    • Ja, diese neue Spezifikation ist in der Plattform vorhanden.
  • Übernehmen Sie die neuen Funktionen und Breaking Changes von Java SE 11, 17, 21.

    • Ja, es gibt zahlreiche Spezifikationen, die die neuen Sprachfunktionen von 11 bis 21 nutzen.
  • TCK Refactoring (wir werden dies liefern. Wir halten die Freigabe dafür zurück).

    • Die Jakarta EE Platform TCK ist eine wichtige Softwarekomponente für die Bereitstellung des Wertversprechens der IT-Investitionsstabilität im Maßstab von Jahrzehnten. Aufgrund fehlender Wartungsinvestitionen sind bei der Software des TCK technische Schulden entstanden. Mit Jakarta EE 11 bringen wir das TCK auf den neuesten Stand der Testtools. Diese Investition wird bessere Kompatibilitätstests ermöglichen und die Hürde für das Hinzufügen weiterer Tests im Zuge der Weiterentwicklung der Jakarta EE-Plattform verringern.
  • API-Flexibilität, d. h. keine Umbrella-JARs mehr.

    • Keine Fragen mehr wie „Muss ich auf Jakarta EE xx warten“, um diese Funktion zu nutzen?
    • Jakarta EE Platform APIs sind jetzt nur noch eine Sammlung von Standard-APIs.
    • Einzelne Spezifikationen können von den Benutzern nach Belieben ausgeschlossen oder aktualisiert werden,
    • Es können auch neue Spezifikationen hinzugefügt werden.
    • Dadurch ist die Jakarta EE-Plattform so flexibel wie Spring Boot, aber ohne den Implementierungsaufwand in Ihrer Anwendung, das Beste aus beiden Welten!

Etwas geliefert

  • Virtuelle Threads

    • Die Parallelitätsspezifikation hat ein Annotationsattribut streng spezifiziert, das erfordert, dass Implementierungen virtuelle Threads nutzen, sofern diese in der Laufzeit verfügbar sind. Wenn Sie Java 21 oder höher verwenden, erhalten Sie virtuelle Threads, wenn Sie das Annotation-Attribut verwenden. Wenn Sie mit 17 laufen, tun Sie das nicht.
  • CDI-zentriert

    • CDI ersetzt Managed Beans.

      • Das haben wir
        • Entfernen Sie die @ManagedBean-Annotation.
        • Verschieben Sie die „Integrations“-Teile von CDI von der CDI-Spezifikation in die Plattformspezifikation.
        • Jakarta Concurrency fügt der @Asynchronous-Annotation Zeitplanung hinzu, um die @Scheduled-Annotation für EJBs concurrency-271 zu ersetzen
        • Parallelitätsressourcen in CDI-Beans einfügen, anstatt @Resource in einer EJB-Parallelität-348 zu verwenden.
        • Unterstützung für verwaltete Beans in Jakarta REST entfernt.
        • Qualifizierer für Persistenzeinheiten in Persistenz – ermöglichen das Einfügen von Persistenzkontext auf CDI-idiomatische Weise.
  • Neue Java-Funktionen

    • Datensätze als Embeddables und IDs in Jakarta Persistence.
    • Aufzeichnungen in Expression Language.
    • Datensätze in Validation (früher Bean Validation) validation-275.
    • Flow-API in Concurrency concurreny-368.
  • MicroProfile und Jakarta Alignment

    • Das haben wir
      • Erstellen Sie die Jakarta Security MicroProfile Security Bridge-Spezifikation.

Nicht geliefert

  • Jakarta NoSQL

    • Dies hat die Abstimmung zu Beginn des EE 11-Entwicklungszyklus nicht bestanden. Meiner Meinung nach waren die Gründe nicht technischer Natur und können daher für EE 12 gelöst werden.
  • Redundante HTTP-Stacks auflösen: Servlet und REST

    • Das ist eine sehr große Sache. Meiner Meinung nach bräuchte es einen großen Anbieter, der hinter dieser Idee steht und erhebliche Ressourcen aufwendet, um sie umzusetzen, wahrscheinlich indem er Arbeit an Wettbewerber spendet, damit diese das Gleiche tun könnten.
  • CORS-Unterstützung

    • Dieser ist mir noch nicht einmal auf dem Radar.
  • Jakarta-Konfiguration

    • Dieses Problem scheint in einer „MicroProfile-Konfiguration ist gut genug“ festzustecken und fällt daher durchs Raster. Ich denke, wir müssten das MicroProfile-Projekt davon überzeugen, den Übergang von MicroProfile zur Jakarta EE Core Profile-Spezifikation zu ermöglichen.
  • Erleichtern Sie die Migration von einem Anbieter zum anderen

    • Dies steht im Widerspruch zu den Geschäftsinteressen der einzelnen Anbieter, daher glaube ich nicht, dass diesem Thema große Aufmerksamkeit geschenkt wird.

Zusammenfassung

Lassen Sie uns quantitativ vorgehen. Für jeden Punkt in der Liste Underpromise gebe ich uns eine Buchstabennote. A für zu viel geliefert oder geliefert, B für teilweise geliefert, D für nicht geliefert.

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

Mit dieser Liste haben wir nur einen Notendurchschnitt von 2,54 erreicht. Nicht so toll. Wenn wir die Entwickler-Feedback-Anfragen aus der Liste streichen, deren Aufnahme meiner Meinung nach nicht realistisch ist (CORS, Redundante HTTP-Stacks, Jakarta Config, Vereinfachung der Migration von einem Anbieter zu einem anderen), erhalten wir eine bessere Note: 3,43. Nicht schlecht, aber wir haben Raum zum Wachsen.

Das obige ist der detaillierte Inhalt vonWie gut hat Jakarta EE auf die Bedürfnisse der Entwickler reagiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1671
14
PHP-Tutorial
1276
29
C#-Tutorial
1256
24
Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Verursacht die Sicherheitssoftware des Unternehmens, die die Anwendung nicht ausführt? Wie kann man es beheben und es lösen? Apr 19, 2025 pm 04:51 PM

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Wie konvertiere ich Namen in Zahlen, um die Sortierung zu implementieren und die Konsistenz in Gruppen aufrechtzuerhalten? Apr 19, 2025 pm 11:30 PM

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Wie vereinfachte ich Probleme mit der Feldzuordnung im Systemdocking mithilfe des Mapstruct? Apr 19, 2025 pm 06:21 PM

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Wie identifiziert Intellij IDEA die Portnummer eines Spring -Boot -Projekts, ohne ein Protokoll auszugeben? Apr 19, 2025 pm 11:45 PM

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Wie kann ich elegante Entitätsklassenvariablennamen erhalten, um Datenbankabfragebedingungen zu erstellen? Apr 19, 2025 pm 11:42 PM

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Wie kann ich Java -Objekte sicher in Arrays umwandeln? Wie kann ich Java -Objekte sicher in Arrays umwandeln? Apr 19, 2025 pm 11:33 PM

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? E-Commerce-Plattform SKU und SPU-Datenbankdesign: Wie berücksichtigen Sie sowohl benutzerdefinierte Attribute als auch Attributloses Produkte? Apr 19, 2025 pm 11:27 PM

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...

Wie verwendet ich die Redis -Cache -Lösung, um die Anforderungen der Produktranking -Liste effizient zu erkennen? Wie verwendet ich die Redis -Cache -Lösung, um die Anforderungen der Produktranking -Liste effizient zu erkennen? Apr 19, 2025 pm 11:36 PM

Wie erkennt die Redis -Caching -Lösung die Anforderungen der Produktranking -Liste? Während des Entwicklungsprozesses müssen wir uns häufig mit den Anforderungen der Ranglisten befassen, z. B. das Anzeigen eines ...

See all articles