多少年來,用戶體驗(yàn)一直處在一個(gè)不被人重視的地位。直到20世紀(jì)90年代中期這個(gè)術(shù)語(yǔ)才第一次出現(xiàn)。大學(xué)里的軟件工程課程不會(huì)講授用戶體驗(yàn),企業(yè)也不了解用戶體驗(yàn)和用戶體驗(yàn)設(shè)計(jì)(User eXperience Design,UXD)。
然而在這些年中,UXD越來越受到人們重視,成為應(yīng)用程序(特別是面向公眾的Web應(yīng)用程序)開發(fā)中最重要的方面之一。為了支持UXD,一些基于Web的優(yōu)秀技術(shù)也應(yīng)運(yùn)而生,使開發(fā)人員能夠創(chuàng)建這種富Internet應(yīng)用程序。
但是情況并沒有一直這么好。開始的時(shí)候(本世紀(jì)之初),我一直都在尋找一種能夠帶給用戶更美好在線體驗(yàn)的方式,在Google革命性的Google Maps站點(diǎn)引起轟動(dòng)之前的很長(zhǎng)時(shí)間里,Web用戶并不知道還能有什么更美好的在線體驗(yàn)。
在把Web當(dāng)作文檔發(fā)布系統(tǒng)使用的若干年里,用戶的期望從強(qiáng)大的本地桌面應(yīng)用程序降為乏善可陳的HTML應(yīng)用程序。這并不是在抨擊HTML和Web——Web作為平臺(tái)中立的文檔發(fā)布系統(tǒng)做得非常好。開發(fā)人員和公司專注于Web是因?yàn)樗С挚焖賾?yīng)用程序開發(fā),有助于他們及早進(jìn)入市場(chǎng);而用戶則被動(dòng)地接受現(xiàn)實(shí),認(rèn)為Web應(yīng)用程序就是這個(gè)樣子的。
有件事曾令我百思不得其解。每次單擊都會(huì)導(dǎo)致后臺(tái)系統(tǒng)執(zhí)行許多代碼,而結(jié)果反映到用戶界面上卻只有一點(diǎn)點(diǎn)變化。更糟的是對(duì)數(shù)據(jù)庫(kù)服務(wù)器要進(jìn)行頻繁密集的訪問。對(duì)一名技術(shù)人員來說,解決這個(gè)問題最簡(jiǎn)便的方法就是多加內(nèi)存,使用虛擬機(jī)加載,或者買一些低價(jià)的商用服務(wù)器進(jìn)行水平擴(kuò)展,從而暫時(shí)渡過難關(guān)。但是,我更關(guān)心用戶要為此付出什么代價(jià)。他們必須對(duì)Web應(yīng)用程序中常見的單擊加等候習(xí)以為常,而且對(duì)用戶界面也沒有多大的操作自由。我們確實(shí)可以使用JavaScript,但如果未采用先進(jìn)的技術(shù),也無法取得多大的進(jìn)展。從投資回報(bào)角度講,這樣做往往得不償失。
當(dāng)時(shí),Java applet和Flash問世了,而且乍一看它們正是我要找尋的工具。實(shí)際上,applet作為一個(gè)解決方案并不合適,它的體積太大,下載也很慢,況且不能跨平臺(tái)使用。Flash挺有希望,但是在設(shè)計(jì)人員的工作環(huán)境中創(chuàng)建企業(yè)級(jí)應(yīng)用程序,仍然不免有緣木求魚的感覺。
我在eBay的知識(shí)管理部門工作期間也遇到了相同的問題。我需要找到一種方式,能夠抽象出數(shù)據(jù)的復(fù)雜性,并且能讓用戶在可視的環(huán)境中更方便地操作這些數(shù)據(jù)。
Flex于2004年問世(最初是V1,很快就出現(xiàn)了V1.5)。我當(dāng)時(shí)拍板做出采用它的決定,我們的團(tuán)隊(duì)也因此得到了完全不一樣的新體驗(yàn)。當(dāng)時(shí),我就知道Flex前途無量。因?yàn)镕lex應(yīng)用程序既具有高級(jí)用戶需要的桌面環(huán)境,又能滿足軟件團(tuán)隊(duì)的快速開發(fā)需求。
作為Flex的支持者,我把推動(dòng)Flex社區(qū)發(fā)展當(dāng)作自己的一項(xiàng)使命。我創(chuàng)建了CFLEX.Net (www.cflex.net),并堅(jiān)信這個(gè)社區(qū)的規(guī)模越大,通過知識(shí)和代碼共享產(chǎn)生的自我推動(dòng)力也將越強(qiáng),借此就可以促進(jìn)這項(xiàng)技術(shù)的更快普及。畢竟,強(qiáng)有力的支持網(wǎng)絡(luò)可以降低在組織中引入新技術(shù)的風(fēng)險(xiǎn)。
作為較早采用Flex的人,在學(xué)習(xí)Flex的過程中走過不少?gòu)澛?,主要原因是?dāng)時(shí)缺少相應(yīng)的書籍和讀物。這種局面在Flex 2發(fā)布后得到了改觀,大量的學(xué)習(xí)資源開始涌現(xiàn)。
2005年底,我離開eBay并加入Amcom Technology,并在那里組織和管理一個(gè)開發(fā)團(tuán)隊(duì)。與學(xué)習(xí)任何新技術(shù)一樣,要熟練掌握Flex也不容易。因此,最好的辦法就是不斷提升技能。在培訓(xùn)開發(fā)人員使用Flex的過程中,我發(fā)現(xiàn)市面上的大多數(shù)圖書常常言不及義,很多顯而易見的問題都沒有提到。
為了進(jìn)一步推動(dòng)Flex社區(qū)的發(fā)展,我決定編寫《Flex 3實(shí)戰(zhàn)》,希望它能解決開發(fā)人員日常遇到的問題。本書一反按功能布局謀篇的常見模式,改為按創(chuàng)建應(yīng)用程序的自然進(jìn)展組織內(nèi)容。為了達(dá)到盡量簡(jiǎn)化的目的,我只在必要時(shí)介紹必要的知識(shí),不會(huì)過早地討論復(fù)雜主題,同時(shí)還列舉了大量易于理解和吸收的簡(jiǎn)短示例代碼。另外,我還發(fā)現(xiàn)溫故而知新,把新事物與已知事物聯(lián)系起來可以增強(qiáng)學(xué)習(xí)效果。因此,在適當(dāng)?shù)那闆r下,我會(huì)盡可能拿其他技術(shù)的實(shí)現(xiàn)原理來進(jìn)行類比。
為了編寫這本《Flex 4實(shí)戰(zhàn)》,我邀請(qǐng)了Flex業(yè)界的幾位重量級(jí)人物(Dan Orlando、John C. Bland II和Joel Hooks)合作,使書的質(zhì)量進(jìn)一步提高,讀者通過閱讀本書能夠深入理解Flex。我希望在告知讀者成功的關(guān)鍵后,你也能夠與周圍的人分享自己的知識(shí)和經(jīng)驗(yàn),從而壯大Flex社區(qū)。
現(xiàn)在是準(zhǔn)備學(xué)習(xí)Flex的時(shí)候了。隨著社區(qū)逐步發(fā)展壯大,越來越多的第三方廠商會(huì)發(fā)布與Flex有關(guān)的技術(shù),F(xiàn)lex用戶群也會(huì)如雨后春筍般在世界各地涌現(xiàn)出來。
技術(shù)和競(jìng)爭(zhēng)對(duì)手層出不窮,現(xiàn)在RIA領(lǐng)域正熱得發(fā)燙,但是Adobe再次證明自己走在了前列。我們正處于一個(gè)令人振奮的時(shí)代!以HTML為基礎(chǔ)的Web應(yīng)用程序始終會(huì)占有一席之地;然而,現(xiàn)在是該把你的技能提升到一個(gè)新高度,以便順應(yīng)行業(yè)發(fā)展潮流的時(shí)候了。
現(xiàn)在請(qǐng)坐穩(wěn),系好安全帶,我們將在求知之旅上快速前行!
Tariq Ahmed