Skip to content

ja Client class

USAMI Kenta edited this page May 5, 2017 · 2 revisions

Client

君はマストドンを見たか

Clientとは何か

このクラスの役割は以下のように説明できる。

  1. 接続先のMastodonインスタンス情報の管理
  2. HTTPクライアント(Guzzle)のラッパー

二つの役割を一つのクラスで持つ妥当性は薄いようにも感じられるが、可能な限り責務を分割したい気持ちと、クラスって分けすぎても後で面倒になるよねといった妥協したい気持ちの中間を行った結果としてこの構成になった。

実装を読んでいくと短いコードの割にあやとりのようになってる部分があるけれど、これをクラス分割するとさらにあやとりになるので、うーんうーん。

一方でMastodonにAPIリクエストをする方の処理、つまりMastodon/API.mdに対応するクライアント側の処理はいかにも手続き的で、このClientクラスと一体である必要はあまりないように感じられた。また、これらをくっつけてしまった場合にアクセストークンなどをどこに持たせるかといった問題が浮上した。

そんなわけでMastodon classRequester classに分割されましたとさ。

Clone this wiki locally