映画検索アプリ
映画を検索するWebアプリです。
個人的に触ってみたかった技術を色々入れている実験的プロジェクトです。
例えば、
バックエンド周りではマイクロサービス化、grpcを使った通信、GraphQLに興味があったので取り込んでいます。
BFF <-> マイクロサービス <-> マイクロサービス の通信はgrpcを使っています。
フロント <-> サーバー(BFF) の通信はgraphqlを採用しています。
また、マイクロサービス化にあたって、バックエンドの実装は今の所全てgolangを使っています。
マイクロサービス内でもクリーンアーキテクチャを意識した構成にしており、DIにgoogleのwireを使っています。
(リソースとなるAPIに対してプロキシ・キャッシュしているだけなので、あまりテストは書けていませn...。
せっかくinfra層の切り替えとか楽なのに...)
これらサーバーの実装に対してフロントは、Angularを使ってSPAにしています。
Angularについては何かこだわりがあるわけではないですが、 Angularのお作法に従って色々よしなにしてもらえれば、単純にサーバーの実装に集中できるかなと思った次第です。
(なお、vvについて意味は特にないです。
...が、頭につけるnamespaceとして使いやすいというのはあります。)
-
フロントエンド
- Angular
- graphql(Apollo)
- stylus
-
BFF
- golang
- 実装言語
- graphql
- フロントとの通信
- grpc
- マイクロサービスとの通信
- golang
-
各マイクロサービス
- golang
- grpc
- wire
## 動かし方
cd vv_compose
docker-compose up -d