okuzawatsの日記

Android / Kotlin / GitHub Actions Enthusiast 🤖

設計原則

目次

ソフトウェアの設計には、「設計原則(Design Principle)」が存在します。ソフトウェアの設計に関して先人たちが考えてきた原則です。設計原則には、例えば、単一責任の原則やオープン・クローズドの原則といったものがあります。

「Head Firstデザインパターン」(Eric他 (2005)) には、設計原則について以下の記述が見つかります。

実際にはどの原則も法則ではなく、すべての原則はそれらが便利になるときと場合に使用すべきものです。すべての設計には(抽象化対速度、空間対時間などの)トレードオフがあります。原則は指針を提供しますが、すべての要因を考慮に入れてからそれらを適用すべきなのです。(Eric他、Head Firstデザインパターン(2005)、p.267)

ここでは、(ある条件のもので)必ず守られなければならない法則という概念に対して、原則という概念はあくまで指針であり、全ての要因を考慮して適用する(あるいは適用しない)ことを決定することのできるものである、ということが述べられています。

つまり、単一責任の原則やオープン・クローズドの原則といった設計原則は、その設計原則がもたらすメリットとデメリットを考えて適用すべきもの、ということです。設計原則は、常に守られなければならない法則ではなく、あくまで原則にすぎないのです。もちろん、むやみやたらに原則から外れてしまうことを許すべきではありませんが、何故原則があるのかを理解した上で、あえて原則から外れることは許容されるものなのです。

Reference

  1. Eric Freeman、Elisabeth Freeman、Kathy Sierra、Bert Bates、Head Firstデザインパターン(2005)、オライリー・ジャパン

#Design

書いている人 😎

profile

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。

👉 もっと詳しく

著書 ✍

ソフトウェアデザイン 2023年6月号📚

特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。

販売サイトへ🏃

Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳

Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。

販売サイトへ🏃

Android ユニットテスト ヒッチハイク・ガイド🧳

Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。

販売サイトへ🏃

Android MVVMアーキテクチャ入門🛠

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。

販売サイトへ🏃

関連記事 👀

お問い合わせ✉️

Androidアプリ開発、特にレガシープロジェクトに関するご相談はこちらまで📨

お名前

メールアドレス

お問い合わせ内容