好用的 CMS 具備哪些要素?

由於目前任職的公司就是在做 CMS 系統,對於 CMS 多少算是有自己的一番心得,以下整理了一下自己的想法,替目前為止學到的觀念作個總結。

在本篇文章內容中,首先會說明貫串整個系統的通用概念,並依序說明「功能架構」、「資料處理」、「外掛支援」等面向,自己認為有哪些優化方式,並在最後統一說明所有內容在「介面呈現」上如何處理為佳。

本文純為個人工作經驗的淺見,還請不吝批評指教。

目錄

通用概念

簡單直觀的操作邏輯
可客製化的靈活度

CMS 各面向分析

功能架構
資料處理
外掛支援 / 外部 API 串接
畫面呈現

參考資料


通用概念

首先來說說通用概念的部分,個人認為這部分的重要性,在於這些思考貫穿整個系統,在講述後面的架構時會隨時提到,所以放在最前面提及。

簡單直觀的操作邏輯

簡單直觀的操作邏輯

首先來說說直觀操作,這部分其實不只 CMS,算是所有網站的通用觀念。

有時候, CMS 會被預設是要提供給受過訓練,已經具備知識技術的人使用。比起一般大眾造訪的網站,CMS 的內容和操作確實更複雜,使用者需要更多學習時間,才能理解如何與系統互動。但也正因為如此,某種方面來說,CMS 甚至必須比一般網站更追求直觀方便,才不會在操作時給使用者帶來過大的負擔。

理想的 CMS 應該盡可能讓使用者在經過一段適應期後,只用最自然的人腦邏輯就能操作系統,像是役使手腳一般順暢地改動上面的內容。而且即便間隔一段時間不碰,回來後依然能很快上手,就像學會了腳踏車一樣,一輩子都再也忘不掉這項技能。

那些最好用的工具,往往都是操作簡單的。而且越是複雜的東西,則更應該盡可能地簡化它,不要讓工具成為「工藝」,讓使用者只敢遠觀而不敢褻玩。同時也唯有簡單直觀,才能讓數位工具更貼近人的思考,更加符合「人性」。


可客製化的靈活度

可客製化的靈活度

作為一位 RD 非常能夠理解,需求是永遠改不完的,因為使用者的狀況每天都會改變,他的需求當然也跟著天天都不一樣。每位需求者都巴不得有位 24 小時為他待命的工程師,讓他隨時想改哪就改哪,一直到這個工具完全順手滿意為止,但就人力資源成本上來說,這肯定是不可能的事情。

而既然我們提供的產品使用者不滿意,那不如就讓他們自行打造一個吧!

開發系統時,在每個地方保留更多客製化的靈活度與空間,讓使用者能將現有功能自己調整成理想的樣子。如此不但能提升使用者滿意度,也解放了工程師的時間,能夠繼續在其他地方為使用者提供價值。

但說歸說,客製化這件事情矛盾的地方或許是在於,越複雜、越需要客製化的系統,便越難以提供可客製化的靈活度。這個部分,就同樣是留給工程隨時思考的一個課題了。

以下會試著在各方面提出能夠達成客製化的具體方式,以期引發更多類似發想,提供整體系統更大的靈活度。


CMS 各面向分析

CMS 各面向分析

接著就來到 CMS 本身囉,CMS 中文一般稱為「內容管理系統」,基本定義是指可存放、瀏覽、操作各種資料的一個儲存器,現在多數 CMS 都具備支持多人操作與權限控管、資料版本控制等功能,可大幅有效地提高處理資料的效率與質量。

以下就來說說,大致上能從哪些方面找到準則,以打造出更加好用且方便操作的 CMS。

功能架構

分類分層是王道

一個工具要好用,自然要功能強大,能滿足各種需求。但許多功能強大的工具,在操作上往往相當複雜,與簡單直觀這個原則相違背。

有些 CMS 的 Dashboard,一點進去就揚揚灑灑列出一堆圖表和數據。如果實際上對使用者來說根本用不到的話,成為介面上的雜訊也就算了,更多時候還浪費效能和流量抓取處理這些資料,即便系統消耗得起,等待的時間卻無一不在消耗使用者的精力與耐心。

除此之外,眾多的項目在 Menu 中列成一大串,也同樣會讓使用者面對眾多資訊無從下手而感到茫然,因此對這項工具卻步。

功能多這種事沒有人會嫌棄,但是如果打算要和使用者長久相處,應該並不需要一見面就把所有功能一股腦塞到人家面前。

當一個介面中的功能超過十項時,分類和分層便成了重中之重,畢竟分類是人腦自然的運作方式。比起記憶 9 個毫無關聯的單字,每組 3 個總共 3 組的肯定更容易記憶,因為這更符合人腦自然的邏輯規律。

如此一來不單能簡化一個畫面中的資訊,也能夠協助使用者在他們腦中建構 CMS 的功能架構,想要使用什麼功能時,系統呈現的結構和他們腦中的結構邏輯是一致的,避免想找某個功能但老半天就是找不到的事情發生。

如果擔心多層分類會導致需要多點幾下才能找到需要的功能,則可在 Menu 上設置自訂捷徑。進一步甚至可能讓使用者自訂選單的分層方式,哪些功能對使用者來說是一類,或許更符合使用者自己作業時的 SOP,在無形中減去許多時間成本。

如此也呼應到開頭所說的客製化,直接邀請使用者來打造一個他感到順手的工具。


GCP 釘選項目成為捷徑區塊的功能超棒!

GCP 釘選項目成為捷徑區塊的功能超棒!也許就是他們也知道自己的項目實在太多了…


而 DashBoard 則同樣比照辦理,讓使用者自行決定需要哪些區塊。更進一步則可以考慮,是否能設計成可以將區塊以拖拉方式移動、增刪,讓整體操作變得更直觀,幾乎可以不加思考。

如此一來,系統的功能多元強大才能成為優勢,而不是成為使用者的一種負擔。


資料處理

資料處理

CMS 的優勢是便於管理與整合各種形式的資料,甚至可以說是其核心部分也不為過,以下就來試著說說有哪些資料處理方式,能夠打造出好用的 CMS。

新增、刪除、更改、整理資料

在這部分,首要著重的是減少使用者執行大量重複的行為,用最少的操作能夠處理最大量的資料以節省時間並減少錯誤,這不正是 CMS 此類工具被創造的最大主因嗎?

關於這點或許能夠參考電商後台。同樣作為一種 CMS,電商網站的後台由於需要面對更廣大的使用者類型,如何降低學習曲線,以減少使用者選擇平台介面時的推力,對這類平台來說算是一大重點。

批次上架、刪除、更改這些對電商來說都算是基本操作了,但有些對使用者來說內容量更龐大的 CMS,在這部分卻做得沒有電商完整。使用者甚至自己必須開發出一些「旁門左道」,或者額外找工具來混搭操作,才能達成大量快速處理資料的目的。

個人認為,如文檔、影像影音等基本型態的資料,應該都要能支援批次處理功能。想像一下在處理大量資料時,一種狀況是一次次點開新增頁面然後一一輸入每個欄位;另一種則直接將資料整理好,再將這些資料一次餵給系統處理,肯定是後者更省時省力。

就拿上傳資料來說,格式一致的純文字資料,即是說最後能以表格方式呈現的資料類型,如果無法在系統內做到批次操作,至少應能夠支援 json、CSV 等通用格式匯出匯入,讓使用者方便使用其他專業工具修改,同樣達成能讓使用者批次操作這個目的,而不需要讓他們需要想辦法自己另外處理資料。


Google 雲端硬碟

Google 雲端硬碟在上傳本地資料時完全可以無縫接軌

而像是影像影音以及其他類型的資料,在處理時更多時候則可能是花時間在分類分層上。要解決這個問題,為系統打造一個容易操作的介面或許是個方法,但是否有其他方式可以節省成本呢?

假設原本在使用者的電腦本機中,儲存的方式就是最終的資料架構,系統何不考慮連同架構分層直接存取 File Explorer 的資料?就像 Google 雲端存取資料一般,和本機 File Explorer 在操作上毫無隔閡,如同在同個系統存取一般,如此也同時節省了使用者的學習成本,達成「直覺式」的操作行為。


外掛支援 / 外部 API 串接

外掛支援 / 外部 API 串接

工程領域有句常被引用的話是「不要重複造輪子」,已經存在且好用的功能,如果能直接引進到自己的系統中來利用,不是一件省時省力又高 CP 值的事情嗎?就如同現在盛行的第三方 API,在個別獨立的系統之間製作接口,在保證資料安全的情況下互相交換資料,使用其他平台已開發完善的技術,以增加系統的功能性。

在網站架設的領域,現在市占最高的 WordPress,於文章發表日 2021 年 6 月來看,光是免費外掛便超過 6 萬個。除了 WordPress 本身的功能之外,這些外掛也無疑壯大了 WordPress,替使用者帶來遠超於它本身價值,奠定了 WordPress 在同業的霸權地位。

而除了數量之外,外掛的學習曲線也是要考量的一大原則。要嘛外掛本身就容易操作、簡單上手,要嘛就是想辦法串接普及率高的功能或平台,如 GCP、AWS,社群則像是 Facebook、LINE、Slack 等,使用者很大機率原本就會使用,將學習曲線盡可能降低,如此才能維持多功能的優勢。

如今有不少企業,甚至僅以開發外掛、支援性 API 作為主要業務。畢竟既然輪子已經在那裡了,很多時候不需要自己重新造一個。而是可以選擇在此基礎上,思考如何做出更厲害的車子,甚至是其他沒有任何人想過的產品,我想才是這個網路資源爆炸、開源共享的年代應該為之努力的方向。


畫面呈現

畫面呈現
在功能和資料講完後,以下綜合來講各方面的畫面呈現規則。

Icon / 圖片當道

在直覺式操作中,閱讀圖像的速度比閱讀文字快 6 萬倍,且具有跨語言的優勢,這也是許多 App、電商操作平台介面,都以 icon / 圖像方式呈現選項的原因。

而在使用圖像符號時,大多時候遇到的困難,很可能是占據同樣版面的圖片比起文字乘載的訊息量要少,如果沒有額外說明,使用者可能完全無法得知不同圖示具體代表的涵義。

對此的解決方法,或許可以選擇圖文搭配顯示,讓使用者同時記憶圖像和文字,在辨別畫面時可以利用圖片快速處理訊息,在腦中就迅速轉換成文字,如此一來便彌補了圖片乘載資訊量不足的問題。

以上再進一步的話,則可以讓使用者在熟悉介面後,自行選擇是否顯示文字,將說明改為 Tooltip 等不占版面的形式,這樣便能節省更多畫面空間,並屏蔽掉對使用者來說不必要的雜訊。


Firebase 左側的 Menu 全部以 icon 來呈現,使用上更加直觀

・Firebase 左側 Menu 全部以 icon 來呈現,使用上更加直觀。
・所有選單項目其實有做分組,但在視覺上不太明顯。


分層簡化

這部分和前文「功能架構」中提到的一樣,既然圖片加快了速度、減少了資訊量,那在同一頁面中呈現的圖片量就不應太多。

如果拿簡報當成例子,同樣的資訊量,比起在少少幾頁塞滿文字圖片,盡可能將資訊以圖片方式呈現,並且分成多頁來表達,對受眾來說是更容易吸收資訊的。

這裡依然貫串了簡單直觀的法則,將純文字改為圖片是一種簡化,而將圖片視為物件分類、分層處理,則是更近一步的簡化。這樣不僅沒有壓縮總體資訊,還能讓使用者更輕鬆地接收訊息。直觀的圖片呈現方式,可說是實現「人性化」系統不可或缺的要素之一。


資料呈現方式

資料呈現方式

表格資料處理

表格除了拿來呈現資料之外,如果能直接在表格上可以更改內容,成為更新資料的介面,能夠提供使用者更大的方便。

不過在電商網站中,似乎較少看到提供表格形式批次更改資料內容的功能,這點也許是因為 mobile 的顯示介面較小,無法凸顯出表格原本具有一次性清楚呈現大量資料的優勢。

關於這部分,或許能夠考慮靈活性更高呈現方式。比如說電商網站要管理商品時,我這次操作全部只想更動價格,或只想更動庫存,那在小型介面的呈現上便有更佳的可行性。

除了編輯之外,在純粹的資料呈現上就更是如此了。如果資料的欄位多到不止手機,就是再大的電腦螢幕也放不下,那乾脆讓使用者自己挑選要呈現哪些欄位資料,省時又便利。

Windows 檔案總管:自己選擇要顯示哪些資料!

Windows 檔案總管:自己選擇要顯示哪些資料!使用者是最懂他們自己需要什麼的人,與其幫他們畫紅線,不如讓使用者自訂出更客製化的內容。


呈現複雜資料

有時候,單筆資料內容很多,點開後整個頁面長長的拉不到盡頭。明明只是要看其中某個欄位,結果上上下下找得眼睛脫窗。

在這部分,可以考慮善用摺疊功能(前端一般稱 Collapse 或 Accordion),將眾多資料同樣用分類的方式呈現。等需要的時候再點開大分類,顯示底下的細目欄位。

如果是不常更動,甚至基本上僅使用預設值的資料,就非常適合用這樣的方式處理。而這部分則同樣可以開放客製化,讓使用者自行選擇哪些資料要自動展開,哪些又是自動收合。

依然是那句老話,使用者想要的,他們自己最清楚,那不如就讓他們自己來吧。


介面邏輯直觀

介面邏輯直觀

有時候,工程師可能會囿於撰寫代碼時的邏輯,創造出對使用者來說很奇怪的介面。

就拿使用者客製化設定操作來說好了,在工程師看來,可能從程式任何地方存取,都是呼叫同個地方的同個檔案,所以呈現介面時,會自然而然地將所有客製化設定集中在一個頁面上。

但是對使用者來說,這些設定的調整結果,最後卻有可能是呈現在完全不同、甚至無關的介面中。

打個比方來講,就像是水電師傅因為施工方便,把家裡所有房間的電燈開關集中在門口施作,而這對使用者來說根本是完全不符邏輯的事情。

一開始為了記住對應的電燈開關,甚至得在調整後走到房間去確認對應的燈泡是哪個。對應到系統操作時,可能就會變成要同時開啟兩個視窗,才有辦法進行調整操作。

如果是不能雙開的系統,那就真的變成要調整一個設定後切換到頁面中確認,才可能知道剛才進行調整的到底是哪裡的設定。

而當數量一多,則更可能搞混在一起,有些開關甚至可能因為找不到對應的燈泡,而對使用者來說變成純粹的裝飾品。

所以能夠系統上能夠互動的部位,以及會連動產生影響的地方,由於架構時的邏輯和操作時的邏輯並不一樣,工程師也需要多培養能隨時切換到使用者角度看待系統的能力。

另外,還有另一種也相當尷尬的狀況,則是設定頁面的按鈕做得過於隱密,結果使用者完全找不到,或者根本不知道有這樣的功能存在。

而介面上的各種元件項目,要如何不成為網頁上的雜訊,又能正常發揮功能,則又是 UI 領域另一個持續的挑戰了。


結語

以上以非常粗淺的方式說明了自己對 CMS 的認知,其中也包含一些進行程式工作的心得,記錄在此方便往後回顧。

總結來說,任一種與資料相關的系統幾乎都難以避開 CMS,往後大概也會有機會繼續學習這方面的知識,而這篇文章,就當成自己工程師生涯一個小小的記錄點吧。



參考資料

成功網頁設計的關鍵 -網站後台 CMS
建站不用愁,手把手教你搭建CMS(内容管理系统)
內容管理系統-維基百科