© istockphoto.com/haya_p
Erfolgreiche Command-Line-Clients bauen

CLI <3


Fast jeder kennt sie, und viele Entwickler benutzen sie täglich: Command-Line-Clients, zu Deutsch Kommandozeilenprogramme. In diesem Artikel werfen wir einen Blick auf erfolgreiche Command-Line-Clients und versuchen die Gemeinsamkeiten auszumachen, die sie miteinander teilen. Denn man kann viel von erfolgreichen CLIs lernen, um in Zukunft selbst bessere Kommandozeilenprogramme zu entwickeln.

Es gibt in der Tat einige sehr erfolgreiche Programme, die auf der Kommandozeile des Terminals ausgeführt werden. Zum Beispiel Git, das seinen Ursprung im Linux-Projekt hat, oder npm, mit dem das Node. js-Projekt einen (auch kommerziell) sehr erfolgreichen Paketmanager hat. Das Apache-Projekt CouchDB entwickelt nmo (gesprochen nemo), um Datenbank-Cluster zu verwalten. Wenn man sich die drei Kommandozeilenprogramme genauer anschaut, kann man viel von ihnen lernen, um selbst bessere CLIs zu schreiben.

Im Web gibt es mittlerweile jede Menge Diskussionen sowie Material, wie man gute APIs designt, besonders zum Thema REST-APIs. Leider gibt es kaum Material zum CLI-Design.

Was macht ein gutes CLI aus?

Um die Frage zu klären, was ein gutes CLI ausmacht, schauen wir zuerst einmal, wie ein Command-Line-Interface genutzt wird: Typischerweise (Ausnahmen bestätigen die Regel) bedient ein Mensch vor einer Tastatur den Command-Line-Client. Das ist der Grund, warum wir einfache und leicht zu merkende Befehle für unser CLI benutzen möchten, doch damit werden wir nicht weit kommen.

Eventuell wird es einfacher, wenn wir uns ein Beispiel anschauen – ein Beispiel für ein meiner Meinung nach schlechtes CLI:

(01:11:02) [robert@tequila-osx] ~ $ mycli -A -a 16 r foo.html error: undefined is not a function (01:11:02) [robert@tequila-osx] ~ $

In diesem Beispiel muss ich ein kryptisches Kommando eingeben, daraufhin bekomme ich eine genauso kryptische Antwort zurück. Was bedeutet -A -a 16 und r? Benutze ich das Programm falsch oder ist der Command-Line-Client selbst fehlerhaft? Was bedeutet der Fehler, und wie bekomme ich mein Anliegen jetzt erledigt? Was macht also ein gutes CLI aus? Wir werden es mit diesen drei Regeln versuchen:

  • Auch als Erstbenutzer ist man niemals aufgeschmissen.

  • Ein simples Interface, das auch Power-User unterstützt.

  • Es ist vielseitig für alle Aufgaben verwendbar.

Kurz gesagt: Ein Command-Line-Client ist erfolgreich, weil seine Nutzer erfolgreich und glücklich sind.

Auch als Erstbenutzer ist man niemals aufgeschmissen

Kaum jemand hat Freude in einem Stau, bei dem man m...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang