2020-2-28 資深UI設計者
這篇文章來自于 Invision 出品的書籍,圍繞規(guī)劃、設計、構(gòu)建和實現(xiàn)設計系統(tǒng)的實踐經(jīng)歷來指導讀者,其中包含了經(jīng)驗豐富專家的真知灼見和一手經(jīng)驗。我很喜歡,也分享給大家,推薦閱讀。這是一個系列,一共有 7 章,感興趣的話,持續(xù)關注吧。
20 世紀 60 年代,計算機硬件技術的升級開始超越軟件發(fā)展的速度。計算機的處理速度變得越來越快,價格也越來越便宜,但計算機軟件開發(fā)仍然處于緩慢、難以維護的境地,并且還很容易出錯。兩者之間的差距以及解決這個問題的困境被稱之為「軟件危機」。
在 1968 年的北約軟件工程會議上,道格拉斯·麥克羅伊(Douglas McIlroy)提出了基于組件開發(fā)有可能是解決「軟件危機」的方法之一?;诮M件開發(fā)是一種通過復用代碼來提高編程潛力的方法,該方法能幫助編程工作更、更易于擴展。這樣做既能減少編程工作量又能提升軟件開發(fā)的速度,讓軟件更好地運用現(xiàn)代計算機的力量。
在 50 年后的今天,我們又面臨著類似的挑戰(zhàn),只不過這一次是在設計領域。在 UI 設計中,設計的角色是在為特定需求量身定做解決方案,所以很難去基于整個應用進行擴展。
你有沒有走查過你輸出的界面,發(fā)現(xiàn)自己使用了幾十種類似的藍色,或者同一個按鈕不同的用法,將這些樣式組合對應到你設計的每一個 UI 界面,就會意識到一套不成體系的設計是多么的難以維護。
△ 一份 UI 樣式走查收集的成果,里面羅列的十幾種類似的按鈕樣式說明之前團隊挖的坑有多深。
在這種狀態(tài)下,設計要跟上開發(fā)的速度,公司可以選擇做以下三件事:
通過復用設計,設計系統(tǒng)能夠幫助團隊更好、更快地構(gòu)建產(chǎn)品——復用性使規(guī)范成為可能。這是設計系統(tǒng)的核心和價值。一個設計系統(tǒng)是一個可復用組件的合集,由清晰的規(guī)范作為指導,組合在一起構(gòu)建成各種的應用程序。
50 多年來,工程師們一直在遵循著這個理念執(zhí)行工作。現(xiàn)在是時候讓設計充分發(fā)揮其潛力加入他們了。
你可能已經(jīng)清楚地意識到,設計系統(tǒng)已經(jīng)成為當今軟件行業(yè)的一個熱門話題,并且理由也很充分。很多企業(yè)投資設計系統(tǒng),因為他們認識到產(chǎn)品體驗能夠帶來競爭優(yōu)勢,不僅能吸引和留住客戶,更降低產(chǎn)品學習成本。
在重視設計系統(tǒng)的公司內(nèi)部,通常能看見這種情況:
如果你是設計師,那么前面所說對設計的投資聽起來可能會令你很興奮,但其實也帶來很多挑戰(zhàn)。當一個應用由不同的團隊負責迭代各自模塊的時候,你將如何跨平臺設計一致的 UI?又如何使所有團隊能夠進行快速迭代?當團隊的設計師設計出新的獨立樣式時,你又將如何處理這種不可避免的設計需求?
要了解如何應對上述的挑戰(zhàn),我們要先了解什么是設計系統(tǒng)。設計系統(tǒng)將個體和整體兩個概念各自的優(yōu)點結(jié)合在一起。
1. 標準
擁有 MAC 用戶界面的技術知識是產(chǎn)品設計的關鍵因素,但了解用戶界面背后的理論,才能夠幫助你創(chuàng)造出色的產(chǎn)品?!O果人機交互指南
為了設計卓越的用戶體驗,不僅要了解設計系統(tǒng)背后的內(nèi)容,還要了解其設計的原因。我們一般會通過建立和遵守標準來達成共識,這樣做能消除主觀性和歧義性,保證產(chǎn)品團隊內(nèi)部不會出現(xiàn)摩擦和混亂。
這套標準的內(nèi)容涵蓋了設計和開發(fā)。例如對命名約定、無障礙標準和文件結(jié)構(gòu)等等,幫助團隊達成共識,減少出錯。
視覺語言是設計標準的核心部分。定義顏色、形狀、類型、圖標、布局和動效的樣式和用法對于創(chuàng)建品牌一致的用戶體驗至關重要。系統(tǒng)中的每個組件都包含這些元素,它們在表達品牌特性中扮演著不可或缺的角色。
沒有標準,決策時就會無據(jù)可依。這不僅不能擴展設計,還會造成復雜、差勁的用戶體驗。
超越平臺
視覺語言可以不局限于單一平臺,可以在 Web,iOS,Android 和其他平臺上延續(xù)。將規(guī)范文檔展示在設計系統(tǒng)網(wǎng)站的醒目位置,能夠幫助系統(tǒng)開發(fā)者了解組件的樣式和交互模式。例如,Google 的 Material Design 就深入到其產(chǎn)品視覺語言的各個層面。
2. 組件
組件是系統(tǒng)中復用代碼的一部分,它們充當應用程序界面的基礎。組件的復雜性各不相同。將組件簡化為單個功能(如按鈕或下拉菜單)可以增加其靈活性,使其更易于復用。復雜的組件,如特定類型數(shù)據(jù)的圖表,可以很好地滿足其應用場景,但是這種復雜性限制它的使用場景數(shù)量。組件的復用性越高,需要維護的次數(shù)就越少,規(guī)模也就越簡單。
基于組件的開發(fā)通過復用代碼來減少技術開銷。建立標準規(guī)范了這些組件的用途、樣式和用法。兩者結(jié)合在一起,就相當于為你的產(chǎn)品團隊配備了一個清晰的系統(tǒng),讓他們了解到為什么和怎么做。
讓我們詳細看看設計系統(tǒng)如何幫助你解決一直以來的痛苦。
1. 擴展式設計
隨著團隊的成長,設計師通常會將注意力集中在應用程序的獨立功能區(qū)域,如搜索和發(fā)現(xiàn)、帳戶管理等。這就會導致設計碎片化,就像是一座設計的巴別塔,每個設計師都將他們的設計語言往上添。當設計師單獨而不是系統(tǒng)地去解決問題時,就會發(fā)生這種情況。
沒有通用設計語言統(tǒng)一產(chǎn)品和設計,用戶體驗就會開始崩潰。當缺乏設計規(guī)范時,設計討論就變得毫無用處。為了使團隊內(nèi)部保持一致,必須要有一個共享的來源——可供參考的官方樣式庫。
大多數(shù)情況下的樣式庫都是靜態(tài)的內(nèi)容,例如設計模版。但是靜態(tài)的參考幾乎立刻就會過時。這就是為什么有的團隊會建造像 Shopify’s Polaris 站點這樣的網(wǎng)站——一個設計系統(tǒng)站點,用該設計系統(tǒng)構(gòu)建而成,記錄系統(tǒng)的所有方面,包括組件、指南和交互最佳使用場景。因為它是與系統(tǒng)一起構(gòu)建的,所以它能夠保持其永遠是的。
對于產(chǎn)品團隊而言,內(nèi)部設計系統(tǒng)站點是最佳、最易訪問的共享來源。它提供了一個引力,使團隊成員保持一致和同步。
2. 管理你的債務
隨著應用程序和團隊的時間積累,會慢慢形成債務。這種債務不是金融債務,而是技術和設計債務。這些債務是因為解決獨立問題獲得的。設計債務由大量不可復用和不一致的樣式和慣例組成,而維護它們是不可能完成的任務。隨著時間的推移,這些債務的累積會成為減緩增長的巨大負擔。
創(chuàng)造行為本身并不會產(chǎn)生債務——就像花錢本身并不會產(chǎn)生金融債務一樣。但使用設計系統(tǒng)將使你的設計和代碼保持足夠簡潔,同時仍然允許你進行升級和迭代。
3. 一致的設計
一致且重復使用的標準化組件,使你應用程序的易用性大大提升。標準化的組件還能讓設計師花更少的時間關注樣式,花更多的時間專注于提升用戶體驗。
4. 更快的原型
在設計系統(tǒng)下工作,你可以像玩樂高一樣快速拼湊流程和交互,構(gòu)建無數(shù)的原型和方案進行快速驗證,從而幫助團隊快速獲得數(shù)據(jù)和結(jié)論。
5. 提高可用性
頁面樣式的不一致會影響產(chǎn)品的可用性,當 CSS 因為數(shù)不清的不一致樣式元素和交互增加時,頁面加載時間也會加長,這會導致很糟糕的用戶體驗。它還可能產(chǎn)生沖突的 CSS 和 JavaScript,從而可能破壞你的應用程序。通過使用設計程序,通過構(gòu)建一個整體的組件庫(而不是每頁)來避免這些沖突,從而花費更少的時間來保證產(chǎn)品質(zhì)量。
6. 建立可訪問性程序
可訪問性在組件級別就可以實現(xiàn),針對殘疾人士、網(wǎng)速較慢和老舊的計算機上進行優(yōu)化。這是一個建立易用性程序很好的方法, 在第 3 章「構(gòu)建設計系統(tǒng)」中,Katie Sylor-Miller 解釋了設計系統(tǒng)如何幫助你改善產(chǎn)品的可用性,并保證遵守你所在國家/地區(qū)的法律。
(譯者注:美國殘疾人法案于 1990 年 7 月通過并簽署,其中有規(guī)定網(wǎng)站的可用性必須遵守《美國殘疾人法》(ADA)的相關內(nèi)容。)
即使有上述說的這些好處,在團隊內(nèi)部推行一個設計系統(tǒng)的時候,仍然很難說服團隊成員。設計師可能會感到局限或束縛,但通常這些被感知到的弱點正是設計系統(tǒng)的最大優(yōu)勢。
讓我們來揭穿那些你在推行設計系統(tǒng)時經(jīng)常會遇到的誤區(qū)吧。
誤區(qū)1:過于局限
誤區(qū):負責深入獨立業(yè)務的設計師看到的設計標準可能會與其他需求的不一樣,因此,他們會認為通用的設計系統(tǒng)過于局限,可能無法滿足某些特定業(yè)務的需求。
現(xiàn)實:設計師通常會設計出自定義的解決方案以滿足應用中的獨立的業(yè)務,從而增加了設計和技術的負擔。而使用設計系統(tǒng),這些被設計的新解決方案可以被反饋到設計系統(tǒng)里面,使每個人都可以使用這些改進方案。
誤區(qū)2:缺乏創(chuàng)造力
誤區(qū):如果設計師被限制在一個設計系統(tǒng)下做設計,那么他將不能去自由地探索設計風格。前端的工作通常包含著各種樣式風格的更新。對應用程序的風格進行改版通常不是一個小任務。這也可能是一個很大的風險,因為從事這項工作會移除一部分的舊資源,可能會對可用性產(chǎn)生負面影響。
現(xiàn)實:設計系統(tǒng)的組成部分是相互關聯(lián)的,這意味著當一個位置進行更改時,這項更改會在整個系統(tǒng)中同步,這使得系統(tǒng)內(nèi)的樣式更新工作變得輕而易舉,但影響卻大得多。以前是幾周甚至幾月的工作量,現(xiàn)在可以在一個下午就能完成。
誤區(qū)3:一勞永逸
誤區(qū):設計和構(gòu)建完設計系統(tǒng)后,工作就完成了。
現(xiàn)實:設計系統(tǒng)是有生命的,這意味著需要不斷對其進行維護和改進。但是由于應用是由設計系統(tǒng)的復用性組件提供支持的,因此該應用會自動同步設計系統(tǒng)的改進內(nèi)容,從而減少維護應用程序的工作量。這就是設計系統(tǒng)提供的擴展能力。
設計系統(tǒng)不是一時流行的方法,也不是未經(jīng)檢驗的假設。為了讓設計找到與技術的快速發(fā)展相匹配的同等方案,基于組件的設計和開發(fā)是一種行之有效的可靠解決方案。
現(xiàn)在你已經(jīng)了解了創(chuàng)建設計系統(tǒng)的真正價值,讓我們在下一章中深入探討實際的設計過程吧。
文章來源:優(yōu)設 作者:彩云譯設計