Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

設計(Design)

クラス〜モジュールレベルで「変更しやすいコード」をどう組み立てるかを扱う。アプリケーション全体〜システム全体の 構造は ソフトウェアアーキテクチャ で扱う。

スケール別の見取り図

「良い設計とは何か」という問いへの答えは、突き詰めると結合度を下げ凝集度を上げること に集約される。原則・パターン・アーキテクチャは、この同じ目的を 異なるスケール に適用したものと捉えると、 どれをどこで使うべきかが整理しやすい。

スケール扱うものこのディレクトリ内の主な内容
式・関数1つの関数やメソッドの書き方基本原則(KISS, YAGNI, DRY, SLAPなど)
クラスクラス間の責務分担・依存の向きSOLID原則デザインパターン
モジュール・ドメイン業務知識をどうモデルへ落とすかドメイン駆動設計(DDD)
アプリケーション層の分け方・依存の方向ソフトウェアアーキテクチャ(application)
システム・分散サービス間の連携・整合性ソフトウェアアーキテクチャ(distributed)

コードの臭い(設計原則違反のサイン)に気づいてから改善する具体的な手順は リファクタリング にまとめている。