Re: [站內] 連署 Ruby 版

看板java作者 (吸的大蟒蛇)時間19年前 (2006/04/20 16:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串12/14 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : ==站內信件= : 本篇 Thread 符合站內信件條款 : 還請 CPython 注意這件事情... : 不然,cplusplus 可以舉發你... XDXD 第一次在 PTT的連線板發文,一時不查,還請見諒 : ※ 引述《CPython (吸的大蟒蛇)》之銘言: : : ㄟ..... 單一語言的純淨性吧,某些公司兼持整間公司只用一種語言 : : 來開發所有程式,寫business logic用Java/EJB,寫資料庫用JDBC, : : 寫UI用Java/Swing,能用Java的就用Java。 : : 寫了一陣子的J2EE,最近最大的願望就是能脫離J2EE的魔掌,尤其是 : : 在寫網頁上,Struts這種勉勉強強能算是 framework的東西,竟是整 : : 個Java陣營的最大公約數,雖不滿意,也只能用下去了 :( : 我想請問一下上面這段的幾個... 恩... 問題點... : 一個是 "Struts 這種勉勉強強能算是 framework的東西" : 我對 Struts 不熟 : 對 framework 的定義... 恩... 也有點朦朧 T__T : 但是聽到這句話,總覺得... : 怎麼跟其他的文章 or 書籍講的不一樣? 一個好的Web Framework倒底該提供那些基本元素,讓程式設計師能夠很快 的開發一個網站,不用從新再造輪子呢? 1. 網頁的Template,能夠把網頁區分成四大塊Side bar, Menu Bar, Content and Footer 2. 基本的互動元件,使用者不用再自行開發javascript元件,能夠動態檢 查使用者的輸入資料是否型態正確。 3. URL dispatch. Model 2 4. 使用者管理、偏好管理 ---------- 再來看看 Struts的基本元件 1. ActionServlet & Action : Struts的原始目地是要達到 Model-View-Controller 把網頁的流程從Input Form中抽離出來,由統一的Controller來管理流程, 我不否認Struts在這一點上做的很好,但這也是Struts為一做到且做的好的 功能。 http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html 2. Validator : Servlet/Struts 在接受使用者輸入時都只接受 String , 我想用Java寫過網頁的人一定都寫過無數次的 try{ int amount = Integer.parseInt(request.getParameter("amount")); if(amount < 0) throws new NumberFormatException("amount < 0 !!"); }catch(NumberFormatException e){ request.getRequestDispatcher(ERROR_PAGE).dispatch(request,response) } Validator 是設計來幫使用者管理這些code的,在把 input value傳給 Action 處理前,先把非法的值挑出來,若是都是合法的數值,再送往Action處理。 很不幸的是,Validator只是讓你把這些Code整理在一起,並沒有減少Coding 的需求,此外 Validator 這一層是非必要性的,也就是說數值可以不經檢查 就送往Action。這一點當你是寫元件給自己用時是可以接受的,但是若你是 想開發元件給別人用,你不能保證他人會記得把值先處理過再送往Action。 所以最後就變成 Validator先檢查過一次、Action那層再檢查一次、若是後 端還有 Hibernate/JDO/EJB等,再檢查一遍,一段Code寫三次不是大問題, 後來要再來改需求才會出人命。 3. Taglib 雖然貴為最熱們的 Java Framework ,Struts的Taglib只能說是 貧乏、難用、underdocument ,讓我浪費了無數的時間才搞定,若是時間能 再來過,我會選用JSTL Struts就只提供這三大類了,剩下的使用者登錄、Session/Cookie management 網業的Layout管理都要自己做。 ------- 這樣看起來好像不算太差對吧,Struts的一切對我也曾經是美好的,不過這 一切都停在我看到zope之前。(ps:我對zope的了解還極度粗淺,只看過兩週 的文件) 相對於Struts只提供了基本、有彈性的架構,Zope等其他的 Framework採取 了不同的角度來看問題。網頁的格式可以自由發揮,但是多數的網站( > 80% ) 都是由Title, Menu Bar, Side bar, Content, Footer五塊組成,多數要求 使用者登錄,WebForum, Wiki, Blog更是逐漸變成必備的,既然使用者及程 式設計師都有這種需求,那為什麼 Framework不就先幫你做好呢? 對Zope來說,寫一個有Form的網頁流程跟 Struts 大不相同。 1. 先定義 Form Data ,把 Variable Name, Type, Value Range, Title, Description寫好 2. 再來寫處理 Form 的邏輯( Validator這塊Zope幫你做掉了 ) 3. 最後是直接透過Zope產生網頁,若是你只需要簡單的網頁,是不用自己 寫View的這塊。 多說無意,看了這個影片就會了解http://oodt.jpl.nasa.gov/better-web-app.mov : 再來是" Java 陣營的最大公約數" 這句話 : 也有點不知何解? : Struts 也不是 Java 官方標準... : 說集各家之大成? 好像也沒有... @__@ : 不知道 CPython 能不能詳述一二? Struts雖不是標準,但是後頭有眾多團隊在推,Apache Software Foundation 就不用提了, IBM Websphere也推薦 Struts , BEA Weblogic portal也是提 供極度類似Struts的架構。在三年多前 IBM & BEA 可是連手搶下六成以上的 商用市場,在這種狀況下,Struts自然被拱成非正式的標準,也是唯一有 IDE 支源的Java Web Framework,光這一點,就把其它的 Framework打趴了。 再者,其他的 Framework在文件數上跟 Struts 沒得比, Bug上也差了一節, 我曾用過 Cocoon2一次,我只能說苦不堪言,三個月後宣告放棄。所以說Struts 是Java平台上沒有選擇的選擇。 -- 時間很晚(2am),寫的有點零碎,還請見諒 ※ 編輯: CPython 來自: 24.5.191.38 (04/20 17:17) ※ 編輯: CPython 來自: 24.5.191.38 (04/20 17:17)
文章代碼(AID): #14Hq0v36 (java)
討論串 (同標題文章)
文章代碼(AID): #14Hq0v36 (java)