What? なんの本なのか?
4部作ある最後のシリーズ。
分散システムを題材にして、アーキテクチャパターンを説明している。
アーキテクチャパターンはそれぞれで独立したものではなく、相互に関連したものであることを説明している。
その上で関連度の高いパターンをまとめて紹介している。
Why? なぜこの本を読むのか?
目的:より綺麗なコードを書けるようになるため。
前回までのリファクタリングでコードの木の整形方法を勉強した。
ただし、一本一本の木を整形するだけでは必ずしも(プロジェクト全体で見たときに)綺麗なコードにはならない。
なぜなら森全体を意識しないと個別最適の結果、全体で見たときに辻褄が合わない可能性があるためである。
そのため、アーキテクチャを勉強することで森全体の整形?整備の仕方を勉強することにする。
知ってるとできるは違う。できると理解してるも違う。
そもそもアーキテクチャはプログラム構造についての抽象化したパターンであり、コードリーディング時の大いなる補助になります。
そのため新しいコンテクストへの順応がよりスムーズになります。
自分に話を引きつけてみると、クリーンアーキテクチャについては仕事(現在開発中のAndroid開発)では使える程度になったと思います。
ただ、使えるだけじゃダメです。
よく「知っていることと、できることは違う」と言いますが、「できることと、理解している」ことも違います。
プログラミングをしていると、なんかよくわからないけど、できてることってたくさんあります。
クリーンアーキテクチャに関しても、なんとなく現在開発中のコンテクストだったらどう書けばいいのかわかります。
しかしそれは現在開発中のプロダクト内でできているだけで、理論の本質を理解していません。
そのため新しいコンテクストになればアーキテクチャに基づいた開発などできません。それどころか、今の状態だと新しいコンテクストへの順応もそれほどスムーズにいくとは思えません。
なぜそうするのかということを理解するのはとても大事なことで、そこの根本的な理解があればこそ環境の変化に柔軟に対応できます。さらに、既知の知識をもとにした新しいアイデアの創出も可能になります。
なので、今回この本を読んでなぜそのアーキテクチャにするのかということを理解し、さらなる開発力の向上に役立てようと思っています。