Make the Most of IT.

お酒と映画が好きなJava屋さんがRubyとか学んだこと感じたことをつらつらと

面白いと、読みやすい、は違うんだよ? #リーダブルコード読みました

はじめに

みなさん、こんにちは。

寒くなってきて鍋のおいしい季節となってきました。

一人暮らしなので晩御飯のメニューを考えるのがいつも大変なのですが、鍋は本当に楽でいいですね。煮込めばなんだって美味しくなりますし、何より不足しがちな野菜を大量に摂れるのがとっても嬉しいです。

ちなみに今日は生姜醤油鍋のもとに大根1本すりおろしてのみぞれ鍋でしたが、これがもう本当に絶品で。みなさんも是非お試しください。

さて今日は先日読み終わりました「リーダブルコードーより良いコードを書くためのシンプルで実践的なテクニック」の感想を書いていこうと思います。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

読もうと思ったきっかけ

これまでお仕事でコードを書く機会は多くありましたが、「読みやすさ」について意識することはつい最近になるまでありませんでした。

意識するようになったきっかけは、過去案件のクソコードを改修しなければならなくなった時です。

当時の心の叫び
なんだこのネストの深いfor文とif文のバーゲンセールは!

とか

変数名が抽象的すぎるしあちこちで使ってるから
結局何のための変数かわからへん!

等々。。。

このクソコード達は反面教師として、コードはなるべくわかりやすい名前で複雑になりすぎないようにということを僕に教えてくれました。

しかし、「本当にこれでわかりやすくなってるのか?自己満足なんじゃないか?」という疑問が次第 に湧いてくることに。。。

そこで、各所で「綺麗でわかりやすいコードを書きたいならこれを読んどけ!」と絶賛されていたリーダブルコードを手に取ってみる事にしたのです。

全体的な感想

もっと早く読んでおけばよかった!
具体的にいうとOJT中か、もしくはOJTが終わった直後くらいに!

それくらいとても参考になる本でした。

まず理解されやすいコードとはどのようなコードか?の説明から始まり、その後インデントなどの見た目、変数の名前の付け方やコメントの残し方などなど

また、何より薄い!翻訳版でもたった230ページちょっとしかありません。

翻訳前は200ページなかったというから更に驚きです。

このページ数で気軽に通しで読み直すことができます。

この本はコードを書いていく上で大事な事をすべて抽出してさらに凝縮したサプリメントのようです。

自称「頭がいいコード」は読みにくい

僕がこの本を読んで一番衝撃的だったのは、102ページにある以下の文章です。

そのときは「オレは頭がいい」と思っていたんだ。
ロジックを簡潔なコードに落とし込む事に一種の喜びを感じていた。

これ、まさに僕でした。
クソコードが反面教師となって以降、僕はとにかく簡潔に短いコードが良いと感じてい他のです。

多少の読みづらさは関係ない、簡潔で短ければそれだけで大正義だと。

そんな正義はこの本に図星をつかれるよって、いとも簡単に打ち破られてしまいました。

改めて当時の自称「頭がいいコード」を読み直してみましたが、わかりづらいのなんのって。
下みたいなコードを書いていました。。。

String exeMessage = isValid() || (hasObservers() && shouldMigrate()) ? "実行します" : "中断します"

三項演算子の中で条件判断用のメソッドをいくつも呼び出しているので、それぞれのメソッドの結果を同時に考えながら読み解いていかなければなりません。

これはこのように書き換えると、わかりやすくなります。

boolean isExe = hasObservers() && shouldMigrate()
String exeMessage = isValid() || isExe ? "実行します" : "中断します"

この場合の"isExe"を説明変数と言います。

最後に

という事で、読了したリーダブルコードについて感想を書いてみました。

本当にもっと早く読みたかったほどの名著でした!

次は噂のCODE COMPLETEを読んでみたいなぁ。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)