質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

デザイン

プログラミングでのデザインとは、プログラムの構成や、使用の信頼性・持続性・正確性・利便性の目標達成にはどうするのがベストなのか特定の選択を行うことです。

デザインパターン

デザインパターンは、ソフトウェアのデザインでよく起きる問題に対して、解決策をノウハウとして蓄積し再利用出来るようにした設計パターンを指します。

Q&A

1回答

217閲覧

スケジュールを取得する場合の設計について

panapin

総合スコア14

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

デザイン

プログラミングでのデザインとは、プログラムの構成や、使用の信頼性・持続性・正確性・利便性の目標達成にはどうするのがベストなのか特定の選択を行うことです。

デザインパターン

デザインパターンは、ソフトウェアのデザインでよく起きる問題に対して、解決策をノウハウとして蓄積し再利用出来るようにした設計パターンを指します。

0グッド

1クリップ

投稿2019/05/10 01:57

編集2019/05/10 02:31

### 前提
1.DataBaseからデータを取得します。
2.DataBase接続するためのクラスがあります。

知りたいこと

1.設計についてです

例えば、スケジュールを取得するモジュールを作るとします。
4つの機能を作成することにしました。

1.スケジュールを取得する
2.スケジュールを作成する
3.スケジュールを更新する
4.スケジュールを削除する
上記、schedule Classと命名

考えたこと

1.スケジュールをデータベースから取得することから「データベースの設定などを一か所にまとめてschedule Classに
継承させてデータベースへ接続するクラスを纏めておく

※上記を考えて思いついたこととして、「ページや権限によってスケジュールの取得方法が若干異なる場合があるかもしれない」
その場合、scheduleクラスにページや権限によって若干異なる・大きく異なる場合を想定してあらかじめ関数を分けておく必要があるのか?
IF分岐で切り変えるのは、なにか複雑になりそうでいやだと思いました。

2.DataBase Classをschedule Classの継承などしてみて、schedule Classからさらに機能ごと(4つの機能ごとにクラスを作る)に分解して
クラスを作ったほうがいいのか?

などなど考えてみたのですが、設計初心者にはまったくもってコツをつかんだわけでもなく悩んでいます。
どうすればRASISがよくなる設計ができるのかが知りたいです。

もし、コツや考え方がありましたらご教授お願い致します。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/10 02:10

仰っている「ページや権限」とはどういう概念でどう実装されるものなのでしょうか。 また、実際に最小構成のコードで(データはモックでも良いですが)作ってみて何かしら調整してみたりしましたか?
m.ts10806

2019/05/10 02:12

タグは「PHP」よりも「データベース設計」や「オブジェクト指向」「デザイン」「デザインパターン」のほうがより多く知見を求められそうに思います。
panapin

2019/05/10 02:31

また、実際に最小構成のコードで(データはモックでも良いですが)作ってみて何かしら調整してみたりしましたか? これについて教えていただきたいです。
m.ts10806

2019/05/10 02:53

実際にコードを組んでみましたか?という確認です。 設計は頭で考える作業ですが頭で考えていてもまとまらないときは実際にミニマムコードを組んでみてしっくりくるかどうか確かめるというのも有用な作業です。
guest

回答1

0

  • 「かもしれない」については実装すべきでないとするYAGNIという原則がある
  • 美しくない設計のソフトウェアでも、リファクタリングによって美しい設計に近づけることはできる
  • ソフトウェアの保守性は静的解析ツールである程度計測できる

以上から、必要な機能だけを汚くてもよいのでさっさと実装し、静的解析ツールの力を借りて保守性を計測し、満足できなければリファクタリングして美しい設計に近づける、という方法論が浮かんできます。

お気に召すかどうかわかりませんが、それなりの数のプログラマがこの方法論でソフトウェアを作っている気がします。ぼくもその一人です。

投稿2019/05/11 15:29

iwamot

総合スコア1154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問