-
Notifications
You must be signed in to change notification settings - Fork 2
refactor: mermaidify.tsを4つのファイルに分割して保守性を向上 #271
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
Merged
Merged
Conversation
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
詳細な説明: - mermaidify.ts: 関数を小さく分割し、可読性を向上 - utils.ts: updateChangeStatusFromDiff関数を責任別に分割 保守性と理解しやすさの向上を目的とした段階的改善 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
新規ファイル: - directoryTreeBuilder.ts: ディレクトリツリー構築ロジック (90行) - mermaidWriter.ts: Mermaid記法出力処理 (156行) - mermaidUtils.ts: 文字列変換ユーティリティ (9行) 変更ファイル: - mermaidify.ts: オーケストレータとして簡潔に (71行) - mermaidify.fileNameToMermaidId.spec.ts: インポート先をmermaidUtilsに修正 改善効果: - 単一責任原則の適用により各ファイルが明確な役割を持つ - 認知的複雑度を20から最大14に削減 - 保守性指数を24.76から最高67.51まで向上 - テスタビリティと再利用性の改善 - 循環依存のないクリーンな階層構造 - 全テスト通過確認済み 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Delta TypeScript Graphtsg --include src/feature/mermaid/directoryTreeBuilder.ts src/feature/mermaid/mermaidUtils.ts src/feature/mermaid/mermaidWriter.ts src/cli/entry.ts src/feature/graph/utils.ts src/feature/mermaid/mermaidify.fileNameToMermaidId.spec.ts src/feature/mermaid/mermaidify.ts src/usecase/generateTsg/index.ts src/usecase/generateTsg/writeForAiData.ts --highlight src/feature/mermaid/directoryTreeBuilder.ts src/feature/mermaid/mermaidUtils.ts src/feature/mermaid/mermaidWriter.ts src/cli/entry.ts src/feature/graph/utils.ts src/feature/mermaid/mermaidify.fileNameToMermaidId.spec.ts src/feature/mermaid/mermaidify.ts src/usecase/generateTsg/index.ts src/usecase/generateTsg/writeForAiData.ts --exclude node_modules --abstraction src/feature/metric src/feature/util src/setting src/utilsflowchart TB
classDef created fill:cyan,stroke:#999,color:black
classDef modified fill:yellow,stroke:#999,color:black
subgraph src["src"]
src/setting["/setting"]:::dir
src/index.ts["index.ts"]
src/utils["/utils"]:::dir
subgraph src/feature["/feature"]
src/feature/metric["/metric"]:::dir
src/feature/util["/util"]:::dir
subgraph src/feature/graph_["/graph"]
src/feature/_graph__/utils.ts["utils.ts"]:::modified
src/feature/_graph__/models.ts["models.ts"]
src/feature/_graph__/abstraction.ts["abstraction.ts"]
src/feature/_graph__/filterGraph.ts["filterGraph.ts"]
src/feature/_graph__/instability.ts["instability.ts"]
src/feature/_graph__/GraphAnalyzer.ts["GraphAnalyzer.ts"]
src/feature/_graph__/refineGraph.ts["refineGraph.ts"]
end
subgraph src/feature/mermaid["/mermaid"]
src/feature/mermaid/directoryTreeBuilder.ts["directoryTreeBuilder.ts"]:::created
src/feature/mermaid/mermaidUtils.ts["mermaidUtils.ts"]:::created
src/feature/mermaid/mermaidWriter.ts["mermaidWriter.ts"]:::created
src/feature/mermaid/mermaidify.ts["mermaidify.ts"]:::modified
src/feature/mermaid/mermaidify.fileNameToMermaidId.spec.ts["mermaidify.fileNameToMermaidId.spec.ts"]:::modified
end
end
subgraph src/usecase["/usecase"]
src/usecase/watchMetrics.ts["watchMetrics.ts"]
subgraph src/usecase/generateTsg["/generateTsg"]
src/usecase/generateTsg/writeForAiData.ts["writeForAiData.ts"]:::modified
src/usecase/generateTsg/index.ts["index.ts"]:::modified
src/usecase/generateTsg/writeMarkdownFile.ts["writeMarkdownFile.ts"]
end
end
subgraph src/cli["/cli"]
src/cli/entry.ts["entry.ts"]:::modified
end
end
src/feature/_graph__/utils.ts-->src/feature/_graph__/models.ts
src/feature/_graph__/abstraction.ts-->src/feature/_graph__/utils.ts
src/feature/_graph__/filterGraph.ts-->src/feature/_graph__/utils.ts
src/feature/mermaid/directoryTreeBuilder.ts-->src/feature/_graph__/models.ts
src/feature/mermaid/mermaidUtils.ts-->src/setting
src/feature/mermaid/mermaidWriter.ts-->src/feature/_graph__/models.ts
src/feature/mermaid/mermaidWriter.ts-->src/setting
src/feature/mermaid/mermaidWriter.ts-->src/feature/mermaid/directoryTreeBuilder.ts
src/feature/mermaid/mermaidWriter.ts-->src/feature/mermaid/mermaidUtils.ts
src/feature/mermaid/mermaidify.ts-->src/feature/_graph__/models.ts
src/feature/mermaid/mermaidify.ts-->src/setting
src/feature/mermaid/mermaidify.ts-->src/feature/mermaid/directoryTreeBuilder.ts
src/feature/mermaid/mermaidify.ts-->src/feature/mermaid/mermaidWriter.ts
src/index.ts-->src/feature/_graph__/utils.ts
src/index.ts-->src/feature/mermaid/mermaidify.ts
src/usecase/generateTsg/writeMarkdownFile.ts-->src/feature/mermaid/mermaidify.ts
src/usecase/generateTsg/writeForAiData.ts-->src/feature/_graph__/models.ts
src/usecase/generateTsg/writeForAiData.ts-->src/setting
src/usecase/generateTsg/writeForAiData.ts-->src/feature/metric
src/usecase/generateTsg/writeForAiData.ts-->src/feature/mermaid/mermaidify.ts
src/usecase/generateTsg/index.ts-->src/setting
src/usecase/generateTsg/index.ts-->src/feature/_graph__/models.ts
src/usecase/generateTsg/index.ts-->src/feature/_graph__/instability.ts
src/usecase/generateTsg/index.ts-->src/feature/metric
src/usecase/generateTsg/index.ts-->src/utils
src/usecase/generateTsg/index.ts-->src/feature/util
src/usecase/generateTsg/index.ts-->src/feature/_graph__/GraphAnalyzer.ts
src/usecase/generateTsg/index.ts-->src/feature/_graph__/utils.ts
src/usecase/generateTsg/index.ts-->src/feature/_graph__/refineGraph.ts
src/usecase/generateTsg/index.ts-->src/usecase/generateTsg/writeMarkdownFile.ts
src/usecase/generateTsg/index.ts-->src/usecase/generateTsg/writeForAiData.ts
src/cli/entry.ts-->package.json
src/cli/entry.ts-->src/setting
src/cli/entry.ts-->src/usecase/generateTsg/index.ts
src/cli/entry.ts-->src/usecase/watchMetrics.ts
src/feature/mermaid/mermaidify.fileNameToMermaidId.spec.ts-->src/setting
src/feature/mermaid/mermaidify.fileNameToMermaidId.spec.ts-->src/feature/mermaid/mermaidUtils.ts
src/feature/mermaid/mermaidify.fileNameToMermaidId.spec.ts-.->src/feature/mermaid/mermaidify.ts
src/feature/_graph__/abstraction.ts-->src/feature/_graph__/models.ts
src/feature/_graph__/filterGraph.ts-->src/feature/_graph__/models.ts
src/utils-->src/setting
src/feature/_graph__/GraphAnalyzer.ts-->src/feature/_graph__/models.ts
src/index.ts-->src/feature/_graph__/models.ts
src/index.ts-->src/feature/_graph__/abstraction.ts
src/index.ts-->src/feature/_graph__/filterGraph.ts
src/index.ts-->src/utils
src/index.ts-->src/feature/util
src/index.ts-->src/feature/_graph__/GraphAnalyzer.ts
src/feature/_graph__/instability.ts-->src/feature/_graph__/models.ts
src/feature/_graph__/refineGraph.ts-->src/setting
src/feature/_graph__/refineGraph.ts-->src/feature/_graph__/abstraction.ts
src/feature/_graph__/refineGraph.ts-->src/feature/_graph__/filterGraph.ts
src/feature/_graph__/refineGraph.ts-->src/feature/_graph__/models.ts
src/feature/metric-->src/setting
src/feature/metric-->src/feature/util
src/utils-->src/feature/_graph__/models.ts
src/usecase/generateTsg/writeMarkdownFile.ts-->src/feature/_graph__/instability.ts
src/usecase/generateTsg/writeMarkdownFile.ts-->src/feature/_graph__/models.ts
src/usecase/generateTsg/writeMarkdownFile.ts-->src/feature/metric
src/usecase/generateTsg/writeMarkdownFile.ts-->src/setting
src/usecase/watchMetrics.ts-->src/utils
src/usecase/watchMetrics.ts-->src/setting
src/usecase/watchMetrics.ts-->src/feature/metric
Metrics🆕 src/feature/mermaid/mermaidWriter.ts
src/usecase/generateTsg/index.ts
🆕 src/feature/mermaid/directoryTreeBuilder.ts
src/feature/graph/utils.ts
src/cli/entry.ts
src/usecase/generateTsg/writeForAiData.ts
src/feature/mermaid/mermaidify.ts
src/feature/mermaid/mermaidify.fileNameToMermaidId.spec.ts
🆕 src/feature/mermaid/mermaidUtils.ts
|
Owner
Author
|
🎉 This PR is included in version 0.26.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
分割されたファイル
directoryTreeBuilder.ts(102行): ディレクトリツリー構築ロジックmermaidWriter.ts(183行): Mermaid記法出力処理mermaidUtils.ts(12行): 文字列変換ユーティリティmermaidify.ts(38行): オーケストレータとして簡潔に改善効果
その他の改善
utils.tsのupdateChangeStatusFromDiff関数も責任別に分割Test plan
🤖 Generated with Claude Code