読者です 読者をやめる 読者になる 読者になる

チラシ裏日記上等!!新館

オタクWebエンジニアの雑記ブログです。本や漫画や映画の感想なんかを主に書いています。最近は勉強会の感想とかも書いています。

「リーダブルコード」を読んだ。

100冊チャレンジ

やっぱりちゃんと読みやすいコードを書かないとねと思い直し、「リーダブルコード」を読んだ。

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

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

これを読むとちゃんと読みやすいコード書かないなと思わせてくれる。折に触れて読み返したいので手元に置いておくと安心できるかも。

以下感想。

各章について

構成的にはざっくりと部構成になっていて、Ⅰ部「表面上の改善」Ⅱ部「ループとロジックの単純化」Ⅲ部「コードの再構成」Ⅳ部「選抜テーマ」となっている。Ⅳ部はⅢ部までに学んだことを実践で生かすための例題が書かれている。

Ⅰ部 表面上の改善

読んでいて比較的実践のしやすい改善だと思った。これをやるだけでもずいぶん違うと思うので実践していきたい。

特に大事だと思ったのが「名前に情報を埋め込む」の章。明確な単語を選ぶことや、汎用的な名前を避けた方が良いと言うことが書かれている。ついつい値を取得したいところで「get」を使ってしまいがちだが、get自体には何の意味もないので別の言葉で書き直したほうがいい。シソーラスを使うと良いと書いてあったが、シソーラスを持っている人は少ないと思うのでgoogle翻訳で英単語を入力すると最近は類義語も出るのでうまく活用できそうな気がする。

f:id:Tomato-360:20160124014514p:plain

Ⅱ部 ループとロジックの単純化

この章では表面的な改修ではなく内部のロジックに踏み込んでいる。気軽さにできるかというとちょっと難しいこともあると思うが、ここに書かれていることに気をつけてコードを書けるようになった方が断然良いのは理解できる。

この章で特に大事だと思ったのが「変数と読みやすさ」の章で。ついついコードを書いているといったん一時変数に値を入れてからその内容を処理するという方式をとってしまうが、ここではそれは悪手とされている。コラムで3つ変数があるとそれを同時に処理するには考えなければならないと書かれている。変数が多いとそれを見た人がこの変数はなんだろうかと考えてしまうことから無駄に疲れてしまうのだろう。そう考えるとできるだけ変数を少なくした方が良いというのも納得できる。1度コードを書いたらその変数が必要かどうかは良く考えていきたい。

Ⅲ部 コードの再構成

この章ではコードの意味的な構成を整える手法について書かれている。複数の事柄を扱っているコードを整理し、1度に1つのことしかやらないように整理することで、保守しやすいコードになると言うことが書かれていた。

この章で大事だと思ったのが「1度に1つのことを」の章で、一つのコードで複数のことをやらずに分割して組み合わせることでコードをわかりやすくすることが書かれている。コードを考えながら書いていると一つのメソッド内でいろいろな処理をやっていることがままある。それはわかりにくく保守しづらいコードなので、1メソッドにつき1つの処理しかさせないようにする必要がある。そのためにまずはやっていることを列挙し抽出してからタスクを分割しメソッドを分ける。その後それを組み合わせるときにうまく段落をつけて書くとわかりやすいコードになる。コードを分割する前にテストを書くとなお良さそうに思えた。

終わり

コードを書く際の注意点や心構えがこれでもかと詰まっているので、手元に置いて折に触れて読み返したい。少なくともここに書かれていることがだいたいできるようになれば、読みづらく辛いコードを生み出さずレビュアーのため息も聞かずにすむようになるのではないだろうか?