Klaus Iglberger
C++ソフトウェア設計
ガイド
Modern C++においてデザインパターンをいかに使うべきかを詳述した良書
書誌
author | Klaus Iglberger |
editor | 千住 治郎(訳) |
publisher | オライリー・ジャパン |
year | 2023 |
price | 4000+tax |
isbn | 978-4-8144-0045-3 |
履歴
editor | 唯野 |
2024.7.13 | 読了 |
2024.7.25 | 公開 |
Modern C++においてデザインパターンをいかに用いるかという観点で解説した本。著名なデザインパターン全てを網羅しているわけではないが、昨今の潮流でもある以下の方針に基づいて、静的多態を実現するテンプレートなども積極的に活用した解説を行っている。メリット・デメリットはもちろんとして、必要な箇所では性能についても言及するなど、いかにもC++な視点にもしっかり触れている。
- 依存関係の最小化
- 関心の分離
- 継承よりもコンポジションを優先する
- 既存コードに干渉しない設計を優先する
- 参照セマンティクスより値セマンティクスを優先する
C++ 17/20の機能も積極的に紹介されているので、言語の新機能についてもよい勉強になった。もっともType Erasureパターンなど、メリットも多いが逆に難解で敬遠されるのでは──というものもあり、どこまで採用すべきかの判断が難しい。しかしながら、著者の方針は明快であるため、逆に言えば多数の注釈も楽しむくらいの余裕をもって臨む本というべきかもしれない。内容的には素晴らしいと思うが、私も一読だけでは理解できていない箇所があるので、必要に応じて再読したいと思う。
抄録
vii
ここに本書の出発点があります。大半の書籍とは異なり、言語の仕組みや機能にはページを割きません。全体を通じ、ソフトウェアの可搬性、拡張性、テスト可用性を主題に開設します。C++の新標準や新機能を用いればソフトウェアの質が向上するなどと謳わず、依存関係の監理こそ重要であり、これがソフトウェアの質を決めるのだと明確に主張します。-/-
ガイドライン1 : ソフトウェア設計の重要性を理解する
2
-/-ソフトウェア開発において、人的要因を別にすれば、プロジェクト成否に関わる(言語機能より:唯野注)ずっと重要な観点は、ソフトウェアの全体構造です。保守性の優劣を決定する鍵は構造にあり、コードは変更しやすいか ? 拡張性は ? テストもしやすいか ? などの観点が必要不可欠です。-/-