點擊查看:2015年軟考《系統(tǒng)架構(gòu)設(shè)計師》備考資料匯總
考慮用戶的觀點
當您為智能客戶端應(yīng)用程序確定合適的性能目標時,您應(yīng)該仔細考慮用戶的觀點。對于智能客戶端應(yīng)用程序而言,性能與可用性和用戶感受有關(guān)。例如,只要用戶能夠繼續(xù)工作并且獲得有關(guān)操作進度的足夠反饋,用戶就可以接受漫長的操作。在 確定要求時,將應(yīng)用程序的功能分解為多個使用情景或使用案例通常是有用的。您應(yīng)該識別對于實現(xiàn)特定性能目標而言關(guān)鍵且必需的使用案例和情景。應(yīng)該將許多使 用案例所共有且經(jīng)常執(zhí)行的任務(wù)設(shè)計得具有較高性能。同樣,如果任務(wù)要求用戶全神貫注并且不允許用戶從其切換以執(zhí)行其他任務(wù),則需要提供優(yōu)化的且有效的用戶 體驗。如果任務(wù)不太經(jīng)常使用且不會阻止用戶執(zhí)行其他任務(wù),則可能無須進行大量調(diào)整。對于您識別的每個性能敏感型任務(wù),您都應(yīng)該精確地定義用戶的操作以及應(yīng)用程序的響應(yīng)方式。您還應(yīng)該確定每個任務(wù)使用的網(wǎng)絡(luò)和客戶端資源或組件。該信息將影響性能目標,并且將驅(qū)動對性能進行度量的測試? 用性研究提供了非常有價值的信息源,并且可能大大影響性能目標的定義。正式的可用性研究在確定用戶如何執(zhí)行他們的工作、哪些使用情景是共有的以及哪些不是 共有的、用戶經(jīng)常執(zhí)行哪些任務(wù)以及從性能觀點看來應(yīng)用程序的哪些特征是重要的等方面可能非常有用。如果您要生成新的應(yīng)用程序,您應(yīng)該考慮提供應(yīng)用程序的原 型或模型,以便可以執(zhí)行基本的可用性測試。
考慮應(yīng)用程序操作環(huán)境
對應(yīng)用程序的操作環(huán)境進行評估是很重要的,因為這可能對應(yīng)用程序施加必須在您制定的性能目標中予以反映的約束。位于網(wǎng)絡(luò)上的服務(wù)可能對您的應(yīng)用程序施加性能約束。例如,您可能需要與您無法控制的 Web 服務(wù)進行交互。在這種情況下,需要確定該服務(wù)的性能,并且確定這是否將對客戶端應(yīng)用程序的性能產(chǎn)生影響。您 還應(yīng)該確定任何相關(guān)服務(wù)和組件的性能如何隨著時間的變化而變化。某些系統(tǒng)會經(jīng)受相當穩(wěn)定的使用,而其他系統(tǒng)則會在一天或一周的特定時間經(jīng)受變動極大的使 用。這些區(qū)別可能在關(guān)鍵時間對應(yīng)用程序的性能造成不利影響。例如,提供應(yīng)用程序部署和更新服務(wù)的服務(wù)可能會在星期一早上 9 點緩慢響應(yīng),因為所有用戶都在此時升級到應(yīng)用程序的最新版本。另外,還需要準確地對所有相關(guān)系統(tǒng)和組件的性能進行建模,以便可以在嚴格模擬應(yīng)用程序的實際部署環(huán)境的環(huán)境中測試您的應(yīng)用程序。對于每個系統(tǒng),您都應(yīng)該確定性能概況以及最低、平均和最高性能特征。然后,您可以在定義應(yīng)用程序的性能要求時根據(jù)需要使用該數(shù)據(jù)。您還應(yīng)該仔細考慮用于運行應(yīng)用程序的硬件。您將需要確定在處理器、內(nèi)存、圖形功能等方面的目標硬件配置,或者至少確定一個如果得不到滿足則無法保證性能的最低配置。通常,應(yīng)用程序的業(yè)務(wù)操作環(huán)境將規(guī)定一些更為苛刻的性能要求。例如,執(zhí)行實時股票交易的應(yīng)用程序?qū)⑿枰獔?zhí)行這些交易并及時顯示所有相關(guān)數(shù)據(jù)。
使用分頁和惰性加載
在大多數(shù)情況下,您應(yīng)該僅在需要時檢索或顯示數(shù)據(jù)。如果您的應(yīng)用程序需要檢索和顯示大量信息,則 您應(yīng)該考慮將數(shù)據(jù)分解到多個頁面中,并且一次顯示一頁數(shù)據(jù)。這可以使用戶界面具有更高的性能,因為它無須顯示大量數(shù)據(jù)。此外,這可以提高應(yīng)用程序的可用 性,因為用戶不會同時面對大量數(shù)據(jù),并且可以更加容易地導航以查找他或她需要的確切數(shù)據(jù)。例如,如果您的應(yīng)用程序顯示來自大型產(chǎn)品目錄的產(chǎn) 品數(shù)據(jù),則您可以按照字母順序顯示這些項,并且將所有以“A”開頭的產(chǎn)品顯示在一個頁面上,將所有以“B”開頭的產(chǎn)品顯示在下一個頁面上。然后,您可以讓 用戶直接導航到適當?shù)捻撁,以便他或她無須瀏覽所有頁面就可以獲得他或她需要的數(shù)據(jù)。以這種方式將數(shù)據(jù)分頁還使您可以根據(jù)需要獲取后臺的數(shù)據(jù)。例如,您可能只需要獲取第一頁信息以便顯示并且讓用戶與其進行交互。然后,您可以獲取后臺中的、已經(jīng)準備好供用戶使用的下一頁數(shù)據(jù)。該技術(shù)在與數(shù)據(jù)緩存技術(shù)結(jié)合使用時可能特別有效。您 還可以通過使用惰性加載技術(shù)來提高智能客戶端應(yīng)用程序的性能。您無須立即加載可能在將來某個時刻需要的數(shù)據(jù)或資源,而是可以根據(jù)需要加載它們。您可以在構(gòu) 建大型列表或樹結(jié)構(gòu)時使用惰性加載來提高用戶界面的性能。在此情況下,您可以在用戶需要看到數(shù)據(jù)時(例如,在用戶展開樹節(jié)點時)加載它。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |