>>726
ファイルフォーマットというか、
Gitのキモはオブジェクトをハッシュでツリーにして管理すれば全て行けたって事だろ。
そして末端のファイルはblobだけど(既に言ったが)ディレクトリやJSONでもいいし、
中間のファイルフォーマットも実はどうでも良くて、
結局はメモリ上のオブジェクトツリーをどうやってファイルシステムにマッピングするかでしかないんだよ。
traverseさえ出来れば何も問題ないわけでさ。
例えば今のGitはハッシュ上2文字でディレクトリを作って分けてるが、
実は3文字の方が速い場合とかもあるはずだが、そこで階層を正しく切ってないと対応出来ないだろ。
まあこれについてはGitはおそらく対応出来てて、traverseエンジンは多分一つしかないから、それを交換すればいいだけ。
多分DBだとフラットの方が速い。(DB内に高性能のハッシュが実装されてる、というかDBってそれがキモなので)
或いは昔のNTFS(2000かXPの頃)だと、ディレクトリ内にハッシュがなかったので、
同一ディレクトリに20,000個とかファイルを置くととんでもなく遅くなったから、上8文字とか多めにしないと死ぬ。
この辺、つまり上何文字でディレクトリ切った方が速いかは、その下の階層のハッシュの実装によるでしょ。
こういうとき、ちゃんと階層を切ってれば、簡単に切り替えられる、ということ。
そんなの変数で~#defineで~ってのがC流かもしれんが、そういう事じゃないんだよ。
そこでぶった切ることによって、その先が、ファイルシステムであっても、ネットワークであっても、DBであっても、圧縮されてても、
要はtraverseさえ出来れば何でもいい、同じコードで走行出来るし、設定も自由に変えられるし、という自由度が得られる。
代償は関数コールが一段増えることだが、今はこれは問題にされないわけでね。
まあとにかく、後日にしようぜ。
ソフトウェアの階層の切り方についてはゆっくり考えてみてくれ。
基本的には、上記の通り、関数コールが一段増えるだけで無限の自由度が得られるだけ。
Cの場合は#defineマクロで実体を呼ぶかラッパを呼ぶか簡単に切換可能なので、
実際どうするかはともかく、ソースコードはメンテしておくべきだよ。
探検
Git 18
■ このスレッドは過去ログ倉庫に格納されています
728デフォルトの名無しさん (ワッチョイ 497b-vCJ4)
2022/11/01(火) 00:01:33.71ID:Jzc3CN/20■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 立民・野田代表「早急に辞任を」 首相官邸筋の核兵器保有発言 ★3 [蚤の市★]
- 高市政権の核兵器保有発言「事実なら非常に深刻な事態。国際社会は警戒すべき」中国 ★3 [お断り★]
- 日銀、0.75%に利上げ - 30年ぶり高水準、物価高抑制 ★6 [ぐれ★]
- 松村沙友理「いい女っていっぱいおるけどいい男あんまおらんくない?30オーバーでいい男性ってみんな結婚してる」★2 [muffin★]
- 【東京】西東京市で親子4人が倒れた状態で見つかる [ぐれ★]
- 人気YouTuberヒカル、進撃のノアとの離婚を発表! 「0日婚」からわずか6か月、スピード離婚の真相を激白 [冬月記者★]
- 【速報】小泉防衛大臣、非核三原則破棄も選択肢 [369521721]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ6🧪
- 【悲報】安倍晋三が推し進めた「民泊」のせいで地元住民が悲鳴をあげてしまう🥹 [616817505]
- サーナイト第1条!(・o・🦎)お国の為に死ねる人~🙋🏡
- たとえるなら
- お前らって加湿器使ってる?
