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のルール

ルール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