-
Notifications
You must be signed in to change notification settings - Fork 0
docs: プロジェクトの忌憚ない評価レポートを追加 #110
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
Open
FRICK-ELDY
wants to merge
1
commit into
main
Choose a base branch
from
docs/add-candid-project-evaluation
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,126 @@ | ||
| # プロジェクト評価(忖度なし版) | ||
|
|
||
| **対象**: Elixir × Rust ゲームエンジン(Vampire Survivor / MiniShooter) | ||
| **評価日**: 2026-02-25 | ||
| **目的**: 気持ちの良い総括ではなく、次の意思決定に使うための現実的評価 | ||
|
|
||
| --- | ||
|
|
||
| ## 結論(先に要点) | ||
|
|
||
| このプロジェクトは「技術的に面白いデモ」段階は超えており、実装密度も高い。 | ||
| ただし、現状のまま機能追加を続けると、**デバッグ難易度**と**保守コスト**が先に限界を迎える可能性が高い。 | ||
|
|
||
| 一言で言うと: | ||
|
|
||
| > **方向性は正しい。だが、拡張前に土台の保守性を上げないと失速する。** | ||
|
|
||
| --- | ||
|
|
||
| ## 1. 良い評価(事実として強い点) | ||
|
|
||
| ### 1.1 設計方針がぶれていない | ||
|
|
||
| - Elixir(監視・遷移・運用)と Rust(高頻度計算・描画)の分担が明確。 | ||
| - `Engine.Game` / `Engine.SceneBehaviour` によってゲーム差し替え可能性が担保されている。 | ||
| - VampireSurvivor と MiniShooter の同居実績があり、「汎用化」が口だけではない。 | ||
|
|
||
| ### 1.2 パフォーマンス前提の実装が本物 | ||
|
|
||
| - SoA、空間ハッシュ、フリーリスト、SIMD/並列化など、必要な最適化が実コードに入っている。 | ||
| - Rust 側で 60Hz ループを主導し、境界呼び出しの粗さを吸収している。 | ||
| - 描画スレッド分離・スナップショット化の方針も妥当。 | ||
|
|
||
| ### 1.3 ドキュメント品質が高い | ||
|
|
||
| - WHY/STEP/設計資料が揃っており、意思決定の履歴が追える。 | ||
| - これは中長期の保守で効く(属人化しにくい)。 | ||
|
|
||
| --- | ||
|
|
||
| ## 2. 悪い評価(目をそらすと危ない点) | ||
|
|
||
| ### 2.1 いちばん危険: 「デバッグが重すぎる」 | ||
|
|
||
| - NIF 境界を跨ぐ不具合の切り分けコストが高い。 | ||
| - Rust panic は本質的に BEAM 側の開発体験を壊しやすい。 | ||
| - debug 系の仕組みはあるが、日常開発で「速く原因に辿り着ける」状態にはまだ足りない。 | ||
|
|
||
| **影響**: バグ修正速度が落ち、機能追加の成功率まで下がる。 | ||
|
|
||
| ### 2.2 機能より先に保守性が詰まり始めている | ||
|
|
||
| - 中心ファイル・中心処理への責務集中が見える。 | ||
| - この状態で 3D / Slot / コンポーネントを同時進行すると、変更リスクが急増する。 | ||
|
|
||
| **影響**: 仕様追加のたびに壊れやすくなり、心理的にも手を入れにくくなる。 | ||
|
|
||
| ### 2.3 仕様と実装のズレが残っている | ||
|
|
||
| - Step 47 系(Skeleton / Ghost / Garlic)未完了は、技術的には小さく見えても信頼性には効く。 | ||
| - ドキュメント読者に「実装済み」と誤解を与える余地がある。 | ||
|
|
||
| **影響**: 開発判断の前提が揃わず、優先順位の議論がぶれる。 | ||
|
|
||
| ### 2.4 チーム拡張耐性は高くない | ||
|
|
||
| - Elixir + Rust の複合開発は強力だが、学習コストも高い。 | ||
| - 個人/少人数なら回るが、人数増加時のオンボーディング負荷は大きい。 | ||
|
|
||
| **影響**: スケールしたくなった時に採用・育成がボトルネックになる。 | ||
|
|
||
| --- | ||
|
|
||
| ## 3. 判定(5段階) | ||
|
|
||
| | 観点 | 評価 | コメント | | ||
| |---|---|---| | ||
| | アーキテクチャ妥当性 | A | 方針は明確で合理的 | | ||
| | 実装完成度(2D現行範囲) | B+ | コアは強いが未完了項目あり | | ||
| | 性能設計 | A- | 実装は良い。今後は観測性強化が鍵 | | ||
| | 保守性 | C+ | 責務集中と境界デバッグが重い | | ||
| | 開発体験 | C | 調査速度が遅くなりやすい | | ||
| | 将来拡張の安全性 | C | 今のまま機能追加すると危険 | | ||
|
|
||
| --- | ||
|
|
||
| ## 4. 今やるべきこと(優先順位つき) | ||
|
|
||
| ### 最優先(1〜2スプリント) | ||
|
|
||
| 1. **デバッグ導線の改善** | ||
| - Rust ログと Elixir ログを一元的に追える形へ寄せる。 | ||
| - 「落ちた時に何を見るか」を手順化して短縮する。 | ||
| 2. **責務分割の先行投資** | ||
| - 中心処理の分解を先に進める(大機能追加より前)。 | ||
| 3. **Step 47 完了で仕様整合** | ||
| - Skeleton / Ghost / Garlic を完了し、ドキュメントと実装の差分を閉じる。 | ||
|
|
||
| ### 次点(次四半期) | ||
|
|
||
| 4. **結合/E2E テストの追加** | ||
| - 起動→プレイ→遷移→ゲームオーバーまでの回帰を自動化。 | ||
| 5. **3D と Slot は同時着手しない** | ||
| - どちらか片方を先行し、もう片方は設計検証に留める。 | ||
|
|
||
| --- | ||
|
|
||
| ## 5. 経営的・プロダクト的観点での率直評価 | ||
|
|
||
| - このプロジェクトは「技術力の証明」としては既に強い。 | ||
| - しかし、プロダクトとして継続的に機能を積むフェーズへ入るには、今の開発体験は重い。 | ||
| - つまり課題は「性能」ではなく、**変更容易性と不具合調査速度**。 | ||
|
|
||
| 言い換えると: | ||
|
|
||
| > 速く動くエンジンはできている。 | ||
| > 次は「速く直せるエンジン」にする段階。 | ||
|
|
||
| --- | ||
|
|
||
| ## 6. 最終コメント(忌憚なく) | ||
|
|
||
| このプロジェクトは、発想・実装力・継続力の3点で明確に高水準。 | ||
| 一方で、ここから先は「新機能を作る力」よりも「壊さず進める力」が勝負になる。 | ||
|
|
||
| **いま拡張を急ぐより、保守性とデバッグ性に2〜4週間投資した方が、最終到達速度は確実に上がる。** | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
評価の目的を明確にすることで、読み手がレポートの意図を理解しやすくなります。"現実的評価"という表現は抽象的なので、具体的にどのような意思決定に役立てたいのかを明記すると、より効果的です。
たとえば、「技術的負債の返済優先順位決定」や「新規機能開発の可否判断」など、具体的な意思決定のコンテキストを示すと良いでしょう。