PHP ~設計について~
こんにちは、しんちゃんです!
今回は、PHPの設計について話していきたいと思います。
設計とは?
まず、PHPにおいて設計がなぜ大事かということについて話していきたいと思います。設計のイメージとしては、家づくりをイメージしていくといいと思います!
家を作るときって、家のイメージを頭でイメージしながら作っていくことって珍しいですよね。もしかしたら、天才的な才能があったら頭でイメージしながら作れるかもです。そんな天才がいたら、是非家を作ってほしいw
でも、だいたいの家は、設計図を作ってから、それを元に家を作って行きますよね!
そんな感じでPHPにおいての設計も、まずは設計図を作ってから開発をしていくのがいいと言えるでしょう。
そして、この開発においては、ウォーターフォール開発とアジャイル開発という2つの開発方法が主流になっています。
何をいきなり言ってるんだ~
っていうのは、僕も最初に思ったので大丈夫です。
ウォーターフォール開発とアジャイル開発
それでは、この二つの開発について、比較していきながら説明していきますね!
まず、ウオーターフォール開発について、ウォーターフォール開発とは、アジャイル開発に比べて長期的で安定している開発であると言えるでしょう。
アジャイル開発よりも、柔軟にやり直すことは難しいというデメリットは、ありますが、その分最初にしっかりと設計をしていくと安定した家を作ることが出来るというイメージです。
そして、アジャイル開発は、ウォーターフォール開発に比べて、開発のスピードが早くできると言えるでしょう。家で例えるのなら、早く家を建てることが出来るといったところでしょうか。
その反面、ウォーターフォール開発よりも早く開発できるため、チーム単位で開発をするときに、後々開発をし終わってから詳細を変更することがこと困難になってしまいます。
また、柔軟に変更をすることが出来るため、当初予定していた設計の指針とずれてしまう恐れもあります。
ウォーターフォール開発とアジャイル開発、どちらが優れているということではなく、開発するものによって使い分けていったほうがいいと言えるでしょうね。みんな違ってみんないい。
設計の手順
それでは、少し話がズレてしまいましたが、また設計の話に戻っていきます。設計というと何をしたらいいのか。。。
と思うことも多いと思うので(僕もそうでしたw)、設計の手順について簡単に話していきます。
要件定義
↓
画面設計
↓
細かい要件を整理する
です。それでは順番に見ていきましょう。
要件定義
要件定義って聞くとかっこよく、難しく聞こえますが、要するに何をどのように作るかっていうのをざっくりでいいので決めていくってことです。
例えば、Q&AがあるようなWebアプリを作るとか!
簡単でいいので、自分の作りたいイメージを考えていけるといいですね。ここで大事なのはあまり細かく考えすぎないことです。
あくまでも自分が作っていきたいものを考えていきましょう!
そして、必要なものと不必要なものを簡単に書いていくのもいいですね。例えば、ユーザーは質問と回答を見ることが出来る。しかし、画像や動画の投稿はできないなどなど、、、
画面設計をする
ある程度自分の中で、作りたいもののイメージが沸いてきたらそのイメージを図式化してみましょう。簡単にノートなどに自分のイメージするサイトやアプリケーションの画面のイメージを描いてみるのもいいですね。ログイン画面はこんなデザインにして、、、などなど
細かい要件を整理する
ここまでくると何となく作りたものがイメージできると思います。その作りたい物のイメ―ジが出来てきたら再度、細かい要件を整理していきましょう。Q&Aがあるアプリケーションであるのなら、ユーザーが質問できる文字数は140文字までなどなど、、、
そしてこのように設計を作っていくのですが、設計に置いて大切なことを次に書いていきます。
設計における重要なこと
それでは、設計における重要なことを書いていきます。
最初から決めすぎなこと
先ほども書いたのですが、設計の要件定義などをするとそれだけにエネルギーを取られてしまってどうしたらいいのか分からなくなってしまうなんてこともあるでしょう。
そして、開発をしていく中で設計していた当初とは思いもしなかった課題が出てくることもあります。そのため、まずは気楽にやりたいことをイメージしてそのイメージを設計に載せていくくらいの気持ちのほうが楽しくできるでしょうね。せっかくなら楽しくやりたいですもんね!
言葉を統一すること
例えば、自分が思っていたことでも他人から見る角度では、違ったものに見えるというのは生きていると良くありますよね。
チームでの開発でも同じことが言えるでしょう。自分がつけたクラスの名前でも読み手によっては解釈が違って、ズレてきてしまうこともあるかもしれません。
そのため、チームでの開発をするときには言葉を統一することが大切でしょう。
フレームワークなどを最初に決めない
設計をする前にフレームワークをあまり決めすぎないほうが良いでしょう。
家で例えるのなら、設計をする前にレンガの種類を決めていくのと同じでしょう。家の設計図が出来たうえで、その設計図の家に合うレンガはこれかな!と決めていったほうがいいですよね。
PHPでも同じようにあくまでフレームワークやデータベースなどは手段と考えていったほうがいいでしょうね!
まとめ
以上のように今回は、マジメに設計について話していきました!
設計の手順は、要件定義→画面設計→細かい要件を整理する。
設計で大事なことは、最初から決めすぎない、言葉を統一すること、フレームワークなどを最初にきめないこと
これらのことを主に伝えたかったです。
あまり、気を張りすぎないことがポイントのようでしたね。皆さんの設計がうまくいくように願っております。
ではでは~