ドメイン駆動設計( domain-driven design, DDD)と呼ばれる設計手法があります。
Wikiから引用を行うと以下のような感じらしく、ちょっとよくわからないですね。
ドメイン駆動設計(英: domain-driven design, DDD)とはソフトウェアの設計手法であり、「複雑なドメインの設計は、モデルベースで行うべき」であり、また「大半のソフトウェアプロジェクトでは、システムを実装するための特定の技術ではなく、ドメインそのものとドメインのロジックに焦点を置くべき」であるとする[1]。この名称は、 Eric Evans が同名の著作で用いた[2]。
https://ja.wikipedia.org/wiki/ドメイン駆動設計
いっしょに見ていきましょう。
目次
ドメインとは
これもWikiから引用すると、以下です。
ドメインとは、コンピュータープログラミングの分野で問題を解決するために作られる任意のソフトウェアプログラムに対して、一般的な要求、用語、機能を定義する研究分野である。
https://ja.wikipedia.org/wiki/ドメイン_(ソフトウェア工学)
要するに、ドメイン=機能で、言い換え可能なもの と思っていただければと思います。
DDDでは、このドメイン(機能)の分け方が特に重要になる設計手法です。
再度DDDのWikiを見ると、以下のような記載もあり、ドメインの分け方としては、プログラムに詳しくない人でもわかるような分け方をしようという記載もあるほどです。
ドメインモデルがシステムの要求を記述するためにドメインの専門家が提供し、業務上のユーザーやスポンサー、開発者みなにとってうまく働くような common language(共通言語)を形成するべきである、という考えである。
https://ja.wikipedia.org/wiki/ドメイン駆動設計
ドメイン駆動とは
ビジネスロジックを分けて、ドメイン層を保つようにするという観点の話になるのですが、
ドメインを誰でも分かる名前でしっかりと分けられていれば、あまり意識しなくでも良いかなと思っているので、割愛します。
まとめ
ドメイン駆動設計とは、ドメインを意識して開発をしましょうということ!
ドメインは上でも述べたとおり機能のことで、分け方はプログラムに詳しくない人でも同じ呼び名が使えるような分け方にしましょう。ということですね。
プログラミングを行う際にはドメインも意識して開発をしていきましょう。