aiscript
aiscript copied to clipboard
名前空間名の再考
- Core:とUtil:の違いがわかりにくい
など
案
旧 | 新 |
---|---|
Core:v |
Core:v |
Core:ai |
Core:ai |
Core:type |
Core:type |
Util:uuid |
Util:uuid ? |
Core:range |
Arr:range ? |
Core:add 系 |
Math:add ? |
Core:eq 系 |
Bool:eq ? |
Core:to_str |
Str:to_str ? |
Core:sleep |
? |
Obj:
系の存在もあって◯◯:
には「◯◯に対して何かを行う」イメージがあるので、
|
Core:range
|Arr:range
?| |Core:eq
系|Bool:eq
?| |Core:to_str
|Str:to_str
?|
この辺りの「結果が」◯◯型になるような分類はちょっとピンとこないかも?
名前空間ということで将来的にusing
が実装されるかもしれないので、用途別に分けるのがよい?
これどうなりますかね
正直より良い案が出ないので名前空間の変更については凍結でいいかもしれないです…
ただ、今後のためにUtil:
って何?何でUtil:uuid
だけUtil:
?っていうのはハッキリさせたいです
Util:uuid
はUuid:generate
の方が良さそう?
Util:uuid
はUuid:generate
の方が良さそう?
良さそうですね
これやりますか? 他に変更点は大丈夫そうですかね
Util:
の定義ですが、「uuidやjsonのような外部の共通規格のうち、定数・関数が一つで済むため独立した名前空間を与えるまでもないもの」用の名前空間ということにするのはどうでしょうか?
将来性を考えると(少なくともコア機能以外は)分けられるなら分けておいた方が良いかと思います
基本的にはそうなんですが、例えばuuidなどは将来的にもgenerate以外の用途は生まれないと思うんですよね。 そういうものにも固有の名前空間を与えていると名前空間の数が必要以上に多くなってしまうと思うので、私としてはまとめても問題ないものはまとめたいです。
Core:とUtilの違い
Coreは言語の動作に必須と思われるもの、Utilはあれば便利だけど無くても問題ないもの
という分け方を想定してた
名前空間が増えると困ることはありますか?
個人的には分けるならrand
もMath:
じゃなくてRand:
に独立してほしいです
将来関数が増えてドキュメントが名前空間ごとに分けられるようになった場合、関数が一つしかないページがたくさんあるような状況は見通しが悪そうだ、という感じです
逆に一つのページに項目が多すぎるのも問題なので、Math:
のように既に多くのメンバーがある名前空間からRand:
などを独立させるのは賛成です。
名前空間の見出しページがあれば問題ないかと思います
rand
は項目数ではなくてmathとrandomを区別する言語が多いと感じたので
名前空間にするまでもない機能は名前空間に入れないというのも1つだと思います。 そういう機能は今のところ存在しないので、検討する必要があるとは思いますが
ただそれだと変数名と干渉することが増えるかも std名前空間みたいなのを作って、そこに全部入れて未分類をstdの直下に置くのはどうですかね
つまり今までのMath:PI
がstd:Math:PI
になったりするような感じですかね?
流石に書くのが面倒になりそうな気がしますが…