見出し画像

4/16.log

log

今日は午前中からプログラミングをしていて午後から勉強をしてからは調べ物をしていました。

今日はいつもしたいといっていたgrpcのログイン機能を作っていました。元は今まで作っていたものにログイン機能を作ろうと思っていたのですが使い回しがしやすいように別リポジトリを作りました。

進捗としてはとりあえずインフラ(docker)イメージを作成して初期のディレクトリ構成やprotoファイルの記述、サーバーの実装をしていました。

考えていたこと

記事にもしようか悩むレベルの話題なのですがgrpcサーバーを作ろうと思った場合ディレクトリ構成はどのようにするべきなんですかね?restとは異なっていて少し組むのが難しい気がします。

画像1

とりあえず自力で組もうと思って依存関係がわかるような表を作ってみました。上がgrpcサーバー、下がrestです。矢印は依存を表していますが向きは矢印の元を実装するために矢印の先のものが必要(矢印の元で呼び出す)といった関係になっています。(分け方は自分なりの解釈なので中身がわからないと思います。また機会があれば記事にて詳細を書くので今回は省略させてください)

表を見てわかるようにgrpcサーバーは部品が多い気がします。自動生成されたprotoを元に実装していくため自ずとprotoに依存する部品が多くなります。また認証に関してもinterseptorを使っているためハンドラーとしてではなく部品としてどこかに書く必要があってサービスごとに認証の不要必要が分かれてくるためオーバーライドする必要があったりします。ここら辺を適当に書いていくとcircle importなるものが発生します。お互いのパッケージがお互いに呼び出しあっている状態ですね。

アーキテクチャについて考えすぎて実装ができないといったことはなってはいけないので早めに決めて実装していき、課題だと思った点に関しては随時直していきたいと思います!

この記事が気に入ったらサポートをしてみませんか?