概要
CLI開発者は、移植性、パフォーマンス、および作成の容易さからGoを好む
コマンドラインインターフェース(CLI)は、グラフィカルユーザーインターフェース(GUI)とは異なり、テキストのみです。クラウドおよびインフラストラクチャアプリケーションは、その簡単な自動化とリモート機能のために、主にCLIベースです。
主な利点
高速なコンパイル時間を活用して、高速に起動し、任意のシステムで実行されるプログラムを構築します
CLIの開発者は、Goがアプリケーションの設計に理想的であると考えています。Goは非常に高速に単一のバイナリにコンパイルされ、一貫したスタイルでプラットフォーム間で動作し、強力な開発コミュニティをもたらします。単一のWindowsまたはMacラップトップから、開発者は、Goがサポートする数十のアーキテクチャとオペレーティングシステムのすべてに対して、数秒でGoプログラムを構築できます。複雑なビルドファームは必要ありません。他のコンパイルされた言語は、移植性や迅速さで構築することはできません。Goアプリケーションは、Goアプリケーションのインストールを簡単にする単一の自己完結型バイナリに構築されます。
具体的には、Goで記述されたプログラムは、既存のライブラリ、ランタイム、または依存関係を必要とせずに、任意のシステムで実行されます。また、Goで記述されたプログラムは、CまたはC ++と同様に、即時の起動時間を備えていますが、他のプログラミング言語では実現できません。
ユースケース
エレガントなCLIを構築するためにGoを使用する
GoでCLIを開発する場合、CobraとViperの2つのツールが広く使用されています。
Cobraは、強力な最新のCLIアプリケーションを作成するためのライブラリであり、GoでアプリケーションとCLIアプリケーションを生成するプログラムでもあります。Cobraは、CoreOS、Delve、Docker、Dropbox、Git Lfs、Hugo、Kubernetes、およびその他多数の人気のGoアプリケーションの大部分を動かします。統合されたコマンドヘルプ、オートコンプリート、ドキュメントにより、「各コマンドのドキュメント化が非常に簡単になる」とOpenFaaSの創設者であるアレックス・エリスは述べています。
Viperは、Goアプリケーション向けの完全な構成ソリューションであり、構成のニーズと形式を処理するためにアプリ内で動作するように設計されています。CobraとViperは連携するように設計されています。
Viperは、構成内のネストされた構造をサポートしているため、CLI開発者は大規模なアプリケーションの複数の部分の構成を管理できます。Viperはまた、12ファクターアプリを簡単に構築するために必要なすべてのツールを提供します。
「コマンドラインを汚染したくない場合、または履歴に表示したくない機密データを扱っている場合は、環境変数を使用することをお勧めします。これを行うには、Viperを使用できます」とGeudensは提案します。
注目のユーザー
顧客 | 簡単な紹介 | Goを使用しているプロジェクト |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
始めましょう
CLIを作成するためのGoの書籍
CLIライブラリ
-
spf13/cobra
強力な最新のCLIアプリケーションを作成するためのライブラリと、GoでアプリケーションとCLIアプリケーションを生成するためのプログラム
-
spf13/viper
構成のニーズと形式を処理するためにアプリ内で動作するように設計された、Goアプリケーション向けの完全な構成ソリューション
-
urfave/cli
コマンドラインGoアプリケーションを作成および整理するための最小限のフレームワーク
-
delve
コンパイルされた言語でソースレベルデバッガーを使用することに慣れているプログラマー向けに構築されたシンプルで強力なツール
-
chzyer/readline
GNU Readlineのほとんどの機能を提供する純粋なGolang実装(MITライセンスに基づく)
-
dixonwille/wmenu
ユーザーに選択を促すCLIアプリケーション向けの使いやすいメニュー構造
-
spf13/pflag
POSIX/GNUスタイルのフラグを実装する、Goのflagパッケージのドロップイン代替
-
golang/glog
Goのレベル付けされた実行ログ
-
go-prompt
強力なインタラクティブプロンプトを構築するためのライブラリであり、Goを使用したクロスプラットフォームのコマンドラインツールの構築を容易にします。