はじめに
どうも、水無月せきなです。
Goの勉強のために開発したTodoアプリに関して、技術解説をする記事をシリーズものとして書きました。
この記事は、そのシリーズについてまとめた目次のような記事です。
シリーズの一覧
- GoでTodoアプリを作ってみた(Gin × GORM × Docker)
- クリーンアーキテクチャ風味でGo!なTodoアプリ開発
- GoでWebアプリのテストを書く(txdb × gomock × testify)
シリーズの概要
シリーズは大まかに下記のテーマで構成されています。
- アプリケーションの概要
- 実装の詳細
- 単体テスト
それでは、この構成と照合しながら、各記事を紹介します。
アプリケーションの概要
GoでTodoアプリを作ってみた(Gin × GORM × Docker)
この記事では、開発したアプリケーション全般について概略的に記しています。細かく言うと、技術スタックなどのアプリケーションの概要・ライブラリのインストール・実装面での概要を記載しています。
開発したTodoアプリの全体像や、アプリ開発の初期段階の参考にされたい場合は、こちらの記事が良いと思います。
実装の詳細
クリーンアーキテクチャ風味でGo!なTodoアプリ開発
この記事では実装面にフォーカスしており、アーキテクチャの部分に触れつつ、実際のソースコードを交えながら実装を紹介しています。
Goでの開発としては珍しく(?)APIではなく画面まで作成しているため、フラッシュメッセージやテンプレートとの連携といった部分もあります。
単体テスト
GoでWebアプリのテストを書く(txdb × gomock × testify)
テストにフォーカスした記事です。クリーンアーキテクチャ風味の実装となったため、gomock
によるモック生成とテストでの使用、testify
のsuite
パッケージでの共通処理の実装、txdb
によるテスト用データの分離といった内容を記載しています。
また、テスト時に遭遇した問題として、HTMLの読み込みやgin.CreateTestContext
を使用した場合に発生しうるコーナーケースについても書いています。
おわりに
Todoアプリの開発について、初期段階からテストまで広範にカバーした内容となっています。まとまりの良いテーマごとで独立的な記事にしているので、一部だけの参照もしやすいかと思います。
Todoアプリとしては一旦区切りを付けましたが、追加したい内容や記事を書いていて気になった点もあったりするので、今後も細々と開発を続けようかなぁと思っていたりします。
そういった開発の中で記事にできるようなことがあれば、このシリーズに追加しようかと思いますので、その際はぜひご覧ください!
これらの記事がお役に立てば幸いです。