リファクタリングとはなんぞや!?

 

リファクタリングとは

 

リファクタリング』とは、体質改善

外面は変わってないように見せて、中の細胞構成は綺麗に改善される技法

外から見た動作は変えないが、内部のデータ構造を改善する技法

 

リファクタリング』によるメリット

基本的に内部の構造を変えたからと言って、バグが無くなったり、動作が変わったりする事はない。あくまで、『〜しやすいようにする』がキーワード。

 

例えば、内部の構造を改善し、読みやすいコードにする事で、バグを見つけやすくする、改修をしやすくする、コードを読みやすくする。

 

リファクタリング』を行う時の注意点

リファクタリング』を行う時の基本は、『ステップバイステップ』

同時に複数の処理を『リファクタリング』すると、どこでエラーが発生したのかわかりにくい、戻りたい時に余計な部分まで元に戻ってしまう。

『ステップバイステップ』にしていれば、もとに戻りたい時も『ステップバイステップ』で戻れば良いのだ。

 

委譲とは

 

『委譲』とは処理を委ねると言う事。

 

まず、『委譲』と『継承』が存在する。

『継承』は、クラス内に書かれたもの全てを使って良いよと言う状態。

この時の継承されるスーパークラス、継承されたサブクラスが存在する。

 

全部の処理が使えるなら良いじゃん!だけど、全部が使えるからこその悩みもある。

(そのプロジェクトで全ての機能を継承した何でも使えるオブジェクトをゴッドオブジェクトなんて呼ぶ。神だ。)

全ての機能が使えるからあれやこれやと色んなところで使うと、変更があった時の修正が面倒になったり、他の人がコードを見た時に作成者の意図が伝わりづらいと言う欠点がある。

 

『委譲』は、あるクラスの一部だけを使用する。必要な分だけを使わせてもらうと言う事。余分なものがなくて、作成者の意図が伝わりやすい。必要な分だけしか使わせてもらえないから、下手にいじる事もできないのよね。

 

Javaのコードで言うと...

『継承』→ extends

『委譲』→ Object oj = new Object();   oj.getValue();

 

「『継承』は最後の武器だ」と言われるまでに、使用は出来るだけ避けた方が良さそうな気がします...

 

ラテラルシンキングとは

 

『ラテラルシンキング』→ 水平思考

ロジカルシンキング』→ 垂直思考(論理的思考)

クリティカルシンキング』→ 批判的思考

 

『ラテラルシンキング』は、問題を解決するために、形に囚われずに色んな仮説を立てる事、点を絞っていく事

ロジカルシンキング』は、問題をどんどん掘り下げていく事、点と点をつなげる事

 

『ラテラルシンキング』の使い所は、例えば、今年度の売り上げが、例年より落ちているのは何故か。不景気、感染症、単価が下がった、取引先が減ったなどなど考えられる要因は様々である。

 

考えるポイントは形に囚われすぎない事!