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

ルール4一般化には3つの例が必要

 ぼくらはみんな、新米プログラマーだった時に、特殊な解法よりも一般的な解法が望ましいと教わった。各問題に対して別々の関数を書くより、2つの問題を解決する1つの関数を書いた方がいいってわけだ。

 こういうコードを書くことはまずない1

1 訳注:【コード例解説】nullptrは、指しているオブジェクトがないことを示すnullポインターの値を表すC++キーワード。

Sign * findRedSign(const vector<Sign *> & signs)
{
    for (Sign * sign : signs)
        if (sign->color() == Color::Red)
            return sign;

    return nullptr;
}

 何故かと言うと、次のコードを簡単に書けるからだ。

Sign * findSignByColor(const vector<Sign *> & signs, Color color)
{
    for (Sign * sign : signs)
        if (sign->color() == color)
            return sign;

    return nullptr;
}

 こういう単純な例では特に、一般化っていう観点から考えるのは、自然なことだ。世界中の赤い標識(sign)を見つけなきゃいけないとしよう。プログラマーとしての自然な直感に従えば、任意の色(color)の標識を見つけるコードを書き、標識の色としてそのコードに赤を渡すことになる。自然は真空を嫌い2、プログラマーは1つの問題しか解決できないコードを嫌う。

2 訳注:「自然は真空を嫌う」は、古代ギリシアの哲学者Aristotle(紀元前384-紀元前322)の著書『自然学』(邦訳は『新版 ...

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

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

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

Jez Humble, Joanne Molesky, Barry O'Reilly, 角 征典, 笹井 崇司, Eric Ries
行動を変えるデザイン ―心理学と行動経済学をプロダクトデザインに活用する

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

Stephen Wendel, 武山 政直, 相島 雅樹, 反中 望, 松村 草也

Publisher Resources

ISBN: 9784814400416Other