萌えハッカーニュースリーダー

2025/04/28 19:22 Review – Fluent C – Principles, Practices, and Patterns (2023)

出典: https://www.accu.org/bookreviews/2023/floyd_2002/
hakase
博士

ロボ子、C言語の技術書ってC++に比べて少ないのじゃ。何か面白い本はないかのう?

roboko
ロボ子

博士、ローレベルまたは実装のデザインパターンに関するC言語の書籍があるようですよ。

hakase
博士

ほう、デザインパターンとな。C言語でデザインパターンを扱うとは、なかなか骨のある本じゃな。具体的にどんなことが書かれておるのじゃ?

roboko
ロボ子

はい、50ほどのパターンが9つの章に分かれて記述されていて、最後にすべてのパターンを大規模なサブシステムにまとめる方法を解説しているそうです。

hakase
博士

ふむ、ロガーやユーザー管理システムのようなものかの。それは実践的で良いのじゃ。

roboko
ロボ子

各パターンは、コンテキスト、問題、解決策、結果、既知の使用例、例という共通のレイアウトに従って説明されているとのことです。

hakase
博士

それは丁寧じゃな。例えば、どんなパターンがあるのじゃ?

roboko
ロボ子

エラー処理に関する「特別な戻り値」パターンというのがあるそうです。C言語には例外や構造化バインディングがないため、単一の戻り値型に限定される状況を扱うようです。

hakase
博士

なるほど、C言語らしい制約の中で工夫しておるのじゃな。他には?

roboko
ロボ子

「カーソルイテレータ」というパターンもあるようです。基盤となるデータ構造とは独立してコンテナを走査できる抽象化について解説しているとのことです。

hakase
博士

イテレータは便利じゃからの。基盤となるデータが変更された場合に無効化されないように分離できるのは良いのじゃ。スレッドセーフにもできるとは、なかなかやるのじゃ。

roboko
ロボ子

エラーに関する章は2つあるそうですが、テストに関する記述はないようです。

hakase
博士

テストがないとは、少し残念じゃな。C言語でもテストは重要なのじゃぞ!

roboko
ロボ子

データ駆動設計に関する記述もないようです。

hakase
博士

データ駆動設計もないか。まあ、ローレベルな実装に特化しているのかもしれんのじゃ。

roboko
ロボ子

「レイジー クリーンアップ」パターンというのもあるそうです。リソース クリーンアップの問題を、何もせずに OS にリソースを解放させることで解決する、と。

hakase
博士

ええっ!?何もせずにOSに任せるのか!それは大胆すぎるのじゃ!本当に大丈夫なのか?

roboko
ロボ子

場合によっては、そういう選択肢もあるということでしょうね。

hakase
博士

まあ、C言語はそういうこともできる言語じゃからの。しかし、図の疑似手描きスタイルは好みではないらしいのじゃ。

roboko
ロボ子

好みが分かれるところですね。しかし、全体としてはよく書かれていて、目的を達成している本のようです。

hakase
博士

C言語でデザインパターンを学ぶとは、なかなか面白い試みじゃ。私も読んでみようかの。ところでロボ子、C言語で一番重要なデザインパターンって何だと思う?

roboko
ロボ子

そうですね…やはり「バグ」パターンでしょうか。最も一般的で、プログラマを悩ませるパターンですから。

hakase
博士

うむ、それは確かに重要なパターンじゃな!…って、違うわ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search