Clean C++

C++ コア ガイドラインに関する長い一連の投稿から少し遠回りしたいと思います。ここ数日、すばらしい本「Clean C++」を読みましたが、ためらわずにレビューを書きます。これが私のレビューです。

セミナーの最後に、より優れたソフトウェア開発者になるためにどの本を読むべきですか? という質問をよく耳にします。 ここに私の答えの半分があります:デザイン パターン:Elements of reusable object-oriented software、Pattern-Oriented Software Architecture、Clean Code、Working effective with legacy code、および UML Distilled を読む必要があります。これが私の回答の別の部分です。C++ の観点からは、Scott Meyers、Herb Sutter、および C++ Core Guidelines の本を読む必要があります。全部で3000ページ以上あり、とても貴重な内容でいっぱいです。

さて、私の答えは非常に簡単になります。 Stephan Roth 著の「Clean C++」を読んでください。 この本は、幅優先検索に最適です。深さ優先検索では、前に述べた古典を読んでください。なぜですか?

著者は、私たちがプロのソフトウェア開発者として知っておくべきトピックの非常に優れた、しかし表面的ではない概要を提供することで、300 ページでそれを達成しました。彼の本は C++11 に基づいていますが、しばしば C++17 に言及しています。この本で特に気に入っているのは、してはいけないことだけでなく、すべきことについても書かれているということです。

しかし、まず最初に。 Clean C++ には 9 つの章と UML の簡単な紹介があります。 最初の 2 つの章は、プログラミング言語に依存しません。 単体テストの章 ソフトウェア開発の主要原則 (Keep It Simple and Stupid (KISS)、You Aren't Gonna Need It (YAGNI)、Don't Repeat Yourself (DRY)、または最小驚きの原則 (PLA)) など、著者は、持続可能なソフトウェア. 残りの章も優れたソフトウェア プラクティスについてですが、C++ の観点からのものです. この新しい視点は、基本 の章から始まります. Stephan Roth は、適切な名前、コメント、および関数を記述するための重要な原則を示しています。最新の C++ が提供するものは何ですか?次の章「Advances Concepts of Modern C++」で著者が回答する質問 ". C++ のルーツは オブジェクト指向 にあります しかし、最近の C++ は 関数型 によってますます支配的になっています 概念。これらのパラダイムの長所と短所は何ですか?本が約60ページで答えを提供する質問。単体テストは、テスト駆動開発の基礎として使用する必要があります .これは、次の章のテスト駆動開発 (TDD) での彼の焦点です。彼は精巧な例で、TDD を使用してアラビア数字をローマ数字に変換する方法を示しています。 デザイン パターンとイディオムの章 本を完成させます。ステファン・ロスに非常に近い設計パターンの 1 つは、依存性注入です。依存性注入は、よく議論されているシングルトンのアンチパターンを取り除くための治療法です。確かに彼は正しい.

「Clean C++」がセミナーの最後に一般的な推奨事項として使用するほど素晴らしい本である理由は何ですか?引用された古典はすべての重要な情報を持っていませんか?絶対!私の見解では、「Clean C++」という本は、1 週間で簡単に習得できる C++ での優れたソフトウェア開発のトピックを紹介する唯一の実用的な入門書です。 この概要を読み終わったら、一般的なトピックや C++ 固有のトピックなど、より具体的なトピックに飛び込む必要があります。これにより、ソフトウェア開発者としての残りの人生を忙しく過ごすことができます。