交叉發佈在 Ed Burns 部落格上。
執行摘要
Jakarta 指導委員會特許了 Jakarta 平台項目,其目標是在 EE 11 的開發中納入開發人員的回饋。這篇部落格文章回顧了該平台專案的效能,並以 4 分制的方式授予 GPA 3.43 的成績目標。
介紹
我很榮幸也很榮幸能夠幫助交付 Jakarta EE 的下一個版本。幾十年來,我在 J2EE/Java EE/Jakarta EE 中擔任過許多角色:實施者、規範負責人、倡導者、作者、測試人員等等。然而,我目前的角色對我來說是一個新的發布協調員。
在此職位上,我(與 Arjan Tijms 一起)共同領導 Jakarta 平台項目,該項目負責交付完成的 Jakarta EE 規範(和組件規範)、相應的 TCK,並至少批准兼容的實現所有規格。重要的是,不需要有一個單一的整體實現同時滿足所有組件 TCK,但必須有一個透過平台 TCK 的單一整體實現。
本著二十多年前我有幸開始的透明精神,這篇博文探討了雅加達平台項目在EE 11 期間在實現指導委員會為平台項目設定的目標之一方面的表現:納入開發者反饋。
承諾不足和交付太多
制度記憶是人類群體從錯誤中學習並避免重蹈覆轍的方式。根據這個定義,我希望我們都能同意機構記憶很重要且值得保存。因為軟體是可執行的知識,所以長期運作的開源軟體專案是一種特殊的機構記憶。由長期運作的開源專案組成的長期運作的生態系統的專案幾乎是特殊的頂峰。考慮到所有這些特殊性,納入開發者回饋意味著什麼?
當犯錯的可能成本包含在單一專案中時,顯示對開發人員回饋的回應要容易得多。鑑於可能的高成本,Jakarta EE 11 平台專案故意保持低調,以實現納入開發人員回饋的目標。這是我們對「承諾不足、交付過多」這項久經考驗的策略的實施。
在 Jakarta EE 11 發布之前,我們對 Jakarta EE 11 的要求進行了公開社區討論,並將其記錄在本 Jakarta EE 11 討論文件中。讓我們回顧一下我們收到的社群意見(主要是由開發人員驅動的),看看我們在 EE11 中的表現如何。
承諾不足
雅加達資料
雅加達 NoSQL
採用 Java SE 11、17、21 新功能和重大變更
虛擬執行緒
TCK 重構
-
以 CDI 為中心
- CDI 取代託管 Bean
- CDI 取代 EJB
解決冗餘 HTTP 堆疊:Servlet 和 REST
MicroProfile 和 Jakarta 對齊
CORS 支援
雅加達配置
讓從一個供應商遷移到另一個供應商變得更容易
混合出貨
我將把交付分為四類:超額交付、已交付、部分交付、未交付。
超額交付
- Jakarta Persistence - 程式設定而不是 persistence.xml 以及更多 Gavin King 部落格文章
- Jakarta Security - 動態選擇驗證機制 security-311
發表
-
雅加達資料
- 是的,這個新規範已出現在平台中。
-
採用 Java SE 11、17、21 新功能和重大變更。
- 是的,有許多規範利用了 11 - 21 的新語言功能。
-
TCK 重構(我們將交付此內容。我們正在為其保留發布版本)。
- Jakarta EE 平台 TCK 是一個重要的軟體元件,可實現數十年規模的 IT 投資穩定性價值主張。由於缺乏維護投資,TCK 的軟體一直在累積技術債。在 Jakarta EE 11 中,我們讓 TCK 與最先進的測試工具保持同步。隨著 Jakarta EE 平台的發展,這項投資將實現更好的兼容性測試,並降低添加更多測試的障礙。
-
API 靈活性,即不再需要 Umbrella JAR。
- 不再有類似「我必須等待 Jakarta EE xx」才能擁有此功能的問題嗎?
- Jakarta EE Platform API 現在只是預設 API 的集合。
- 個別規格可以由使用者依需求排除或升級,
- 也可以新增規格。
- 這使得 Jakarta EE 平台像 Spring Boot 一樣靈活,但應用程式中沒有實現包袱,兩全其美!
有點交付
-
虛擬執行緒
- 並發規範嚴格指定了註解屬性,要求實作利用虛擬執行緒(如果虛擬執行緒在執行時可用)。如果您在 Java 21 或更高版本上執行,則在使用註解屬性時會取得虛擬執行緒。如果你在 17 號跑步,你就不會。
-
以 CDI 為中心
-
CDI 取代託管 Bean。
- 我們做到了
- 刪除@ManagedBean註解。
- 將 CDI 的「整合」部分從 CDI 規範移至平台規範。
- Jakarta Concurrency 在 @Asynchronous 註釋中添加了調度,以替換 EJB 並發上的 @Scheduled 註釋 - 271
- 將並發資源注入 CDI bean,而不是在 EJB 並發中使用 @Resource-348。
- 刪除了 Jakarta REST 中的託管 Bean 支援。
- 持久化中持久化單元的限定符 - 允許以 CDI 慣用方式註入持久化上下文。
- 我們做到了
-
-
Java 新功能
- 在 Jakarta Persistence 中記錄為可嵌入項目和 ID。
- 用表達語言記錄。
- Validation(先前的 Bean Validation)validation-275 中的記錄。
- 並發中的 Flow API concurreny-368。
-
MicroProfile 和 Jakarta 對齊
- 我們做到了
- 建立 Jakarta Security MicroProfile 安全橋規格。
- 我們做到了
沒有交付
-
雅加達 NoSQL
- 這在 EE 11 開發週期開始時沒有通過投票。在我看來,原因是非技術性的,因此可以在 EE 12 中解決。
-
解決冗餘 HTTP 堆疊:Servlet 和 REST
- 這是一個非常大的。在我看來,需要一個主要供應商來支持這個想法,並投入大量資源來實現它,可能會向競爭對手捐贈工作,這樣他們也可以做同樣的事情。
-
CORS 支援
- 這個甚至沒有出現在我的雷達上。
-
雅加達配置
- 這個似乎陷入了「MicroProfile 配置夠好」的困境,因此陷入了困境。我認為我們必須說服 MicroProfile 專案允許其從 MicroProfile 轉移到 Jakarta EE Core Profile 規格。
-
讓從一個供應商遷移到另一個供應商變得更容易
- 這與每個供應商的商業利益是對立的,所以我認為這一點不會受到太多關注。
概括
讓我們定量一下。對於Underpromise清單中的每一項,我都會給我們一個字母等級。 A 表示超額交付或交付,B 表示部分交付,D 表示未交付。
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 |
透過這份清單,我們的 GPA 只達到了 2.54。不太好。如果我們從清單中刪除我認為不切實際的開發人員回饋請求(CORS、冗餘HTTP 堆疊、Jakarta 配置、使從一個供應商遷移到另一個供應商變得更容易),我們會得到更好的分數:3.43。不錯,但我們還有成長的空間。
以上是Jakarta EE 對開發人員需求的回應效果如何?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Java在不同操作系統上的表現存在細微差異。 1)JVM實現不同,如HotSpot、OpenJDK,影響性能和垃圾回收。 2)文件系統結構和路徑分隔符不同,需使用Java標準庫處理。 3)網絡協議實現差異影響網絡性能。 4)GUI組件外觀和行為在不同系統上有別。通過使用標準庫和虛擬機測試,可減少這些差異的影響,確保Java程序穩定運行。

javaoffersrobustobject-IentiendedProgrammming(OOP)和Top-Notchsecurityfeatures.1)OopinjavainCludesClasses,對象,繼承,多態性,和列出,andeclingfleximaintainablesys.ss.2)SecurityFeateTuersLudEtersludEterMachine(

JavaScriptandJavahavedistinctstrengths:JavaScriptexcelsindynamictypingandasynchronousprogramming,whileJavaisrobustwithstrongOOPandtyping.1)JavaScript'sdynamicnatureallowsforrapiddevelopmentandprototyping,withasync/awaitfornon-blockingI/O.2)Java'sOOPf

JAVAACHIEVESPLATFORMINDEPENTENCETHROUGHJAVAVIRTAILMACHINE(JVM)和BYTECODE.1)THEJVMINTERPRETSBBYTECODE,允許theingthesmecodetorunonanyanyanyanyplatformwithajvm.2)

java'splatformendependecemeansapplicationscanrunonanyplatformwithajvm,使“ Writeonce,runanywhere”。

JVM'SperformanceIsCompetitiveWithOtherRuntimes,operingabalanceOfspeed,安全性和生產性。 1)JVMUSESJITCOMPILATIONFORDYNAMICOPTIMIZAIZATIONS.2)c提供NativePernativePerformanceButlanceButlactsjvm'ssafetyFeatures.3)

JavaachievesPlatFormIndependencEthroughTheJavavIrtualMachine(JVM),允許CodeTorunonAnyPlatFormWithAjvm.1)codeisscompiledIntobytecode,notmachine-specificodificcode.2)bytecodeisisteredbytheybytheybytheybythejvm,enablingcross-platerssectectectectectross-eenablingcrossectectectectectection.2)

TheJVMisanabstractcomputingmachinecrucialforrunningJavaprogramsduetoitsplatform-independentarchitecture.Itincludes:1)ClassLoaderforloadingclasses,2)RuntimeDataAreafordatastorage,3)ExecutionEnginewithInterpreter,JITCompiler,andGarbageCollectorforbytec


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。