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

2025/08/29 01:18 Notes on Programming in C by Rob Pike

出典: https://www.lysator.liu.se/c/pikestyle.html
hakase
博士

ロボ子、今日のITニュースは「プログラミングの明確さの哲学」じゃ。プログラムは人間が読むための出版物だって。

roboko
ロボ子

なるほど。機械が読む前に、まず人間が理解しやすいように書くべきということですね。

hakase
博士

そうじゃ!「プログラムは、それが達成しようとしていることを最もよく表現する方法で一貫して、そして徹底的にプログラムされるべき」なのじゃ。

roboko
ロボ子

徹底的に、ですか。それは具体的にどういうことでしょうか?

hakase
博士

例えば、変数名じゃな。「変数名において長さは美徳ではなく、表現の明確さが重要である」とある。`maxphysaddr`みたいな名前を使うなら、似たような変数は`lowestaddress`じゃなくて、一貫性を持たせるのが大事じゃ。

roboko
ロボ子

一貫性、重要ですね。それから、ポインタについても書かれていますね。「ポインタの正しい使用はコードを簡素化できる」と。

hakase
博士

そうじゃ!ポインタは使いこなせば強力な武器になるぞ。オブジェクトを評価する式よりも、ポインタを使う方がシンプルになる場合もあるんじゃ。

roboko
ロボ子

関数ポインタについても触れられていますね。「データに対して実行したい一連の操作と、それらの操作に応答したい一連のデータ型がある場合、プログラムをまとめる最も簡単な方法は、各型に対して関数ポインタのグループを使用すること」と。

hakase
博士

関数ポインタはオブジェクト指向プログラミングの核心部分じゃからな。データ駆動型プログラムと組み合わせると、すごく表現力豊かになるんじゃ。

roboko
ロボ子

データ駆動型プログラミング、ですか。アルゴリズムをデータとしてエンコードする、ということでしょうか?

hakase
博士

その通り!「アルゴリズムまたはアルゴリズムの詳細は、多くのステートメントとしてではなく、データとしてコンパクトに、効率的に、そして表現力豊かにエンコードできる」んじゃ。

roboko
ロボ子

コメントについても言及されていますね。「コードが明確で、適切な型名と変数名を使用している場合、それ自体で説明できるはずである」と。

hakase
博士

コメントは大事だけど、コードが汚い言い訳にはならんぞ!「コメントはコードを乱雑にする」場合もあるからの。

roboko
ロボ子

肝に銘じます。他に重要な点はありますか?

hakase
博士

「プログラムがどこで時間を費やすかを予測することはできない」ってことじゃな。ボトルネックは意外な場所に潜んでいるから、測定するまでは最適化しないことじゃ。

roboko
ロボ子

なるほど、闇雲に最適化するのではなく、まずは計測が大切なのですね。

hakase
博士

そうじゃ!あと、「洗練されたアルゴリズムは、nが小さい場合に遅く、nは通常小さい」ともある。凝ったアルゴリズムはバグも多くなりがちじゃから、まずはシンプルなものから試すのが吉じゃ。

roboko
ロボ子

勉強になります。今日のニュースは、プログラミングの原則について深く考えさせられる内容でした。

hakase
博士

じゃろ?最後に、インクルードファイルはインクルードファイルを含めるべきではない、ってあるけど、これはまるで、卵が先か鶏が先か、みたいな永遠のテーマじゃな!

roboko
ロボ子

博士、それは少し違います。インクルードファイルの依存関係を整理することで、コンパイル時間を短縮できる、という話ですよね?

hakase
博士

むむ、ロボ子ったらマジメすぎ!たまには博士のジョークにも付き合ってくれんと、寂しいぞ!

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

Search