スイーツ(笑)と呼ばないで!!
| |||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
11/24/03:03 [PR] |
08/11/15:13 リファクタリングは因数分解世の中では学校の勉強なんて社会人になってなんの役にも立たない、 とおっしゃる方も多いです。 確かに、学校の勉強”だけ"では何の役にも立たないことも多いかもしれませんが、 それはイコール”学校の勉強が役に立たない"わけではありません。 学校の勉強を暗記だと思っている人もいるかもしれませんが、 学校の勉強は「考え方」を学びそれを応用するトレーニングをする場所です。 中学校に入ると、数学の授業で因数分解というのを習いますね。 初歩的なものでいうと、 ax+ay=a(x+y) みたいなものも因数分解といえます。 シンプル過ぎますね。 プログラムで言えば、 if($face===’good'){ $user=$this->getUser(); $user->hello(); }else{ $user=$this->getUser(); $user->good_bye(); } とあれば、 $user=$this->getUser(); if($face===’good'){ $user->hello(); }else{ $user->good_bye(); } こうやって、共通する部分は外に出してあげましょう、ということになります。 (まぁ、実際には、こんなイケてないコードはありませんが、あくまでサンプルです) で、これは単純なif文の話なわけですが、この思考方法は、関数化やクラス化でも同じですね。 21と56という数字は一見なんの関係もなさそうですが、 7*3と7*8であり、共通の因数である7を持ちます。 同様に、一見、全体的なまとまりとしては全く別物のコードも、よく見ると共通の考え方があったりします。 ここでポイントは「共通の処理」ではなく「共通の考え方」に着目することですね。 で、それらを一瞬で見抜くスキルは、きっと、 中学校の時の因数分解のトレーニングで身につくんじゃないか、と思うわけです。 コーディングだけでなく、DB設計の正規化なんかも同じような話ですね。 ということで、もし「勉強なんて、社会に出たら役に立たない」と言ってる学生に出会ったら、 「そんなことないよ。そこで学んだ考え方はいろんなところで役に立つ、一生の財産になるよ」 と言ってあげましょう!! とか思う今日この頃です。 PR
|
|
|