簡體   English   中英

Java Web框架真的值得麻煩嗎?

[英]Are Java web frameworks really worth the hassle?

我相對較新的Java編程(大約2年),但不是Web開發。 我從HTML和ASP(.NET之前)開始,最近開始搞亂J2EE。 我覺得我很好地掌握了JSP / Servlets(我發現它們與ASP類似)並且最近開始使用JSF和Facelets。 雖然我可以看到為什么人們會喜歡JSF,但我發現它是一個巨大的負擔,它實際上減慢了我的開發時間。 我想這是由於學習曲線,但我經常發現自己認為如果我只是使用JSP / Servlet,我將完成一個頁面/任務。

那些花時間學習框架的人是否常見? 你有沒有花時間學習一個框架,一旦你精通它,就決定回到一個不那么復雜但你覺得舒服的方法?

我也質疑我是否選擇了正確的框架。 我真的希望找到一些不會影響添加AJAX功能的東西。

JSF可能很難開始使用,並且比許多Java Web框架更難學習。 您可能會發現使用Seam更容易使用JSF,這簡化了您使用JSF的大部分工作,並將JSP替換為Facelets,這是一項很大的改進。

或者,您可以嘗試SpringMVC,很多人都覺得它更容易使用。

我一直在使用facelets一年多一點。 我在Java Web框架中看到的主要優點之一是它有助於保持代碼清潔並促進重用。 例如,在facelets中,您不會像在JSP中那樣在頁面中獲取任何scriptlet。 我已經看到生產中超過3000行的ASP文件。 ASP或JSP沒有任何內在錯誤,但它確實很容易將頁面中的某些業務邏輯混為一談。 沒有害處,對嗎? 直到其他人必須維護它。

大多數框架試圖“幫助”您更加嚴格地分離MVC或他們喜歡的任何模型,這反過來導致更清晰的模板(jsp,facelets,無論如何)以及自動單元可測試的業務和域代碼。 使用許多框架可能需要花費更多時間,但在維護和重構方面可以節省很多時間。

我是第二個SpringMVC。 它很容易理解,如果你使用注釋 ,代碼是非常語義的。 就像那些百威商業廣告一樣 ...... Servlet太輕了...... Struts太重了。

我希望Java有腳手架。 它可以與Grails一起使用,但這是嵌入框架的另一個框架。

我認為簡單的答案是 - 如何進行測試並在進行更改時驗證它是否有效?

這就是簡單的解決方案崩潰的地方,你最終處於維護狀態。 不幸的是:(

我認為這取決於框架是否真正為您解決了“難題”,並且很容易解決。 由於某些原因,人們總是發現這是一個非常有爭議的事情,但是我考慮使用的大部分框架我最終都會中途退出,因為寫一些代碼更容易完成我想要的事情。

后來,當我的代碼出現問題時,我可以直接找到問題所在並添加一行代碼來修復它,而不是瀏覽文檔頁面來查找魔術配置參數。 如果我遇到問題(插入最喜歡的框架),我通常會發現,當框架應該解決的根本問題從來沒有那么復雜時,我已經好幾年了。

我最喜歡的無用框架是那些需要大量配置和笨拙的樣板代碼來執行基本任務的框架,例如在套接字上發送一些字節或將一些參數填充到預准備語句中並將其發送到數據庫。 我最喜歡的另一個是“XML技術”,特別是那些“可插拔”或“可配置”的技術。 (為什么我想要一個“可插拔的解析器框架”而不只是一個總是有效的解析器...?)叫我Victor Meldrew,但人們可以將10分鍾的正則表達式問題變成2天的方式,這真是太棒了 - 你做這個框架與X在標題做的問題。

現在說,有些人絕對在Spring,Hibernate,JSF,MVCJammer,Joomajamaventilate,其中帶有'X'等等的東西中茁壯成長等等。對某些人來說,在某些情況下,這顯然是奇跡,我是只是錯過了生活。

可能這取決於您或您的組織是否主要具有“配置”和“將事物匯集在一起​​”expertese或“編程”專家? 我想我有更多的后者。

我的建議是:對許多不同的框架感到滿意,並且知道如何親自動手並自己編寫。 您將開發一些最喜歡的工作方式,但您將很好地理解工具可以做什么,以及它們不能做什么。 而且你也會關注什么時候是使用框架的正確時機,什么時候不適合。

我發現JSF和Facelets絕對值得麻煩,如果你能在學習曲線中存活下來的話。 它非常陡峭,但是當你弄明白時,它很容易使用。 它們使管理會話和應用程序范圍對象比原始JSP和servlet更容易處理,並且我發現當我不必考慮業務邏輯中的Web時,我可以編寫更清晰的Java。 總的來說,我發現框架幫助我以一致,易於理解的方式組織我的想法(以及擴展,我的代碼)。

特別是Facelets是我最喜歡的Web模板引擎。 我喜歡這樣的事實:我的頁面是有效的 XML,並且我沒有遍布整個地方的scriptlet。 如果您了解框架,它會使代碼更清晰,更容易理解。 再次有學習曲線。

順便說一句,如果你使用像RichFaces或IceFaces這樣的東西,那么將AJAX添加到Facelets很容易。 他們預先構建了ajax組件,您可以輕松地將其添加到您的應用程序中。

也就是說,它並不是所有項目的最佳選擇,YMMV等等。 在一天結束時,使用任何框架都是判斷。 如果它不能幫助你解決問題,那就不值得了。 不要與您的工具斗爭,正確使用它們。 如果該工具妨礙您使用,請使用其他工具。 在非常小的應用程序上,JSF和facelets確實不是很好的選擇。 在你擁有一個相當復雜的領域模型和復雜的業務邏輯之前,它們並沒有真正發揮作用。 基本上,您需要項目足夠復雜,以克服為了開始而需要編寫的樣板代碼量。

SpringMVC值得一試。 J2EE不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM