Closed mizar closed 8 years ago
ご提案ありがとうございます.確かに,拡張性のためにはそういったモデルに対する操作を外部に露出するということが必要ですね.自分自身でも,開発している別のプロジェクトをバックエンドとして接続する際にはこのままでは難しいと感じていました. https://github.com/na2hiro/Shogitter.hs/issues/4
箇条で挙げていただいたように実装しようと思います.
より良い形としては,現在loadで提供している「定期的に再読み込みをする」というものをプラグインとして外からくっつける形がありそうです.loadがない場合は自動更新間隔のドロップダウンも意味が無いので,UIと再読み込みのコントローラを一緒に挿入できるフレームワークを考えられればと思います.まあ,時間がかかるとよくないのでこれはfuture workになるかもしれませんが.
必ずしも先述の通りの実装で無くとも、盤面構築系(load,loadString)の返り値として、その盤面操作用のオブジェクトを返し、そこから各種情報の読み書き、更新系の操作などを行えるようにしても良いかもしれませんね。
とりあえず 7d5b72eb32139bc1af55ac6443949761f06d6d57 でコールバックを読み込めるように(load
がloadCallback
を使う例になっています), e007c6ad6a0556d60b7aa78e72d3facca307871f でコントローラを返すようにしてみました.
より細かい操作については現状少し書きづらく,Reduxで書きなおしてからのほうが良さそうに感じました.
外部のスクリプトから更新棋譜データの流し込み、最新の局面の表示などの制御が出来るようにしたい。
以下のような2つの方向性は如何でしょうか。