18
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

いえらぶAdvent Calendar 2019

Day 2

2019年phpカンファレンス① ~MVCとはなにか~

Last updated at Posted at 2019-12-01

2019年phpカンファレンスでの『MVCとはなにか』の講演について、思ったことをまとめてみました。

講演資料

この講演を聞いたきっかけ

この前プライベートでLaravelを触ってみました。
会社のシステムは違うフレームワークでやっているため、結構新鮮だったとともに「model」の考え方が全然違った。

今までmodelは「いろんなところで使っている関数をまとめる場所」というイメージでした。
そのため、DB接続系の処理も書いていたが、Laravelでは書かない。みたいな記述を見つけて、「modelって何書けばいいんだろう、、、」と思っていました。

そこで、modelの概念について勉強しようと思い、この講演を聞いてみました。

講演を聞いて

「modelってなに、、、?」

という疑問がより深まりました(笑)

なぜそうなったかは、これからゆっくり書いていきます。

内容(解釈をかなり入れております)

システム作ってよ!

大体のシステム開発はここから始まるかと思います。
「こういう不便なところがある」というニーズから、それを解決するために開発を行っていくのが通常です。
その問題を解決するためにエンジニアは、「処理で問題解決する」という手法と「動きで問題解決する」という二つの方法を取るのが一般的です。

それらを解決するために実装する。それが実装されるのが、「controller」や「view」なのかなぁと思います。

受け取ったデータに関して、こういう風に処理して、こういうデータを格納する。これがcontrollerの役割。

ここを押したら、こうなるだろうなぁというユーザビリディを考え、思った通りに動くシステムにする。これがviewの役割。

じゃあ、modelの役割は、、、?

個人ごとの問題

同じシステムを使っていても、持っている課題は別のものになることは多いです。
ユーザAはαという点に課題を感じていて、ユーザBはβという課題を抱える。しかもそれをそれぞれ解決しないといけない。
このような場面では、controllerやviewを使い、個別で解決してあげる必要があります。
うまく表面をチューニングしてあげることができるのもシステム運用では大事なため、その役割を持っています。

じゃあ、modelの役割は、、、?

問題の根本を見抜く

αという課題でも、βという課題でも、その根本にある課題は同じであることは多いです。
それを解決するのが、modelの役割かと思います。

今まではテーブルⅠしか更新してなかったけど、ユーザの要望でテーブルⅡも一緒に更新するようにする。

こういうシステムの根本に関わることを解決するのが、modelの役割になります。

自分が考えたmodelのあり方とは

modelとは、「システム思想の反映」だと思いました。

このシステムはなぜ作られたのか、何のためにつくられたのか。が反映しているものにすべきではないかと思いました。

modelを見るとそのシステムがなぜ作られたのか、どういう風になっていくべきなのか。が伝わるのではないでしょうか?

ユーザの問題をちゃんとキャッチアップして、その根本を見ていく、そしてそれを反映させていく
という箇所がmodelの役割かなぁと感じました。

modelってなに、、、?

はじめに何度も書いたのですが、改めて自分の関わっているシステムを考えた時、そのシステムのmodelのあり方って難しいなぁと思いました。

システムが社会にどういう影響を与えていて、どういう風に発展していくべきか。そういうことを考えながら、組んでいく必要がある部分で、システムそのものが表現されている部分だからこそ、もっともっと深く考えるべきだなぁと思いました。

最後に

そう思って再度資料を見ていただければ、何となーく感じ方が変わるのかなぁ、、、
今回の講演で言いたかったことを10%も吸収できてない気がするけど、とりあえず思ったことを書いてみました。
これ違うよってことがあれば是非コメントください!

P.S.

面白いツイートがあったので追記。
https://twitter.com/Sally_42/status/1201024628581253121

18
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?