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.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

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

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

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

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

David Scott Bernstein, 吉羽 龍太郎, 永瀬 美穂, 原田 騎郎, 有野 雅士
リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり

リーンエンタープライズ ―イノベーションを実現する創発的な組織づくり

Jez Humble, Joanne Molesky, Barry O'Reilly, 角 征典, 笹井 崇司, Eric Ries

Publisher Resources

ISBN: 9784814400416Other