Ho bisogno di qualche consiglio sulla progettazione CLI, ho bisogno di fornire semplici ma potenti opzioni da linea di comando

3

Sto scrivendo un'utilità che viene eseguita sulla riga di comando RHEL5. Ho bisogno che le mie opzioni da riga di comando siano semplici ma potenti. Ho esaminato le varie utilità UNIX per avere un'idea di come devono essere semplici le utility da riga di comando. Ragazzi, suggerite qualche documento / link che parla dell'etichetta di comando? Sto modellando la mia utilità su LVM (sono tutte le informazioni che posso fornire per ora). So che è una domanda di ingegneria del software, ma ho pensato che sarebbe stato opportuno postare qui. Si prega di avvisare ....

PS: non sto chiedendo dettagli su getopt o parser dell'utilità della riga di comando .....

    
posta howtechstuffworks 19.07.2012 - 17:55
fonte

2 risposte

4

<what> <how> <which>

<what> : cosa vuoi fare. Se il tuo software fa molte cose diverse, potresti voler usare diversi comandi o comandi / sottocomando (ad esempio git pull , git push , ecc.)

<how> : modificatori su ciò che vuoi fare. Tipicamente uno switch / opzioni di comando (ad esempio -s , -s <arg> ). I comandi utilizzati più spesso meritano un identificatore di caratteri, probabilmente tutti i comandi dovrebbero ottenere nomi lunghi (ad esempio --short ). -v / --verbose , -d / --debug , -n / --dry-run , -o / --out , -h / --help ... ci sono alcuni comandi che sono un po 'standardizzato

<which> file / cose su cui stai operando. - significa che stdin (o no args) dovrebbe essere fornito se possibile.

Cose interessanti:

  • Se il comando sputa l'output, fornire un'opzione per generare l'output leggibile dalla macchina
  • Usa stdout / stderr correttamente
  • Fornisci ganci di completamento della shell
  • Fornisci pagine man
risposta data 20.07.2012 - 23:45
fonte
1

Hai iniziato con:

need my command line options to be simple but powerful
modelling my utility on top of LVM(thats all the info I can give for now)

La cosa buona non è una richiesta di alto livello.

Dato che non sappiamo a quali funzioni specifiche del gestore di volumi logici ci si riferisca, è difficile dare esempi specifici di cosa creare per un'opzione della riga di comando.

In generale, vuoi pensare a:
- compiti comunemente eseguiti
- passaggi necessari per eseguire tali compiti
- come semplificare i passaggi e le attività in singolo elemento

"Semplice" è in realtà molto più difficile da codificare. Probabilmente dovrai eliminare le centinaia di opzioni che potrebbero essere e concentrarti su quelle che sono necessarie.

Per riformulare ciò che stai chiedendo è questo: non banale e facile da usare . Scava nei tuoi casi d'uso; trova la comunanza; presentare un'opzione "singola" per riflettere la comunanza di quel caso d'uso.

E / o scrivi semplicemente una documentazione solida che spieghi in modo esaustivo quali saranno le opzioni. Un errore che trovo nella maggior parte delle pagine man è che di solito sono ottimi per riferimento, ma difficili da imparare.

    
risposta data 19.07.2012 - 18:04
fonte

Leggi altre domande sui tag