MVCアーキテクチャから知る、学術のはじまり。

こんにちは、松井です。

この前、職場のエンジニアの後輩くんに
MVCアーキテクチャについて教えていたのですが、

その時、

「なんやお前!」

という、ちょっとイラッとした返しをされました。

しかし、
いま思い返してみると、

本質を突いた良い返しだったので、
ここで謝罪の意を込めつつ、話していこうと思います。

今回のお話は、MVCアーキテクチャを知らなくても、
楽しめるお話になっていますので、ご安心ください。

 

MVCアーキテクチャ。

それは、プログラマーの多くが
新人研修のとき、習う、コーティング手法です。
(覚えなくていいですよ!)

それは、コードを
Model・View・Controllerの機能にわけて、
整理して書く手法です。
(理解しなくていいですよ!)

 

今回の話の事の起こりは、
先日、僕の後輩くんのコードレビューをした時。

そのコードの内容が
あまりにごちゃごちゃだったことでした。

なので、これを機に、
後輩くんに、MVC アーキテクチャを教えた次第です。

 

ちなみに、さきほど、

MVC アーキテクチャは
新人研修で、みんな習う! みたいなことを

言いましたが、

その後輩は、
MVC アーキテクチャを習ったことがない、

とのことでした。

( 実は習ってたけど、忘れているだけな気もしますが、まぁそれは今回は良いとしましょう。)

 

MVC アーキテクチャというのは、
端的に言えば、

ブラウザの画面に表示されるような要素を
V つまり ビューのコードにまとめ、

画面の操作から処理が動くようなものを
C つまり コントローラーのコードにまとめ、

その画面が本質的に扱いたいモデルを、
M つまり モデルのコードにまとめて、

表現するというものです。

 

そして、後輩くんにも、

そのような説明を交えつつ、

実際に、いまの後輩くんのコードを
どう変えていったらよいかの話をしました…

 

僕「〜〜だから、こういう風にコードをまとめると、

機能ごとにコードが分かれるし、
あとで直したいときにも、
どこのコード見ればいいか分かりやすいから、

便利やろ?」

後輩「ほんとだ。綺麗にまとまりますね。」

僕「そやろ。コードの見やすさは、
保守性の向上にもつながるからな。大事やで。」

後輩「でも…、」

僕「ん? でも?」

後輩「いや、

MVCアーキテクチャって聞いたから、
どんな難しい話なのかな、と思ったんですけど、

案外、聞いてみたら、

綺麗にコードをまとめるための、
当たり前のことをやってるだけですね。

なーーんだ、全然大したことないですね!www」

僕「いやいや、そんな当たり前のこと
知らんかったのは、

お前やないかーーーい!!笑」

とまあ、こんな感じのコードレビューとなりました。

 

最後、

後輩くんに謎の返しをされて、
ちょっぴりイラッとしたコードレビューでした。笑

 

そして、
それからしばらくしてからのことですが、

僕は、「論語物語」という本を読みました。

論語は、
「子いわく、学びてこれに習う、亦よろこばしからずや。」
で、おなじみの2500年前の賢人 孔子の教えが
書かれたものです。

そして同時に、論語は、
なかなかにドラマチックな歴史をもつ書物でもあります。

紀元前の時代、論語は、
いま話題のキングダムでも登場する
始皇帝 嬴政(えいせい)によって、
一度、論語の全書物が抹殺されています。

しかしその数百年後、
孔子の教えを語り継いだひとたちによって、
書物が復元されたことで、

現代まで残り、
そして僕らの国語の教科書にも載っていたわけです。

 

このエピソードは、

なんとしても、
後世に孔子の教えを残し、
後世のひとたちの心の支えとなってほしい。

という強い思いを感じられて、
ぐっっっと、熱くなるところがあります。

 

そして、「論語物語」は、
その論語を、現代風にアレンジしたお話なっています。

「なんか論語って難しそうだなー」ってひとにも、
ストーリー調で、読みやすいので、おすすめです。

 

そして、本題。

僕は、後輩くんのレビュー後、
しばらくしてこの本を読み終えたのですが、

その本の巻末に書かれていた文章に、
妙に、惹かれました。

それは…、

 


学術を、巨大な城のように見る という
世間の常識があるが、

その生成のあとを振り返れば、
その根は、常に人々の生活の中にあった。

学術が大きな力たり得るのは、
そのためであって、

生活を離れた学術はどこにもない。

 

という文章です。

学術と聞くと、つい厳格で、難しく、
固いもののように思われるかもしれませんが、

その学問の始まりというのは、

普段、僕らが暮らしている生活のなかの
小さな困りごとを解決することから、

生まれている、

ということだと、僕は理解しました。

 

いやぁ、なるほどなあ、と思いました。

これは MVC アーキテクチャ についても同様ですよね。

 

というのも、

MVC アーキテクチャに沿うことによって、
コードが綺麗になるというのは、

半分合っていてるようで、半分間違っていて…、

そもそもとして、

先人のエンジニアたちが、
きれいにコードを書こうと試行錯誤を繰り返し、

その結果、ようやく体系づけられたのが、
MVC アーキテクチャだった

ということです。

 

だから後輩くんの、

「なんか当然なんですね。」

っていう反応は、

かなり至極まっとうな反応だったんだなぁ、
と、いまにしては思います。

 

むしろ、

いやぁ、良いトコついてたなぁ。

と、いまさらながら、感銘です。

 

 

先入観は、ひとを盲目にします。

エンジニアとしての年次が上がってきたり、
自分のスキルに変に自信がついてきたりすると、

ついつい、

自分よりスキルが低い(ように勝手に自分が感じている)
ひとの意見を軽んじてしまいガチです。

 

でも、この経験から、

後輩くんからの、
一見、ろくでもない意見に聞こえるものであっても、

なぜそういう意見を思うのか、
をしっかり聞いてみるようにしてます。

すると、

僕自身では、気づかなかった、
思わぬ、良い意見をもらえたりするんですよね。

 

世の中、面白いものです。

スキルが高いからとか、立場が高いからとか、
そういうことは、本質的には関係なくて、

それぞれの目線で、
気づいたこと・感じたことっていうのが、

尊い(たっとい)意見です。

そんなことを、今回、気づかされました。

 

今後、
それぞれのメンバーの意見を活かし合い、高め合う、

そんな仕事ができるよう精進していきます。

 

では、今日はこのへんで。

ありがとうございました!