手順や詰まったところをまとめていきます。Go言語の文法を勉強して印象にのこったところまとめ。Go言語で数独(ナンプレ)を解くコードを書いてみた使用する技術DockerローカルのPCを汚すのが嫌なのでDockerを使っていきます。MySQLも使うのでdocker-composeで作っていきます。Ginを使ってみました。Ginを採用しました。Gorm(MySQL)Go言語のORM(オーアールマッパー)です。親しんでいたものとしていくつかORMあるそうですがgormを採用しました。DepGoのパッケージ管理ツールです。Dockerfileが荒らされるのが嫌だったので、アプリ内でしか使わないものはdepコマンドで管理するようにします。つくっていくコンテナの準備まずはDockerのイメージの作成からやっていきます。Dockerfileを晒すとこういう感じです。最終的なリポジトリはこちらです。"cmd/app/main.go"]やっているのは各種環境変数の設定とMySQLクライアントのインストールとGOBINをパスに含めたりする部分です。docker-composeはこういう形です。getしてビルドされたdepファイルを作成します。ensureとすることで依存パッケージのビルドが完了します。あるそうなので今回はそれに則ってみました。配下に実際に実装するコマンドのmain.goを配置しました。はじめに簡易マイグレーションコマンドを実装しました。3000})}ここでは単純にDBとの接続を行い、productデーブルを作成後に実データ投入という感じです。マイグレーションといいつつデータも投入していますね。パッケージに切り出しています。0.0.0.0:8080}実際はコントローラに切り出した方がお行儀が良さそうですが、一旦フラットに書き下しています。実装のながれをざっくり説明するとさらっとおわってしまうので詰まったところ等々を書いていきます。今回Goのデバッガとしてdelveを入れてみました。処理が進むので、ポイントで処理が止まったらそこで変数の中身みたり、変数書き換えたりできるという感じです。使用感はrubyのbyebugなどと似ているのですが最初にブレークポイントをコマンドで設定するのが少々面倒に感じました。このファイルのこの行みたいに指定しないといけないので直感的でなくちょっと手間です。調べてもちょっとわからなかったので一旦保留にしています。一点注意点として、dockerの設定でセキリティオプションを設定しないとうまく起動してくれないということです。docker-composeで"seccop:unconfined"を設定していないと下のようなエラーが出てきて使えないです。permittedわすれずにdocker-composeのオプション指定をしておきましょう。設定ファイルを外だしにする方法を調べて、実装しました。構造体にバインドする感じです。開発中はリクエストのログもそうですがどのようなSQLが発行されているか知りたいですよね。gormの場合はDBの接続を作った段階で下記の一文を入れれば発行されているSQLが見えるようになります。時間かかったので一旦ここでセーブしておきます。次回はGraphQLサーバやりたいですね。あとMongoとかも使いたい。version1この記事が役に立ちましたらシェアをお願いします。2019Go言語の文法を勉強して印象にのこったところまとめ。2019Go言語の文法を勉強して印象にのこったところまとめ。2019Go言語の文法を勉強して印象にのこったところまとめ。2019Go言語の文法を勉強して印象にのこったところまとめ。2019フリーランスを退職します。