Go で作った TODO 管理 CLI : Togoo v0.1.0 をリリースして学んだことなど

Go の勉強で作っている Togoo の基礎機能が最低限揃ったので v0.1.0 としてリリースしてみた!(GitHub で Release を打っただけだけど)

期間的には約2週間ぐらいで,平日夜や休日などに時間を捻出しながらで進めていた.Go を勉強し始めて約1ヶ月ってこともあって,基本的なお作法は知らないし,回りに詳しい人もいないしで,ネットの情報を辿りながら試行錯誤していたように思う.そんな僕には gofmtgolint という強力なアドバイザーがいたので,何度も助けてもらった.

今もまだ「Go を書ける」と言えるレベルには全然達していないと思うので,引き続き勉強を続けていきたいし,OSS を読んだりしてベストプラクティスを取り込んで行きたいと思っている.

github.com

Togoo とは

Togoo は TODO を管理する CLI なんだけど,ほとんど機能はなくて,シンプルにタスクを add して done して list するだけにしている.「Trello 使えば良いじゃん!」って言われたら何も返せないけど,個人的なシチュエーションとしては「ウェブサービスに登録するのが面倒なほど小さくて,付箋にメモって机に貼るのが妥当な粒度のタスク」を管理したいなと思って作ってみた.だからこそローカルで完結させたくて,ホームディレクトリに SQLite を置いてデータを登録している.

ネーミングとしては「TODO」と「Go」から「Togo」にしたかったんだけど,既に同名のライブラリがあったために「Togoo」にした.「トゥーゴー」って呼んでもらえると嬉しいかもw

詳細は GitHub の README.md に書いてある(今後も追記していく)けど,ザッとこんな感じで使う.

➜  ~  togoo add sample_task1
➜  ~  togoo add sample_task2
➜  ~  togoo add sample_task3
➜  ~  togoo list
+----+--------------+--------+
| NO |    TITLE     | STATUS |
+----+--------------+--------+
|  1 | sample_task1 | -      |
|  2 | sample_task2 | -      |
|  3 | sample_task3 | -      |
+----+--------------+--------+
➜  ~  togoo done 2
➜  ~  togoo list -a
+----+--------------+--------+
| NO |    TITLE     | STATUS |
+----+--------------+--------+
|  1 | sample_task1 | -      |
|  2 | sample_task2 | Done   |
|  3 | sample_task3 | -      |
+----+--------------+--------+

学んだこと

Togoo を試行錯誤しながら作ったことで,いろいろと学ぶことができて良かった.一部は既に過去の記事にまとめてあったりもする.

var allListFlags = []cli.Flag{
    cli.BoolFlag{
        Name:  "all, a",
        Usage: "List all tasks.",
    },
}

ドッグフーディング中

Togoo v0.1.0 を自宅と会社でドッグフーディングしていて,気になる点はあるものの,普通に使うことはできていて満足している.

また既に PR を頂いたりもしていて,1人でも使ってくれる人がいるというだけでこんなに嬉しいんだなと OSS の素晴らしさを感じたりもした.まだまだ至らない点ばかりだと思いますので,PR をお待ちしています!

What is “Good” CLI tool?

まだまだ全然 “Good” とは言えないけど,@tcnksm さんの資料が素晴らしくて何度も何度も繰り返し見た.CLI のバイブルだ!

speakerdeck.com

まとめ

大事なことなのでもう1度書くと,Togoo は「ウェブサービスに登録するのが面倒なほど小さくて,付箋にメモって机に貼るのが妥当な粒度のタスク」をお手軽に管理する CLI ツールです!

Go 楽しくなってきてもっと深く攻めたいと思ってる.頑張るゴ!w

関連記事

kakakakakku.hatenablog.com

kakakakakku.hatenablog.com