C++ プロジェクトでは、コンパイルの依存関係により、ソフトウェア プロジェクトの保守が困難になる場合があります。モジュール内およびモジュール間の依存関係を制限するためのベスト プラクティスにはどのようなものがありますか?
4 に答える
Herb Sutter は、彼の優れた著書Exceptional C++、ISBN: 0201615622の項目 26、27、および 28、「Minimizing Compile-time Dependencies, Part 1, 2 and 3」で、まさにこのトピックをうまく扱っています。
代替テキスト http://ak.buy.com/db_assets/prod_images/489/30611489.jpg
私見ですが、これは入手可能な最高の C++ プログラミング本の 1 つです。
この点については十分に注意し、配慮する必要があると思います。一般に、コードを分離し、抽象的なインターフェイス (関数ポインターまたは同等のオブジェクトなど) を使用することで依存関係を制限できますが、分離すると一般に脆弱性が追加されます。たとえば、一般的な抽象インターフェイスを介してモジュールを呼び出して、実際のオブジェクトの実装への依存を減らすことができますが、オブジェクト自体と同期してインターフェイスを更新する必要があります。そうしないと、実行時にコードが失敗します。
大規模なプロジェクトは、明確に定義された階層を持つモジュールで構成することが重要ですが、各モジュール内では、依存関係を制限するためにコードを分割してやり過ぎないようにしてください。メンテナンスを改善する場合は、依存関係を減らすこととコードの脆弱性を減らすことのバランスを取る必要があります。