Rubyのirbとか、rails_consoleが便利なので、Goでもそういうの出来ないか探したら作ってくれてた。
インストールして、使いたいメソッドがあるパッケージをimportして使えば普通に使えた。
「実行したい処理のコードはあるけど、外部から実行するためのインターフェースがない」みたいなときに使えそう。
以下の感じで実行できた。
$ gore # 起動(このシェルの環境変数は内部からも参照できる) gore > :import github.com/mixmaru/my_contracts/domains/contracts/application_service@v0.0.2 # 必要なメソッドが定義されてるパッケージをインポート gore > app := application_service.NewUserApplicationService() # 構造体インスタンス化 # 返り値を表示してくれる &application_service.UserApplicationService{ userRepository: &repositories.UserRepository{ BaseRepository: &repositories.BaseRepository{}, }, } gore > app.RegisterUserIndividual("コンソールたろう") # メソッドの実行 # 返り値を表示してくれる data_transfer_objects.UserIndividualDto{ Name: "コンソールたろう", Type: "individual", BaseDto: data_transfer_objects.BaseDto{ Id: 2, CreatedAt: 2020-09-27 13:15:26 Etc/UTC, UpdatedAt: 2020-09-27 13:15:26 Etc/UTC, }, }
※補足
importは「v1.0.11」のようなタグがあればその最新を、なければmaster(もしくはデフォルトブランチ?)の最新をとってくるっぽい。