-
Notifications
You must be signed in to change notification settings - Fork 1
ja Client class
USAMI Kenta edited this page May 5, 2017
·
2 revisions
君はマストドンを見たか
このクラスの役割は以下のように説明できる。
- 接続先のMastodonインスタンス情報の管理
- HTTPクライアント(Guzzle)のラッパー
二つの役割を一つのクラスで持つ妥当性は薄いようにも感じられるが、可能な限り責務を分割したい気持ちと、クラスって分けすぎても後で面倒になるよねといった妥協したい気持ちの中間を行った結果としてこの構成になった。
実装を読んでいくと短いコードの割にあやとりのようになってる部分があるけれど、これをクラス分割するとさらにあやとりになるので、うーんうーん。
一方でMastodonにAPIリクエストをする方の処理、つまりMastodon/API.mdに対応するクライアント側の処理はいかにも手続き的で、このClient
クラスと一体である必要はあまりないように感じられた。また、これらをくっつけてしまった場合にアクセストークンなどをどこに持たせるかといった問題が浮上した。
そんなわけでMastodon
classとRequester
classに分割されましたとさ。