BaHo Advent Calendar 2020 15 日目担当の BaHo 猫 です。
今日は個人的に読んで良かったなと思えた設計技術に関連した本をいくつか紹介したいと思います。 個人の感想なのであまり真に受けないでください。
Clean Architecture 達人に学ぶソフトウェアの構造と設計
エンジニアなら全員読んでると思われる定番の本。 読んでないならエンジニアではないと言いたいわけではないので安心してください。
名前の通り、Clean Architecture という設計概念について解説しています。 何を実現したいかはっきりしているシステムに対してアーキテクチャをどのように適用していくか、みたいな内容だった気がする。
Clean Architecture 自体も有用な知識ではありつつも、エッセンスとして多くの概念を語彙として提供しているので、他のエンジニアと会話する際の共通語彙集としての利用価値も高い。
設計とは、みたいな話が盛り上がると一度は話題に出るくらいには汎用言語として利用できるのでとりあえず読んでみることをお勧めします。
とりあえずで読める分量ではないが。
設計技術に少しでも興味を持っている人は多少時間をかけてでもしっかり読み込むことをお勧めします。
マルチパラダイムデザイン
パラダイムに囚われずにソフトウェア設計を行うための本。 プロダクトをソフトウェアに落とし込むためのドメイン分析、つまり問題の洗い出し段階からサポートしている理論です。
共通性と可変性という 2 つの次元を使って抽象化された設計を実施することをモチベーションにしています。 チーム開発となると、そのチーム内で強みのある技術を先に選定しがちですが、実は技術選定はサービスの性質に基づいてやるものなんだよという気づきを与えてくれる本だと思います。
このブログでも何回かに分けてエッセンスを紹介しているので、雑にどういう話かを知りたい人は軽く他の記事を眺めてもらえるとなんとなくわかるかもしれません。 記事の分量的に上澄みしかさらってないので、真剣に学びたい人はちゃんと購入して読みましょう。
進化的アーキテクチャ: 絶え間ない変化を支える
皆さんはなぜ設計をするのか考えたことはあるでしょうか。 進化しないシステムにはリファクタリングは必要ありません。 なぜなら、二度と同じコードを触ることがないからです。
この本は、設計がシステムにもたらす「進化可能性」という 1 つの性能指標に焦点を当てて設計の解説をしています。 この本を読みながら「なぜ自分は必死に設計をしているのか」と初心に立ち返ってみるのもお勧めです。
文章量もそこまで多くないので気軽に読み始めてみると良いかもしれません。
最後に
いかがだったでしょうか。
設計技術に興味がある人は是非これらの本を読んでみてください。