クリーンアーキテクチャとは? 第5章

オブジェクト指向

■所感
前半のCのプログラム解説のところを読んでいたときは、正直眠くなってしまったが、読み進めるうちに、なるほどねという落としどころが見えたので良かった。

前段に出てきた、「現実世界をモデル化する方法」の話はちょっと笑った。謎の技術書の大半が、オブジェクト指向を語る際に車だの冷蔵庫だの、ほんとにこいつプログラム書いたことあるの?って疑いたくなるようなモデルについてうんちくを語るものばかりだった。それを見て、いつも「そういうことじゃないだろ」って突っ込みを入れていたのを懐かしく思い返した。

余談になるが、最近はpresonでモデル化を行う人が増えたと思う。自分もそうするし。
性別
年齢
身長
体重…
モデルを作りやすい。なぜなら、自分のことだから。そして想像しやすい。抽象化もしやすいし、継承もしやすい。車を抽象化して、タイヤの数を二つにしたらバイク、エンジン抜いたら自転車とか、、、こんなのを読んだエンジニアや、エンジニアを志した人が「わけわかんね」と言って、挫折して行ったのを多く見てきた。そこじゃないのになーって思ってた人は自分だけではないと思う。

「現実世界をモデル化する方法」を、言い訳がましい、とばっさりと切り捨てている著者に喝采を送りたい!

■内容について
カプセル化とか継承とかって、昔からやっていたとのことだが、例がちょっとわかりづらかった。Cのソースなんて読んのは何年ぶりだろう?

依存関係逆転の中盤からが、クリーンアーキテクチャの考え方を部分的に取り出した内容だったと思う。非依存、独立性。この辺は、事前に勉強していたクリーンアーキテクチャのキーワードとしてたびたび出現していたので、しっかりとおさらいしておきたいと思う。

非依存に関しては、オブジェクト指向的に大切な個所。設計時点で、「この処理ちょっと〇〇の依存強すぎない?」って自問自答することがたびたびあるので、大事なポイントのはず。。依存が強いと、その処理の影響範囲も依存先に及ぶ可能性が出てくる。ぶっちゃけ、テストがめんどくさい。

独立性も、非依存と一緒で、独立していると影響範囲が狭いので扱いやすい。ただし、よくあるUtil的な、なんでもできるStaticな関数の寄せ集め的な、神様クラスとは意味が異なるので注意したい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です