Monasモジュール構成
それぞれのフォルダ構成とかじゃなくて、コードを書くうえでどこにどのような関数を書くか、機能ごとにファイルを分けるべきなのかとかが気になる(雑だけど)
コントリビュートしてもらうのに読みやすくする
業務委託先のコードがかなり読みやすかったイメージがある
API,Controller,機能(それぞれ)って分かれいて凄く読みやすかった
少し改善の仕方が見つかったかもしれない
CryptTreeNodeクラスがあまりにもでかすぎてどの関数も入れられる状態になっている
だからこのCryptTreeNodeをもっと分けられると思うんよ
cryptTreeNode
create_node
フォルダかファイルを判別して暗号化を行う
メタデータに保存して新しくCIDを生成する
get_encrypted_metadata
暗号化したメタデータを取得する
add_node
ディレクトリノードかどうかを判別する
メタデータのchildに子ノードを追加する
find_deepest_node
階層まで探索する
get_decrypt_key
復号化する鍵を取得する
creat_root
認証して新しいノードの作成(create_noodを呼び出す)
fecth_root
アカウントを認証して、CIDと鍵をうけとる
今この部分はmameta.iconが実装してくれててどうなってるか分からない(CryptTreeNodeを呼び出す必要はなし?)
read
現在の階層のメタデータを返す
鍵を受け取ったりしている
この部分いまいちわかっていないわ
upload_data
create_nodeでmetadata or fileかを確認して暗号化して保存している
reencrypt
再暗号化
decrypt_data
鍵を受け取って復号化をする
fetch_key
現在の階層の鍵とCID or metadataを受け取る
まって、メタデータを受け取る場合復号化できていないとおかしくないか?
上記をどうモジュールごとに分けていくかだ
API
認証
signup
login
upload
reenc
Share
フェッチはAPIじゃなくてもいい気がする
メモ:
ってかエンジニアの人たちはこういう部分を考えて開発しているって凄すぎるか...
そしてこの部分が設計できないとエラーは出るし、コントリビュートしたい人が理解するのに大変すぎる
ってかチームとして困る
これそれぞれのテストを作っていかないと何が行われているのかとか分からん気がしてきた
例えばloginの時にuser_dataのgetをしているんやけど、そのあとにsk, bk, dkの取得(鍵の復号化)をしていて、仮にroot_nodeだけの場合どうなるのかとか気になりすぎる
ってかそもそもなんでこの復号化処理を行っているのか分からないYudai.icon
metadataを復号化できれば良くないか?(sk)
dkでメタデータを暗号化しているからか
鍵のアルゴリズムおかしいかもしれん
sk: メタデータ
bk: 親ノードとの繋がり
dk: これdataのメタデータ
fk: fileObject
でいいんよね
Loginとsignupは認証って考えるのがいいのかな???Yudai.icon
関連: