簡體   English   中英

更好的命令行界面

[英]Better command line interface

我開發了一個緩存多個包的應用程序。 此應用程序的CLI界面如下所示

submit -z pkg1.zip -c pkgChecksum1 -t pkgType1 -s pkgSize1 -z pkg2.zip -c pkgChecksum2 -t pkgType2 -s pkgSize2 

所以這提交了2個包pkg1.zip和pkg2.zip,它們分別有校驗和pkgChecksum1和pkgChecksum2,包類型為pkgType1和pkgType2,大小分別為pkgSize1和pkgSize2。

我們還為應用程序提供了基於XML的輸入,如下所示

submit --script an.xml

其中an.xml是

<?xml version="1.0" encoding="ISO-8859-1"?>
<packages>
<package name="pkg1.zip" checksum="pkgChecksum1" type="pkgType1" size="pkgSize1" />
<package name="pkg2.zip" checksum="pkgChecksum2" type="pkgType2" size="pkgSize2" />
</packages>

這是第一個CLI方法的功能等價物。

我們計划讓這個用戶更友好,有什么想法可以改進嗎?

是否需要所有選項? 或者是否有類型和大小以及校驗和的默認值? 如果沒有默認值,您可以刪除標記,只需要四個一組的參數。

submit pkg1.zip pkg1Cksum pkg1type pkg1sz pkg2.zip pkg2Cksum pkg2type pkg2sz 

此情況下的另一個選項是使用標記,但會提示用戶輸入缺失值。

如果存在默認值(可以自動計算校驗和和大小嗎?),請允許選擇性覆蓋:

submit pkg1.zip -t pkg1type pkg2.zip -t pkg2type -s pkg2szOverride

另一個可能有用的選項是-a existingCache ,它附加到現有文件(或者如果不存在則創建它)。 這將讓用戶將其分解為幾個可以處理的命令行

   submit -a mycache pkg1.zip -t pkg1type -s pkg1sz
   submit -a mycache pkg2.zip -t pkg2type -s pkg2sz

還有一個選項,基於評論:

  submit -x pkg1.zip:2034 0x232D -y pkg2.zip pkg3.zip:123

其中-x,-y等是不同支持的“類型”的標志。 所以這一行提交pkg1,大小為2034,類型為X,校驗和; y型的pkg2,未指定大小或校驗和; 和pkg3的大小為123,沒有指定類型或校驗和。

您應該為CLI中的各種參數提供長選項和短選項。 例如

submit --package pkg1.zip --checksum pkgChecksum1 --type pkgType1 --size pkgSize1 --package  pkg2.zip -checksum pkgChecksum2 --type pkgType2 --size pkgSize2

很難說你應該做什么。 這取決於誰是您的應用程序的目標受眾。 兩種可能的選擇:

  1. GUI界面,適用於不知道/害怕使用CLI的用戶
  2. 交互式CLI,類似於:
 Package name: > pkg1.zip Checksum: > pkgChecksum1 Type: pkgType1 

我遇到的另一個選擇:

submit pkg1.zip:type:2034:0x232D     pkg2.zip:type2:2034:0x232D

我認為問題在於提交可以為每個參數管理多個選項,因此一次添加它們可以使界面更簡單。 記住每一個的類型,大小和chksum應該不難。 畢竟,似乎所有參數都是強制性的。 這樣,就不可能將一個包的選項與另一個包的選項混為一談。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM