1. yammerの日記
  2. 外部通信する実装の開発やテス..
2024-01-29 05:39

外部通信する実装の開発やテストをどうやるか

金曜日の帰りの道中に喋りました

00:02
こんにちは。前のエピソードで、じゅんぼくさんのじゅんぼく生活の中の話を紹介したんですけど、説明欄に書いていた生活の性の字が誤っていました。
この場で訂正させていただきます。声という字が正しいですね。失礼いたしました。
あともう一つ、昨日かな、一つ取りためてるっていう風に言ってたんですけど、結局二つ取りためていて三つエピソードを出しました。
お詫びして訂正します。失礼いたしました。謝罪コーナーはこのくらいにして、今日も奥の話はしません。
奥の話は結構して、あとは枝放きもするので、思い出したらするぐらいにしたいなと思います。
最近仕事でやっていることで、ずっと気になっていることというか、そういうのを話したいと思います。
Webアプリケーションの実装を書いてて、外部に通信する部分っていうのを書いていました。
本番環境とか、テスト用の環境みたいなのにつなぎに行ったら動くんだけど、環境依存が激しいので開発環境では試せないと。
ユニットテスト書いて、ユニットテストMockだからどうなんみたいな、そういうところのコードを書いて、
しかもあんまり普段手を入れないんだけど、急いでる時とか障害の時とか、そういう時に限って触って、
しかもそれは結構ミスると影響範囲が大きいみたいな、そういう外部通信の書類を書いてに変更を加えるっていうことをしていました。
幸いにも、それは結構多分パブリックな、それを模したHTTPのMockサーバーというか、OSSで動かせるものが多分あるような対抗のサーバー側があるようなものなんですよね。
なので、そういうもので実際に動かしてテスト書くっていうのがいいんじゃないかなっていうのをちょっと思っています。
ただ、そういうことをしだすとユニットテストというよりはインテグレーションテストに近いもので、どんどんそれをモノレポのCIとか回すとめちゃくちゃ重くなって現実的じゃないので、
03:11
例えばライブラリーに切り出しておいて、ライブラリー側はちゃんとテストするみたいな、そういうことをするのがいいんじゃないかなっていうふうに思っています。
それもめんどくさいし、結局ユニットテストでどこまでチェックするかみたいな話である気がするので、漏れないような機械的なチェックができる仕組みと、
あとは開発環境で試せる仕組みと、そこを変更しないときはあんまり重くなくテストできる仕組みと、そういうのが両立できるような環境になるといいですね。
結構モノリスというか、そういうウェブアプリケーションを扱うんですけど、結構やっぱりモノリスって楽だし、協力ですよね。
それを最近入りのマイクロサービスですか、入り始めて何年経ってるのかわからないですけど、そういうのに切り出すっていうのも別にそうすればいいというわけじゃなくて、
結構ジェムに切り出すとか、そういうジェムって言っちゃいました。
Railsのアプリケーションだったらジェムとか、PHPのアプリケーションだったらコンポーザーとか、そういう感じで切り出しておけばいい。
デプロイの単位を小さく、デプロイの単位というか、最終的なリリースのデプロイの単位というよりは、配布物としてのデプロイの単位を小さくできればいいみたいなところがあると思うので、
そういう感じでうまく境界を区切るようにアプリケーションを作っていきたいなという気持ちになりました。
今日一行日記書いてないので、この後書きます。
今週もお疲れ様でした。もう1月が終わっちゃいますね。
では来週もお会いしましょう。ではまた。
05:39

コメント

スクロール