Twitter Bootstrap是一個開源庫,幫助前端工程師加快應(yīng)用程序開發(fā)。它是一個HTML/CSS/JS前端框架,使得創(chuàng)建一致的UI組件變得容易。今天,許多技術(shù)公司已經(jīng)開發(fā)了他們自己的Bootstrap版本,稱為設(shè)計系統(tǒng)。這些是由清晰的設(shè)計標準指導(dǎo)的可重用組件的集合,用于支持應(yīng)用程序開發(fā)。這使得企業(yè)能夠?qū)⑵湟苿雍途W(wǎng)絡(luò)應(yīng)用與其他產(chǎn)品區(qū)分開來,同時保持跨產(chǎn)品的視覺外觀和感覺。從引導(dǎo)到設(shè)計系統(tǒng)的演變是自然的。如果你想學(xué)習(xí)前端,可以報個Web前端培訓(xùn)班,可以幫助你快速掌握前端框架的使用技能,更好地進行開發(fā)工作。
你有沒有注意到來自同一家公司的兩種不同的產(chǎn)品可以有兩種完全不同的用戶體驗?設(shè)計的不一致性通常來自于兩個獨立的設(shè)計團隊不同步,并且不獨立地構(gòu)建他們自己的UI。
這就是設(shè)計系統(tǒng)可以發(fā)揮作用的地方。設(shè)計系統(tǒng)的目標應(yīng)該是通過在所有產(chǎn)品上提供一致的用戶體驗,使開發(fā)人員和設(shè)計人員能夠創(chuàng)造引人入勝的產(chǎn)品體驗。
最重要的是,設(shè)計系統(tǒng)不僅僅是一個UI組件庫,而是標準和指南的文檔,可視化語言,對可訪問性的支持,以及如何開始實現(xiàn)系統(tǒng)的信息。當然,這個列表并不詳盡,但是一個完整的設(shè)計系統(tǒng)并不僅僅停留在構(gòu)建UI庫。
此外,設(shè)計系統(tǒng)有利于開發(fā)者。作為一名工程師,你可以專注于解決技術(shù)問題或?qū)W習(xí)新技術(shù),而不是構(gòu)建冗余的用戶界面。如果你是一名前端開發(fā)人員,當多次被要求構(gòu)建相同的UI組件時,你可能會感到沮喪。使用設(shè)計系統(tǒng),組件只需構(gòu)建一次,然后你就可以實現(xiàn)它。讓我們看看設(shè)計系統(tǒng)如何幫助工程團隊擴展。參加web前端培訓(xùn),可以幫助你快速掌握前端框架的使用技能,更好地進行開發(fā)工作。
面向規(guī)模的系統(tǒng)思維
系統(tǒng)思維是一套原則,通過整個系統(tǒng)來解決問題,幫助組織更有效地擴展。沒有硬性規(guī)定,每個組織都應(yīng)該制定自己的原則,并將其與業(yè)務(wù)目標聯(lián)系起來。設(shè)計系統(tǒng)目標是解決大規(guī)模設(shè)計挑戰(zhàn)的一種系統(tǒng)思維形式。在設(shè)計系統(tǒng)變得普遍之前,“設(shè)計不可擴展”這句話非常普遍。
如果一個組織有一個產(chǎn)品組合,并且每個團隊都在構(gòu)建自己的資產(chǎn),提出調(diào)色板和頁面布局,這不是很好地利用他們的時間。一遍又一遍地構(gòu)建相同東西的開發(fā)人員將他們寶貴的時間從解決核心工程問題上拿走了。對于那些忙于為幾個月前由其他團隊構(gòu)建的相同UI創(chuàng)建規(guī)范的設(shè)計師來說,進行用戶研究可能會更好。
例如,如果團隊A和團隊B都在創(chuàng)建按鈕,那么設(shè)計系統(tǒng)應(yīng)該考慮開發(fā)一個可重用的按鈕,它可以為組織中的許多產(chǎn)品團隊工作。設(shè)計系統(tǒng)團隊將對可重復(fù)使用按鈕的要求進行初步調(diào)查,包括變化、尺寸和平臺需求(手機和網(wǎng)絡(luò))。一旦收集了所有的需求,團隊將擁有組件的創(chuàng)建。在Web前端培訓(xùn)中,理論知識+實踐項目,雙管齊下,更有利于學(xué)員加深對所學(xué)知識的理解和運用,真正做到學(xué)以致用,從而將知識內(nèi)化成自身的能力。
從本質(zhì)上來說,一個設(shè)計系統(tǒng)要成為一個活的、進化的系統(tǒng),代表一個組織的最佳思想,它需要提供共享的價值。對于一個可重用的組件,它需要與幾個產(chǎn)品團隊相關(guān)。讓一個設(shè)計系統(tǒng)團隊來構(gòu)建一個只針對你的產(chǎn)品的組件不是系統(tǒng)思維。帶有一次性案例的組件不應(yīng)屬于組件庫或設(shè)計系統(tǒng)。
來自核心團隊的支持
任何設(shè)計系統(tǒng)的核心都是設(shè)計和開發(fā)UI組件的核心團隊。一個高度功能化的設(shè)計系統(tǒng)團隊遵循一個定義良好的流程來設(shè)計、構(gòu)建和記錄組件、視覺指南、工程指南和用戶體驗?zāi)J健?/span>
例如,當構(gòu)建一個系統(tǒng)功能時——例如,一個按鈕組件——設(shè)計系統(tǒng)團隊應(yīng)該通過對變化、大小和可組合性等項目進行初始設(shè)計發(fā)現(xiàn)來收集需求。在這個初步發(fā)現(xiàn)之后,團隊應(yīng)該與想要使用該組件的開發(fā)人員分享他們的發(fā)現(xiàn),以確保該組件具有他們在發(fā)布后采用它所需的所有特性。此時,構(gòu)建組件是容易的部分,但是應(yīng)該有關(guān)于設(shè)計、代碼和可訪問性的清晰文檔來支持這個新元素。這些是設(shè)計系統(tǒng)團隊的核心職責。
此外,團隊還負責修復(fù)bug、支持設(shè)計社區(qū)、創(chuàng)建培訓(xùn)材料等等。設(shè)計系統(tǒng)應(yīng)該被視為一個產(chǎn)品團隊,其客戶是內(nèi)部設(shè)計師和前端工程師,專注于構(gòu)建和擴展系統(tǒng)。如果你想了解更多關(guān)于前端的信息,不妨報名參加Web前端培訓(xùn),有系統(tǒng)全面的課程和明確清晰的學(xué)習(xí)路線,讓學(xué)習(xí)更輕松更有效。
最后,團隊負責采用。如果沒有被其他團隊采用,為了建立一個設(shè)計系統(tǒng)而建立一個設(shè)計系統(tǒng)就是白費力氣。有許多方法可以評估一個設(shè)計系統(tǒng)在一個組織中的影響。例如,一個設(shè)計系統(tǒng)團隊可以掃描公司范圍內(nèi)的代碼庫,以確定系統(tǒng)在哪里以及如何使用。這也有助于理解哪些團隊正在使用最新版本的UI組件。
評估采用率的另一種方法是要求產(chǎn)品團隊每季度自我報告他們的采用進度。這取決于組織的規(guī)模。設(shè)計系統(tǒng)團隊也可以結(jié)合使用調(diào)查和其他評估方法。
通常有一個產(chǎn)品經(jīng)理負責培養(yǎng)與其他利益相關(guān)者的合作關(guān)系。他們創(chuàng)建開發(fā)路線圖,并將社區(qū)需求帶回給設(shè)計人員和開發(fā)人員。
旨在幫助開發(fā)者
設(shè)計系統(tǒng)旨在為前端開發(fā)人員提供他們的開發(fā)工作流程。開發(fā)人員關(guān)心許多任務(wù)——下載包、工具、作用域模塊等等。好消息是設(shè)計系統(tǒng)有助于涵蓋這些主題。我們來看一些具體的案例。參加web前端培訓(xùn)學(xué)習(xí),有一些實操項目的訓(xùn)練,可以幫助你將學(xué)到的理論知識應(yīng)用到實踐中去,真正掌握前端工具的使用。
如果一個設(shè)計系統(tǒng)構(gòu)建了組件,但是沒有辦法分發(fā)它,這將會使許多開發(fā)者感到沮喪?;蛘?,如果包是通過過時的包管理器分發(fā)的,那么使用設(shè)計系統(tǒng)組件對開發(fā)人員來說是一個挑戰(zhàn)。一個好的設(shè)計系統(tǒng)是不斷進化其分發(fā)工具的。現(xiàn)代的包管理器工具,例如NPM或者Yarn如今在許多設(shè)計系統(tǒng)中都得到普遍支持。
此外,組件需要正確地版本化,發(fā)行說明需要頻繁地更新以反映主要和次要的版本變化。許多設(shè)計系統(tǒng)通過記錄測試過程來獲得開發(fā)者對組件穩(wěn)定性的信心。
此外,開發(fā)人員還關(guān)心代碼的風(fēng)格封裝、編譯和傳輸。一些開發(fā)人員關(guān)心作用域CSS類名。許多設(shè)計系統(tǒng)使用CSS模塊模塊化和組合CSS。設(shè)計系統(tǒng)利用CSS模塊來啟用自定義的類名范圍,并防止不同版本之間的名稱沖突。CSS模塊允許UI組件與庫的其他版本共存于一個頁面上。想要盡快掌握前端技術(shù),參加Web前端培訓(xùn)也是個不錯的方法,幾個月的學(xué)習(xí)就能掌握全面系統(tǒng)的知識和技能,快速上崗。
因此,設(shè)計系統(tǒng)在其工程師入門部分中為開發(fā)人員提供了許多這些主題的清晰文檔。這有助于首次開發(fā)人員。還有一些其他工程問題,設(shè)計系統(tǒng)可以幫助解決Javascript polyfills、支持Vue或React框架、使用CDN分發(fā)庫資產(chǎn)、SCSS后處理或重寫、內(nèi)置可訪問性等。重點是設(shè)計系統(tǒng)遠遠超出了視覺準則。支持工程任務(wù)是設(shè)計系統(tǒng)工作的一部分。
總結(jié)
如果你發(fā)現(xiàn)你的團隊一遍又一遍地構(gòu)建相同的組件,那么也許是時候?qū)?/span>你的設(shè)計系統(tǒng)化了。通過設(shè)計系統(tǒng),你的工程和設(shè)計團隊之間的聯(lián)盟可以有效地為最終用戶構(gòu)建一致的用戶體驗,從而輕松地跨多個產(chǎn)品和平臺進行擴展。這不僅僅是構(gòu)建一個庫,它還包括研究、維護和分發(fā)關(guān)于組織設(shè)計的標準和指南的文檔。設(shè)計師和開發(fā)人員都要扮演好自己的角色,這樣才能創(chuàng)造出吸引人的產(chǎn)品體驗。
設(shè)計系統(tǒng)不是一個項目,也不是一個副業(yè)。它是一個服務(wù)于其他產(chǎn)品的產(chǎn)品。如果不把它當作自己的產(chǎn)品,它將無法在組織中被采用。設(shè)計系統(tǒng)不是風(fēng)格指南、模式庫或組件庫。但所有這些共同構(gòu)成了這個系統(tǒng)。初學(xué)者想入門前端,最好的辦法是參加Web前端培訓(xùn),有經(jīng)驗豐富的專業(yè)講師面授指導(dǎo)教學(xué),實時解決疑難雜癥問題,學(xué)習(xí)起來又快又有效。