#初めに
Clean Architecrureを読んで、いままでふわふわしてた腑に落ちた部分を書いていく。
今までは、
構造化「あぁif文,for文とかね」
オブジェクト指向 「えーっと、クラス、継承、多様性とかね」
関数型「最近よく聞くね。」
くらいにしか頭になかった。
「これらの概念はプログラムに制約を強いている」とあり、認識が変わった部分を整理する。
#まとめ
##構造化プログラミング
直接的参照の制約=Goto文の禁止と謳ってる。
##オブジェクト指向プログラミング
間接的参照の制約=Global変数の禁止を謳っている
コードが多くなり複雑になるほど、Global変数は害悪になる。
誰でもどこからでもアクセス・変更可能なGlobal変数をやめ、オブジェクトに閉じてしまうことで、大規模機能を理解しやすくしようというのがオブジェクト指向。クラス、継承、多様性などはそのための手段でしかない。
##関数型プログラミング
代入の禁止=代入しない…だとっ! 代入するのが当たり前で"しない"という発想がなかった。
戻り値を代入して、それに対してまた代入して・・・と長い処理を書かないため、1行で何してるかを明確にする必要が出る。
そのため、ラムダ式やクロージャという手段を使うんだなと感じた。
##参考
Clean Architecture