Skip to Content
ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール
book

ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール

by Chris Zimmerman, 久富木 隆一
August 2023
Intermediate to advanced
452 pages
5h 11m
Japanese
O'Reilly Japan, Inc.
Content preview from ルールズ・オブ・プログラミング ―より良いコードを書くための21のルール

ルール14コードには種類が4つある

 ここで、過度に単純化されてはいるものの依然として有用な、コードについて考えるためのモデルを紹介しよう。解かなきゃいけないプログラミング上の問題が、「やさしい」と「難しい」の2種類あると想像してほしい。

 「やさしい」問題とはどういう問題か、もう察しがついていると思うが、とりあえず一般的な例をいくつか挙げよう。「数値の配列から最大値と最小値を求める」「ソートされた二分木にノードを挿入する」「配列から奇数の値を取り除く」あたりだ。

 「難しい」問題も、簡単に見分けられる。例えばメモリーの確保で、要は「C言語の標準ライブラリーであるmallocfreeの実装」だ。後は「スクリプト言語の構文解析」「線形制約問題ソルバーの作成」とか。

 さて、ここで定義した「やさしい」と「難しい」は、実際には連続的範囲内の2点にすぎず、範囲の端の極点というわけでもない。例えば、2つの数の和を求めるとか、「やさしい」問題の例よりさらにやさしい、自明な問題もある。また、ジャーナリング1ファイルシステムをゼロから作るとか、「難しい」問題の例よりずっと難しい問題もある。

1 訳注:ジャーナリング(journaling)とは、データ書き込み時に、ジャーナル(journal)と呼ばれる変更履歴のログを別途保存すること。ジャーナルには書き込む実データや実データの属性を記述したメタデータを含めることができ、ジャーナルを利用してある時点の状態へロールバックしたりできる。

 でも、この「やさしい」と「難しい」の2点は、有用だ。「やさしい」と「難しい」の間には、プログラマーが日々解決している問題のほとんどが存在している。参考までに、ぼくはここで挙げた例の全部について、解法を書いた。いや全部じゃない、ジャーナリングファイルシステムをゼロから構築するってのは除く。とはいえ、それもやってみれば面白そうだが。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

スタッフエンジニアの道 ―優れた技術専門職になるためのガイド

スタッフエンジニアの道 ―優れた技術専門職になるためのガイド

Tanya Reilly, 島田 浩二
行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

Stephen Wendel, 武山 政直, 相島 雅樹, 反中 望, 松村 草也
レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

David Scott Bernstein, 吉羽 龍太郎, 永瀬 美穂, 原田 騎郎, 有野 雅士

Publisher Resources

ISBN: 9784814400416Other