※Claude Codeを使用して記事を作成しています。
シリーズ:Claude Codeを使ったAndroidアプリ開発 失敗談
- #9:Claude Codeに設計を丸投げすると、アーキテクチャが崩れがちな話 ← 今回
※この記事の事例は、Claude Codeを使った開発で起こりがちなケースをもとにした想定例です。
Claude Codeの出力やエラーの内容は、環境や指示の内容によって異なります。
はじめに
「設計はClaude Codeがやってくれるから、考えなくていい」と思ってしまうことがあります。
その結果、時間が経つにつれて、誰も触れないスパゲッティコードになるおそれがあります。
起こりがちなケース
アプリ開発の最初に設計方針を決めず、機能ごとに、Claude Codeに「追加して」とお願いし続けるケースを考えます。
数ヶ月後、新しい機能を追加しようとして、コードを見返すと、次のような状態になっていることがあります。
- 画面によって、MVVMだったり、別の構成だったりと、バラバラ
- データ取得の処理が、UIのコードの中に直書きされている画面がある
- 同じ処理が、複数のファイルに重複して書かれている
- ファイル名や変数名の命名規則が、統一されていない
なぜこうなるのか
指示に設計方針を含めなかったため、その場の指示ごとに、バラバラな書き方が選ばれることがあります。
また、機能追加のたびに、Claude Codeが「今あるコードに合わせて」実装すると、問題のある設計が、どんどん広がっていきます。
設計は「一緒に決める」もの、「任せる」ものではない
Claude Codeは、設計の相談相手として役に立ちます。
しかし、最終的に方針を決めるのは、自分でなければなりません。
このメモアプリにClean Architectureを適用したいです。
・Presentation層(UI・ViewModel)
・Domain層(UseCase)
・Data層(Repository・DataSource)
この3層構造でどう設計するか、一緒に考えてください。
まずはメモのCRUD機能の設計から始めます。
このように、最初に設計を固めてから実装に入ると、Claude Codeは、その設計に沿ったコードを、一貫して書きやすくなります。
CLAUDE.mdに設計方針を書く
#4で紹介したCLAUDE.mdに、設計方針を明記しておくのが効果的です。
## アーキテクチャ方針
Clean Architecture(3層構造)を採用する。
### 層の責務
- Presentation:UIとViewModelのみ。ビジネスロジックを書かない
- Domain:UseCase。Androidのクラスに依存しない
- Data:Repository実装・DataSource。外部との通信はここだけ
### 禁止事項
- ViewModelにFirestoreの直接参照を書かない
- Activityにビジネスロジックを書かない
この記述があると、Claude Codeは、その方針に沿ったコードを生成しやすくなります。
まとめ
設計は「Claude Codeと一緒に決める」ものです。
決まったら、CLAUDE.mdに書いて、守られているか確認しましょう。
設計のない開発は、速く走れるけれど、壁に激突するのも早くなります。
次回:【Claude Code 失敗談 #10】Composeで不要な再描画が起きがちな話


