[Playframework文檔中文翻譯]易用性 - 細節和特性同樣重要

易用性 - 細節和特性同樣重要


(原文鏈接:http://play-framework.herokuapp.com/zh/usability 來自"Playframework中文小站 " )

 

也許 Play 框架最引人注目的地方是,它有一個超過其它 Java Web 框架的最大優勢,這個優勢卻不適合放到簡潔的特性列表中,它只會在你使用 Play 構建東西之後纔會出現,這個優勢就是易用性。

請 注意,易用性和功能性是不同的。接下來,我不是說你不能在其它框架中做這些事情:我只是想聲明,在 Play 中做這些事情會更加容易和愉快,我必須強調這一點,因爲奇客們( Geeks )對易用性往往有一個認識上的盲點,他們享受解決困難的事情,而低估這些容易的事情的價值。

由 Web 開發人員爲 Web 開發人員編寫

當 你知道 Play 框架是‘由 Web 開發人員爲 Web 開發人員編寫’的之後,第一個給你不同感覺的暗示是,Play 將 Web 的原則和約定放在了第一位,而 Java 放在第二位,這是一種非傳統的定位。換句話說,這意味着 Play 框架更加符合 W3C 的萬維網體系結構 ,而不是符合 Java 企業版(Java EE)。

完美主義者的 URLs

例如,像現在其它的 Web 框架一樣,Play 框架可以支持任意的‘乾淨的’ URLs,而這些支持在 Servlet API 中做的遠遠不夠。這不是巧合,Struts URLs for perfectionists ,Struts 1.x,一個基於 Servlet API 的 Web 框架,仍然是關於上一代 Java 技術的世界排名第三位的最流行的框架,它在 www.lunatech-research.com 上有超過160篇文章,儘管是2005年的文章。

在 基於 Servlet 的框架中,Servlet API 沒有提供實用的 URL 路由支持;基於 Servlet 的框架通過配置 web.xml ,把所有的請求都轉發到一個單獨的控制器,然後在框架中,通過一些額外的配置,實現 URL 的路由機制。在這一點上,是否 Servlet API 曾經試圖解決 URL 路由的問題但由於力量不足而失敗,或者是否 Servlet API 只是想成爲一個低層的 API 而不是讓你直接可以構建 Web 應用,都已經無所謂了,無論如何,結果都一樣:Web 框架需要對 Servlet API 做一層封裝,而 Servlet API 本身就是 HTTP 協議的一層封裝。

Play 兼具了 Web 框架,HTTP API 和 HTTP 服務器,這使得 Play 可以使用一個單獨的 URL 路由配置文件,使用更少的封裝,更加直接地實現同樣的事情。這個配置文件,與 Groovy 和 Cake PHP 的機制一樣,反映了一個 HTTP 請求的結構 - HTTP 方法,URL 路徑,還有映射關係:

# Play 的路由配置文件'routes'…
 
# Method   URL path         Controller
 
GET        /                Application.index
GET        /about           Application.about
POST       /item            Item.addItem
GET        /item/{id}       Item.getItem
GET        /item/{id}.pdf   Item.getItemPdf




這個例子裏,有不止一個的控制器。在最後2行配置裏,我們還看到了一個名字爲 id 的 URL 參數的用法。

更好的易用性不僅適用於普通用戶

Play 是由 Web 開發人員爲 Web 開發人員創造的,從另一個角度看待這個 idea,就是考慮 Web 開發人員與 Java EE 開發人員在軟件設計方法上可能會有怎樣的區別。當你開發軟件時,什麼是最主要的接口?如果你是一名 Web 開發人員,最主要的接口是一個基於 Web 的由 HTML,CSS 和(愈來愈重要的)JavaScript 構建而成的用戶界面。而另一方面,作爲一個 Java EE 開發人員,則可能會認爲最主要的接口是一個 Java API,或者是一個 Web Services API,它們供系統中的其他層使用。

這 種差異是一個大問題,因爲 Java 的接口是提供給其他程序員使用的,而 Web 用戶界面是提供給非程序員使用的。在這兩種場景下,良好的設計包括易用性,但易用性對於普通用戶和對於程序員是不一樣的。在某種程度上,對於軟件設計的易 用性,普通用戶相對程序員來說有更高的標準,因爲即使軟件設計的易用性很差,對程序員來說,還是可以很好的應付的。這有點像 “Good Grips”:http://www.designcouncil.org.uk/Case-Studies/All-Case-Studies /OXO-Good-Grips/ 廚具:雖然他們設計的最初目的是讓患有關節炎的老人更容易使用,但事實證明,製造更加易用的工具,對所有用戶都有好處。

Play 框架是與衆不同的,因爲你要在你的 Web 應用程序中實現的易用性,已經存在框架本身裏。例如,框架的文檔和程序的錯誤信息都直接使用 Web 界面在瀏覽器中顯示,這樣更實用。與之相似地,在程序出錯時,服務器控制檯也避免了輸出滿屏幕的無關日誌和堆棧跟蹤信息,使 Web 開發人員能更集中注意力地關注有用的信息。


試想象一下,使用 JSF 的 Web 應用程序是怎麼顯示堆棧跟蹤信息的。事實上,Play 想的更多:不僅僅是顯示了堆棧跟蹤信息,還顯示了堆棧跟蹤信息中出現在 Web 應用程序中的最後一行代碼。畢竟,你真正想知道的是在自己的代碼中第一個導致出錯的地方在哪裏。


這種類型的易用性不是由自身產生;Play 框架花費相當大的努力,過濾了重複和不相關的信息,並重點關注那些必不可少的事情。

細節決定質量

在 Play 框架中,大部分質量體現在細節當中:他們可能是一些獨立的小細節,而不是重大的特性,但這些細節合在一起,帶來了更舒適和更有成效的開發體驗。在你使用 Play 構建應用的時候,你會感到溫暖,因爲你不再體會到以往在與其它框架的戰鬥中常常體會到的那種沮喪。

來自 Peter Hilton , 原文發表在 Lunatech Research 博客中.

(原文鏈接:http://play-framework.herokuapp.com/zh/usability 來自"Playframework中文小站 " )

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章