小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

從前往后開(kāi)發(fā)RIA——第一部分(翻譯)

 WindySky 2007-04-28
前些日子看到Adobe Developer Center上的一篇文章很不錯(cuò),是關(guān)于如何開(kāi)發(fā)RIA的,現(xiàn)在翻譯過(guò)來(lái),給自己當(dāng)參考。由于翻譯經(jīng)驗(yàn)尚欠缺,文中定有生硬之處,望見(jiàn)諒。歡迎大家對(duì)不到之處提出批評(píng)。

原文是:Building RIAs from Front to Back – Part 1: Understanding the Approach
原文地址:http://www.adobe.com/devnet/flex/articles/frontback_pt1.html

聲明:本文的中文版版權(quán)屬于本站和我,如果要轉(zhuǎn)載請(qǐng)注明出處,請(qǐng)遵循創(chuàng)作公用協(xié)議,勿用于商業(yè)用途。:)

從前往后開(kāi)發(fā)RIA——第一部分:理解這種方式


現(xiàn)在我們不再被原始的界面控件和難以理解的請(qǐng)求/響應(yīng)(request/response)體系結(jié)構(gòu)所束縛,富因特網(wǎng)應(yīng)用程序(Rich Internet Applications,以下簡(jiǎn)稱RIAs,譯者注)正在改變我們?cè)诰W(wǎng)上處理事情的方式。隨著Adobe Flex 2.0 Beta 的發(fā)布,使web開(kāi)發(fā)者構(gòu)建出比較豐富的應(yīng)用程序變成了現(xiàn)實(shí)。

但是隨著技術(shù)的發(fā)展,對(duì)傳統(tǒng)web開(kāi)發(fā)者的觀念也提出了嚴(yán)峻的挑戰(zhàn)。我們經(jīng)??吹竭@樣的問(wèn)題:剛剛接觸Flex的web開(kāi)發(fā)者試圖用‘以頁(yè)面為中心’或‘請(qǐng)求/響應(yīng)’(request/response)的觀念構(gòu)建RIAs。為了充分發(fā)揮RIAs的優(yōu)勢(shì),開(kāi)發(fā)者必須開(kāi)始用RIAs的方式思考,把注意力集中到他們提供的豐富的用戶體驗(yàn)(user experience)上面來(lái)。
這篇文章是開(kāi)發(fā)者中心(Developer Center)的一系列文章中的第一篇,這一系列文章探索一種創(chuàng)新的,被證明有效的開(kāi)發(fā)RIAs的方式。這種方式就是把注意力集中在用戶體驗(yàn)上而不是其它。在這篇文章中我們會(huì)介紹一種“從前往后(front to back)”開(kāi)發(fā)的觀念,在這種開(kāi)發(fā)方式里,用戶體驗(yàn)成為了開(kāi)發(fā)過(guò)程中的第一驅(qū)動(dòng),而不是事后才考慮的事情。我們將討論如何利用Flex 2.0 Beta來(lái)實(shí)現(xiàn)這種方式,F(xiàn)lex 2.0 Beta的特色使得這種方式非常成功。我們還將針對(duì)如何用這種方式將下一代的軟件移植到web上給出一些提示和建議。
  這一系列文章不是關(guān)于理論和方法的。它告訴你如何利用Flex 2.0構(gòu)建強(qiáng)大的RIAs以及開(kāi)發(fā)過(guò)程中“從前往后”這種方式的價(jià)值。在下面的四部分中,你將學(xué)會(huì)如何去做下面的事情:

設(shè)計(jì)并布局你的應(yīng)用程序
用Flex,F(xiàn)lash,HTML為你的程序做外殼(skin)和自定義你的程序。
利用模型(models)在多個(gè)數(shù)據(jù)源之間進(jìn)行方便的切換。
把你的應(yīng)用程序整合到企業(yè)級(jí)應(yīng)用中。


現(xiàn)在開(kāi)始著手吧

我們經(jīng)常忘記一個(gè)事實(shí):我們最終的用戶是我們的客戶。他們是那些付錢——直接或間接地——讓我們擁有工作的人。非常奇怪,傳統(tǒng)的應(yīng)用程序開(kāi)發(fā)方式并沒(méi)有把注意力放在最終用戶所關(guān)心的——用戶體驗(yàn)問(wèn)題上。用戶不關(guān)心設(shè)計(jì)模式或者優(yōu)雅的代碼重用。他們關(guān)心的是他們?nèi)绾闻c你給他們創(chuàng)建的應(yīng)用程序進(jìn)行交互。然而傳統(tǒng)的開(kāi)發(fā)小組往往把注意力集中在了系統(tǒng)的后臺(tái),把用戶界面只作為事后考慮的事情。在過(guò)去的十年中,J2EE,CORBA以及其他分布式開(kāi)發(fā)的風(fēng)險(xiǎn)顯著地突出了這種矛盾。
現(xiàn)在我們花一點(diǎn)時(shí)間把軟件產(chǎn)業(yè)和幾乎任何其他的產(chǎn)品行業(yè)比較一下。在軟件產(chǎn)業(yè)中,你設(shè)計(jì)加工軟件的方式同你處理幾乎任何其他產(chǎn)品都有根本上的不同。你往往會(huì)以我們所說(shuō)的“從后往前”的方式工作。這就是說(shuō),我們中的大多數(shù)都會(huì)先將工作集中在后臺(tái)的引擎和API上,而這個(gè)時(shí)候我們并不知道用戶界面是否會(huì)連接到這個(gè)API。
這種思考方式同那些十分成熟的、已經(jīng)確定的產(chǎn)品行業(yè)制造其他任何產(chǎn)品的思考方式相違背。例如,如果你想要造一輛汽車,你會(huì)在構(gòu)思它的引擎之前,先用粘土建造一個(gè)原型,然后用鋼鐵建造一個(gè)原型,然后把工作集中在如何讓用戶在汽車中有完美體驗(yàn)的細(xì)節(jié)上。如果你不知道引擎區(qū)有多大的話怎么知道你需要什么大小的引擎。汽車工業(yè),像所有其他成熟的產(chǎn)業(yè)一樣,開(kāi)發(fā)加工的方式是“從前往后”。這就是說(shuō),他們先設(shè)計(jì)用戶體驗(yàn),然后根據(jù)用戶體驗(yàn)去開(kāi)發(fā)最終的產(chǎn)品所具有的特征和功能。
軟件產(chǎn)業(yè)有很多需要從傳統(tǒng)的產(chǎn)品開(kāi)發(fā)中學(xué)習(xí)。用“從前往后”的方式去設(shè)計(jì)和開(kāi)發(fā)軟件,這種想法雖然奇怪,但是卻非常的有用。它可以讓我們?cè)诙虝r(shí)間內(nèi)開(kāi)發(fā)出更好,更豐富,更強(qiáng)有力的用戶體驗(yàn)。

“從前往后”工作

一次又一次地,我們?cè)谟罒o(wú)止境的設(shè)計(jì)會(huì)議上坐著,假定每一個(gè)進(jìn)入房間的人是股票持有者然后嘮嘮叨叨地討論,就這樣日復(fù)一日,試圖提取出并撰寫出一份應(yīng)用程序需求文檔。大多數(shù)人多次發(fā)現(xiàn),以這種方式得到的需求總是以錯(cuò)誤結(jié)束。
導(dǎo)致這種搜集需求的方法非常困難的原因有很多。最顯著的一個(gè)原因就是在這個(gè)過(guò)程中沒(méi)有真正請(qǐng)到領(lǐng)域內(nèi)的專家。(意思就是專家疲憊不堪不愿工作時(shí)就不再是專家了,譯者注。)在多日討論需求之后,即便是最充滿熱情的用戶也會(huì)精神疲憊,最終導(dǎo)致為了結(jié)束這個(gè)苦差事而機(jī)械地同意所有的事情。最后,生成了一份非常長(zhǎng)的需求文檔并送回到專家那里簽字。不幸的是,這些文檔每一份都“看起來(lái)”很正確,直到程序已經(jīng)創(chuàng)建結(jié)束幾個(gè)月之后,需求分析偏離了目標(biāo)這個(gè)事實(shí)才顯現(xiàn)出來(lái)。

用實(shí)物模型(Live Mock-ups)打動(dòng)用戶

在“從前往后”的開(kāi)發(fā)中,你開(kāi)發(fā)用戶界面并用它確定程序的功能需求。傳統(tǒng)地,如果從根本上為用戶界面創(chuàng)建原型,常常用Microsoft Visio等工具的靜態(tài)線框(wireframes)來(lái)設(shè)計(jì)。雖然Visio是一個(gè)非常好的設(shè)計(jì)圖表的工具,但是它缺少你在為程序創(chuàng)建線框的時(shí)候真正需要的交互能力。
我們發(fā)現(xiàn)Flex本身就是做這種工作的好工具,因?yàn)樗o我們提供了一種前所未有的高效的開(kāi)發(fā)環(huán)境,讓我們的開(kāi)發(fā)者可以很快地創(chuàng)建出漂亮的線框,讓用戶從一開(kāi)始就近距離接觸到最終的程序。
當(dāng)我們作完這些具體的線框時(shí),一種奇妙的事情發(fā)生了。在前面的會(huì)議上會(huì)打瞌睡的那位領(lǐng)域內(nèi)的專家開(kāi)始活潑并真正的興奮起來(lái)。由于能夠看到他們將會(huì)怎樣操作這個(gè)程序,從而使他們開(kāi)始思考什么是他們真正需要的以及如何把這些單獨(dú)的程序集成到一起。最終的結(jié)果將會(huì)是一份非常精確的需求分析。

建立數(shù)據(jù)模型

在這個(gè)過(guò)程中,創(chuàng)建了一個(gè)簡(jiǎn)陋的數(shù)據(jù)模型,用來(lái)說(shuō)明關(guān)鍵的關(guān)系和數(shù)據(jù)點(diǎn)。當(dāng)每個(gè)界面慢慢實(shí)現(xiàn)的時(shí)候,開(kāi)發(fā)組會(huì)維護(hù)一個(gè)與之匹配的數(shù)據(jù)模型,它會(huì)引發(fā)我們思考那些關(guān)系:顧客可以有一個(gè)以上的銷售代表還是一個(gè)顧客永遠(yuǎn)只能有一個(gè)銷售代表?通過(guò)“從前往后”的方式開(kāi)發(fā),用戶提供了更精確地需求,這會(huì)讓那些機(jī)敏的開(kāi)發(fā)小組及早地發(fā)現(xiàn)那些緊要的問(wèn)題。我們都知道在最后一分鐘把數(shù)據(jù)關(guān)系從‘一對(duì)多’改為‘多對(duì)多’的那種痛苦。用戶一開(kāi)始的時(shí)候越忙碌,最初的到的數(shù)據(jù)模型就越精確。這縮短了開(kāi)發(fā)周期,也讓會(huì)用戶感到滿意。

綁定到靜態(tài)數(shù)據(jù)

一旦界面布局完成之后,接下來(lái)要做的就是把用戶界面的控件和靜態(tài)數(shù)據(jù)綁定起來(lái)。Flex 2.0使得把XML文件中的靜態(tài)或者“模擬”的數(shù)據(jù)綁定到RIA這件事情變得很簡(jiǎn)單。綁定數(shù)據(jù)讓程序看起來(lái)可以成功運(yùn)行,這可以讓你確定你的界面將完全支持要求的數(shù)據(jù)。
例如,綁定的模擬數(shù)據(jù)有利于確認(rèn)數(shù)據(jù)域足夠長(zhǎng)并能夠適合提供的可利用的空間。開(kāi)發(fā)者還可以根據(jù)綁定的數(shù)據(jù)元素來(lái)加強(qiáng)客戶端的驗(yàn)證標(biāo)準(zhǔn)。
最后,這些界面組合到一起就構(gòu)成了一個(gè)有功能的、模擬的應(yīng)用程序版本。

提供一個(gè)精確的API

你已經(jīng)設(shè)計(jì)的這些從本質(zhì)上來(lái)說(shuō)是應(yīng)用程序?qū)⒁玫降腁PI。你現(xiàn)在知道應(yīng)用程序肯定會(huì)讀取的數(shù)據(jù)域,將要傳輸?shù)臄?shù)據(jù)域,以及哪一部分的業(yè)務(wù)邏輯會(huì)在服務(wù)器層和客戶層。數(shù)據(jù)服務(wù)(Data Services)現(xiàn)在開(kāi)發(fā)完成了,它對(duì)靜態(tài)模擬數(shù)據(jù)來(lái)說(shuō)是多態(tài)的。這確保了返回到RIA的數(shù)據(jù)的格式和應(yīng)用程序顯示數(shù)據(jù)的格式很相似。
我們不能忘記這種難以置信的重要的優(yōu)勢(shì)。導(dǎo)致RIAs表現(xiàn)問(wèn)題的最大原因之一就是程序必須自己把從數(shù)據(jù)服務(wù)(Data Services)返回的數(shù)據(jù)處理成適合用戶體驗(yàn)的格式。這是“從后往前”設(shè)計(jì)中最大的缺陷之一。當(dāng)你在用戶體驗(yàn)之前設(shè)計(jì)服務(wù)(services)和API的時(shí)候,不可能保證二者之間的精度。在“從前往后”這種方式中,Data service 和 API 只會(huì)在RIA需要他們的時(shí)候才創(chuàng)建,這就避免了二次開(kāi)發(fā)從而有效地縮短了開(kāi)發(fā)時(shí)間。

把真正的數(shù)據(jù)綁定到用戶界面

隨著每個(gè)data service逐漸開(kāi)發(fā)完成,用戶界面的綁定也從靜態(tài)數(shù)據(jù)轉(zhuǎn)變?yōu)檫B接到真正的data services。因?yàn)槲覀円呀?jīng)確保了兩者之間的兼容性,所以程序完工了。

“從前往后”方式的優(yōu)點(diǎn)

用“從前往后”方式開(kāi)發(fā)應(yīng)用程序不只是理論上的練習(xí)。它為你和你的用戶在以下三個(gè)方面提供了很高的價(jià)值:
更好的需求收集:用戶不知道你們開(kāi)發(fā)者的語(yǔ)言。用戶不知道你們?nèi)绾伍_(kāi)發(fā)他們的應(yīng)用程序,坦白地說(shuō),他們也不關(guān)心那個(gè)。然而如果他們能看到你創(chuàng)建的應(yīng)用程序原型,他們會(huì)很快地加入進(jìn)來(lái),并告訴你這個(gè)應(yīng)用程序?qū)⒁鍪裁床⑶以鯓尤プ觥?br>更快的開(kāi)發(fā)和回饋:用戶不能接觸到一個(gè)引擎并且與它交互。他們不能演示一個(gè)API。然而如果你先開(kāi)發(fā)連接靜態(tài)數(shù)據(jù)的用戶界面的話,用戶便可以向他們的客戶展示程序去收集回饋。這甚至可以讓你的用戶在開(kāi)發(fā)結(jié)束之前就開(kāi)始賣出他們的產(chǎn)品。
用戶成為擁護(hù)者,而不再是對(duì)手:用戶可能認(rèn)為你不理解他的需求、一直延誤,或者你從未在最后給出它們真正想要的程序。通過(guò)“從前往后”的開(kāi)發(fā)方式,你可以通過(guò)讓用戶參與到實(shí)際開(kāi)發(fā)來(lái)轉(zhuǎn)變這種關(guān)系,這樣可以讓他們感受到你作為一個(gè)開(kāi)發(fā)者所感受到的同樣的工作情緒。很快他們就會(huì)成為你最大的擁護(hù)者。

接下來(lái)干什么

怎樣在實(shí)際中把這些觀點(diǎn)應(yīng)用到開(kāi)發(fā)你自己的RIA當(dāng)中?在接下來(lái)的四部分中,我們將回顧這種方式并詳細(xì)討論一下Flex 2.0 Beta如何進(jìn)行RIA開(kāi)發(fā)以及——概括地說(shuō)——“從前往后”開(kāi)發(fā),尤其是如何進(jìn)行讓你的應(yīng)用程序變得強(qiáng)大的開(kāi)發(fā)。
你將會(huì)通過(guò)代碼實(shí)例和屏幕截圖來(lái)學(xué)習(xí)這些特性,它將會(huì)幫助你盡可能簡(jiǎn)單地適應(yīng)你的開(kāi)發(fā)方式。在最后,你將會(huì)得到使用Flex 2.0進(jìn)行開(kāi)發(fā)所需要的一切工具。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多