Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

歪なディレクトリ構造を修正する #28

Closed
5 tasks done
Tracked by #2
sksat opened this issue Jul 26, 2023 · 10 comments
Closed
5 tasks done
Tracked by #2

歪なディレクトリ構造を修正する #28

sksat opened this issue Jul 26, 2023 · 10 comments
Assignees
Labels
enhancement New feature or request invalid This doesn't seem right priority::high priorityg high
Milestone

Comments

@sksat
Copy link
Member

sksat commented Jul 26, 2023

  • あくまで「とりあえず今おかしいモノを修正/マシにする」というモチベーション( C2A 用語のリネーム: v4.0.0 まで #8 と同じ)
  • 現状の設計に対応していないディレクトリ構造を修正するにとどめる(ファイルの分割などはしない)
  • コード上の構造(アーキテクチャ)を変更するわけではないが,字面的にも人間にとっても breaking であり,C2A 用語のリネーム: v4.0.0 まで #8 との関連性も強いため,v4 でやるのが適切
  • 見た目上の作業及び受け取り方としては異なるので別 Issue とするが,C2A 用語のリネーム: v4.0.0 まで #8 とモチベーションは同一であり,不可分なところも多い
    • 例えば,Driver などは一つの語が複数の責務を抱え込んでしまっているため,現状のアーキテクチャに即した rename のみをするとしても Drivers/Super のようなディレクトリ構造は消える可能性が高い(hoge/super にするうまみは無い)

詳細

  • System
    • 全部フラットに top dir にいてもいいかもしれない
    • ディレクトリ構造を変えるのではなく,単に kernel とかに rename するのでもアリ
  • Library
    • Library という区切りに意味がなさすぎるので,top dir にあってよい
    • 存在と命名が歪なだけなので,一旦 utils とかに rename するのでもアリ
  • Script
    • Script/CI とか要らない(そもそも手元で回してもいいはずで,目的が CI なのではない)
  • C2A service(Application)に載ったモノの整理
    • C2A service という枠組みに載っている(目的が大幅に異なる)モノがとても多いので,枠組みに載ったモノすべてを突っ込むディレクトリを切るのは関心事項に対して不当にディレクトリ構造が煩雑になるだけ
    • 枠組みに載っていることを明示するとしても,component_service のように,ディレクトリ構造ではなく名前の一部として示す
    • 関心事項と枠組みに載っているかどうかは別軸の評価なので,木構造で表現するのは無理があるし,前者の方が重要なのでそれに即したディレクトリ構造にする
  • Drivers
    • driver(super)は名前から何も伝わらないし,Drivers/SuperDrivers/Protocol はあまり並列していない

Tasks

  1. enhancement tools
    sksat
  2. enhancement priority::high tools
    sksat
  3. enhancement priority::high tools
    sksat
  4. priority::high tools
    sksat
  5. enhancement priority::medium tools
    sksat
@sksat sksat added enhancement New feature or request invalid This doesn't seem right priority::high priorityg high labels Jul 26, 2023
@sksat sksat self-assigned this Jul 26, 2023
@sksat
Copy link
Member Author

sksat commented Jul 26, 2023

ただ,c2a-core update はもうしばらくはあらゆるモノが breaking であり続けるだろうと思われるので,#8 と比べて v4 で絶対やらないといけないかというと優先順位はやや低い(つまり,実はユーザにとって非自明さが大きい,という変更ほど優先して「お知らせ」としての major update を使う必要がある)

@sksat
Copy link
Member Author

sksat commented Jul 26, 2023

それはそれとして,現状のディレクトリ構造への雑感: ディレクトリ構造でアーキテクチャを表現できると思いすぎ(実際の関心に対してディレクトリ構造が不当に深い)・関心ではなく目の前の字面で命名/分割をしがち

@sksat
Copy link
Member Author

sksat commented Sep 5, 2023

Drivers/SuperDrivers/Protocol はあまり並列していないと思っていたが,元々くっついていたものを雑に分割した結果らしい.実態としては本体とユーティリティ用のメンバ関数といったところか.なのでむしろ rename した上で一つにしてあげる方がよさそう.

@sksat
Copy link
Member Author

sksat commented Oct 11, 2023

ディレクトリ名を複数形にするのをやめたい!!!! src/src_user/Drivers とかは分かる(中に Driver の実装が複数入っているので)けど,src/src_core/Drivers はおかしい.そもそも複数実装があったら複数形にすべき,と思っていたのであれば IfWrapper(現 HAL)も IfWrappers であるべきだったはずだし,単に表記揺れの類では?

@sksat
Copy link
Member Author

sksat commented Oct 11, 2023

applications は core も user も真に複数の実装が入っている(概念の定義は systemtlm_cmd にある)ので許せる

@sksat
Copy link
Member Author

sksat commented Oct 12, 2023

ディレクトリ名は全部単数形に揃えることにした

@sksat
Copy link
Member Author

sksat commented Oct 12, 2023

<C2A user>/src/src_user/Test<C2A user>/test じゃない?

@sksat
Copy link
Member Author

sksat commented Oct 12, 2023

<C2A user>/src/src_user/Test/test は切る必要無い

@sksat
Copy link
Member Author

sksat commented Oct 12, 2023

ディレクトリ名は全部単数形に揃えることにした

cargo も examples, tests はあるなあとなっている.全統一よりは core, user で同じディレクトリ名にしようとしたかったことに引き摺られて core のディレクトリが不当に複数形名になっている(中に同じ型の似たようなモノが並んでいるわけではない)やつのみでいいかも(基準は曖昧になるけど).つまり Drivers のみ.
https://doc.rust-lang.org/cargo/guide/project-layout.html

@sksat sksat mentioned this issue Oct 12, 2023
22 tasks
@sksat sksat added this to the v4.0.0 milestone Oct 12, 2023
@meltingrabbit
Copy link
Member

OK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request invalid This doesn't seem right priority::high priorityg high
Projects
Status: Done
Development

No branches or pull requests

2 participants