pver_with_cobra
- cobra init
- cobra add
- new関数でコマンドを初期化
- DIのためと思ってそうしたけど、後でroot.go内で初期化するようにしたので必要なかった
- rootコマンドはテストしづらくなるが、rootには機能もたせないのがよさそう
- testを追加
cmd.SetOut
でbufferに出力させる
- cmdパッケージは入出力、serviceパッケージはビジネスロジック、infraパッケージはAPI,DBみたいにわけた
- テストは書きやすくなった気がする
- ダックタイピングがちょっとわかった
- service層にはinterfaceをもたせてinfra層で実装することで依存関係逆転させた
- デバッグ目的以外でcmd層以外では出力しない