見出し画像

2023年4月に読んだ本

4月は本を1冊読んだ。

Clean Coder

著者: Robert C. Martin, 訳: 角 征典
記載日: 2023-04-16

副題: プロフェッショナルプログラマへの道

きれいなコードを書くための本かと最初思っていたのだが、実際はプロのプログラマとしての振る舞いについて書いた本だった。

著者は Uncle Bob として有名なプログラマで、1970年代から職業プログラマをしており、本書執筆時点で 42年の経験がある大ベテランである。(ちなみに、日本語訳した「ボブおじさん」でググると、「ボブの絵画教室」の Bob Ross も出てきてしまうので注意。)

プロはこうあるべき、という鉄則のようなものがひたすら並べられているわけではなく、著者自身の経験談が豊富に語られているため、読み物として非常に面白かった。全文に渡って口語表現で書かれていることもあり、とても読みやすい。これは角さんの翻訳が良いのもあると思う。

この本の中で一番衝撃を受けたのは第1章「プロ意識」の以下の一節だ。

プロにならないのは簡単だ。自分の仕事に責任を持たなければいい。すべて上司にお任せだ。ミスをしたら上司が後始末をしてくれる。だが、プロは自分で後始末をする。
モジュールにバグが潜り込んで、会社が1万ドルの損失を被ったらどうするだろうか?プロでないならば、肩をすくめて「こんなこともあるさ」と言って、次のモジュールを書き始める。プロならば、会社に1万ドルの小切手を切る。

責任をとるのがプロで、そうでないならプロではない、と言っている。実際のところ日本において、所属している企業に損失を与えた場合にエンジニアがそれを補填することがどれくらいあるのかわからないのだが、このようなことを真剣に考えたことが無かったので、とても印象に残った。(企業が労働者に損害賠償請求できるのか、といった議論とか訴訟はよく見るが、自分から払う、という可能性を考えたことが無かった)

もう一つ面白かったのは第6章「練習」で述べられている、コーディングを型のように練習する、というテクニック。

プログラミングの型というのは、プログラミングの問題を解くためのキーボードやマウスの動きの練習である。実際に問題を解くわけではない。解き方はすでにわかっている。問題を解きながら身体の動きや意思決定の練習をするのである。

私は、毎日仕事を始める前に型を1~2つやっている。 Java ・ Ruby ・ Clojure などのスキルを維持したい言語を使っている。型を使って、ショートカットの指使いや、リファクタリングのやり方といったスキルを研ぎ澄ましているのである。

ミュージシャンや武術家は日々反復練習を繰り返してスキルを高め、本番でそれを披露しているのだから、プログラマも本番(仕事中)に練習をするのではなく、日々の練習時間の中で練習を繰り返すべきだ、と言っている。言われてみればそうかも。。。
解き方をわかっている問題を何度も解くことに意味は無いと思っていたが、そのコードを書く動作を練習する、という重要な意味があるということを学んだ。

これは今自分がやっている競技プログラミングにも通じるものがあるかもしれない。簡単な問題だと解法はすぐに思いつくが、それを実際のコードに落とし込むのに時間がかかってしまう。競技プログラミングだと提出するまでの時間が重要なので、反復練習の中でショートカットを覚えたり、キーボードの指使いをより洗練させたりしていく、というのは今からでも実践できそう。

他にも1970年代のプログラミング事情などについても書いてあり、とても勉強になる本だった。(当時はデータの保存にテープを使っており、テープは一方向にしか動かず、巻き戻せなかった、などなど)
ためになることがたくさん書いてあり、手元に置いて何度も読み返したい本の一つになった。


この記事が気に入ったらサポートをしてみませんか?