全プログラマ必読の一冊【技術書紹介】リーダブルコード(オライリージャパン)

Programming

こんにちは。かじです。

今回は、全プログラマ必読の一冊リーダブルコード(Dustin Boswell Trevor Fourcher著・角征典訳・オライリージャパン)を紹介します。

本書の内容

本書は、より理解しやすいコードを書くためのテクニックをまとめた本になります。

書いてある内容としては、複雑怪奇なこという訳ではなく、シンプルで分かりやすい内容が書いてあります。しかし、言うは易し行うは難しといいますか、書いてある内容を全て実践するのは意外と難しく、大量のコードを書くことで徐々にマスターできるようになるのではないかと思います。

僕自身もこの本を読んだからといって、もうリーダブルなコードを書けると自信を持てたという訳ではありませんし、コーディング全てのパターンを網羅している訳でもなければ、コーディング上どうしても複雑なコードになってしまうということもあるでしょう。

この本は、これからどういう意識を持って、コードを書くかといういわば、指針のようなものを定義している本であると思います。

何も考えずにやっつけで書いたコードは保守性が悪く、テストもしづらくなります。思いやりを持って、保守性のあるコードを書くために意識することをこの本では書いており、コード規約や研修内容をこの本を叩き台として用いて作成していくといいのではないかと思いました。

二つの例

今回は、本書の中で二つ例を紹介したいと思います。

例1:汎用的な変数名を避ける

一つ目は汎用的な名前を避けるということです。

return valueを略してretvalという変数名を使われる人もいらっしゃるかもしれません。

これが短いスコープで使用する変数である場合はそれでも構わない場合があります。

しかし、これが返り値として使用されている場合、

return $retval;

となって、返り値を返しているという以外、何も情報のないコードになってしまいます。

そもそも返り値を返すというのは至極当たり前です。

ステータスコードであったり、取得できた記事のIDであったり、エラーメッセージを返しているはずですので、その情報を変数名にしましょう。

例2:Boolean型の変数名

二つ目は、Boolean型の変数名の付け方です。

Boolean型に関しては良くやってしまうのが、〇〇_flgかと思います。

下記の場合はどうでしょうか。

$error_flg=true;

これだと、このフラグはエラー状態でtrueなのか、それともエラーではなく正常状態なのでtrueなのか誤解してしまいます。

この場合は変数名をis_errorとして、trueであればエラー、falseなら正常とシンプルで分かりやすいコードになります。

まとめ

二つの例のように、本書では多くのテクニックが使用されています。

数千行にも渡って、結局何の処理をしているのか分からないコードが残ってしまうと、他の人の手間を取らせバグの原因にもなりえます。他の人というのは、チームメンバーだけではなく、数年後の自分かもしれません。

よりよいコードを書くことはそのコードに触れる全員にとって生産性の向上を促します。

プログラマの皆さん是非この一冊を手に取ってみましょう。

あとがき

この本を読んで感じたのは、他の人が理解しやすいように読む点自体、資料や文章と同じだなと感じました。

コードならまだしも資料や文章なんて読むことが前提であるはずなのに、相手が理解しやすいということを考えずに書きたいことをつらつらと書き連ねてしまうことが自分は多々あります。

その文章が何を書いているのかを目次で示す、結論を先に書く、必要であれば図で示す、など相手に何か伝える上で相手の目線に立つことは、コーディングや文章でも同じことだと思い、非常に反省しております。

今後はしっかりと文章を推敲して書いていこうと思います。

タイトルとURLをコピーしました