イントロダクション
参加について
本書への貢献に興味がある方は、コントリビューションガイドラインをご確認ください。
お知らせ
- 2024-03-17: 本書のPDF版をこちらのリンクからダウンロードできるようになりました。
デザインパターン
ソフトウェア開発において、私たちはしばしば、それが現れる環境に関わらず類似性を共有する問題に遭遇します。実装の詳細は目の前のタスクを解決するために重要ですが、これらの特殊性から抽象化して、汎用的に適用可能な共通のプラクティスを見つけることができます。
デザインパターンは、エンジニアリングにおける再発する問題に対する、再利用可能でテスト済みのソリューションの集合です。デザインパターンは、ソフトウェアをよりモジュール化され、保守しやすく、拡張可能にします。さらに、これらのパターンは開発者にとって共通の言語を提供し、チームでの問題解決において効果的なコミュニケーションのための優れたツールとなります。
留意すべき点:各パターンには独自のトレードオフがあります。実装方法だけでなく、なぜ特定のパターンを選択するのかに焦点を当てることが重要です。1
Rustにおけるデザインパターン
Rustはオブジェクト指向ではなく、関数型要素、強力な型システム、借用チェッカーなど、すべての特性の組み合わせにより、Rustは独自のものとなっています。このため、Rustのデザインパターンは、従来のオブジェクト指向プログラミング言語とは異なります。だからこそ、私たちはこの本を書くことにしました。お読みいただければ幸いです!本書は3つの主要な章に分かれています:
- イディオム: コーディング時に従うべきガイドライン。これらはコミュニティの社会的規範です。正当な理由がない限り、これらを破るべきではありません。
- デザインパターン: コーディング時の一般的な問題を解決する方法。
- アンチパターン: コーディング時の一般的な問題を解決する方法。ただし、デザインパターンが利益をもたらすのに対し、アンチパターンはより多くの問題を生み出します。
1
https://web.archive.org/web/20240124025806/https://www.infoq.com/podcasts/software-architecture-hard-parts/