提案 #1356
openユーザータイムラインにslugを設定する
Description
user_fragment
(twitter)やdeffragment
(mastodon)で作成するtimeline
の引数がnil
なので、意味のないslugがついてしまう。
サードパーティープラグインから操作するときにやりづらいので、意味のあるslugを設定したい。
Updated by cob odo about 5 years ago
- プラグイン名 changed from twitter, mastodon to user_detail_view, mastodon
Updated by toshi_a 初音 about 5 years ago
これは具体的にどういうプラグインを作るために必要になりましたか?
別のプラグインが定義したタイムラインを操作するのは、バグの温床になるか互換性の維持が難しくなる一因となるので経験的にやめたほうが良いと思っていて、意図的にこのような実装にしています。
Updated by cob odo about 5 years ago
具体的には、(サードパーティープラグインとしての)load moreプラグインのブラッシュアップの過程で必要性を感じたものです。
というのも、元々存在したtwitter専用のload moreプラグインからそうだったんですが、ユーザータイムラインであるかどうかの判定を、そのタイムラインの親widgetのslugで判定していまして、これだと別のサードパーティープラグインによってタイムラインを含むfragmentが追加されていた場合に、意図しない挙動をするだろう、と考えたわけです。
発想としてはむしろ拡張に対して堅牢になるように、という意味あいでの提案でした。
将来的にcoreプラグイン側でこのslugが変更されたとしても、クラッシュするような作りにするつもりはない(処理可能なパターンのslugでなければ単に無視するため)んですが、そういった挙動をするプラグインを作ることは(残念ながら)確かに容易化するかもしれませんね。
mikutter的にはプラグイン同士の疎結合化をPluggaloidイベントで行うというのが正道かと思いますので、ダメということであれば別の拡張の仕方を考えることにします。
Updated by toshi_a 初音 about 5 years ago
確かに、どうしたものでしょうね。よくよく考えてみると #1356-2 は事実であるにせよ、ユーザがいきあたりばったりで拡張していけることには一定の価値があるので、一意な名前をつけることのメリットの方をちゃんと考えていませんでした。
ダメということであれば別の拡張の仕方を考えることにします。
ちなみに、他の方法で同じことをしようとするなら、具体的にどんな方法があります?