close

 

當然大部分的情況GUI便利易用的多,但還是有些時候CLI來的彈性跟順手的多,真正還是得視其應用的場景來決定!

您想設計的使用者使用環境是這樣呢?

cmi1.jpg

 

還是希望是這樣?

gui1.jpg

先說說CLI的英文全名為Command-Line Interface

是在圖形使用者介面得到普及之前使用最為廣泛的使用者介面,它通常不支援滑鼠,用戶通過鍵盤輸入指令,電腦接收到指令後,予以執行。也有人稱之為字符使用者介面(character user interface, CUI

下圖就是個CLI使用者介面的範例:

cli.jpg

再說說GUI的英文全名為 Graphical User Interface

是指採用圖形方式顯示的電腦操作用戶介面。與早期電腦使用的命令行介面相比,圖形介面對於使用者來說在視覺上更易於接受,學習成本大幅下降,也讓電腦的大眾化得以實現。

下圖就是個GUI使用者介面的例子:

gui.jpg

兩者的優缺點

CLIGUI的特性比較

比較項目

使用CLI介面

使用GUI介面

使用的難易

需要學習並記憶系統的操作指令,需要一定的學習過程及理解,入手的前置期比較長

已經設計為圖像視覺化的內容,一般的使用者在使用上直覺得多,學習的門檻也容易得多

控制權力的多少

通常CLI模式中對於系統有較大的權力,但還得視使用者是用什麼身分登入到系統之中,所以用CLI介面操作系統若權限允許,具有一定的風險

已經設計過的GUI介面,通常已經設想能執行的動作有哪些,影響較大的功能,在GUI設計過程中也已經考慮一些如權限的檢核或覆核或執行與否的確認訊息

多樣工作同時執行

必須逐行的執行命令,當然也可組合不同的指令讓它批次的執行

介面設計上通常允許讓使用者同時執行不同的工作,讓多項工作在背景中同時運作

下達指令的速度

不需使用滑鼠,且不需瀏覽整個操作介面,執行起來效率會較快

一般的設計上可能皆需使用到滑鼠及鍵盤,使用環境需較齊備且動作較複雜

耗用系統資源的多寡

只需叫出命令列的prompt,這樣的動作不會佔據太多的系統資源

依介面設計的複雜度及需要搭配的工具的多寡而異(周邊如滑鼠或隨身碟等),光操作介面的叫出就會佔據一定的系統資源

執行命令的客製化能力

只要熟捻執行命令,可以讓執行者自己組合下達命令的內容,甚至於若使用者權限夠大,還能無所不能的操作系統

通常已受限於GUI設計好的介面,但也不代表不能依您想要的組合執行,將視這個GUI介面設計的選項及參數選擇是不是夠完備

遠端控制

端看使用者對於指令的熟悉程度,使用上較具彈性,但需要經過訓練及對於指令上的熟悉

使用者介面需經特定的設計讓此介面可遠端的控制替定的機器,使用的門檻較低,但能控制的範圍端視介面當初設計的範圍

版本變化的適應成本

通常指令級的變化較少,同時就算改變也有不錯的版本包容性,改版後通常指令操作皆有延續性

有可能碰到重新的GUI設計,有時更板後有較大的變化,需重新適應

應變能力

直指系統的核心,當受限於環境的限制時,例如沒有滑鼠的環境或圖形介面叫出受阻時,指令執行教具直接性及受環境影響不能執行的風險較少

利用圖形介面強烈的互動性及顏色設計上的風險提示,某個角度上,具有風險提示、警告的特定效果

 

使用的時機

當這樣的環境條件下是使用CLI的較佳時機:

  • 系統管理者取得對於系統更大的控制權及執行權時,通常用於對於電腦系統管理用途時。
  • 當您需要同時對於多個系統進行工作指派或系統調整時,CLI的指令控制會來得辨理且有效率的多。
  • 不想耗用太多系統資源(如記憶體)或非慣用性的一次性工作,不想再浪費時間開發GUI時,善用CLI指令可以快速地達到目的。
  • 有一些非一般使用者使用的軟體,也不會開發友善的GUI介面,這時候(通常是工程師使用的工具),這時候也不得不學會該工具的CLI指令。

當這樣的環境條件下是使用GUI的較佳時機:

  • 使用的對象不需耗費太多的心思,或不須了解系統怎麼運作的一版使用者所使用的工具(使用對象為一般的使用者)。
  • 降低入門使用者的理解負擔,可以使用GUI介面協助其使用。
  • 為了讓執行過程及結果更可視覺得掌握的到
  • 將很複雜的程序或工作命令用GUI介面組裝及包裝,讓使用者易於操作。

結論建議

一般的電腦系統及應用軟體(甚至於程式開發工具)都慢慢地朝提供GUI介面上發展,其目的是提供較低的學習門檻及快速上手、能快速使用的目的,但有些系統或還堅持不提供GUI介面,原因是使用這些系統的目的及用途不為一般的使用目的,通常是軟體的管理工具如LINUX管理工具或軟體版本控制工具等,原因是使用者為特定受過養成訓練的專業人員,需經過一定的工程訓練,若提供GUI介面,會限縮管理者使用的彈性及有時候考量系統安全的顧慮,但為兼具便利及彈性,大部分慢慢地朝具備GUICLI介面兼俱來發展

window作業系統介面除了友善的GUI介面外上亦提供如power shellCLI介面,讓專業人士便於彈性運用

但說的落落長,我們若有機會設計讓他人所使用的系統時,設計GUI介面往往是設計的一個重點,未來我們有機會談談如何使用PythonTkinter或其他介面設計套件如PyQt來設計您的友善介面

arrow
arrow
    創作者介紹
    創作者 阿丹 的頭像
    阿丹

    python愛玩客

    阿丹 發表在 痞客邦 留言(0) 人氣()