4日目を担当します宮治研3年の@soh-kuranagaです。普段は研究室内でgoの布教活動をしています。
今回は、goの開発体験を向上させてくれる外部ライブラリ紹介ということで、よく使われていてとても便利な外部ライブラリを紹介していきたいと思います。
この内容にした理由は2つありまして、
一つ目は、初めての言語に入門してすぐの外部ライブラリはなんかとっつきにくいなと思うからです。特にgoの場合は入門に関する情報は充実してますけど、入門->実践の間の部分の情報って結構少ないですよね。なのでそこを少し埋められたら抵抗感なく学習していけるようになるのではないかと考えています。
もう一つは、今回紹介する外部ライブラリはたくさんのgoプロジェクトで使われていると思うので、この使い方に触れることで、goの実際の開発ってどんな感じてやっていくんだろうっていう雰囲気を少し感じ取ってもらえたらなと思っています。本当だったら何かアプリケーションを作りながら詳しく解説していくのがいいと思うのですが、文量大変なことになる気がするので今回はこれで🙏
1. spf13/cobra
goのコミュニティではcliの作成がとても盛んです。細かい理由は色々とありますが、とにかくgoのエコシステムはcliが作り(配布し)やすいです!
そこでよくCLI開発に使われているライブラリ(フレームワーク)がcobraです。KubernetesやGitHub CLIのプロジェクトでも使われているそうです。
Cobra is used in many Go projects such as Kubernetes, Hugo, and GitHub CLI to name a few.
https://github.com/spf13/cobra?tab=readme-ov-file#overview
cobraを使うと複雑なcliが簡単に作れます。フレームワークに則って実装をしていくことになるので、開発者はロジックを書くことに集中できます。
他にも同じようなライブラリがいくつかあるらしいですが、とりあえず高機能なcobraを使っておけばいいと思います。普段使っていて特に課題感を感じたことはないですよ!
使い方はいろんな記事で紹介されているのでそちらを参考にしてみてください!
追記します