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
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.
概要 (Overview)
NoteEditorScreenの肥大化(Fat UI)を解消するため、UI描画・ロジック・装飾処理の責務を分離(Separation of Concerns)しました。あわせて、テスト用リソースの配置場所を適切なディレクトリへ移動し、プロジェクト構成を最適化しています。
変更内容 (Changes)
🛠 Editor Refactoring
NoteEditorScreen内にあったマークダウン記法挿入ロジック(太字、リスト等)をMarkdownTextHelperに委譲し、完全に分離。MarkdownToolbarに集約。NoteEditorScreenから不要な UI import(Icons, DropdownMenu等)を削除。MarkdownBoldVisualTransformationのロジック(下線、色変更)をIcebergEditorVisualTransformationに移植・統合し、重複していた古いクラスファイルを削除。🏗 Infrastructure & Tests
InMemoryNotesRepositoryをFakeNotesRepositoryにリネームし、src/mainからsrc/testへ移動。本番コードとテスト用資産を明確に分離。STRUCTURE.mdに現在のアーキテクチャ設計と役割分担を追記。技術的な決定事項 (Technical Decisions)
保守性と可読性を高めるため、以下の役割分担(Single Responsibility)を適用しました。
NoteEditorScreen.kt: 画面全体のレイアウト構成とデータフローの管理(Orchestrator)MarkdownToolbar.kt: ツールバーのボタン配置と見た目の定義(Pure UI)MarkdownTextHelper.kt: 文字列操作・マークダウン記号挿入のロジック(Domain Logic / Testable)IcebergEditorVisualTransformation.kt: エディタ上のシンタックスハイライト描画(Visual Decorator)検証 (Verification)