クリーンアーキテクチャを読んで自己肯定感を打ちのめされた
どうもぎんさんです
普段はRailsで開発をしているが、ここ最近フレームワークに依存し過ぎた思考になってきた。
それで一度思考をリセットしようと思い、素のGolangでAPI組み立てようとしてる。
その上で参考にしたのが、こういうもの
https://qiita.com/mani_transm/items/21534685552a520c8771
この手の物はたくさんある。
特に設計面でクリーンアーキテクチャを採用している記事が多い。
しかし、私はその本を読んだことがなかったので、ちょっと買って読んでいた。
https://www.amazon.co.jp/dp/4048930656/ref=cm_sw_r_tw_dp_U_x_8uJXDb3GGJ986
読んでどうだったの
以降この本の感想なのだが、なかなか思考をリセットするのが難しかった。
まず関心の分離という思想の理解、Railsの密結合な設計とは真逆な感じ
その上で、オブジェクト指向を肯定的に考え、設計思想を組み立てていくというもの
Rubyはオブジェクト指向言語であるが、シンプルで自由な言語である。そのためinterfaceがなかったりもする。
その上でこの本の第三部設計の原則を読むと、まぁ理解がうまくいかない。
私だって情報学部の出身だし、その辺の考え方がわからないわけじゃない。
学生時代はJavaを触れることも多かったし、(ヒーヒーいいながらも)オブジェクト指向を理解した気になって卒業した。
でもその程度の知識でこの本を読んでも上部だけの理解しかできないと感じた。
この本の著者は長年エンジニアとしてやってきて、いろんな経験をしてきた人なのだろう。
知識がある状態でいろんな経験をし、その上で一つの終着点を見出し、
それをまとめるためにこの本を書いたという感じなのだろう。
それだけこの本には多くのものが詰まっていると感じた。
要はいい本だったってことだな!
だけどそれを全て理解するにあたって、私には経験が足りなかった。
こうするべきだと本が語っても、なぜそう考えたのかが全然たどり着けない。
この本の提示する設計原則の理解が全くできなかった。(今だって理解できてるとは言いきれない)
そのうち、自分の知ってるオベジェクト指向の知識に疑問を持つようになって、
自分は何を知っているんだ…?って状態になった。
おかげで若干ネガティブモードになってたよ…
ただこの本はそういうことを考えさせてくれるという意味でもすごくいい本だと思った。
よくこの本を読んだ上で提示されるいつもの図があるけれども、じっくり読むことで何でそう組み立てるのかまで理解できる。
そして無茶苦茶考えられて作られた設計なんだということがわかる。
ただ私としては、修正するのが面倒くさいから、なるべく直す部分の少ないよう組み立てるためのアーキテクチャってくらいの考えだけどね。
もうちょっと経験積んで、改めて読んでみたら、この本の印象が大きく変わりそうな気がしたよ。