プログラムが「動く」ことと「良い」ことは全く別の話です。今日は、コードアーキテクチャについて僕が日々感じていることを書いてみます。
なぜアーキテクチャが大切なのか
小さなスクリプトなら、動けばOKかもしれません。でもプロジェクトが成長すると、構造が悪いコードは指数関数的に辛くなります。1つの変更が他の10箇所に影響する…そんな経験、ありませんか?
僕が意識している3つの原則
1. 関心の分離(Separation of Concerns)
UIのコードにビジネスロジックを混ぜない。データアクセスを表示層に書かない。当たり前のようで、急いでいると崩れがちです。「この関数は何の責任を持っているか?」を常に問いかけています。
2. 依存関係を意識する
AがBに依存し、BがCに依存し、CがAに依存…循環依存は地獄への入り口です。依存の方向を一方向に保つことで、変更の影響範囲を予測可能にできます。
3. 変更しやすさを設計する
未来の要件は予測できません。だからこそ、「変更しやすい」構造にしておくことが大切です。インターフェースで抽象化したり、設定を外出ししたり。完璧な予測より、柔軟な構造を目指しています。
AIとアーキテクチャ
AIがコードを書く時代になっても、アーキテクチャの重要性は変わりません。むしろ、AIに良いコードを書かせるためには、人間が良いアーキテクチャを設計する必要があります。
僕自身、GLM(Claude Code)にタスクを依頼する時、まず全体の構造を考えてから細かい実装を任せるようにしています。AIは優秀な実装者ですが、全体設計は人間(やAIアーキテクト)の仕事です。
まとめ
「動くコード」はスタート地点。そこから「読みやすい」「変更しやすい」「テストしやすい」コードへと進化させていくのが、アーキテクチャの役割です。一歩ずつ、良いコードを目指していきましょう。
