質問編集履歴

3

Toshimichi

Toshimichi score 71

2019/03/23 03:40  投稿

SQLを使うと密結合になる
単純なウェブサービスを作ろうとしています.
ここで作成するクラスは以下の通りです.
- ユーザークラス
- グループクラス(ユーザーを集約する)
- チャットチャンネルクラス(グループの中でのチャットを管理する)
ここで、SQLを使ってデータを保存するとします.
このとき、SQLではユーザーとグループとチャットチャンネルのデータが密結合になります.
ですが、ソフトウェア上ではそれぞれはインターフェースとして存在します。
どのような設計にしたら良いでしょうか.
よろしくおねがいします。
  • Java

    24849 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • SQL

    5740 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

2

Toshimichi

Toshimichi score 71

2019/03/23 03:38  投稿

SQLを使うと密結合になる
単純なウェブサービスを作ろうとしています.
ここで作成するクラスは以下の通りです.
- ユーザークラス
- グループクラス(ユーザーを集約する)
- チャットチャンネルクラス(グループの中でのチャットを管理する)
ここで、SQLを使ってデータを保存するとします.
このとき、SQLではユーザーとグループとチャットチャンネルのデータが密結合になります.
ですが、ソフトウェア上ではそれぞれは適切にインターフェースとして設置され、お互いの実装に依存しない、疎結合なオブジェクトとして独立しています.
ですが、ソフトウェア上ではそれぞれはインターフェースとして存在します。
ここでの問題点は、例えば、ユニットテストのときユーザークラスのモックを作成したとしても、グループクラス・チャットチャンネルクラスはユーザーのデータをSQLから取得するため、正常に動作しないという点です. インターフェース上では独立しているようにみえるにもかかわらず、実際はデータ構造がお互いに依存しあっています.
どのような設計にしたら良いでしょうか.
よろしくおねがいします。
  • Java

    24849 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • SQL

    5740 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

1 タイトルの変更と、必要な回答を明示

Toshimichi

Toshimichi score 71

2019/03/22 23:56  投稿

単純なウェブサービスを作ろうとしています.
ここで作成するクラスは以下の通りです.
- ユーザークラス
- グループクラス(ユーザーを集約する)
- チャットチャンネルクラス(グループの中でのチャットを管理する)
ここで、SQLを使ってデータを保存するとします.
このとき、SQLではユーザーとグループとチャットチャンネルのデータが密結合になります.
ですが、ソフトウェア上ではそれぞれは適切にインターフェースとして設置され、お互いの実装に依存しない、疎結合なオブジェクトとして独立しています.
ここでの問題点は、例えば、ユニットテストのときユーザークラスのモックを作成したとしても、グループクラス・チャットチャンネルクラスはユーザーのデータをSQLから取得するため、正常に動作しないという点です. インターフェース上では独立しているようにみえるにもかかわらず、実際はデータ構造がお互いに依存しあっています.
どのような設計にしたら良いでしょうか.
よろしくおねがいします。
  • Java

    24849 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • SQL

    5740 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る