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