如今,許多科技公司都開(kāi)發(fā)了自己的 Bootstrap
版本,稱為設(shè)計(jì)系統(tǒng)。這些是由明確的設(shè)計(jì)標(biāo)準(zhǔn)指導(dǎo)的可重用組件的集合,以支持應(yīng)用程序開(kāi)發(fā),這使企業(yè)能夠?qū)⑺麄兊囊苿?dòng)和 Web
應(yīng)用程序與其他應(yīng)用程序區(qū)分開(kāi)來(lái),同時(shí)保持產(chǎn)品的視覺(jué)外觀和感覺(jué),從 Bootstrap 到設(shè)計(jì)系統(tǒng)的演變是自然的。想要盡快掌握Web
應(yīng)用程序技術(shù),參加Web前端培訓(xùn)也是個(gè)不錯(cuò)的方法,幾個(gè)月的學(xué)習(xí)就能掌握全面系統(tǒng)的知識(shí)和技能,快速上崗。
你有沒(méi)有注意到同一家公司的兩種不同產(chǎn)品可以有兩種完全不同的用戶體驗(yàn)?設(shè)計(jì)不一致通常來(lái)自兩個(gè)獨(dú)立的設(shè)計(jì)團(tuán)隊(duì),它們不同步并獨(dú)立構(gòu)建自己的 UI
集。這就是設(shè)計(jì)系統(tǒng)可以提供幫助的地方。設(shè)計(jì)系統(tǒng)的目標(biāo)應(yīng)該是使開(kāi)發(fā)人員和設(shè)計(jì)師能夠通過(guò)在所有產(chǎn)品中提供一致的用戶體驗(yàn)來(lái)創(chuàng)造引人入勝的產(chǎn)品體驗(yàn)。
最重要的是,設(shè)計(jì)系統(tǒng)不僅僅是 UI
組件庫(kù),而是標(biāo)準(zhǔn)和指南、視覺(jué)語(yǔ)言、可訪問(wèn)性支持以及如何開(kāi)始實(shí)施系統(tǒng)的信息的文檔。當(dāng)然,這個(gè)列表并不詳盡,但一個(gè)完整的設(shè)計(jì)系統(tǒng)并不止于構(gòu)建一個(gè) UI
庫(kù)。
此外,設(shè)計(jì)系統(tǒng)使開(kāi)發(fā)人員受益。作為工程師,你可以專注于解決技術(shù)問(wèn)題或?qū)W習(xí)新技術(shù),而不是構(gòu)建冗余用戶界面。如果你是前端開(kāi)發(fā)人員,當(dāng)多次要求你構(gòu)建相同的
UI 組件時(shí),你可能會(huì)感到沮喪。使用設(shè)計(jì)系統(tǒng),組件只需構(gòu)建一次,然后你就可以實(shí)現(xiàn)它。讓我們看看設(shè)計(jì)系統(tǒng)如何幫助工程團(tuán)隊(duì)擴(kuò)展。
系統(tǒng)思考規(guī)模
系統(tǒng)思維是一組原則,可幫助組織通過(guò)解決問(wèn)題所在的整個(gè)系統(tǒng)來(lái)更有效地?cái)U(kuò)展。沒(méi)有硬性規(guī)則,每個(gè)組織都應(yīng)該制定自己的原則并將其與業(yè)務(wù)目標(biāo)聯(lián)系起來(lái)。設(shè)計(jì)系統(tǒng)目標(biāo)是一種系統(tǒng)思維形式,可大規(guī)模解決設(shè)計(jì)挑戰(zhàn)。在設(shè)計(jì)系統(tǒng)變得普遍之前,“設(shè)計(jì)無(wú)法擴(kuò)展”的口號(hào)非常普遍。在Web前端培訓(xùn)中,有理論課程+實(shí)踐項(xiàng)目一起學(xué)習(xí),深化所學(xué)知識(shí),積累項(xiàng)目經(jīng)驗(yàn),獲得快速提升。
如果一個(gè)組織有一個(gè)產(chǎn)品組合,并且每個(gè)團(tuán)隊(duì)都在構(gòu)建自己的資產(chǎn),提出調(diào)色板和頁(yè)面布局,那就不是很好地利用他們的時(shí)間。一遍又一遍地構(gòu)建相同東西的開(kāi)發(fā)人員將寶貴的時(shí)間從解決核心工程問(wèn)題上浪費(fèi)了,那些忙于為幾個(gè)月前由其他團(tuán)隊(duì)構(gòu)建的相同
UI 創(chuàng)建規(guī)范的設(shè)計(jì)師可以通過(guò)進(jìn)行用戶研究得到更好的服務(wù)。
從本質(zhì)上講,設(shè)計(jì)系統(tǒng)要成為一個(gè)活生生的、不斷發(fā)展的系統(tǒng),代表組織的最佳思維,它需要交付共享價(jià)值。要使組件可重用,它需要與多個(gè)產(chǎn)品團(tuán)隊(duì)相關(guān)。讓設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)參與構(gòu)建僅特定于你的產(chǎn)品的組件不是系統(tǒng)思維。具有一次性案例的組件不應(yīng)屬于組件庫(kù)或設(shè)計(jì)系統(tǒng)。
來(lái)自中央團(tuán)隊(duì)的支持
任何設(shè)計(jì)系統(tǒng)的核心都是設(shè)計(jì)和開(kāi)發(fā) UI
組件的中心團(tuán)隊(duì)。一個(gè)功能強(qiáng)大的設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)遵循定義明確的流程來(lái)設(shè)計(jì)、構(gòu)建和記錄組件、視覺(jué)指南、工程指南和用戶體驗(yàn)?zāi)J健?/span>
例如,在構(gòu)建系統(tǒng)功能(例如,按鈕組件)時(shí),設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)?wèi)?yīng)通過(guò)對(duì)變量、大小和可組合性等項(xiàng)目進(jìn)行初始設(shè)計(jì)發(fā)現(xiàn)來(lái)收集需求。在最初的發(fā)現(xiàn)之后,團(tuán)隊(duì)?wèi)?yīng)該與想要使用該組件的開(kāi)發(fā)人員分享他們的發(fā)現(xiàn),以確保它具有發(fā)布后需要采用的所有功能。在這一點(diǎn)上,構(gòu)建組件是容易的部分,但應(yīng)該有關(guān)于設(shè)計(jì)、代碼和可訪問(wèn)性的清晰文檔來(lái)支持這個(gè)新元素。這些是設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)的核心職責(zé)。
此外,該團(tuán)隊(duì)還負(fù)責(zé)修復(fù)錯(cuò)誤、支持設(shè)計(jì)社區(qū)、創(chuàng)建培訓(xùn)材料等。設(shè)計(jì)系統(tǒng)應(yīng)該被視為一個(gè)產(chǎn)品團(tuán)隊(duì),其客戶是內(nèi)部設(shè)計(jì)師和前端工程師,專注于構(gòu)建和擴(kuò)展系統(tǒng)。想學(xué)習(xí)前端技術(shù)的同學(xué)可以參加Web前端培訓(xùn),有系統(tǒng)全面的課程,還有經(jīng)驗(yàn)豐富的專業(yè)講師指導(dǎo)教學(xué),可以快速掌握前端知識(shí)和技能,節(jié)省很多學(xué)習(xí)時(shí)間,少走彎路。
最后,團(tuán)隊(duì)負(fù)責(zé)采用。如果沒(méi)有被其他團(tuán)隊(duì)采用,那么為了構(gòu)建一個(gè)設(shè)計(jì)系統(tǒng)而構(gòu)建一個(gè)設(shè)計(jì)系統(tǒng)是一種浪費(fèi)的努力。有許多方法可以評(píng)估設(shè)計(jì)系統(tǒng)在組織內(nèi)的影響,例如,設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)可以掃描公司范圍的代碼庫(kù),以確定系統(tǒng)的使用位置和方式,這也有助于了解哪些團(tuán)隊(duì)正在使用最新版本的
UI 組件。
評(píng)估采用率的另一種方法是要求產(chǎn)品團(tuán)隊(duì)每季度自我報(bào)告他們的采用進(jìn)度,這取決于組織的規(guī)模,設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)還可以將調(diào)查與其他評(píng)估方法結(jié)合使用。通常有一名產(chǎn)品經(jīng)理負(fù)責(zé)與其他利益相關(guān)者建立伙伴關(guān)系,他們創(chuàng)建開(kāi)發(fā)路線圖并將社區(qū)需求帶回給設(shè)計(jì)人員和開(kāi)發(fā)人員。
旨在幫助開(kāi)發(fā)人員
設(shè)計(jì)系統(tǒng)旨在為前端開(kāi)發(fā)人員提供他們的開(kāi)發(fā)工作流程。
如果一個(gè)設(shè)計(jì)系統(tǒng)構(gòu)建了組件,但無(wú)法分發(fā)它,它會(huì)讓許多開(kāi)發(fā)人員感到沮喪?;蛘?,如果包是通過(guò)過(guò)時(shí)的包管理器分發(fā)的,這將使開(kāi)發(fā)人員使用設(shè)計(jì)系統(tǒng)組件具有挑戰(zhàn)性。一個(gè)好的設(shè)計(jì)系統(tǒng)會(huì)不斷發(fā)展其分發(fā)工具,當(dāng)今許多設(shè)計(jì)系統(tǒng)都普遍支持現(xiàn)代包管理器工具,例如
NPM 或 Yarn。參加Web前端培訓(xùn),有明確清晰的學(xué)習(xí)路線,可以在短時(shí)間內(nèi)盡快掌握web開(kāi)發(fā)的相關(guān)知識(shí),有助于你更好地進(jìn)行開(kāi)發(fā)工作。
此外,需要對(duì)組件進(jìn)行正確的版本控制,并且需要經(jīng)常更新發(fā)行說(shuō)明以反映主要和次要版本的更改。許多設(shè)計(jì)系統(tǒng)通過(guò)圍繞測(cè)試記錄他們的過(guò)程來(lái)獲得開(kāi)發(fā)人員對(duì)組件穩(wěn)定性的信心。
此外,開(kāi)發(fā)人員關(guān)心樣式封裝以及代碼的編譯和轉(zhuǎn)譯。一些開(kāi)發(fā)人員關(guān)心作用域 CSS 類名。許多設(shè)計(jì)系統(tǒng)使用 CSS
模塊來(lái)模塊化和組合 CSS,設(shè)計(jì)系統(tǒng)利用 CSS 模塊來(lái)啟用類名稱的自定義范圍,并防止不同版本之間的名稱沖突,CSS 模塊允許 UI
組件與其他版本的庫(kù)在頁(yè)面上共存。
設(shè)計(jì)系統(tǒng)可以幫助解決其他幾個(gè)工程問(wèn)題——Javascript polyfill、對(duì) Vue 或 React 框架的支持、使用
CDN 分發(fā)庫(kù)資產(chǎn)、SCSS 后處理或覆蓋、內(nèi)置可訪問(wèn)性等等。關(guān)鍵是設(shè)計(jì)系統(tǒng)遠(yuǎn)遠(yuǎn)超出了視覺(jué)指南,支持工程任務(wù)是設(shè)計(jì)系統(tǒng)工作的一部分。
如果你發(fā)現(xiàn)你的團(tuán)隊(duì)一遍又一遍地構(gòu)建相同的組件,那么也許是時(shí)候?qū)⒛愕脑O(shè)計(jì)系統(tǒng)化了。
借助設(shè)計(jì)系統(tǒng),你的工程和設(shè)計(jì)團(tuán)隊(duì)之間的聯(lián)盟可以有效地為最終用戶構(gòu)建一致的用戶體驗(yàn),并且可以輕松地跨多個(gè)產(chǎn)品和平臺(tái)進(jìn)行擴(kuò)展。如果你想學(xué)習(xí)設(shè)計(jì)系統(tǒng)相關(guān)知識(shí)和技能,你可以從web前端培訓(xùn)課程開(kāi)始,這是一個(gè)很好的起點(diǎn)。