okeysea / logorg

ポートフォリオサイト
https://www.logorg.work
0 stars 0 forks source link

[UI/UX] マークダウンエディタ開発 #3

Open okeysea opened 3 years ago

okeysea commented 3 years ago

ほしい機能の箇条書き

実装の方針

最小限の機能でエコシステムを作ったあと機能を追加する

実装の工程

Most Tasks

Want Tasks

okeysea commented 3 years ago

叩き台のライブラリの選定

a331279

候補

okeysea commented 3 years ago

APIコントローラ

サーバーとのデータのやりとりで、通常のCRUDに合せてURLをハードコーディングして処理するか、 別途API用のコントローラを用意してRESTful的な感じにしたほうが良いのだろうか。。。

URLヘルパがjavascriptでも使えれば楽なんだけど。

okeysea commented 3 years ago

markdown editor prototype

とりあえずコアの部分はできた....かな?

okeysea commented 3 years ago

パフォーマンスの問題

入力した毎に、文書全体をパースするという実装になっているので、文書が長くなれば長くなるほどレスポンスが悪くなる。これが非常に気にいらないので、解決するには変更箇所とその影響を受ける部分のみをパースする漸進的な実装に変更するのが妥当と考えるのだが、他にやる事たくさんあるよね!?ってことで極めて遺憾ながら一旦保留することにする。

okeysea commented 3 years ago

Stateの管理がめんどくさい

バケツリレーは論外なので、Contextでがんばるか、難しいと噂のReduxを入れるか悩みどころ。今後も拡張していくことを考えたら、Redux一択なのだろうけど、これ以上風呂敷を広げるのは得策ではない気がしてならない。でもめんどくさい。

追記: 再考した結果よくわかってないものを、よくわかってないReactを使って製作している中で導入するとソースコード的な意味でカオスなことになる気しかしないので、Reduxの導入は現時点では見送ってある程度形になってテストが充実してからリファクタリング時にでも入れることにする。

okeysea commented 3 years ago

wasmer-rubyがビルド失敗する

サーバ側でWebAssemblyを使ってクライアントと共通のパーサを通すという構想であったのだが、gemのビルドができなかった。 Rustのバージョンを落せばいけるかもしれない。いけなかったら、FFIかコマンドライン経由でバイナリを直接実行するかどうかしないといけないけど、サンドボックス化されないのが懸念点。

追記: 一つずつ試して、rust 1.45.2 でビルド成功。

okeysea commented 3 years ago

とりあえず、UI周りは中途半端な感じになってしまったけど基本的な機能は実装できた。 あまりここに時間をかけても仕方ないので、サーバーサイドの実装に入ることにする。