什麼是樣式指南?

我在一次對話中提到了「樣式指南」(Style Guide)這個術語,結果被問到:「什麼是樣式指南?」

當我在 2000 年代初期首次進行 Genero 轉換時,那些已經完成 Genero 應用程式轉換的前輩給了我們一個建議:在完成幾個 Genero 概念驗證(Proof of Concept,POC)應用程式之後,整理一份文件,說明你的使用者體驗(UX)應該是什麼,然後將它作為以下工作的基礎:

  • 撰寫 .4st.4ad.4tb.4tm 等樣式與設定檔案的程式碼
  • 撰寫 Genero 表單和 Genero 對話框的程式碼
  • 作為在程式碼審查和品質保證(QA)中衡量 Genero 應用程式的標準

這份文件稱為「樣式指南」,其中包含以下幾個重要部分:

程式類型 / 模式識別

列出應用程式中有哪些不同類型的程式,以及決定個別程式屬於哪種類型的判斷標準。(上一篇第 300 篇文章對此有簡單介紹。)

視窗 / 表單外觀

視窗與表單的整體外觀應該是什麼?不同類型的程式或視窗之間有何差異?

  • 是否使用工具列(Toolbar)?如果是,位置在哪裡?包含哪些項目?
  • 是否使用頂端選單(Topmenu)?如果是,位置在哪裡?包含哪些項目?
  • 是否使用動作面板(ActionPanel)?如果是,位置在哪裡?包含哪些項目?

舉例來說,含有 TABLE 的表單可能會使用包含 firstpageprevpageprevrownextrownextpagelastpage 等按鈕的工具列;而沒有 TABLE 的表單則不需要這些按鈕。

這也會影響你是要使用 ui.Interface 的方法來載入樣式表和動作預設值,還是使用 ui.Form 的方法;以及樣式表、動作預設值等檔案的內容應該包含什麼。

小工具決策圖

針對每個表單欄位,制定決定使用哪種小工具(Widget)的規則。最終應產生一個流程圖,讓你依序回答問題,最後得出要使用的小工具及其屬性值。

你可以從簡單的規則開始:資料型別是 DATE 嗎?如果是,使用 DATEEDIT;否則使用 EDIT。接著逐漸增加更多規則。例如,什麼情況下使用 COMPLETER?什麼情況下使用 BUTTONEDIT?什麼情況下使用 COMBOBOX?什麼情況下使用 RADIOGROUP

除了選用哪種小工具之外,還要包括屬性的設定方式。例如:最後確定使用 EDIT 之後,什麼情況下需要指定 FORMATFORMAT 屬性如何填寫?可能的規則是:所有數值型態都應指定 FORMAT,而字元型態則不使用 FORMAT。

表單版面配置

考慮各種版面配置的決策點:

  • 什麼時候使用 TABLE,什麼時候使用 SCROLLGRID
  • 什麼時候使用 VBOX/HBOX,什麼時候使用帶版面標籤的 GRID
  • 表單欄位標題是放在欄位左側還是上方?標籤是左對齊還是右對齊?欄位之間是否有分隔符號?
  • 各種視窗呈現樣式(Presentation Style)屬性的值為何?
  • 各種表格呈現樣式屬性的值為何?
  • 視窗標題如何設定?
  • 響應式(Responsive)規則是什麼?
  • 使用什麼字型?使用什麼應用程式圖示?

術語標準

決定應用程式中要使用的詞彙,包括:

  • 按鈕文字,例如「確定」/「取消」;以及一致性業務術語,例如:查詢(Query)vs 尋找(Find)vs 搜尋(Search)vs 瀏覽(Browse);新增(Add)vs 插入(Insert);更新(Update)vs 編輯(Edit)vs 修改(Change);移除(Remove)vs 刪除(Delete)等。你的 QAUD 模式搞不好是 FIED!
  • 業務術語:是「分公司」還是「倉庫」還是「門市」?是「產品」還是「品項」還是「SKU」?
  • 可接受的縮寫:Account 可以縮寫成哪種形式——Ac、A/c、Acc、Acct?
  • 錯誤訊息的措辭方式:是「欄位名稱必須大於零」還是「欄位名稱不得小於零」?你要強調正確值應該是什麼,還是強調錯誤值是什麼?

樣式指南是一份活的文件

樣式指南是一份活的文件,你應該做好隨時修改的準備。隨著 Color Picker Widget、TagEdit Widget、PhoneNumber Edit 等新 GUI 功能陸續推出,你的樣式指南也應該更新,以反映這些新小工具的適當使用時機與方式。

樣式指南讓開發者無需自行做每一個 GUI 設計決策,因為這些決策已經在指南中事先制定好了。只要遵循樣式指南,就可以確保你的畫面具備一致的使用者介面。

如果你有樣式指南,請不要丟棄它。它不是在最初的 Genero 轉換完成後就可以束之高閣的東西,而是應該持續維護並隨時參照的文件。這篇文章的另一個寫作動機,正是因為我去了一個我知道以前有樣式指南的開發現場,卻發現那份文件已經無人問津。

原文:https://4js.com/ask-reuben/ig-301/  ·  有任何 Genero 技術問題或翻譯疑問,歡迎來信 support@t100.app